From 2e9195819ab43064e40b49ed6ad94d81ef32c976 Mon Sep 17 00:00:00 2001 From: Gargaj Date: Thu, 28 Aug 2014 15:17:53 +0200 Subject: [PATCH 01/53] start assxml exporter basics --- code/AssxmlExporter.cpp | 67 +++++++++++++++++++++++++++++++++++++++++ code/AssxmlExporter.h | 49 ++++++++++++++++++++++++++++++ code/CMakeLists.txt | 7 +++++ code/Exporter.cpp | 5 +++ 4 files changed, 128 insertions(+) create mode 100644 code/AssxmlExporter.cpp create mode 100644 code/AssxmlExporter.h diff --git a/code/AssxmlExporter.cpp b/code/AssxmlExporter.cpp new file mode 100644 index 000000000..03968553c --- /dev/null +++ b/code/AssxmlExporter.cpp @@ -0,0 +1,67 @@ +/* +Open Asset Import Library (assimp) +---------------------------------------------------------------------- + +Copyright (c) 2006-2012, assimp team +All rights reserved. + +Redistribution and use of this software in source and binary forms, +with or without modification, are permitted provided that the +following conditions are met: + +* Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + +* Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + +* Neither the name of the assimp team, nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior + written permission of the assimp team. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +---------------------------------------------------------------------- +*/ +/** @file AssxmlExporter.cpp + * ASSBIN exporter main code + */ +#include "AssimpPCH.h" +#include "./../include/assimp/version.h" +#include "ProcessHelper.h" + +#ifdef ASSIMP_BUILD_NO_OWN_ZLIB +# include +#else +# include "../contrib/zlib/zlib.h" +#endif + +#ifndef ASSIMP_BUILD_NO_EXPORT +#ifndef ASSIMP_BUILD_NO_ASSXML_EXPORTER + +using namespace Assimp; + +namespace Assimp { + +void ExportSceneAssxml(const char* pFile, IOSystem* pIOSystem, const aiScene* pScene) +{ +} + +} // end of namespace Assimp + +#endif // ASSIMP_BUILD_NO_ASSBIN_EXPORTER +#endif // ASSIMP_BUILD_NO_EXPORT diff --git a/code/AssxmlExporter.h b/code/AssxmlExporter.h new file mode 100644 index 000000000..34ccda3e1 --- /dev/null +++ b/code/AssxmlExporter.h @@ -0,0 +1,49 @@ +/* +Open Asset Import Library (assimp) +---------------------------------------------------------------------- + +Copyright (c) 2006-2012, assimp team +All rights reserved. + +Redistribution and use of this software in source and binary forms, +with or without modification, are permitted provided that the +following conditions are met: + +* Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + +* Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + +* Neither the name of the assimp team, nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior + written permission of the assimp team. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +---------------------------------------------------------------------- +*/ + +/** @file AssbinExporter.h + * ASSBIN Exporter Main Header + */ +#ifndef AI_ASSBINEXPORTER_H_INC +#define AI_ASSBINEXPORTER_H_INC + +// nothing really needed here - reserved for future use like properties + +#endif diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt index 224ae7f57..c11a9b42a 100644 --- a/code/CMakeLists.txt +++ b/code/CMakeLists.txt @@ -180,6 +180,12 @@ SET( ASSBIN_SRCS ) SOURCE_GROUP( Assbin FILES ${ASSBIN_SRCS}) +SET( ASSXML_SRCS + AssxmlExporter.h + AssxmlExporter.cpp +) +SOURCE_GROUP( Assxml FILES ${ASSXML_SRCS}) + SET( B3D_SRCS B3DImporter.cpp B3DImporter.h @@ -656,6 +662,7 @@ SET( assimp_src ${AC_SRCS} ${ASE_SRCS} ${ASSBIN_SRCS} + ${ASSXML_SRCS} ${B3D_SRCS} ${BVH_SRCS} ${Collada_SRCS} diff --git a/code/Exporter.cpp b/code/Exporter.cpp index 22c60ebee..846e5f8bb 100644 --- a/code/Exporter.cpp +++ b/code/Exporter.cpp @@ -80,6 +80,7 @@ void ExportSceneSTLBinary(const char*,IOSystem*, const aiScene*); void ExportScenePly(const char*,IOSystem*, const aiScene*); void ExportScene3DS(const char*, IOSystem*, const aiScene*); void ExportSceneAssbin(const char*, IOSystem*, const aiScene*); +void ExportSceneAssxml(const char*, IOSystem*, const aiScene*); // ------------------------------------------------------------------------------------------------ // global array of all export formats which Assimp supports in its current build @@ -122,6 +123,10 @@ Exporter::ExportFormatEntry gExporters[] = #ifndef ASSIMP_BUILD_NO_ASSBIN_EXPORTER Exporter::ExportFormatEntry( "assbin", "Assimp Binary", "assbin" , &ExportSceneAssbin, 0), #endif + +#ifndef ASSIMP_BUILD_NO_ASSXML_EXPORTER + Exporter::ExportFormatEntry( "assxml", "Assxml Document", "assxml" , &ExportSceneAssxml, 0), +#endif }; #define ASSIMP_NUM_EXPORTERS (sizeof(gExporters)/sizeof(gExporters[0])) From c47dc2802e01faa61332d5bb6a5eed19086ca05c Mon Sep 17 00:00:00 2001 From: Gargaj Date: Thu, 28 Aug 2014 15:38:57 +0200 Subject: [PATCH 02/53] convert assxml exporter --- code/AssxmlExporter.cpp | 568 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 568 insertions(+) diff --git a/code/AssxmlExporter.cpp b/code/AssxmlExporter.cpp index 03968553c..35749be1c 100644 --- a/code/AssxmlExporter.cpp +++ b/code/AssxmlExporter.cpp @@ -57,8 +57,576 @@ using namespace Assimp; namespace Assimp { +namespace AssxmlExport { + +int ioprintf( IOStream * io, const char * format, ... ) +{ + char sz[4096]; + va_list va; + va_start( va, format ); + int nSize = vsnprintf( sz, 4096, format, va ); + ai_assert( nSize < 4096 ); + va_end( format ); + + io->Write( sz, sizeof(char), nSize ); + + return nSize; +} + +// ----------------------------------------------------------------------------------- +// Convert a name to standard XML format +void ConvertName(aiString& out, const aiString& in) +{ + out.length = 0; + for (unsigned int i = 0; i < in.length; ++i) { + switch (in.data[i]) { + case '<': + out.Append("<");break; + case '>': + out.Append(">");break; + case '&': + out.Append("&");break; + case '\"': + out.Append(""");break; + case '\'': + out.Append("'");break; + default: + out.data[out.length++] = in.data[i]; + } + } + out.data[out.length] = 0; +} + +// ----------------------------------------------------------------------------------- +// Write a single node as text dump +void WriteNode(const aiNode* node, IOStream * io, unsigned int depth) +{ + char prefix[512]; + for (unsigned int i = 0; i < depth;++i) + prefix[i] = '\t'; + prefix[depth] = '\0'; + + const aiMatrix4x4& m = node->mTransformation; + + aiString name; + ConvertName(name,node->mName); + ioprintf(io,"%s \n" + "%s\t \n" + "%s\t\t%0 6f %0 6f %0 6f %0 6f\n" + "%s\t\t%0 6f %0 6f %0 6f %0 6f\n" + "%s\t\t%0 6f %0 6f %0 6f %0 6f\n" + "%s\t\t%0 6f %0 6f %0 6f %0 6f\n" + "%s\t \n", + prefix,name.data,prefix, + prefix,m.a1,m.a2,m.a3,m.a4, + prefix,m.b1,m.b2,m.b3,m.b4, + prefix,m.c1,m.c2,m.c3,m.c4, + prefix,m.d1,m.d2,m.d3,m.d4,prefix); + + if (node->mNumMeshes) { + ioprintf(io, "%s\t\n%s\t", + prefix,node->mNumMeshes,prefix); + + for (unsigned int i = 0; i < node->mNumMeshes;++i) { + ioprintf(io,"%i ",node->mMeshes[i]); + } + ioprintf(io,"\n%s\t\n",prefix); + } + + if (node->mNumChildren) { + ioprintf(io,"%s\t\n", + prefix,node->mNumChildren); + + for (unsigned int i = 0; i < node->mNumChildren;++i) { + WriteNode(node->mChildren[i],io,depth+2); + } + ioprintf(io,"%s\t\n",prefix); + } + ioprintf(io,"%s\n",prefix); +} + + +// ----------------------------------------------------------------------------------- +// Some chuncks of text will need to be encoded for XML +// http://stackoverflow.com/questions/5665231/most-efficient-way-to-escape-xml-html-in-c-string#5665377 +static std::string encodeXML(const std::string& data) { + std::string buffer; + buffer.reserve(data.size()); + for(size_t pos = 0; pos != data.size(); ++pos) { + switch(data[pos]) { + case '&': buffer.append("&"); break; + case '\"': buffer.append("""); break; + case '\'': buffer.append("'"); break; + case '<': buffer.append("<"); break; + case '>': buffer.append(">"); break; + default: buffer.append(&data[pos], 1); break; + } + } + return buffer; +} + + + +// ----------------------------------------------------------------------------------- +// Write a text model dump +void WriteDump(const aiScene* scene, IOStream* io, bool shortened) +{ + time_t tt = ::time(NULL); + tm* p = ::gmtime(&tt); + + aiString name; + + // write header + ioprintf(io, + "\n" + "\n\n" + + "" + " \n\n" + "\n", + + aiGetVersionMajor(),aiGetVersionMinor(),aiGetVersionRevision(),asctime(p), + scene->mFlags, + 0 /*globalImporter->GetEffectivePostProcessing()*/); + + // write the node graph + WriteNode(scene->mRootNode, io, 0); + +#if 0 + // write cameras + for (unsigned int i = 0; i < scene->mNumCameras;++i) { + aiCamera* cam = scene->mCameras[i]; + ConvertName(name,cam->mName); + + // camera header + ioprintf(io,"\t\n" + "\t\t %0 8f %0 8f %0 8f \n" + "\t\t %0 8f %0 8f %0 8f \n" + "\t\t %0 8f %0 8f %0 8f \n" + "\t\t %f \n" + "\t\t %f \n" + "\t\t %f \n" + "\t\t %f \n" + "\t\n", + name.data, + cam->mUp.x,cam->mUp.y,cam->mUp.z, + cam->mLookAt.x,cam->mLookAt.y,cam->mLookAt.z, + cam->mPosition.x,cam->mPosition.y,cam->mPosition.z, + cam->mHorizontalFOV,cam->mAspect,cam->mClipPlaneNear,cam->mClipPlaneFar,i); + } + + // write lights + for (unsigned int i = 0; i < scene->mNumLights;++i) { + aiLight* l = scene->mLights[i]; + ConvertName(name,l->mName); + + // light header + ioprintf(io,"\t type=\"%s\"\n" + "\t\t %0 8f %0 8f %0 8f \n" + "\t\t %0 8f %0 8f %0 8f \n" + "\t\t %0 8f %0 8f %0 8f \n", + name.data, + (l->mType == aiLightSource_DIRECTIONAL ? "directional" : + (l->mType == aiLightSource_POINT ? "point" : "spot" )), + l->mColorDiffuse.r, l->mColorDiffuse.g, l->mColorDiffuse.b, + l->mColorSpecular.r,l->mColorSpecular.g,l->mColorSpecular.b, + l->mColorAmbient.r, l->mColorAmbient.g, l->mColorAmbient.b); + + if (l->mType != aiLightSource_DIRECTIONAL) { + ioprintf(io, + "\t\t %0 8f %0 8f %0 8f \n" + "\t\t %f \n" + "\t\t %f \n" + "\t\t %f \n", + l->mPosition.x,l->mPosition.y,l->mPosition.z, + l->mAttenuationConstant,l->mAttenuationLinear,l->mAttenuationQuadratic); + } + + if (l->mType != aiLightSource_POINT) { + ioprintf(io, + "\t\t %0 8f %0 8f %0 8f \n", + l->mDirection.x,l->mDirection.y,l->mDirection.z); + } + + if (l->mType == aiLightSource_SPOT) { + ioprintf(io, + "\t\t %f \n" + "\t\t %f \n", + l->mAngleOuterCone,l->mAngleInnerCone); + } + ioprintf(io,"\t\n"); + } +#endif + + // write textures + if (scene->mNumTextures) { + ioprintf(io,"\n",scene->mNumTextures); + for (unsigned int i = 0; i < scene->mNumTextures;++i) { + aiTexture* tex = scene->mTextures[i]; + bool compressed = (tex->mHeight == 0); + + // mesh header + ioprintf(io,"\t \n", + (compressed ? -1 : tex->mWidth),(compressed ? -1 : tex->mHeight), + (compressed ? "true" : "false")); + + if (compressed) { + ioprintf(io,"\t\t \n",tex->mWidth); + + if (!shortened) { + for (unsigned int n = 0; n < tex->mWidth;++n) { + ioprintf(io,"\t\t\t%2x",reinterpret_cast(tex->pcData)[n]); + if (n && !(n % 50)) { + ioprintf(io,"\n"); + } + } + } + } + else if (!shortened){ + ioprintf(io,"\t\t \n",tex->mWidth*tex->mHeight*4); + + // const unsigned int width = (unsigned int)log10((double)std::max(tex->mHeight,tex->mWidth))+1; + for (unsigned int y = 0; y < tex->mHeight;++y) { + for (unsigned int x = 0; x < tex->mWidth;++x) { + aiTexel* tx = tex->pcData + y*tex->mWidth+x; + unsigned int r = tx->r,g=tx->g,b=tx->b,a=tx->a; + ioprintf(io,"\t\t\t%2x %2x %2x %2x",r,g,b,a); + + // group by four for readibility + if (0 == (x+y*tex->mWidth) % 4) + ioprintf(io,"\n"); + } + } + } + ioprintf(io,"\t\t\n\t\n"); + } + ioprintf(io,"\n"); + } + + // write materials + if (scene->mNumMaterials) { + ioprintf(io,"\n",scene->mNumMaterials); + for (unsigned int i = 0; i< scene->mNumMaterials; ++i) { + const aiMaterial* mat = scene->mMaterials[i]; + + ioprintf(io,"\t\n"); + ioprintf(io,"\t\t\n",mat->mNumProperties); + for (unsigned int n = 0; n < mat->mNumProperties;++n) { + + const aiMaterialProperty* prop = mat->mProperties[n]; + const char* sz = ""; + if (prop->mType == aiPTI_Float) { + sz = "float"; + } + else if (prop->mType == aiPTI_Integer) { + sz = "integer"; + } + else if (prop->mType == aiPTI_String) { + sz = "string"; + } + else if (prop->mType == aiPTI_Buffer) { + sz = "binary_buffer"; + } + + ioprintf(io,"\t\t\tmKey.data, sz, + ::TextureTypeToString((aiTextureType)prop->mSemantic),prop->mIndex); + + if (prop->mType == aiPTI_Float) { + ioprintf(io," size=\"%i\">\n\t\t\t\t", + static_cast(prop->mDataLength/sizeof(float))); + + for (unsigned int p = 0; p < prop->mDataLength/sizeof(float);++p) { + ioprintf(io,"%f ",*((float*)(prop->mData+p*sizeof(float)))); + } + } + else if (prop->mType == aiPTI_Integer) { + ioprintf(io," size=\"%i\">\n\t\t\t\t", + static_cast(prop->mDataLength/sizeof(int))); + + for (unsigned int p = 0; p < prop->mDataLength/sizeof(int);++p) { + ioprintf(io,"%i ",*((int*)(prop->mData+p*sizeof(int)))); + } + } + else if (prop->mType == aiPTI_Buffer) { + ioprintf(io," size=\"%i\">\n\t\t\t\t", + static_cast(prop->mDataLength)); + + for (unsigned int p = 0; p < prop->mDataLength;++p) { + ioprintf(io,"%2x ",prop->mData[p]); + if (p && 0 == p%30) { + ioprintf(io,"\n\t\t\t\t"); + } + } + } + else if (prop->mType == aiPTI_String) { + ioprintf(io,">\n\t\t\t\t\"%s\"",encodeXML(prop->mData+4).c_str() /* skip length */); + } + ioprintf(io,"\n\t\t\t\n"); + } + ioprintf(io,"\t\t\n"); + ioprintf(io,"\t\n"); + } + ioprintf(io,"\n"); + } + + // write animations + if (scene->mNumAnimations) { + ioprintf(io,"\n",scene->mNumAnimations); + for (unsigned int i = 0; i < scene->mNumAnimations;++i) { + aiAnimation* anim = scene->mAnimations[i]; + + // anim header + ConvertName(name,anim->mName); + ioprintf(io,"\t\n", + name.data, anim->mDuration, anim->mTicksPerSecond); + + // write bone animation channels + if (anim->mNumChannels) { + ioprintf(io,"\t\t\n",anim->mNumChannels); + for (unsigned int n = 0; n < anim->mNumChannels;++n) { + aiNodeAnim* nd = anim->mChannels[n]; + + // node anim header + ConvertName(name,nd->mNodeName); + ioprintf(io,"\t\t\t\n",name.data); + + if (!shortened) { + // write position keys + if (nd->mNumPositionKeys) { + ioprintf(io,"\t\t\t\t\n",nd->mNumPositionKeys); + for (unsigned int a = 0; a < nd->mNumPositionKeys;++a) { + aiVectorKey* vc = nd->mPositionKeys+a; + ioprintf(io,"\t\t\t\t\t\n" + "\t\t\t\t\t\t%0 8f %0 8f %0 8f\n\t\t\t\t\t\n", + vc->mTime,vc->mValue.x,vc->mValue.y,vc->mValue.z); + } + ioprintf(io,"\t\t\t\t\n"); + } + + // write scaling keys + if (nd->mNumScalingKeys) { + ioprintf(io,"\t\t\t\t\n",nd->mNumScalingKeys); + for (unsigned int a = 0; a < nd->mNumScalingKeys;++a) { + aiVectorKey* vc = nd->mScalingKeys+a; + ioprintf(io,"\t\t\t\t\t\n" + "\t\t\t\t\t\t%0 8f %0 8f %0 8f\n\t\t\t\t\t\n", + vc->mTime,vc->mValue.x,vc->mValue.y,vc->mValue.z); + } + ioprintf(io,"\t\t\t\t\n"); + } + + // write rotation keys + if (nd->mNumRotationKeys) { + ioprintf(io,"\t\t\t\t\n",nd->mNumRotationKeys); + for (unsigned int a = 0; a < nd->mNumRotationKeys;++a) { + aiQuatKey* vc = nd->mRotationKeys+a; + ioprintf(io,"\t\t\t\t\t\n" + "\t\t\t\t\t\t%0 8f %0 8f %0 8f %0 8f\n\t\t\t\t\t\n", + vc->mTime,vc->mValue.x,vc->mValue.y,vc->mValue.z,vc->mValue.w); + } + ioprintf(io,"\t\t\t\t\n"); + } + } + ioprintf(io,"\t\t\t\n"); + } + ioprintf(io,"\t\t\n"); + } + ioprintf(io,"\t\n"); + } + ioprintf(io,"\n"); + } + + // write meshes + if (scene->mNumMeshes) { + ioprintf(io,"\n",scene->mNumMeshes); + for (unsigned int i = 0; i < scene->mNumMeshes;++i) { + aiMesh* mesh = scene->mMeshes[i]; + // const unsigned int width = (unsigned int)log10((double)mesh->mNumVertices)+1; + + // mesh header + ioprintf(io,"\t\n", + (mesh->mPrimitiveTypes & aiPrimitiveType_POINT ? "points" : ""), + (mesh->mPrimitiveTypes & aiPrimitiveType_LINE ? "lines" : ""), + (mesh->mPrimitiveTypes & aiPrimitiveType_TRIANGLE ? "triangles" : ""), + (mesh->mPrimitiveTypes & aiPrimitiveType_POLYGON ? "polygons" : ""), + mesh->mMaterialIndex); + + // bones + if (mesh->mNumBones) { + ioprintf(io,"\t\t\n",mesh->mNumBones); + + for (unsigned int n = 0; n < mesh->mNumBones;++n) { + aiBone* bone = mesh->mBones[n]; + + ConvertName(name,bone->mName); + // bone header + ioprintf(io,"\t\t\t\n" + "\t\t\t\t \n" + "\t\t\t\t\t%0 6f %0 6f %0 6f %0 6f\n" + "\t\t\t\t\t%0 6f %0 6f %0 6f %0 6f\n" + "\t\t\t\t\t%0 6f %0 6f %0 6f %0 6f\n" + "\t\t\t\t\t%0 6f %0 6f %0 6f %0 6f\n" + "\t\t\t\t \n", + name.data, + bone->mOffsetMatrix.a1,bone->mOffsetMatrix.a2,bone->mOffsetMatrix.a3,bone->mOffsetMatrix.a4, + bone->mOffsetMatrix.b1,bone->mOffsetMatrix.b2,bone->mOffsetMatrix.b3,bone->mOffsetMatrix.b4, + bone->mOffsetMatrix.c1,bone->mOffsetMatrix.c2,bone->mOffsetMatrix.c3,bone->mOffsetMatrix.c4, + bone->mOffsetMatrix.d1,bone->mOffsetMatrix.d2,bone->mOffsetMatrix.d3,bone->mOffsetMatrix.d4); + + if (!shortened && bone->mNumWeights) { + ioprintf(io,"\t\t\t\t\n",bone->mNumWeights); + + // bone weights + for (unsigned int a = 0; a < bone->mNumWeights;++a) { + aiVertexWeight* wght = bone->mWeights+a; + + ioprintf(io,"\t\t\t\t\t\n\t\t\t\t\t\t%f\n\t\t\t\t\t\n", + wght->mVertexId,wght->mWeight); + } + ioprintf(io,"\t\t\t\t\n"); + } + ioprintf(io,"\t\t\t\n"); + } + ioprintf(io,"\t\t\n"); + } + + // faces + if (!shortened && mesh->mNumFaces) { + ioprintf(io,"\t\t\n",mesh->mNumFaces); + for (unsigned int n = 0; n < mesh->mNumFaces; ++n) { + aiFace& f = mesh->mFaces[n]; + ioprintf(io,"\t\t\t\n" + "\t\t\t\t",f.mNumIndices); + + for (unsigned int j = 0; j < f.mNumIndices;++j) + ioprintf(io,"%i ",f.mIndices[j]); + + ioprintf(io,"\n\t\t\t\n"); + } + ioprintf(io,"\t\t\n"); + } + + // vertex positions + if (mesh->HasPositions()) { + ioprintf(io,"\t\t \n",mesh->mNumVertices); + if (!shortened) { + for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { + ioprintf(io,"\t\t%0 8f %0 8f %0 8f\n", + mesh->mVertices[n].x, + mesh->mVertices[n].y, + mesh->mVertices[n].z); + } + } + ioprintf(io,"\t\t\n"); + } + + // vertex normals + if (mesh->HasNormals()) { + ioprintf(io,"\t\t \n",mesh->mNumVertices); + if (!shortened) { + for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { + ioprintf(io,"\t\t%0 8f %0 8f %0 8f\n", + mesh->mNormals[n].x, + mesh->mNormals[n].y, + mesh->mNormals[n].z); + } + } + else { + } + ioprintf(io,"\t\t\n"); + } + + // vertex tangents and bitangents + if (mesh->HasTangentsAndBitangents()) { + ioprintf(io,"\t\t \n",mesh->mNumVertices); + if (!shortened) { + for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { + ioprintf(io,"\t\t%0 8f %0 8f %0 8f\n", + mesh->mTangents[n].x, + mesh->mTangents[n].y, + mesh->mTangents[n].z); + } + } + ioprintf(io,"\t\t\n"); + + ioprintf(io,"\t\t \n",mesh->mNumVertices); + if (!shortened) { + for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { + ioprintf(io,"\t\t%0 8f %0 8f %0 8f\n", + mesh->mBitangents[n].x, + mesh->mBitangents[n].y, + mesh->mBitangents[n].z); + } + } + ioprintf(io,"\t\t\n"); + } + + // texture coordinates + for (unsigned int a = 0; a < AI_MAX_NUMBER_OF_TEXTURECOORDS; ++a) { + if (!mesh->mTextureCoords[a]) + break; + + ioprintf(io,"\t\t \n",mesh->mNumVertices, + a,mesh->mNumUVComponents[a]); + + if (!shortened) { + if (mesh->mNumUVComponents[a] == 3) { + for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { + ioprintf(io,"\t\t%0 8f %0 8f %0 8f\n", + mesh->mTextureCoords[a][n].x, + mesh->mTextureCoords[a][n].y, + mesh->mTextureCoords[a][n].z); + } + } + else { + for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { + ioprintf(io,"\t\t%0 8f %0 8f\n", + mesh->mTextureCoords[a][n].x, + mesh->mTextureCoords[a][n].y); + } + } + } + ioprintf(io,"\t\t\n"); + } + + // vertex colors + for (unsigned int a = 0; a < AI_MAX_NUMBER_OF_COLOR_SETS; ++a) { + if (!mesh->mColors[a]) + break; + ioprintf(io,"\t\t \n",mesh->mNumVertices,a); + if (!shortened) { + for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { + ioprintf(io,"\t\t%0 8f %0 8f %0 8f %0 8f\n", + mesh->mColors[a][n].r, + mesh->mColors[a][n].g, + mesh->mColors[a][n].b, + mesh->mColors[a][n].a); + } + } + ioprintf(io,"\t\t\n"); + } + ioprintf(io,"\t\n"); + } + ioprintf(io,"\n"); + } + ioprintf(io,"\n"); +} + +} // end of namespace AssxmlExport + void ExportSceneAssxml(const char* pFile, IOSystem* pIOSystem, const aiScene* pScene) { + IOStream * out = pIOSystem->Open( pFile, "wt" ); + if (!out) return; + + bool shortened = false; + AssxmlExport::WriteDump( pScene, out, shortened ); + + pIOSystem->Close( out ); } } // end of namespace Assimp From 8f0208e5a8d33c8b82feba197850280b04d3dacf Mon Sep 17 00:00:00 2001 From: Gargaj Date: Thu, 28 Aug 2014 15:41:17 +0200 Subject: [PATCH 03/53] whoops, still some residue from ASSBIN --- code/AssxmlExporter.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/AssxmlExporter.cpp b/code/AssxmlExporter.cpp index 35749be1c..89b7718b6 100644 --- a/code/AssxmlExporter.cpp +++ b/code/AssxmlExporter.cpp @@ -38,7 +38,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------- */ /** @file AssxmlExporter.cpp - * ASSBIN exporter main code + * ASSXML exporter main code */ #include "AssimpPCH.h" #include "./../include/assimp/version.h" @@ -631,5 +631,5 @@ void ExportSceneAssxml(const char* pFile, IOSystem* pIOSystem, const aiScene* pS } // end of namespace Assimp -#endif // ASSIMP_BUILD_NO_ASSBIN_EXPORTER +#endif // ASSIMP_BUILD_NO_ASSXML_EXPORTER #endif // ASSIMP_BUILD_NO_EXPORT From 19de24a442ffc552485e106100235b5ceed3daff Mon Sep 17 00:00:00 2001 From: Gargaj Date: Thu, 28 Aug 2014 15:42:22 +0200 Subject: [PATCH 04/53] ...and some more assbin leftovers --- code/AssxmlExporter.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/AssxmlExporter.h b/code/AssxmlExporter.h index 34ccda3e1..d77445a99 100644 --- a/code/AssxmlExporter.h +++ b/code/AssxmlExporter.h @@ -38,11 +38,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------- */ -/** @file AssbinExporter.h - * ASSBIN Exporter Main Header +/** @file AssxmlExporter.h + * ASSXML Exporter Main Header */ -#ifndef AI_ASSBINEXPORTER_H_INC -#define AI_ASSBINEXPORTER_H_INC +#ifndef AI_ASSXMLEXPORTER_H_INC +#define AI_ASSXMLEXPORTER_H_INC // nothing really needed here - reserved for future use like properties From 6f828087f9b787ecaf5925a25dfd56bae8355f0b Mon Sep 17 00:00:00 2001 From: Gargaj Date: Thu, 28 Aug 2014 15:45:48 +0200 Subject: [PATCH 05/53] add stdarg.h --- code/AssxmlExporter.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/code/AssxmlExporter.cpp b/code/AssxmlExporter.cpp index 89b7718b6..062fea6dd 100644 --- a/code/AssxmlExporter.cpp +++ b/code/AssxmlExporter.cpp @@ -40,6 +40,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /** @file AssxmlExporter.cpp * ASSXML exporter main code */ +#include #include "AssimpPCH.h" #include "./../include/assimp/version.h" #include "ProcessHelper.h" From e2401c8b58c7d610d17cb22ac2cc365c70a15f19 Mon Sep 17 00:00:00 2001 From: Gargaj Date: Thu, 28 Aug 2014 15:51:01 +0200 Subject: [PATCH 06/53] fix va_end call --- code/AssxmlExporter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/AssxmlExporter.cpp b/code/AssxmlExporter.cpp index 062fea6dd..1538d2456 100644 --- a/code/AssxmlExporter.cpp +++ b/code/AssxmlExporter.cpp @@ -67,7 +67,7 @@ int ioprintf( IOStream * io, const char * format, ... ) va_start( va, format ); int nSize = vsnprintf( sz, 4096, format, va ); ai_assert( nSize < 4096 ); - va_end( format ); + va_end( va ); io->Write( sz, sizeof(char), nSize ); From d333e08343df9efba3a95909190d80a00806c50c Mon Sep 17 00:00:00 2001 From: Gargaj Date: Thu, 28 Aug 2014 16:27:29 +0200 Subject: [PATCH 07/53] add ambient light type, allow collada to load it --- code/ColladaHelper.h | 1 - code/ColladaLoader.cpp | 4 ---- include/assimp/light.h | 6 ++++++ 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/code/ColladaHelper.h b/code/ColladaHelper.h index 956665198..f249a28d5 100644 --- a/code/ColladaHelper.h +++ b/code/ColladaHelper.h @@ -118,7 +118,6 @@ struct Camera float mZNear, mZFar; }; -#define aiLightSource_AMBIENT 0xdeaddead #define ASSIMP_COLLADA_LIGHT_ANGLE_NOT_SET 1e9f /** A collada light source. */ diff --git a/code/ColladaLoader.cpp b/code/ColladaLoader.cpp index e721c99b8..26d41862d 100644 --- a/code/ColladaLoader.cpp +++ b/code/ColladaLoader.cpp @@ -308,10 +308,6 @@ void ColladaLoader::BuildLightsForNode( const ColladaParser& pParser, const Coll continue; } const Collada::Light* srcLight = &srcLightIt->second; - if (srcLight->mType == aiLightSource_AMBIENT) { - DefaultLogger::get()->error("Collada: Skipping ambient light for the moment"); - continue; - } // now fill our ai data structure aiLight* out = new aiLight(); diff --git a/include/assimp/light.h b/include/assimp/light.h index 6b01c2878..ec0c20ec5 100644 --- a/include/assimp/light.h +++ b/include/assimp/light.h @@ -75,6 +75,12 @@ enum aiLightSourceType //! sport arenas. aiLightSource_SPOT = 0x3, + //! The generic light level of the world, including the bounces + //! of all other lightsources. + //! This light type doesn't have a valid position, direction, or + //! other properties, just a color. + aiLightSource_AMBIENT = 0x4, + /** This value is not used. It is just there to force the * compiler to map this enum to a 32 Bit integer. From ae7aba36479c348cbc755c09f85a9dbff9406481 Mon Sep 17 00:00:00 2001 From: Gargaj Date: Thu, 28 Aug 2014 16:34:39 +0200 Subject: [PATCH 08/53] + comment --- include/assimp/light.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/assimp/light.h b/include/assimp/light.h index ec0c20ec5..c1d674bd6 100644 --- a/include/assimp/light.h +++ b/include/assimp/light.h @@ -77,6 +77,7 @@ enum aiLightSourceType //! The generic light level of the world, including the bounces //! of all other lightsources. + //! Typically, there's at most one ambient light in a scene. //! This light type doesn't have a valid position, direction, or //! other properties, just a color. aiLightSource_AMBIENT = 0x4, From 625d2b7c4aead89ab406c953d8d46faa0c8f4578 Mon Sep 17 00:00:00 2001 From: Adam Petrone Date: Sat, 30 Aug 2014 00:39:03 -0400 Subject: [PATCH 09/53] Fix #325; Blender UV unwrap issue The BMesh converter might be missing more details, but this should get basic UVs working for now. --- code/BlenderBMesh.cpp | 20 ++++++++++++++++++++ code/BlenderBMesh.h | 1 + 2 files changed, 21 insertions(+) diff --git a/code/BlenderBMesh.cpp b/code/BlenderBMesh.cpp index 0e517f4c8..47dd657fc 100644 --- a/code/BlenderBMesh.cpp +++ b/code/BlenderBMesh.cpp @@ -143,9 +143,13 @@ void BlenderBMeshConverter::DestroyTriMesh( ) void BlenderBMeshConverter::ConvertPolyToFaces( const MPoly& poly ) { const MLoop* polyLoop = &BMesh->mloop[ poly.loopstart ]; + const MLoopUV* loopUV = &BMesh->mloopuv[ poly.loopstart ]; + if ( poly.totloop == 3 || poly.totloop == 4 ) { AddFace( polyLoop[ 0 ].v, polyLoop[ 1 ].v, polyLoop[ 2 ].v, poly.totloop == 4 ? polyLoop[ 3 ].v : 0 ); + + AddTFace( loopUV[ 0 ].uv, loopUV[ 1 ].uv, loopUV[ 2 ].uv, poly.totloop == 4 ? loopUV[ 3 ].uv : 0 ); } else if ( poly.totloop > 4 ) { @@ -173,4 +177,20 @@ void BlenderBMeshConverter::AddFace( int v1, int v2, int v3, int v4 ) triMesh->totface = triMesh->mface.size( ); } +// ------------------------------------------------------------------------------------------------ +void BlenderBMeshConverter::AddTFace( const float* uv1, const float *uv2, const float *uv3, const float* uv4 ) +{ + MTFace mtface; + memcpy( &mtface.uv[ 0 ], uv1, sizeof(float) * 2 ); + memcpy( &mtface.uv[ 1 ], uv2, sizeof(float) * 2 ); + memcpy( &mtface.uv[ 2 ], uv3, sizeof(float) * 2 ); + + if ( uv4 ) + { + memcpy( &mtface.uv[ 3 ], uv4, sizeof(float) * 2 ); + } + + triMesh->mtface.push_back( mtface ); +} + #endif // ASSIMP_BUILD_NO_BLEND_IMPORTER diff --git a/code/BlenderBMesh.h b/code/BlenderBMesh.h index 47afbf437..f26a2a043 100644 --- a/code/BlenderBMesh.h +++ b/code/BlenderBMesh.h @@ -80,6 +80,7 @@ namespace Assimp void DestroyTriMesh( ); void ConvertPolyToFaces( const Blender::MPoly& poly ); void AddFace( int v1, int v2, int v3, int v4 = 0 ); + void AddTFace( const float* uv1, const float* uv2, const float *uv3, const float* uv4 = 0 ); const Blender::Mesh* BMesh; Blender::Mesh* triMesh; From 8bf26065de197493d2c46844b0e0d25b41729638 Mon Sep 17 00:00:00 2001 From: George Papadopoulos Date: Mon, 1 Sep 2014 19:06:59 +0300 Subject: [PATCH 10/53] [FBX] parse upper cased Int/Enum properties --- code/FBXProperties.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/FBXProperties.cpp b/code/FBXProperties.cpp index 62cbba51d..13b354442 100644 --- a/code/FBXProperties.cpp +++ b/code/FBXProperties.cpp @@ -85,7 +85,7 @@ Property* ReadTypedProperty(const Element& element) else if (!strcmp(cs,"bool") || !strcmp(cs,"Bool")) { return new TypedProperty(ParseTokenAsInt(*tok[4]) != 0); } - else if (!strcmp(cs,"int") || !strcmp(cs,"enum")) { + else if (!strcmp(cs, "int") || !strcmp(cs, "Int") || !strcmp(cs, "enum") || !strcmp(cs, "Enum")) { return new TypedProperty(ParseTokenAsInt(*tok[4])); } else if (!strcmp(cs,"ULongLong")) { From 5ae65987c0c42cddfa8196e28d86097eb63c527a Mon Sep 17 00:00:00 2001 From: Michael Dawson-Haggerty Date: Thu, 4 Sep 2014 01:04:00 -0400 Subject: [PATCH 11/53] added the ability to load from file objects with pyassimp.load, as opposed to only being able to load from paths --- port/PyAssimp/pyassimp/core.py | 101 ++++++++++++++++--------------- port/PyAssimp/pyassimp/helper.py | 88 +++++++++++++++------------ 2 files changed, 100 insertions(+), 89 deletions(-) diff --git a/port/PyAssimp/pyassimp/core.py b/port/PyAssimp/pyassimp/core.py index 4e16718ac..e51e8f5a8 100644 --- a/port/PyAssimp/pyassimp/core.py +++ b/port/PyAssimp/pyassimp/core.py @@ -10,29 +10,20 @@ import sys if sys.version_info < (2,6): raise 'pyassimp: need python 2.6 or newer' - import ctypes import os import numpy -import logging; logger = logging.getLogger("pyassimp") - -# Attach a default, null handler, to the logger. -# applications can easily get log messages from pyassimp -# by calling for instance -# >>> logging.basicConfig(level=logging.DEBUG) -# before importing pyassimp -class NullHandler(logging.Handler): - def emit(self, record): - pass -h = NullHandler() -logger.addHandler(h) +import logging +logger = logging.getLogger("pyassimp") +# attach default null handler to logger so it doesn't complain +# even if you don't attach another handler to logger +logger.addHandler(logging.NullHandler()) from . import structs from .errors import AssimpError from . import helper - assimp_structs_as_tuple = ( structs.Matrix4x4, structs.Matrix3x3, @@ -59,10 +50,9 @@ def make_tuple(ai_obj, type = None): # It is faster and more correct to have an init function for each assimp class def _init_face(aiFace): - aiFace.indices = [aiFace.mIndices[i] for i in range(aiFace.mNumIndices)] + aiFace.indices = [aiFace.mIndices[i] for i in xrange(aiFace.mNumIndices)] -assimp_struct_inits = \ - { structs.Face : _init_face } +assimp_struct_inits = { structs.Face : _init_face } def call_init(obj, caller = None): if helper.hasattr_silent(obj,'contents'): #pointer @@ -86,7 +76,7 @@ def _is_init_type(obj): def _init(self, target = None, parent = None): """ - Custom initialize() for C structs, adds safely accessable member functionality. + Custom initialize() for C structs, adds safely accessible member functionality. :param target: set the object which receive the added methods. Useful when manipulating pointers, to skip the intermediate 'contents' deferencing. @@ -214,7 +204,7 @@ class AssimpLib(object): """ Assimp-Singleton """ - load, release, dll = helper.search_library() + load, load_mem, release, dll = helper.search_library() #the loader as singleton _assimp_lib = AssimpLib() @@ -239,7 +229,6 @@ def pythonize_assimp(type, obj, scene): return meshes if type == "ADDTRANSFORMATION": - def getnode(node, name): if node.name == name: return node for child in node.children: @@ -251,51 +240,65 @@ def pythonize_assimp(type, obj, scene): raise AssimpError("Object " + str(obj) + " has no associated node!") setattr(obj, "transformation", node.transformation) - def recur_pythonize(node, scene): - """ Recursively call pythonize_assimp on + ''' + Recursively call pythonize_assimp on nodes tree to apply several post-processing to pythonize the assimp datastructures. - """ - + ''' node.meshes = pythonize_assimp("MESH", node.meshes, scene) - + for mesh in node.meshes: mesh.material = scene.materials[mesh.materialindex] for cam in scene.cameras: pythonize_assimp("ADDTRANSFORMATION", cam, scene) - #for light in scene.lights: - # pythonize_assimp("ADDTRANSFORMATION", light, scene) - for c in node.children: recur_pythonize(c, scene) - -def load(filename, processing=0): - """ - Loads the model with some specific processing parameters. - - filename - file to load model from - processing - processing parameters - - result Scene-object with model-data - - throws AssimpError - could not open file - """ - #read pure data - #from ctypes import c_char_p, c_uint - #model = _assimp_lib.load(c_char_p(filename), c_uint(processing)) - model = _assimp_lib.load(filename.encode("ascii"), processing) +def load(filename, processing=0, file_type=None): + ''' + Load a model into a scene. On failure throws AssimpError. + + Arguments + --------- + filename: Either a filename or a file object to load model from. + If a file object is passed, file_type MUST be specified + Otherwise Assimp has no idea which importer to use. + This is named 'filename' so as to not break legacy code. + processing: assimp processing parameters + file_type: string, such as 'stl' + + Returns + --------- + Scene object with model-data + ''' + + if hasattr(filename, 'read'): + ''' + This is the case where a file object has been passed to load. + It is calling the following function: + const aiScene* aiImportFileFromMemory(const char* pBuffer, + unsigned int pLength, + unsigned int pFlags, + const char* pHint) + ''' + if file_type == None: + raise AssimpError('File type must be specified when passing file objects!') + data = filename.read() + model = _assimp_lib.load_mem(data, + len(data), + processing, + file_type) + else: + # a filename string has been passed + model = _assimp_lib.load(filename.encode("ascii"), processing) + if not model: - #Uhhh, something went wrong! - raise AssimpError("could not import file: %s" % filename) - + raise AssimpError('Could not import file!') scene = _init(model.contents) - recur_pythonize(scene.rootnode, scene) - return scene def release(scene): diff --git a/port/PyAssimp/pyassimp/helper.py b/port/PyAssimp/pyassimp/helper.py index 21cefdfc5..47794298c 100644 --- a/port/PyAssimp/pyassimp/helper.py +++ b/port/PyAssimp/pyassimp/helper.py @@ -75,42 +75,50 @@ def get_bounding_box_for_node(node, bb_min, bb_max, transformation): return bb_min, bb_max - - -def try_load_functions(library,dll,candidates): - """try to functbind to aiImportFile and aiReleaseImport +def try_load_functions(library_path, dll): + ''' + Try to bind to aiImportFile and aiReleaseImport + + Arguments + --------- + library_path: path to current lib + dll: ctypes handle to library + + Returns + --------- + If unsuccessful: + None + If successful: + Tuple containing (library_path, + load function, + release function, + ctypes handle to assimp library) + ''' - library - path to current lib - dll - ctypes handle to it - candidates - receives matching candidates - - They serve as signal functions to detect assimp, - also they're currently the only functions we need. - insert (library,aiImportFile,aiReleaseImport,dll) - into 'candidates' if successful. - - """ try: - load = dll.aiImportFile - release = dll.aiReleaseImport + load = dll.aiImportFile + release = dll.aiReleaseImport + load_mem = dll.aiImportFileFromMemory except AttributeError: - #OK, this is a library, but it has not the functions we need - pass - else: - #Library found! - from .structs import Scene - load.restype = POINTER(Scene) - - candidates.append((library, load, release, dll)) - + #OK, this is a library, but it doesn't have the functions we need + return None + + # library found! + from .structs import Scene + load.restype = POINTER(Scene) + load_mem.restype = POINTER(Scene) + return (library_path, load, load_mem, release, dll) def search_library(): - """Loads the assimp-Library. + ''' + Loads the assimp library. + Throws exception AssimpError if no library_path is found - result (load-function, release-function) - exception AssimpError if no library is found - - """ + Returns: tuple, (load filename function, + release function, + dll, + load from memory function) + ''' #this path folder = os.path.dirname(__file__) @@ -121,7 +129,6 @@ def search_library(): pass candidates = [] - # test every file for curfolder in [folder]+additional_dirs: for filename in os.listdir(curfolder): @@ -132,26 +139,27 @@ def search_library(): os.path.splitext(filename)[-1].lower() not in ext_whitelist: continue - library = os.path.join(curfolder, filename) - logger.debug('Try ' + library) + library_path = os.path.join(curfolder, filename) + logger.debug('Try ' + library_path) try: - dll = ctypes.cdll.LoadLibrary(library) + dll = ctypes.cdll.LoadLibrary(library_path) except Exception as e: logger.warning(str(e)) # OK, this except is evil. But different OSs will throw different # errors. So just ignore any errors. continue + + loaded = try_load_functions(library_path, dll) + if loaded: candidates.append(loaded) - try_load_functions(library,dll,candidates) - if not candidates: - # no library found - raise AssimpError("assimp library not found") + # no library_path found + raise AssimpError("assimp library_path not found") else: - # get the newest library + # get the newest library_path candidates = map(lambda x: (os.lstat(x[0])[-2], x), candidates) res = max(candidates, key=operator.itemgetter(0))[1] - logger.debug('Using assimp library located at ' + res[0]) + logger.debug('Using assimp library_path located at ' + res[0]) # XXX: if there are 1000 dll/so files containing 'assimp' # in their name, do we have all of them in our address From 7fff52bf8666d6c8aef1ac7e6c7a22a455711de4 Mon Sep 17 00:00:00 2001 From: Michael Dawson-Haggerty Date: Thu, 4 Sep 2014 01:06:30 -0400 Subject: [PATCH 12/53] cleaned up error message autoreplacement --- port/PyAssimp/pyassimp/helper.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/port/PyAssimp/pyassimp/helper.py b/port/PyAssimp/pyassimp/helper.py index 47794298c..b123d813d 100644 --- a/port/PyAssimp/pyassimp/helper.py +++ b/port/PyAssimp/pyassimp/helper.py @@ -153,13 +153,13 @@ def search_library(): if loaded: candidates.append(loaded) if not candidates: - # no library_path found - raise AssimpError("assimp library_path not found") + # no library found + raise AssimpError("assimp library not found") else: # get the newest library_path candidates = map(lambda x: (os.lstat(x[0])[-2], x), candidates) res = max(candidates, key=operator.itemgetter(0))[1] - logger.debug('Using assimp library_path located at ' + res[0]) + logger.debug('Using assimp library located at ' + res[0]) # XXX: if there are 1000 dll/so files containing 'assimp' # in their name, do we have all of them in our address From 8d27a27445d8db8337ae144aaefbf35cb7dba26b Mon Sep 17 00:00:00 2001 From: Michael Dawson-Haggerty Date: Thu, 4 Sep 2014 01:21:37 -0400 Subject: [PATCH 13/53] fixed docstrings --- port/PyAssimp/pyassimp/helper.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/port/PyAssimp/pyassimp/helper.py b/port/PyAssimp/pyassimp/helper.py index b123d813d..ccfd8d2b5 100644 --- a/port/PyAssimp/pyassimp/helper.py +++ b/port/PyAssimp/pyassimp/helper.py @@ -90,7 +90,8 @@ def try_load_functions(library_path, dll): None If successful: Tuple containing (library_path, - load function, + load from filename function, + load from memory function release function, ctypes handle to assimp library) ''' @@ -114,10 +115,10 @@ def search_library(): Loads the assimp library. Throws exception AssimpError if no library_path is found - Returns: tuple, (load filename function, + Returns: tuple, (load from filename function, + load from memory function, release function, - dll, - load from memory function) + dll) ''' #this path folder = os.path.dirname(__file__) @@ -148,7 +149,7 @@ def search_library(): # OK, this except is evil. But different OSs will throw different # errors. So just ignore any errors. continue - + # see if the functions we need are in the dll loaded = try_load_functions(library_path, dll) if loaded: candidates.append(loaded) From 1a594b861a139c027dba7452e58a994e5a9fe4e3 Mon Sep 17 00:00:00 2001 From: acgessler Date: Thu, 4 Sep 2014 18:50:37 -0700 Subject: [PATCH 14/53] Collada: use a counter instead of clock() to generate unique names. Closes #357 --- code/ColladaLoader.cpp | 6 +++--- code/ColladaLoader.h | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/code/ColladaLoader.cpp b/code/ColladaLoader.cpp index 26d41862d..95c41042a 100644 --- a/code/ColladaLoader.cpp +++ b/code/ColladaLoader.cpp @@ -73,7 +73,7 @@ static const aiImporterDesc desc = { // ------------------------------------------------------------------------------------------------ // Constructor to be privately used by Importer ColladaLoader::ColladaLoader() -: noSkeletonMesh(), ignoreUpDirection(false) +: noSkeletonMesh(), ignoreUpDirection(false), mNodeNameCounter() {} // ------------------------------------------------------------------------------------------------ @@ -1543,7 +1543,7 @@ const Collada::Node* ColladaLoader::FindNodeBySID( const Collada::Node* pNode, c // ------------------------------------------------------------------------------------------------ // Finds a proper name for a node derived from the collada-node's properties -std::string ColladaLoader::FindNameForNode( const Collada::Node* pNode) const +std::string ColladaLoader::FindNameForNode( const Collada::Node* pNode) { // now setup the name of the node. We take the name if not empty, otherwise the collada ID // FIX: Workaround for XSI calling the instanced visual scene 'untitled' by default. @@ -1557,7 +1557,7 @@ std::string ColladaLoader::FindNameForNode( const Collada::Node* pNode) const { // No need to worry. Unnamed nodes are no problem at all, except // if cameras or lights need to be assigned to them. - return boost::str( boost::format( "$ColladaAutoName$_%d") % clock()); + return boost::str( boost::format( "$ColladaAutoName$_%d") % mNodeNameCounter++); } } diff --git a/code/ColladaLoader.h b/code/ColladaLoader.h index 953bd20b8..392c8f359 100644 --- a/code/ColladaLoader.h +++ b/code/ColladaLoader.h @@ -203,7 +203,7 @@ protected: const Collada::Node* FindNodeBySID( const Collada::Node* pNode, const std::string& pSID) const; /** Finds a proper name for a node derived from the collada-node's properties */ - std::string FindNameForNode( const Collada::Node* pNode) const; + std::string FindNameForNode( const Collada::Node* pNode); protected: /** Filename, for a verbose error message */ @@ -235,6 +235,9 @@ protected: bool noSkeletonMesh; bool ignoreUpDirection; + + /** Used by FindNameForNode() to generate unique node names */ + unsigned int mNodeNameCounter; }; } // end of namespace Assimp From 185f01963fd330df18162c09cd6c047c78ec363f Mon Sep 17 00:00:00 2001 From: acgessler Date: Thu, 4 Sep 2014 20:49:48 -0700 Subject: [PATCH 15/53] LWO: replace legacy reinterpret_cast based code by memcpy to solve Android SIGBUS problems due to unaligned accesses. Fixes #351 --- code/IFF.h | 46 ++++++++++---------- code/LWOBLoader.cpp | 96 ++++++++++++++++++++++++----------------- code/LWOLoader.cpp | 100 ++++++++++++++++++++++++------------------- code/LWOLoader.h | 12 ++++-- code/LWOMaterial.cpp | 72 +++++++++++++++---------------- 5 files changed, 182 insertions(+), 144 deletions(-) diff --git a/code/IFF.h b/code/IFF.h index f730427c2..adc529e53 100644 --- a/code/IFF.h +++ b/code/IFF.h @@ -12,8 +12,6 @@ namespace Assimp { namespace IFF { -#include "./../include/assimp/Compiler/pushpack1.h" - ///////////////////////////////////////////////////////////////////////////////// //! Describes an IFF chunk header ///////////////////////////////////////////////////////////////////////////////// @@ -24,7 +22,7 @@ struct ChunkHeader //! Length of the chunk data, in bytes uint32_t length; -} PACK_STRUCT; +}; ///////////////////////////////////////////////////////////////////////////////// @@ -37,9 +35,7 @@ struct SubChunkHeader //! Length of the chunk data, in bytes uint16_t length; -} PACK_STRUCT; - -#include "./../include/assimp/Compiler/poppack1.h" +}; #define AI_IFF_FOURCC(a,b,c,d) ((uint32_t) (((uint8_t)a << 24u) | \ @@ -52,28 +48,34 @@ struct SubChunkHeader ///////////////////////////////////////////////////////////////////////////////// //! Load a chunk header //! @param outFile Pointer to the file data - points to the chunk data afterwards -//! @return Pointer to the chunk header +//! @return Copy of the chunk header ///////////////////////////////////////////////////////////////////////////////// -inline ChunkHeader* LoadChunk(uint8_t*& outFile) +inline ChunkHeader LoadChunk(uint8_t*& outFile) { - ChunkHeader* head = (ChunkHeader*) outFile; - AI_LSWAP4(head->length); - AI_LSWAP4(head->type); - outFile += sizeof(ChunkHeader); + ChunkHeader head; + ::memcpy(&head.type, outFile, 4); + outFile += 4; + ::memcpy(&head.length, outFile, 4); + outFile += 4; + AI_LSWAP4(head.length); + AI_LSWAP4(head.type); return head; } ///////////////////////////////////////////////////////////////////////////////// //! Load a sub chunk header //! @param outFile Pointer to the file data - points to the chunk data afterwards -//! @return Pointer to the sub chunk header +//! @return Copy of the sub chunk header ///////////////////////////////////////////////////////////////////////////////// -inline SubChunkHeader* LoadSubChunk(uint8_t*& outFile) +inline SubChunkHeader LoadSubChunk(uint8_t*& outFile) { - SubChunkHeader* head = (SubChunkHeader*) outFile; - AI_LSWAP2(head->length); - AI_LSWAP4(head->type); - outFile += sizeof(SubChunkHeader); + SubChunkHeader head; + ::memcpy(&head.type, outFile, 4); + outFile += 4; + ::memcpy(&head.length, outFile, 2); + outFile += 2; + AI_LSWAP2(head.length); + AI_LSWAP4(head.type); return head; } @@ -84,14 +86,14 @@ inline SubChunkHeader* LoadSubChunk(uint8_t*& outFile) //! @param fileType Receives the type of the file //! @return 0 if everything was OK, otherwise an error message ///////////////////////////////////////////////////////////////////////////////// -inline const char* ReadHeader(uint8_t* outFile,uint32_t& fileType) +inline const char* ReadHeader(uint8_t* outFile, uint32_t& fileType) { - ChunkHeader* head = LoadChunk(outFile); - if(AI_IFF_FOURCC_FORM != head->type) + ChunkHeader head = LoadChunk(outFile); + if(AI_IFF_FOURCC_FORM != head.type) { return "The file is not an IFF file: FORM chunk is missing"; } - fileType = *((uint32_t*)(head+1)); + ::memcpy(&fileType, outFile, 4); AI_LSWAP4(fileType); return 0; } diff --git a/code/LWOBLoader.cpp b/code/LWOBLoader.cpp index 730ba3aef..f8d4c36a8 100644 --- a/code/LWOBLoader.cpp +++ b/code/LWOBLoader.cpp @@ -58,30 +58,31 @@ void LWOImporter::LoadLWOBFile() while (running) { if (mFileBuffer + sizeof(IFF::ChunkHeader) > end)break; - LE_NCONST IFF::ChunkHeader* const head = IFF::LoadChunk(mFileBuffer); + const IFF::ChunkHeader head = IFF::LoadChunk(mFileBuffer); - if (mFileBuffer + head->length > end) + if (mFileBuffer + head.length > end) { throw DeadlyImportError("LWOB: Invalid chunk length"); break; } - uint8_t* const next = mFileBuffer+head->length; - switch (head->type) + uint8_t* const next = mFileBuffer+head.length; + switch (head.type) { // vertex list case AI_LWO_PNTS: { if (!mCurLayer->mTempPoints.empty()) DefaultLogger::get()->warn("LWO: PNTS chunk encountered twice"); - else LoadLWOPoints(head->length); + else LoadLWOPoints(head.length); break; } // face list case AI_LWO_POLS: { + if (!mCurLayer->mFaces.empty()) DefaultLogger::get()->warn("LWO: POLS chunk encountered twice"); - else LoadLWOBPolygons(head->length); + else LoadLWOBPolygons(head.length); break; } // list of tags @@ -89,14 +90,14 @@ void LWOImporter::LoadLWOBFile() { if (!mTags->empty()) DefaultLogger::get()->warn("LWO: SRFS chunk encountered twice"); - else LoadLWOTags(head->length); + else LoadLWOTags(head.length); break; } // surface chunk case AI_LWO_SURF: { - LoadLWOBSurface(head->length); + LoadLWOBSurface(head.length); break; } } @@ -137,14 +138,17 @@ void LWOImporter::CountVertsAndFacesLWOB(unsigned int& verts, unsigned int& face { while (cursor < end && max--) { - uint16_t numIndices = *cursor++; - verts += numIndices;faces++; + uint16_t numIndices; + ::memcpy(&numIndices, cursor++, 2); + verts += numIndices; + faces++; cursor += numIndices; - int16_t surface = *cursor++; + int16_t surface; + ::memcpy(&surface, cursor++, 2); if (surface < 0) { // there are detail polygons - numIndices = *cursor++; + ::memcpy(&numIndices, cursor++, 2); CountVertsAndFacesLWOB(verts,faces,cursor,end,numIndices); } } @@ -159,13 +163,22 @@ void LWOImporter::CopyFaceIndicesLWOB(FaceList::iterator& it, while (cursor < end && max--) { LWO::Face& face = *it;++it; - if((face.mNumIndices = *cursor++)) + uint16_t numIndices; + ::memcpy(&numIndices, cursor++, 2); + face.mNumIndices = numIndices; + if(face.mNumIndices) { - if (cursor + face.mNumIndices >= end)break; + if (cursor + face.mNumIndices >= end) + { + break; + } face.mIndices = new unsigned int[face.mNumIndices]; for (unsigned int i = 0; i < face.mNumIndices;++i) { - unsigned int & mi = face.mIndices[i] = *cursor++; + unsigned int & mi = face.mIndices[i]; + uint16_t index; + ::memcpy(&index, cursor++, 2); + mi = index; if (mi > mCurLayer->mTempPoints.size()) { DefaultLogger::get()->warn("LWOB: face index is out of range"); @@ -174,14 +187,19 @@ void LWOImporter::CopyFaceIndicesLWOB(FaceList::iterator& it, } } else DefaultLogger::get()->warn("LWOB: Face has 0 indices"); - int16_t surface = *cursor++; + int16_t surface; + ::memcpy(&surface, cursor++, 2); if (surface < 0) { surface = -surface; // there are detail polygons. - const uint16_t numPolygons = *cursor++; - if (cursor < end)CopyFaceIndicesLWOB(it,cursor,end,numPolygons); + uint16_t numPolygons; + ::memcpy(&numPolygons, cursor++, 2); + if (cursor < end) + { + CopyFaceIndicesLWOB(it,cursor,end,numPolygons); + } } face.surfaceIndex = surface-1; } @@ -235,7 +253,7 @@ void LWOImporter::LoadLWOBSurface(unsigned int size) if (mFileBuffer + 6 >= end) break; - IFF::SubChunkHeader* const head = IFF::LoadSubChunk(mFileBuffer); + IFF::SubChunkHeader head = IFF::LoadSubChunk(mFileBuffer); /* A single test file (sonycam.lwo) seems to have invalid surface chunks. * I'm assuming it's the fault of a single, unknown exporter so there are @@ -244,18 +262,18 @@ void LWOImporter::LoadLWOBSurface(unsigned int size) * We don't break if the chunk limit is exceeded. Instead, we're computing * how much storage is actually left and work with this value from now on. */ - if (mFileBuffer + head->length > end) { + if (mFileBuffer + head.length > end) { DefaultLogger::get()->error("LWOB: Invalid surface chunk length. Trying to continue."); - head->length = (uint16_t) (end - mFileBuffer); + head.length = (uint16_t) (end - mFileBuffer); } - uint8_t* const next = mFileBuffer+head->length; - switch (head->type) + uint8_t* const next = mFileBuffer+head.length; + switch (head.type) { // diffuse color case AI_LWO_COLR: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,COLR,3); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,COLR,3); surf.mColor.r = GetU1() / 255.0f; surf.mColor.g = GetU1() / 255.0f; surf.mColor.b = GetU1() / 255.0f; @@ -264,35 +282,35 @@ void LWOImporter::LoadLWOBSurface(unsigned int size) // diffuse strength ... case AI_LWO_DIFF: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,DIFF,2); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,DIFF,2); surf.mDiffuseValue = GetU2() / 255.0f; break; } // specular strength ... case AI_LWO_SPEC: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,SPEC,2); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,SPEC,2); surf.mSpecularValue = GetU2() / 255.0f; break; } // luminosity ... case AI_LWO_LUMI: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,LUMI,2); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,LUMI,2); surf.mLuminosity = GetU2() / 255.0f; break; } // transparency case AI_LWO_TRAN: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,TRAN,2); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,TRAN,2); surf.mTransparency = GetU2() / 255.0f; break; } // surface flags case AI_LWO_FLAG: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,FLAG,2); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,FLAG,2); uint16_t flag = GetU2(); if (flag & 0x4 ) surf.mMaximumSmoothAngle = 1.56207f; if (flag & 0x8 ) surf.mColorHighlights = 1.f; @@ -302,14 +320,14 @@ void LWOImporter::LoadLWOBSurface(unsigned int size) // maximum smoothing angle case AI_LWO_SMAN: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,SMAN,4); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,SMAN,4); surf.mMaximumSmoothAngle = fabs( GetF4() ); break; } // glossiness case AI_LWO_GLOS: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,GLOS,2); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,GLOS,2); surf.mGlossiness = (float)GetU2(); break; } @@ -317,42 +335,42 @@ void LWOImporter::LoadLWOBSurface(unsigned int size) case AI_LWO_CTEX: { pTex = SetupNewTextureLWOB(surf.mColorTextures, - head->length); + head.length); break; } // diffuse texture case AI_LWO_DTEX: { pTex = SetupNewTextureLWOB(surf.mDiffuseTextures, - head->length); + head.length); break; } // specular texture case AI_LWO_STEX: { pTex = SetupNewTextureLWOB(surf.mSpecularTextures, - head->length); + head.length); break; } // bump texture case AI_LWO_BTEX: { pTex = SetupNewTextureLWOB(surf.mBumpTextures, - head->length); + head.length); break; } // transparency texture case AI_LWO_TTEX: { pTex = SetupNewTextureLWOB(surf.mOpacityTextures, - head->length); + head.length); break; } // texture path case AI_LWO_TIMG: { if (pTex) { - GetS0(pTex->mFileName,head->length); + GetS0(pTex->mFileName,head.length); } else DefaultLogger::get()->warn("LWOB: Unexpected TIMG chunk"); break; @@ -360,7 +378,7 @@ void LWOImporter::LoadLWOBSurface(unsigned int size) // texture strength case AI_LWO_TVAL: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,TVAL,1); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,TVAL,1); if (pTex) { pTex->mStrength = (float)GetU1()/ 255.f; } @@ -370,7 +388,7 @@ void LWOImporter::LoadLWOBSurface(unsigned int size) // texture flags case AI_LWO_TFLG: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,TFLG,2); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,TFLG,2); if (pTex) { diff --git a/code/LWOLoader.cpp b/code/LWOLoader.cpp index 489ce1345..347cd9130 100644 --- a/code/LWOLoader.cpp +++ b/code/LWOLoader.cpp @@ -787,7 +787,8 @@ void LWOImporter::LoadLWO2Polygons(unsigned int length) CountVertsAndFacesLWO2(iNumVertices,iNumFaces,cursor,end); // allocate the output array and copy face indices - if (iNumFaces) { + if (iNumFaces) + { cursor = (uint16_t*)mFileBuffer; mCurLayer->mFaces.resize(iNumFaces,LWO::Face(type)); @@ -802,13 +803,18 @@ void LWOImporter::CountVertsAndFacesLWO2(unsigned int& verts, unsigned int& face { while (cursor < end && max--) { - AI_LSWAP2P(cursor); - uint16_t numIndices = *cursor++; + uint16_t numIndices; + ::memcpy(&numIndices, cursor++, 2); + AI_LSWAP2(numIndices); numIndices &= 0x03FF; - verts += numIndices;++faces; + + verts += numIndices; + ++faces; for(uint16_t i = 0; i < numIndices; i++) + { ReadVSizedIntLWO2((uint8_t*&)cursor); + } } } @@ -817,10 +823,16 @@ void LWOImporter::CopyFaceIndicesLWO2(FaceList::iterator& it, uint16_t*& cursor, const uint16_t* const end) { - while (cursor < end) { - - LWO::Face& face = *it++;; - if((face.mNumIndices = (*cursor++) & 0x03FF)) /* byte swapping has already been done */ { + while (cursor < end) + { + LWO::Face& face = *it++; + uint16_t numIndices; + ::memcpy(&numIndices, cursor++, 2); + AI_LSWAP2(numIndices); + face.mNumIndices = numIndices & 0x03FF; + + if(face.mNumIndices) /* byte swapping has already been done */ + { face.mIndices = new unsigned int[face.mNumIndices]; for(unsigned int i = 0; i < face.mNumIndices; i++) { @@ -848,8 +860,8 @@ void LWOImporter::LoadLWO2PolygonTags(unsigned int length) if (type != AI_LWO_SURF && type != AI_LWO_SMGP) return; - while (mFileBuffer < end) { - + while (mFileBuffer < end) + { unsigned int i = ReadVSizedIntLWO2(mFileBuffer) + mCurLayer->mFaceIDXOfs; unsigned int j = GetU2(); @@ -1106,19 +1118,19 @@ void LWOImporter::LoadLWO2Clip(unsigned int length) // first - get the index of the clip clip.idx = GetU4(); - IFF::SubChunkHeader* const head = IFF::LoadSubChunk(mFileBuffer); - switch (head->type) + IFF::SubChunkHeader head = IFF::LoadSubChunk(mFileBuffer); + switch (head.type) { case AI_LWO_STIL: - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,STIL,1); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,STIL,1); // "Normal" texture - GetS0(clip.path,head->length); + GetS0(clip.path,head.length); clip.type = Clip::STILL; break; case AI_LWO_ISEQ: - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,ISEQ,16); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,ISEQ,16); // Image sequence. We'll later take the first. { uint8_t digits = GetU1(); mFileBuffer++; @@ -1127,12 +1139,12 @@ void LWOImporter::LoadLWO2Clip(unsigned int length) std::string s; std::ostringstream ss; - GetS0(s,head->length); + GetS0(s,head.length); - head->length -= (unsigned int)s.length()+1; + head.length -= (unsigned int)s.length()+1; ss << s; ss << std::setw(digits) << offset + start; - GetS0(s,head->length); + GetS0(s,head.length); ss << s; clip.path = ss.str(); clip.type = Clip::SEQ; @@ -1148,7 +1160,7 @@ void LWOImporter::LoadLWO2Clip(unsigned int length) break; case AI_LWO_XREF: - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,XREF,4); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,XREF,4); // Just a cross-reference to another CLIp clip.type = Clip::REF; @@ -1156,7 +1168,7 @@ void LWOImporter::LoadLWO2Clip(unsigned int length) break; case AI_LWO_NEGA: - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,NEGA,2); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,NEGA,2); clip.negate = (0 != GetU2()); break; @@ -1194,17 +1206,17 @@ void LWOImporter::LoadLWO2Envelope(unsigned int length) while (true) { if (mFileBuffer + 6 >= end)break; - LE_NCONST IFF::SubChunkHeader* const head = IFF::LoadSubChunk(mFileBuffer); + LE_NCONST IFF::SubChunkHeader head = IFF::LoadSubChunk(mFileBuffer); - if (mFileBuffer + head->length > end) + if (mFileBuffer + head.length > end) throw DeadlyImportError("LWO2: Invalid envelope chunk length"); - uint8_t* const next = mFileBuffer+head->length; - switch (head->type) + uint8_t* const next = mFileBuffer+head.length; + switch (head.type) { // Type & representation of the envelope case AI_LWO_TYPE: - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,TYPE,2); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,TYPE,2); mFileBuffer++; // skip user format // Determine type of envelope @@ -1214,20 +1226,20 @@ void LWOImporter::LoadLWO2Envelope(unsigned int length) // precondition case AI_LWO_PRE: - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,PRE,2); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,PRE,2); envelope.pre = (LWO::PrePostBehaviour)GetU2(); break; // postcondition case AI_LWO_POST: - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,POST,2); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,POST,2); envelope.post = (LWO::PrePostBehaviour)GetU2(); break; // keyframe case AI_LWO_KEY: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,KEY,8); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,KEY,8); envelope.keys.push_back(LWO::Key()); LWO::Key& key = envelope.keys.back(); @@ -1240,7 +1252,7 @@ void LWOImporter::LoadLWO2Envelope(unsigned int length) // interval interpolation case AI_LWO_SPAN: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,SPAN,4); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,SPAN,4); if (envelope.keys.size()<2) DefaultLogger::get()->warn("LWO2: Unexpected SPAN chunk"); else { @@ -1286,22 +1298,22 @@ void LWOImporter::LoadLWO2File() while (true) { if (mFileBuffer + sizeof(IFF::ChunkHeader) > end)break; - IFF::ChunkHeader* const head = IFF::LoadChunk(mFileBuffer); + const IFF::ChunkHeader head = IFF::LoadChunk(mFileBuffer); - if (mFileBuffer + head->length > end) + if (mFileBuffer + head.length > end) { throw DeadlyImportError("LWO2: Chunk length points behind the file"); break; } - uint8_t* const next = mFileBuffer+head->length; + uint8_t* const next = mFileBuffer+head.length; unsigned int iUnnamed = 0; - if(!head->length) { + if(!head.length) { mFileBuffer = next; continue; } - switch (head->type) + switch (head.type) { // new layer case AI_LWO_LAYR: @@ -1311,7 +1323,7 @@ void LWOImporter::LoadLWO2File() LWO::Layer& layer = mLayers->back(); mCurLayer = &layer; - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,LAYR,16); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,LAYR,16); // layer index. layer.mIndex = GetU2(); @@ -1327,7 +1339,7 @@ void LWOImporter::LoadLWO2File() mCurLayer->mPivot.x = GetF4(); mCurLayer->mPivot.y = GetF4(); mCurLayer->mPivot.z = GetF4(); - GetS0(layer.mName,head->length-16); + GetS0(layer.mName,head.length-16); // if the name is empty, generate a default name if (layer.mName.empty()) { @@ -1360,7 +1372,7 @@ void LWOImporter::LoadLWO2File() break; unsigned int old = (unsigned int)mCurLayer->mTempPoints.size(); - LoadLWOPoints(head->length); + LoadLWOPoints(head.length); mCurLayer->mPointIDXOfs = old; break; } @@ -1379,7 +1391,7 @@ void LWOImporter::LoadLWO2File() if (mCurLayer->mTempPoints.empty()) DefaultLogger::get()->warn("LWO2: Unexpected VMAP chunk"); - else LoadLWO2VertexMap(head->length,head->type == AI_LWO_VMAD); + else LoadLWO2VertexMap(head.length,head.type == AI_LWO_VMAD); break; } // face list @@ -1389,7 +1401,7 @@ void LWOImporter::LoadLWO2File() break; unsigned int old = (unsigned int)mCurLayer->mFaces.size(); - LoadLWO2Polygons(head->length); + LoadLWO2Polygons(head.length); mCurLayer->mFaceIDXOfs = old; break; } @@ -1401,7 +1413,7 @@ void LWOImporter::LoadLWO2File() if (mCurLayer->mFaces.empty()) DefaultLogger::get()->warn("LWO2: Unexpected PTAG"); - else LoadLWO2PolygonTags(head->length); + else LoadLWO2PolygonTags(head.length); break; } // list of tags @@ -1409,28 +1421,28 @@ void LWOImporter::LoadLWO2File() { if (!mTags->empty()) DefaultLogger::get()->warn("LWO2: SRFS chunk encountered twice"); - else LoadLWOTags(head->length); + else LoadLWOTags(head.length); break; } // surface chunk case AI_LWO_SURF: { - LoadLWO2Surface(head->length); + LoadLWO2Surface(head.length); break; } // clip chunk case AI_LWO_CLIP: { - LoadLWO2Clip(head->length); + LoadLWO2Clip(head.length); break; } // envelope chunk case AI_LWO_ENVL: { - LoadLWO2Envelope(head->length); + LoadLWO2Envelope(head.length); break; } } diff --git a/code/LWOLoader.h b/code/LWOLoader.h index bf93998c1..e06cdc796 100644 --- a/code/LWOLoader.h +++ b/code/LWOLoader.h @@ -402,7 +402,9 @@ protected: // ------------------------------------------------------------------------------------------------ inline float LWOImporter::GetF4() { - float f = *((float*)mFileBuffer);mFileBuffer += 4; + float f; + ::memcpy(&f, mFileBuffer, 4); + mFileBuffer += 4; AI_LSWAP4(f); return f; } @@ -410,7 +412,9 @@ inline float LWOImporter::GetF4() // ------------------------------------------------------------------------------------------------ inline uint32_t LWOImporter::GetU4() { - uint32_t f = *((uint32_t*)mFileBuffer);mFileBuffer += 4; + uint32_t f; + ::memcpy(&f, mFileBuffer, 4); + mFileBuffer += 4; AI_LSWAP4(f); return f; } @@ -418,7 +422,9 @@ inline uint32_t LWOImporter::GetU4() // ------------------------------------------------------------------------------------------------ inline uint16_t LWOImporter::GetU2() { - uint16_t f = *((uint16_t*)mFileBuffer);mFileBuffer += 2; + uint16_t f; + ::memcpy(&f, mFileBuffer, 2); + mFileBuffer += 2; AI_LSWAP2(f); return f; } diff --git a/code/LWOMaterial.cpp b/code/LWOMaterial.cpp index a9ee1e3d7..cdeb6cabd 100644 --- a/code/LWOMaterial.cpp +++ b/code/LWOMaterial.cpp @@ -527,13 +527,13 @@ void LWOImporter::LoadLWO2ImageMap(unsigned int size, LWO::Texture& tex ) while (true) { if (mFileBuffer + 6 >= end)break; - LE_NCONST IFF::SubChunkHeader* const head = IFF::LoadSubChunk(mFileBuffer); + LE_NCONST IFF::SubChunkHeader head = IFF::LoadSubChunk(mFileBuffer); - if (mFileBuffer + head->length > end) + if (mFileBuffer + head.length > end) throw DeadlyImportError("LWO2: Invalid SURF.BLOCK chunk length"); - uint8_t* const next = mFileBuffer+head->length; - switch (head->type) + uint8_t* const next = mFileBuffer+head.length; + switch (head.type) { case AI_LWO_PROJ: tex.mapMode = (Texture::MappingMode)GetU2(); @@ -549,7 +549,7 @@ void LWOImporter::LoadLWO2ImageMap(unsigned int size, LWO::Texture& tex ) tex.mClipIdx = GetU2(); break; case AI_LWO_VMAP: - GetS0(tex.mUVChannelIndex,head->length); + GetS0(tex.mUVChannelIndex,head.length); break; case AI_LWO_WRPH: tex.wrapAmountH = GetF4(); @@ -595,13 +595,13 @@ void LWOImporter::LoadLWO2TextureHeader(unsigned int size, LWO::Texture& tex ) while (true) { if (mFileBuffer + 6 >= end)break; - LE_NCONST IFF::SubChunkHeader* const head = IFF::LoadSubChunk(mFileBuffer); + const IFF::SubChunkHeader head = IFF::LoadSubChunk(mFileBuffer); - if (mFileBuffer + head->length > end) + if (mFileBuffer + head.length > end) throw DeadlyImportError("LWO2: Invalid texture header chunk length"); - uint8_t* const next = mFileBuffer+head->length; - switch (head->type) + uint8_t* const next = mFileBuffer+head.length; + switch (head.type) { case AI_LWO_CHAN: tex.type = GetU4(); @@ -698,20 +698,20 @@ void LWOImporter::LoadLWO2ShaderBlock(LE_NCONST IFF::SubChunkHeader* /*head*/, u while (true) { if (mFileBuffer + 6 >= end)break; - LE_NCONST IFF::SubChunkHeader* const head = IFF::LoadSubChunk(mFileBuffer); + const IFF::SubChunkHeader head = IFF::LoadSubChunk(mFileBuffer); - if (mFileBuffer + head->length > end) + if (mFileBuffer + head.length > end) throw DeadlyImportError("LWO2: Invalid shader header chunk length"); - uint8_t* const next = mFileBuffer+head->length; - switch (head->type) + uint8_t* const next = mFileBuffer+head.length; + switch (head.type) { case AI_LWO_ENAB: shader.enabled = GetU2() ? true : false; break; case AI_LWO_FUNC: - GetS0( shader.functionName, head->length ); + GetS0( shader.functionName, head.length ); } mFileBuffer = next; } @@ -756,18 +756,18 @@ void LWOImporter::LoadLWO2Surface(unsigned int size) { if (mFileBuffer + 6 >= end) break; - LE_NCONST IFF::SubChunkHeader* const head = IFF::LoadSubChunk(mFileBuffer); + const IFF::SubChunkHeader head = IFF::LoadSubChunk(mFileBuffer); - if (mFileBuffer + head->length > end) + if (mFileBuffer + head.length > end) throw DeadlyImportError("LWO2: Invalid surface chunk length"); - uint8_t* const next = mFileBuffer+head->length; - switch (head->type) + uint8_t* const next = mFileBuffer+head.length; + switch (head.type) { // diffuse color case AI_LWO_COLR: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,COLR,12); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,COLR,12); surf.mColor.r = GetF4(); surf.mColor.g = GetF4(); surf.mColor.b = GetF4(); @@ -776,14 +776,14 @@ void LWOImporter::LoadLWO2Surface(unsigned int size) // diffuse strength ... hopefully case AI_LWO_DIFF: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,DIFF,4); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,DIFF,4); surf.mDiffuseValue = GetF4(); break; } // specular strength ... hopefully case AI_LWO_SPEC: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,SPEC,4); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,SPEC,4); surf.mSpecularValue = GetF4(); break; } @@ -794,21 +794,21 @@ void LWOImporter::LoadLWO2Surface(unsigned int size) if (surf.mTransparency == 10e10f) break; - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,TRAN,4); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,TRAN,4); surf.mTransparency = GetF4(); break; } // additive transparency case AI_LWO_ADTR: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,ADTR,4); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,ADTR,4); surf.mAdditiveTransparency = GetF4(); break; } // wireframe mode case AI_LWO_LINE: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,LINE,2); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,LINE,2); if (GetU2() & 0x1) surf.mWireframe = true; break; @@ -816,49 +816,49 @@ void LWOImporter::LoadLWO2Surface(unsigned int size) // glossiness case AI_LWO_GLOS: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,GLOS,4); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,GLOS,4); surf.mGlossiness = GetF4(); break; } // bump intensity case AI_LWO_BUMP: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,BUMP,4); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,BUMP,4); surf.mBumpIntensity = GetF4(); break; } // color highlights case AI_LWO_CLRH: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,CLRH,4); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,CLRH,4); surf.mColorHighlights = GetF4(); break; } // index of refraction case AI_LWO_RIND: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,RIND,4); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,RIND,4); surf.mIOR = GetF4(); break; } // polygon sidedness case AI_LWO_SIDE: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,SIDE,2); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,SIDE,2); surf.bDoubleSided = (3 == GetU2()); break; } // maximum smoothing angle case AI_LWO_SMAN: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,SMAN,4); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,SMAN,4); surf.mMaximumSmoothAngle = fabs( GetF4() ); break; } // vertex color channel to be applied to the surface case AI_LWO_VCOL: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,VCOL,12); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,VCOL,12); surf.mDiffuseValue *= GetF4(); // strength ReadVSizedIntLWO2(mFileBuffer); // skip envelope surf.mVCMapType = GetU4(); // type of the channel @@ -870,18 +870,18 @@ void LWOImporter::LoadLWO2Surface(unsigned int size) // surface bock entry case AI_LWO_BLOK: { - AI_LWO_VALIDATE_CHUNK_LENGTH(head->length,BLOK,4); - LE_NCONST IFF::SubChunkHeader* head2 = IFF::LoadSubChunk(mFileBuffer); + AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,BLOK,4); + IFF::SubChunkHeader head2 = IFF::LoadSubChunk(mFileBuffer); - switch (head2->type) + switch (head2.type) { case AI_LWO_PROC: case AI_LWO_GRAD: case AI_LWO_IMAP: - LoadLWO2TextureBlock(head2, head->length); + LoadLWO2TextureBlock(&head2, head.length); break; case AI_LWO_SHDR: - LoadLWO2ShaderBlock(head2, head->length); + LoadLWO2ShaderBlock(&head2, head.length); break; default: From 1c27d3c565290b74a9df18b928af7d278aafb422 Mon Sep 17 00:00:00 2001 From: acgessler Date: Thu, 4 Sep 2014 21:04:39 -0700 Subject: [PATCH 16/53] Regression test suite: look for assimp_cmd binary in current folder first. --- test/regression/utils.py | 1 + 1 file changed, 1 insertion(+) diff --git a/test/regression/utils.py b/test/regression/utils.py index 931aacedf..73c8336ca 100644 --- a/test/regression/utils.py +++ b/test/regression/utils.py @@ -88,6 +88,7 @@ def find_assimp_or_die(): global assimp_bin_path if os.name == "nt": search_x86 = [ + os.path.join("assimp.exe"), os.path.join("..","..","bin","assimpcmd_release-dll_Win32","assimp.exe"), os.path.join("..","..","bin","x86","assimp"), os.path.join("..","..","bin","Release","assimp.exe") From 48b138d57597def0265c78cc37db67f0ac38187f Mon Sep 17 00:00:00 2001 From: acgessler Date: Thu, 4 Sep 2014 22:42:00 -0700 Subject: [PATCH 17/53] Add cmake install to travis build. --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index e0c0788ae..efdf0b2cc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,6 +16,7 @@ compiler: script: - cmake -G "Unix Makefiles" -DASSIMP_ENABLE_BOOST_WORKAROUND=YES -DASSIMP_NO_EXPORT=$TRAVIS_NO_EXPORT -STATIC_BUILD=$TRAVIS_STATIC_BUILD - make + - sudo make install - cd test/unit - ../../bin/unit From 9e24acb18702fb3945cea694db9f8f71096b1f5a Mon Sep 17 00:00:00 2001 From: acgessler Date: Thu, 4 Sep 2014 22:42:51 -0700 Subject: [PATCH 18/53] Try running regression tests from travis --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index efdf0b2cc..517db52b9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,4 +19,7 @@ script: - sudo make install - cd test/unit - ../../bin/unit + - cd ../regression + - chmod 755 run.py + - ./run.py From 19a50b9a9e7627b181a4a8a071f4c2ec62b8f70d Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Thu, 4 Sep 2014 22:56:08 -0700 Subject: [PATCH 19/53] Update .travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 517db52b9..772cb51ae 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ before_install: - - sudo apt-get install cmake libcppunit-dev + - sudo apt-get install cmake libcppunit-dev python3 env: - TRAVIS_NO_EXPORT=YES From 11dc89d4551ff111d31773a79f1a6da0fbff601b Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Thu, 4 Sep 2014 23:06:47 -0700 Subject: [PATCH 20/53] Update .travis.yml --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 772cb51ae..8a4974ae8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,6 +17,7 @@ script: - cmake -G "Unix Makefiles" -DASSIMP_ENABLE_BOOST_WORKAROUND=YES -DASSIMP_NO_EXPORT=$TRAVIS_NO_EXPORT -STATIC_BUILD=$TRAVIS_STATIC_BUILD - make - sudo make install + - sudo ldconfig - cd test/unit - ../../bin/unit - cd ../regression From fd84970596fb825d1ee8bf0003827c7ad7d7a01c Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Thu, 4 Sep 2014 23:18:20 -0700 Subject: [PATCH 21/53] Regression tests: run.py should not block on user input if used for CI. --- test/regression/run.py | 1 - 1 file changed, 1 deletion(-) diff --git a/test/regression/run.py b/test/regression/run.py index caa3a6bd0..9c8ef619a 100644 --- a/test/regression/run.py +++ b/test/regression/run.py @@ -258,6 +258,5 @@ def run_test(): # ------------------------------------------------------------------------------- if __name__ == "__main__": run_test() - input("Press any key to continue ...") # vim: ai ts=4 sts=4 et sw=4 From 5a0c7058b547510e515c113c95a7eee113fa0741 Mon Sep 17 00:00:00 2001 From: acgessler Date: Fri, 5 Sep 2014 21:20:07 -0700 Subject: [PATCH 22/53] regression tests: ignore pond.0.ply file due to overly long runtime. --- test/regression/run.py | 4 ++++ test/regression/settings.py | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/test/regression/run.py b/test/regression/run.py index caa3a6bd0..5d17f9f48 100644 --- a/test/regression/run.py +++ b/test/regression/run.py @@ -160,6 +160,10 @@ def process_dir(d, outfile_results, zipin, result): process_dir(fullpath, outfile_results, zipin, result) continue + if f in settings.files_to_ignore: + print("Ignoring " + f) + continue + for pppreset in settings.pp_configs_to_test: filehash = utils.hashing(fullpath, pppreset) failure = False diff --git a/test/regression/settings.py b/test/regression/settings.py index 4f81cc66e..b8cd28683 100644 --- a/test/regression/settings.py +++ b/test/regression/settings.py @@ -47,6 +47,14 @@ test scripts rely on this) import os +# ------------------------------------------------------------------------------- +# Files to ignore (with reason) +# +# pond.0.ply - loads with 40k identical triangles, causing postprocessing +# to have quadratic runtime. +# ------------------------------------------------------------------------------- +files_to_ignore = ["pond.0.ply"] + # ------------------------------------------------------------------------------- # List of file extensions to be excluded from the regression suite # File extensions are case insensitive From 1249171bba0aa4cb2f78e38f99fcd63bb5b668e6 Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Fri, 5 Sep 2014 23:56:49 -0700 Subject: [PATCH 23/53] Regression tests: output list of failures in Travis terminal output --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 8a4974ae8..a2b4423ae 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,4 +23,7 @@ script: - cd ../regression - chmod 755 run.py - ./run.py + - echo ========================================================== + - echo REGRESSION TEST FAILS (results/run_regression_suite_failures.csv) + - cat ../results/run_regression_suite_failures.csv From 460566197bb03e9ac042e2c850c3f44bf5896d11 Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Sat, 6 Sep 2014 00:14:50 -0700 Subject: [PATCH 24/53] Travis: fix echo failing --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index a2b4423ae..aa1c9d56b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,7 +23,7 @@ script: - cd ../regression - chmod 755 run.py - ./run.py - - echo ========================================================== - - echo REGRESSION TEST FAILS (results/run_regression_suite_failures.csv) + - echo "==========================================================" + - echo "REGRESSION TEST FAILS (results/run_regression_suite_failures.csv)" - cat ../results/run_regression_suite_failures.csv From 66e608a39306d674a544ce194ab1da010e1b932a Mon Sep 17 00:00:00 2001 From: Jared Duke Date: Sun, 7 Sep 2014 16:52:03 -0700 Subject: [PATCH 25/53] Replace cppunit with the googletest framework The GTest framework has a more active support base, and natively supports CMake. Introduce it as an external dependency (using CMake's ExternalProject_Add), replacing cppunit and porting the associated unit tests. --- .travis.yml | 2 +- cmake-modules/AddGTest.cmake | 64 + code/AssbinExporter.cpp | 3 + code/AssxmlExporter.cpp | 2 + code/JoinVerticesProcess.h | 2 - code/ScenePreprocessor.cpp | 8 +- contrib/cppunit-1.12.1/AUTHORS | 6 - contrib/cppunit-1.12.1/BUGS | 6 - contrib/cppunit-1.12.1/COPYING | 504 - contrib/cppunit-1.12.1/ChangeLog | 3664 --- contrib/cppunit-1.12.1/CodingGuideLines.txt | 61 - contrib/cppunit-1.12.1/INSTALL | 226 - contrib/cppunit-1.12.1/INSTALL-WIN32.txt | 205 - contrib/cppunit-1.12.1/INSTALL-unix | 121 - contrib/cppunit-1.12.1/Makefile.am | 80 - contrib/cppunit-1.12.1/Makefile.in | 872 - contrib/cppunit-1.12.1/NEWS | 1151 - contrib/cppunit-1.12.1/README | 19 - contrib/cppunit-1.12.1/THANKS | 23 - contrib/cppunit-1.12.1/TODO | 35 - contrib/cppunit-1.12.1/aclocal.m4 | 7542 ----- .../config/ac_create_prefix_config_h.m4 | 107 - .../config/ac_cxx_have_sstream.m4 | 24 - .../config/ac_cxx_have_strstream.m4 | 29 - .../config/ac_cxx_namespaces.m4 | 22 - contrib/cppunit-1.12.1/config/ac_cxx_rtti.m4 | 34 - .../ac_cxx_string_compare_string_first.m4 | 27 - contrib/cppunit-1.12.1/config/ac_dll.m4 | 47 - .../config/ax_cxx_gcc_abi_demangle.m4 | 40 - .../config/ax_cxx_have_isfinite.m4 | 27 - .../config/bb_enable_doxygen.m4 | 34 - contrib/cppunit-1.12.1/config/config.guess | 1526 - contrib/cppunit-1.12.1/config/config.h.in | 100 - contrib/cppunit-1.12.1/config/config.sub | 1658 -- contrib/cppunit-1.12.1/config/depcomp | 589 - contrib/cppunit-1.12.1/config/install-sh | 519 - contrib/cppunit-1.12.1/config/ltmain.sh | 6964 ----- contrib/cppunit-1.12.1/config/missing | 367 - contrib/cppunit-1.12.1/configure | 23322 ---------------- contrib/cppunit-1.12.1/configure.in | 155 - .../contrib/bc5/bcc-makefile.zip | Bin 4359 -> 0 bytes .../contrib/msvc/AddingUnitTestMethod.dsm | 170 - .../cppunit-1.12.1/contrib/msvc/CppUnit.WWTpl | 486 - .../cppunit-1.12.1/contrib/msvc/readme.txt | 10 - .../cppunit-1.12.1/contrib/xml-xsl/report.xsl | 125 - .../cppunit-1.12.1/contrib/xml-xsl/tests.xml | 58 - contrib/cppunit-1.12.1/cppunit-config.1 | 67 - contrib/cppunit-1.12.1/cppunit-config.in | 98 - contrib/cppunit-1.12.1/cppunit.m4 | 92 - contrib/cppunit-1.12.1/cppunit.pc.in | 11 - contrib/cppunit-1.12.1/cppunit.spec | 65 - contrib/cppunit-1.12.1/cppunit.spec.in | 65 - contrib/cppunit-1.12.1/doc/Doxyfile.in | 604 - contrib/cppunit-1.12.1/doc/FAQ | 31 - contrib/cppunit-1.12.1/doc/Makefile.am | 67 - contrib/cppunit-1.12.1/doc/Makefile.in | 441 - contrib/cppunit-1.12.1/doc/Money.dox | 558 - contrib/cppunit-1.12.1/doc/cookbook.dox | 523 - contrib/cppunit-1.12.1/doc/footer.html | 23 - contrib/cppunit-1.12.1/doc/header.html | 27 - .../doc/other_documentation.dox | 147 - contrib/cppunit-1.12.1/include/Makefile.am | 4 - contrib/cppunit-1.12.1/include/Makefile.in | 514 - .../include/cppunit/AdditionalMessage.h | 76 - .../cppunit-1.12.1/include/cppunit/Asserter.h | 143 - .../cppunit/BriefTestProgressListener.h | 43 - .../include/cppunit/CompilerOutputter.h | 146 - .../include/cppunit/Exception.h | 90 - .../include/cppunit/Makefile.am | 42 - .../include/cppunit/Makefile.in | 587 - .../cppunit-1.12.1/include/cppunit/Message.h | 156 - .../include/cppunit/Outputter.h | 26 - .../include/cppunit/Portability.h | 177 - .../include/cppunit/Protector.h | 94 - .../include/cppunit/SourceLine.h | 63 - .../include/cppunit/SynchronizedObject.h | 80 - contrib/cppunit-1.12.1/include/cppunit/Test.h | 117 - .../include/cppunit/TestAssert.h | 428 - .../include/cppunit/TestCaller.h | 204 - .../cppunit-1.12.1/include/cppunit/TestCase.h | 55 - .../include/cppunit/TestComposite.h | 45 - .../include/cppunit/TestFailure.h | 58 - .../include/cppunit/TestFixture.h | 99 - .../cppunit-1.12.1/include/cppunit/TestLeaf.h | 44 - .../include/cppunit/TestListener.h | 148 - .../cppunit-1.12.1/include/cppunit/TestPath.h | 211 - .../include/cppunit/TestResult.h | 156 - .../include/cppunit/TestResultCollector.h | 87 - .../include/cppunit/TestRunner.h | 135 - .../include/cppunit/TestSuccessListener.h | 39 - .../include/cppunit/TestSuite.h | 80 - .../include/cppunit/TextOutputter.h | 59 - .../cppunit/TextTestProgressListener.h | 44 - .../include/cppunit/TextTestResult.h | 39 - .../include/cppunit/TextTestRunner.h | 6 - .../include/cppunit/XmlOutputter.h | 167 - .../include/cppunit/XmlOutputterHook.h | 163 - .../include/cppunit/config/CppUnitApi.h | 33 - .../include/cppunit/config/Makefile.am | 10 - .../include/cppunit/config/Makefile.in | 438 - .../include/cppunit/config/SelectDllLoader.h | 76 - .../include/cppunit/config/SourcePrefix.h | 14 - .../include/cppunit/config/config-bcb5.h | 47 - .../include/cppunit/config/config-evc4.h | 78 - .../include/cppunit/config/config-mac.h | 58 - .../include/cppunit/config/config-msvc6.h | 83 - .../cppunit/extensions/AutoRegisterSuite.h | 83 - .../extensions/ExceptionTestCaseDecorator.h | 104 - .../include/cppunit/extensions/HelperMacros.h | 541 - .../include/cppunit/extensions/Makefile.am | 19 - .../include/cppunit/extensions/Makefile.in | 446 - .../include/cppunit/extensions/Orthodox.h | 95 - .../include/cppunit/extensions/RepeatedTest.h | 43 - .../cppunit/extensions/TestCaseDecorator.h | 40 - .../cppunit/extensions/TestDecorator.h | 49 - .../include/cppunit/extensions/TestFactory.h | 27 - .../cppunit/extensions/TestFactoryRegistry.h | 182 - .../cppunit/extensions/TestFixtureFactory.h | 50 - .../include/cppunit/extensions/TestNamer.h | 89 - .../include/cppunit/extensions/TestSetUp.h | 34 - .../extensions/TestSuiteBuilderContext.h | 131 - .../cppunit/extensions/TestSuiteFactory.h | 27 - .../cppunit/extensions/TypeInfoHelper.h | 33 - .../cppunit/plugin/DynamicLibraryManager.h | 121 - .../plugin/DynamicLibraryManagerException.h | 53 - .../include/cppunit/plugin/Makefile.am | 9 - .../include/cppunit/plugin/Makefile.in | 437 - .../include/cppunit/plugin/PlugInManager.h | 113 - .../include/cppunit/plugin/PlugInParameters.h | 36 - .../include/cppunit/plugin/TestPlugIn.h | 200 - .../cppunit/plugin/TestPlugInDefaultImpl.h | 52 - .../cppunit/portability/CppUnitDeque.h | 25 - .../include/cppunit/portability/CppUnitMap.h | 29 - .../include/cppunit/portability/CppUnitSet.h | 28 - .../cppunit/portability/CppUnitStack.h | 26 - .../cppunit/portability/CppUnitVector.h | 25 - .../cppunit/portability/FloatingPoint.h | 54 - .../include/cppunit/portability/Makefile.am | 10 - .../include/cppunit/portability/Makefile.in | 438 - .../include/cppunit/portability/Stream.h | 347 - .../include/cppunit/tools/Algorithm.h | 23 - .../include/cppunit/tools/Makefile.am | 7 - .../include/cppunit/tools/Makefile.in | 435 - .../include/cppunit/tools/StringTools.h | 34 - .../include/cppunit/tools/XmlDocument.h | 86 - .../include/cppunit/tools/XmlElement.h | 149 - .../include/cppunit/ui/Makefile.am | 1 - .../include/cppunit/ui/Makefile.in | 511 - .../include/cppunit/ui/mfc/Makefile.am | 5 - .../include/cppunit/ui/mfc/Makefile.in | 433 - .../include/cppunit/ui/mfc/MfcTestRunner.h | 76 - .../include/cppunit/ui/mfc/TestRunner.h | 21 - .../include/cppunit/ui/qt/Config.h | 21 - .../include/cppunit/ui/qt/Makefile.am | 6 - .../include/cppunit/ui/qt/Makefile.in | 434 - .../include/cppunit/ui/qt/QtTestRunner.h | 85 - .../include/cppunit/ui/qt/TestRunner.h | 11 - .../include/cppunit/ui/text/Makefile.am | 5 - .../include/cppunit/ui/text/Makefile.in | 433 - .../include/cppunit/ui/text/TestRunner.h | 24 - .../include/cppunit/ui/text/TextTestRunner.h | 97 - .../cppunit-1.12.1/src/CppUnitLibraries.sln | 50 - .../src/CppUnitLibrariesVC9.sln | 50 - contrib/cppunit-1.12.1/src/Makefile.am | 4 - contrib/cppunit-1.12.1/src/Makefile.in | 514 - .../src/cppunit/AdditionalMessage.cpp | 41 - .../cppunit-1.12.1/src/cppunit/Asserter.cpp | 101 - .../src/cppunit/BeOsDynamicLibraryManager.cpp | 49 - .../src/cppunit/BriefTestProgressListener.cpp | 49 - .../src/cppunit/CompilerOutputter.cpp | 216 - .../src/cppunit/DefaultProtector.cpp | 42 - .../src/cppunit/DefaultProtector.h | 27 - .../cppunit-1.12.1/src/cppunit/DllMain.cpp | 16 - .../src/cppunit/DynamicLibraryManager.cpp | 77 - .../DynamicLibraryManagerException.cpp | 41 - .../cppunit-1.12.1/src/cppunit/Exception.cpp | 126 - .../cppunit-1.12.1/src/cppunit/Makefile.am | 67 - .../cppunit-1.12.1/src/cppunit/Makefile.in | 632 - .../cppunit-1.12.1/src/cppunit/Message.cpp | 170 - .../src/cppunit/PlugInManager.cpp | 110 - .../src/cppunit/PlugInParameters.cpp | 28 - .../cppunit-1.12.1/src/cppunit/Protector.cpp | 86 - .../src/cppunit/ProtectorChain.cpp | 86 - .../src/cppunit/ProtectorChain.h | 51 - .../src/cppunit/ProtectorContext.h | 38 - .../src/cppunit/RepeatedTest.cpp | 29 - .../src/cppunit/ShlDynamicLibraryManager.cpp | 53 - .../cppunit-1.12.1/src/cppunit/SourceLine.cpp | 81 - .../src/cppunit/StringTools.cpp | 80 - .../src/cppunit/SynchronizedObject.cpp | 32 - contrib/cppunit-1.12.1/src/cppunit/Test.cpp | 97 - .../cppunit-1.12.1/src/cppunit/TestAssert.cpp | 46 - .../cppunit-1.12.1/src/cppunit/TestCase.cpp | 137 - .../src/cppunit/TestCaseDecorator.cpp | 47 - .../src/cppunit/TestComposite.cpp | 77 - .../src/cppunit/TestDecorator.cpp | 53 - .../src/cppunit/TestFactoryRegistry.cpp | 161 - .../src/cppunit/TestFailure.cpp | 71 - .../cppunit-1.12.1/src/cppunit/TestLeaf.cpp | 28 - .../cppunit-1.12.1/src/cppunit/TestNamer.cpp | 44 - .../cppunit-1.12.1/src/cppunit/TestPath.cpp | 254 - .../src/cppunit/TestPlugInDefaultImpl.cpp | 63 - .../cppunit-1.12.1/src/cppunit/TestResult.cpp | 196 - .../src/cppunit/TestResultCollector.cpp | 117 - .../cppunit-1.12.1/src/cppunit/TestRunner.cpp | 101 - .../cppunit-1.12.1/src/cppunit/TestSetUp.cpp | 32 - .../src/cppunit/TestSuccessListener.cpp | 44 - .../cppunit-1.12.1/src/cppunit/TestSuite.cpp | 64 - .../src/cppunit/TestSuiteBuilderContext.cpp | 85 - .../src/cppunit/TextOutputter.cpp | 140 - .../src/cppunit/TextTestProgressListener.cpp | 43 - .../src/cppunit/TextTestResult.cpp | 50 - .../src/cppunit/TextTestRunner.cpp | 144 - .../src/cppunit/TypeInfoHelper.cpp | 53 - .../src/cppunit/UnixDynamicLibraryManager.cpp | 44 - .../cppunit/Win32DynamicLibraryManager.cpp | 73 - .../src/cppunit/XmlDocument.cpp | 106 - .../cppunit-1.12.1/src/cppunit/XmlElement.cpp | 226 - .../src/cppunit/XmlOutputter.cpp | 205 - .../src/cppunit/XmlOutputterHook.cpp | 44 - .../cppunit-1.12.1/src/cppunit/cppunit.dsp | 707 - .../cppunit-1.12.1/src/cppunit/cppunit.vcproj | 2707 -- .../src/cppunit/cppunit_dll.dsp | 682 - .../src/cppunit/cppunit_dll.vcproj | 1673 -- .../src/cppunit/cppunitvc9.vcproj | 2708 -- contrib/cppunit_note.txt | 8 - test/CMakeLists.txt | 101 +- test/unit/BoostWorkaround/tupletest.cpp | 33 - test/unit/Main.cpp | 48 +- test/unit/UnitTestPCH.h | 6 +- test/unit/utExport.cpp | 82 +- test/unit/utExport.h | 41 - test/unit/utFindDegenerates.cpp | 78 +- test/unit/utFindDegenerates.h | 33 - test/unit/utFindInvalidData.cpp | 59 +- test/unit/utFindInvalidData.h | 33 - test/unit/utFixInfacingNormals.cpp | 3 +- test/unit/utGenNormals.cpp | 32 +- test/unit/utGenNormals.h | 35 - test/unit/utImporter.cpp | 174 +- test/unit/utImporter.h | 62 - test/unit/utJoinVertices.cpp | 58 +- test/unit/utJoinVertices.h | 36 - test/unit/utLimitBoneWeights.cpp | 33 +- test/unit/utLimitBoneWeights.h | 36 - test/unit/utMaterialSystem.cpp | 68 +- test/unit/utMaterialSystem.h | 43 - test/unit/utNoBoostTest.cpp | 73 +- test/unit/utNoBoostTest.h | 37 - test/unit/utPretransformVertices.cpp | 46 +- test/unit/utPretransformVertices.h | 37 - test/unit/utRemoveComments.cpp | 34 +- test/unit/utRemoveComments.h | 34 - test/unit/utRemoveComponent.cpp | 103 +- test/unit/utRemoveComponent.h | 51 - test/unit/utRemoveRedundantMaterials.cpp | 48 +- test/unit/utRemoveRedundantMaterials.h | 38 - test/unit/utScenePreprocessor.cpp | 82 +- test/unit/utScenePreprocessor.h | 44 - test/unit/utSharedPPData.cpp | 51 +- test/unit/utSharedPPData.h | 38 - test/unit/utSortByPType.cpp | 61 +- test/unit/utSortByPType.h | 35 - test/unit/utSplitLargeMeshes.cpp | 57 +- test/unit/utSplitLargeMeshes.h | 39 - test/unit/utTargetAnimation.cpp | 3 +- test/unit/utTargetAnimation.h | 0 test/unit/utTextureTransform.cpp | 3 +- test/unit/utTriangulate.cpp | 44 +- test/unit/utTriangulate.h | 35 - test/unit/utVertexTriangleAdjacency.cpp | 153 +- test/unit/utVertexTriangleAdjacency.h | 41 - 272 files changed, 913 insertions(+), 81854 deletions(-) create mode 100644 cmake-modules/AddGTest.cmake delete mode 100644 contrib/cppunit-1.12.1/AUTHORS delete mode 100644 contrib/cppunit-1.12.1/BUGS delete mode 100644 contrib/cppunit-1.12.1/COPYING delete mode 100644 contrib/cppunit-1.12.1/ChangeLog delete mode 100644 contrib/cppunit-1.12.1/CodingGuideLines.txt delete mode 100644 contrib/cppunit-1.12.1/INSTALL delete mode 100644 contrib/cppunit-1.12.1/INSTALL-WIN32.txt delete mode 100644 contrib/cppunit-1.12.1/INSTALL-unix delete mode 100644 contrib/cppunit-1.12.1/Makefile.am delete mode 100644 contrib/cppunit-1.12.1/Makefile.in delete mode 100644 contrib/cppunit-1.12.1/NEWS delete mode 100644 contrib/cppunit-1.12.1/README delete mode 100644 contrib/cppunit-1.12.1/THANKS delete mode 100644 contrib/cppunit-1.12.1/TODO delete mode 100644 contrib/cppunit-1.12.1/aclocal.m4 delete mode 100644 contrib/cppunit-1.12.1/config/ac_create_prefix_config_h.m4 delete mode 100644 contrib/cppunit-1.12.1/config/ac_cxx_have_sstream.m4 delete mode 100644 contrib/cppunit-1.12.1/config/ac_cxx_have_strstream.m4 delete mode 100644 contrib/cppunit-1.12.1/config/ac_cxx_namespaces.m4 delete mode 100644 contrib/cppunit-1.12.1/config/ac_cxx_rtti.m4 delete mode 100644 contrib/cppunit-1.12.1/config/ac_cxx_string_compare_string_first.m4 delete mode 100644 contrib/cppunit-1.12.1/config/ac_dll.m4 delete mode 100644 contrib/cppunit-1.12.1/config/ax_cxx_gcc_abi_demangle.m4 delete mode 100644 contrib/cppunit-1.12.1/config/ax_cxx_have_isfinite.m4 delete mode 100644 contrib/cppunit-1.12.1/config/bb_enable_doxygen.m4 delete mode 100644 contrib/cppunit-1.12.1/config/config.guess delete mode 100644 contrib/cppunit-1.12.1/config/config.h.in delete mode 100644 contrib/cppunit-1.12.1/config/config.sub delete mode 100644 contrib/cppunit-1.12.1/config/depcomp delete mode 100644 contrib/cppunit-1.12.1/config/install-sh delete mode 100644 contrib/cppunit-1.12.1/config/ltmain.sh delete mode 100644 contrib/cppunit-1.12.1/config/missing delete mode 100644 contrib/cppunit-1.12.1/configure delete mode 100644 contrib/cppunit-1.12.1/configure.in delete mode 100644 contrib/cppunit-1.12.1/contrib/bc5/bcc-makefile.zip delete mode 100644 contrib/cppunit-1.12.1/contrib/msvc/AddingUnitTestMethod.dsm delete mode 100644 contrib/cppunit-1.12.1/contrib/msvc/CppUnit.WWTpl delete mode 100644 contrib/cppunit-1.12.1/contrib/msvc/readme.txt delete mode 100644 contrib/cppunit-1.12.1/contrib/xml-xsl/report.xsl delete mode 100644 contrib/cppunit-1.12.1/contrib/xml-xsl/tests.xml delete mode 100644 contrib/cppunit-1.12.1/cppunit-config.1 delete mode 100644 contrib/cppunit-1.12.1/cppunit-config.in delete mode 100644 contrib/cppunit-1.12.1/cppunit.m4 delete mode 100644 contrib/cppunit-1.12.1/cppunit.pc.in delete mode 100644 contrib/cppunit-1.12.1/cppunit.spec delete mode 100644 contrib/cppunit-1.12.1/cppunit.spec.in delete mode 100644 contrib/cppunit-1.12.1/doc/Doxyfile.in delete mode 100644 contrib/cppunit-1.12.1/doc/FAQ delete mode 100644 contrib/cppunit-1.12.1/doc/Makefile.am delete mode 100644 contrib/cppunit-1.12.1/doc/Makefile.in delete mode 100644 contrib/cppunit-1.12.1/doc/Money.dox delete mode 100644 contrib/cppunit-1.12.1/doc/cookbook.dox delete mode 100644 contrib/cppunit-1.12.1/doc/footer.html delete mode 100644 contrib/cppunit-1.12.1/doc/header.html delete mode 100644 contrib/cppunit-1.12.1/doc/other_documentation.dox delete mode 100644 contrib/cppunit-1.12.1/include/Makefile.am delete mode 100644 contrib/cppunit-1.12.1/include/Makefile.in delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/AdditionalMessage.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/Asserter.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/BriefTestProgressListener.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/CompilerOutputter.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/Exception.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/Makefile.am delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/Makefile.in delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/Message.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/Outputter.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/Portability.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/Protector.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/SourceLine.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/SynchronizedObject.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/Test.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/TestAssert.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/TestCaller.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/TestCase.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/TestComposite.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/TestFailure.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/TestFixture.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/TestLeaf.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/TestListener.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/TestPath.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/TestResult.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/TestResultCollector.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/TestRunner.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/TestSuccessListener.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/TestSuite.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/TextOutputter.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/TextTestProgressListener.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/TextTestResult.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/TextTestRunner.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/XmlOutputter.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/XmlOutputterHook.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/config/CppUnitApi.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/config/Makefile.am delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/config/Makefile.in delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/config/SelectDllLoader.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/config/SourcePrefix.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/config/config-bcb5.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/config/config-evc4.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/config/config-mac.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/config/config-msvc6.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/extensions/AutoRegisterSuite.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/extensions/ExceptionTestCaseDecorator.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/extensions/HelperMacros.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/extensions/Makefile.am delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/extensions/Makefile.in delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/extensions/Orthodox.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/extensions/RepeatedTest.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/extensions/TestCaseDecorator.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/extensions/TestDecorator.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/extensions/TestFactory.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/extensions/TestFactoryRegistry.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/extensions/TestFixtureFactory.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/extensions/TestNamer.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/extensions/TestSetUp.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/extensions/TestSuiteBuilderContext.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/extensions/TestSuiteFactory.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/extensions/TypeInfoHelper.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/plugin/DynamicLibraryManager.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/plugin/DynamicLibraryManagerException.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/plugin/Makefile.am delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/plugin/Makefile.in delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/plugin/PlugInManager.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/plugin/PlugInParameters.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/plugin/TestPlugIn.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/plugin/TestPlugInDefaultImpl.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/portability/CppUnitDeque.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/portability/CppUnitMap.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/portability/CppUnitSet.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/portability/CppUnitStack.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/portability/CppUnitVector.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/portability/FloatingPoint.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/portability/Makefile.am delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/portability/Makefile.in delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/portability/Stream.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/tools/Algorithm.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/tools/Makefile.am delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/tools/Makefile.in delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/tools/StringTools.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/tools/XmlDocument.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/tools/XmlElement.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/ui/Makefile.am delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/ui/Makefile.in delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/ui/mfc/Makefile.am delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/ui/mfc/Makefile.in delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/ui/mfc/MfcTestRunner.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/ui/mfc/TestRunner.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/ui/qt/Config.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/ui/qt/Makefile.am delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/ui/qt/Makefile.in delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/ui/qt/QtTestRunner.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/ui/qt/TestRunner.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/ui/text/Makefile.am delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/ui/text/Makefile.in delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/ui/text/TestRunner.h delete mode 100644 contrib/cppunit-1.12.1/include/cppunit/ui/text/TextTestRunner.h delete mode 100644 contrib/cppunit-1.12.1/src/CppUnitLibraries.sln delete mode 100644 contrib/cppunit-1.12.1/src/CppUnitLibrariesVC9.sln delete mode 100644 contrib/cppunit-1.12.1/src/Makefile.am delete mode 100644 contrib/cppunit-1.12.1/src/Makefile.in delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/AdditionalMessage.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/Asserter.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/BeOsDynamicLibraryManager.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/BriefTestProgressListener.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/CompilerOutputter.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/DefaultProtector.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/DefaultProtector.h delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/DllMain.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/DynamicLibraryManager.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/DynamicLibraryManagerException.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/Exception.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/Makefile.am delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/Makefile.in delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/Message.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/PlugInManager.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/PlugInParameters.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/Protector.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/ProtectorChain.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/ProtectorChain.h delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/ProtectorContext.h delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/RepeatedTest.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/ShlDynamicLibraryManager.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/SourceLine.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/StringTools.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/SynchronizedObject.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/Test.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/TestAssert.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/TestCase.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/TestCaseDecorator.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/TestComposite.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/TestDecorator.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/TestFactoryRegistry.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/TestFailure.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/TestLeaf.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/TestNamer.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/TestPath.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/TestPlugInDefaultImpl.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/TestResult.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/TestResultCollector.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/TestRunner.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/TestSetUp.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/TestSuccessListener.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/TestSuite.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/TestSuiteBuilderContext.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/TextOutputter.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/TextTestProgressListener.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/TextTestResult.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/TextTestRunner.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/TypeInfoHelper.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/UnixDynamicLibraryManager.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/Win32DynamicLibraryManager.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/XmlDocument.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/XmlElement.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/XmlOutputter.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/XmlOutputterHook.cpp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/cppunit.dsp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/cppunit.vcproj delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/cppunit_dll.dsp delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/cppunit_dll.vcproj delete mode 100644 contrib/cppunit-1.12.1/src/cppunit/cppunitvc9.vcproj delete mode 100644 contrib/cppunit_note.txt delete mode 100644 test/unit/BoostWorkaround/tupletest.cpp delete mode 100644 test/unit/utExport.h delete mode 100644 test/unit/utFindDegenerates.h delete mode 100644 test/unit/utFindInvalidData.h delete mode 100644 test/unit/utGenNormals.h delete mode 100644 test/unit/utImporter.h delete mode 100644 test/unit/utJoinVertices.h delete mode 100644 test/unit/utLimitBoneWeights.h delete mode 100644 test/unit/utMaterialSystem.h delete mode 100644 test/unit/utNoBoostTest.h delete mode 100644 test/unit/utPretransformVertices.h delete mode 100644 test/unit/utRemoveComments.h delete mode 100644 test/unit/utRemoveComponent.h delete mode 100644 test/unit/utRemoveRedundantMaterials.h delete mode 100644 test/unit/utScenePreprocessor.h delete mode 100644 test/unit/utSharedPPData.h delete mode 100644 test/unit/utSortByPType.h delete mode 100644 test/unit/utSplitLargeMeshes.h delete mode 100644 test/unit/utTargetAnimation.h delete mode 100644 test/unit/utTriangulate.h delete mode 100644 test/unit/utVertexTriangleAdjacency.h diff --git a/.travis.yml b/.travis.yml index aa1c9d56b..9c6422058 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ before_install: - - sudo apt-get install cmake libcppunit-dev python3 + - sudo apt-get install cmake python3 env: - TRAVIS_NO_EXPORT=YES diff --git a/cmake-modules/AddGTest.cmake b/cmake-modules/AddGTest.cmake new file mode 100644 index 000000000..5257148c9 --- /dev/null +++ b/cmake-modules/AddGTest.cmake @@ -0,0 +1,64 @@ +find_package(Threads REQUIRED) +include(ExternalProject) + +if(MSYS OR MINGW) + set(DISABLE_PTHREADS ON) +else() + set(DISABLE_PTHREADS OFF) +endif() + +if (MSVC) + set(RELEASE_LIB_DIR ReleaseLibs) + set(DEBUG_LIB_DIR DebugLibs) +else() + set(RELEASE_LIB_DIR "") + set(DEBUG_LIB_DIR "") +endif() + +set(GTEST_CMAKE_ARGS + "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}" + "-Dgtest_force_shared_crt=ON" + "-Dgtest_disable_pthreads:BOOL=${DISABLE_PTHREADS}") +set(GTEST_RELEASE_LIB_DIR "") +set(GTEST_DEBUGLIB_DIR "") +if (MSVC) + set(GTEST_CMAKE_ARGS ${GTEST_CMAKE_ARGS} + "-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=${DEBUG_LIB_DIR}" + "-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=${RELEASE_LIB_DIR}") + set(GTEST_LIB_DIR) +endif() + +set(GTEST_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/gtest") + +ExternalProject_Add(gtest + GIT_REPOSITORY https://chromium.googlesource.com/external/googletest + TIMEOUT 10 + PREFIX "${GTEST_PREFIX}" + CMAKE_ARGS "${GTEST_CMAKE_ARGS}" + LOG_DOWNLOAD ON + LOG_CONFIGURE ON + LOG_BUILD ON + # Disable install + INSTALL_COMMAND "" +) + +set(LIB_PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}") +set(LIB_SUFFIX "${CMAKE_STATIC_LIBRARY_SUFFIX}") +set(GTEST_LOCATION "${GTEST_PREFIX}/src/gtest-build") +set(GTEST_DEBUG_LIBRARIES + "${GTEST_LOCATION}/${DEBUG_LIB_DIR}/${LIB_PREFIX}gtest${LIB_SUFFIX}" + "${CMAKE_THREAD_LIBS_INIT}") +SET(GTEST_RELEASE_LIBRARIES + "${GTEST_LOCATION}/${RELEASE_LIB_DIR}/${LIB_PREFIX}gtest${LIB_SUFFIX}" + "${CMAKE_THREAD_LIBS_INIT}") + +if(MSVC_VERSION EQUAL 1700) + add_definitions(-D_VARIADIC_MAX=10) +endif() + +ExternalProject_Get_Property(gtest source_dir) +include_directories(${source_dir}/include) +include_directories(${source_dir}/gtest/include) + +ExternalProject_Get_Property(gtest binary_dir) +link_directories(${binary_dir}) diff --git a/code/AssbinExporter.cpp b/code/AssbinExporter.cpp index a330dfd45..b1999d2b1 100644 --- a/code/AssbinExporter.cpp +++ b/code/AssbinExporter.cpp @@ -51,6 +51,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # include "../contrib/zlib/zlib.h" #endif +#include + + #ifndef ASSIMP_BUILD_NO_EXPORT #ifndef ASSIMP_BUILD_NO_ASSBIN_EXPORTER diff --git a/code/AssxmlExporter.cpp b/code/AssxmlExporter.cpp index 1538d2456..c2e3f1833 100644 --- a/code/AssxmlExporter.cpp +++ b/code/AssxmlExporter.cpp @@ -51,6 +51,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # include "../contrib/zlib/zlib.h" #endif +#include + #ifndef ASSIMP_BUILD_NO_EXPORT #ifndef ASSIMP_BUILD_NO_ASSXML_EXPORTER diff --git a/code/JoinVerticesProcess.h b/code/JoinVerticesProcess.h index 0195c0168..1413ad2dc 100644 --- a/code/JoinVerticesProcess.h +++ b/code/JoinVerticesProcess.h @@ -49,8 +49,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. namespace Assimp { -class JoinVerticesTest; - // --------------------------------------------------------------------------- /** The JoinVerticesProcess unites identical vertices in all imported meshes. * By default the importer returns meshes where each face addressed its own diff --git a/code/ScenePreprocessor.cpp b/code/ScenePreprocessor.cpp index 3e72ad72c..feb515679 100644 --- a/code/ScenePreprocessor.cpp +++ b/code/ScenePreprocessor.cpp @@ -91,11 +91,10 @@ void ScenePreprocessor::ProcessMesh (aiMesh* mesh) { // If aiMesh::mNumUVComponents is *not* set assign the default value of 2 for (unsigned int i = 0; i < AI_MAX_NUMBER_OF_TEXTURECOORDS; ++i) { - if (!mesh->mTextureCoords[i]) + if (!mesh->mTextureCoords[i]) { mesh->mNumUVComponents[i] = 0; - - else { - if( !mesh->mNumUVComponents[i]) + } else { + if (!mesh->mNumUVComponents[i]) mesh->mNumUVComponents[i] = 2; aiVector3D* p = mesh->mTextureCoords[i], *end = p+mesh->mNumVertices; @@ -112,7 +111,6 @@ void ScenePreprocessor::ProcessMesh (aiMesh* mesh) p->z = p->y = 0.f; } else if (3 == mesh->mNumUVComponents[i]) { - // Really 3D coordinates? Check whether the third coordinate is != 0 for at least one element for (; p != end; ++p) { if (p->z != 0) diff --git a/contrib/cppunit-1.12.1/AUTHORS b/contrib/cppunit-1.12.1/AUTHORS deleted file mode 100644 index b600073ca..000000000 --- a/contrib/cppunit-1.12.1/AUTHORS +++ /dev/null @@ -1,6 +0,0 @@ -Michael Feathers -Jerome Lacoste -E. Sommerlade -Baptiste Lepilleur -Bastiaan Bakker -Steve Robbins diff --git a/contrib/cppunit-1.12.1/BUGS b/contrib/cppunit-1.12.1/BUGS deleted file mode 100644 index 64fb00f92..000000000 --- a/contrib/cppunit-1.12.1/BUGS +++ /dev/null @@ -1,6 +0,0 @@ - KNOWN BUGS - ---------- - -The handling of html and man pages in doc/Makefile.am is -flawed. It will not pass "make distcheck". - diff --git a/contrib/cppunit-1.12.1/COPYING b/contrib/cppunit-1.12.1/COPYING deleted file mode 100644 index b1e3f5a26..000000000 --- a/contrib/cppunit-1.12.1/COPYING +++ /dev/null @@ -1,504 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! - - diff --git a/contrib/cppunit-1.12.1/ChangeLog b/contrib/cppunit-1.12.1/ChangeLog deleted file mode 100644 index 21637bc1c..000000000 --- a/contrib/cppunit-1.12.1/ChangeLog +++ /dev/null @@ -1,3664 +0,0 @@ -2008-02-07 Steve M. Robbins - - * src/qttestrunner/MostRecentTests.h: - * src/qttestrunner/TestRunnerModel.h: Change from to - replacment ; avoids use of compatibility headers. - -2007-03-04 Steve M. Robbins - - * include/cppunit/portability/FloatingPoint.h (floatingPointIsFinite): Change - return type to int, following the convention of isfinite(), finite(), etc. - -2007-02-25 Baptiste Lepilleur - - * doc/cookbook.dox: changed suite() to return a TestSuite instead - of a Test to avoid introducing unnecessary complexity. - -2007-02-24 Steve M. Robbins - - * include/cppunit/portability/FloatingPoint.h: Include Portability.h. - -2007-02-24 Baptiste Lepilleur - - * src/cppunit/TestAssert.cpp (assertDoubleEquals): Moved finite & NaN - tests to include/cppunit/portability/FloatingPoint.h. Changed - implementation assertDoubleEquals to explicitly test for NaN - in case of non-finite values to force equality failure in the - presence of NaN. Previous implementation failed on Microsoft - Visual Studio 6 (on this platform: NaN == NaN). - * examples/cppunittest/TestAssertTest.cpp: Add more unit tests to - test the portable floating-point primitive. Added missing - include . - - * include/cppunit/portability/Makefile.am: - * include/cppunit/portability/FloatingPoint.h: Added file. Extracted - isfinite() from TestAssert.cpp. - - * include/cppunit/config-evc4: - * include/cppunit/config-msvc6: Added support for _finite(). - -2007-01-30 Steve M. Robbins - - * examples/cppunittest/assertion_traitsTest.h: - * examples/cppunittest/assertion_traitsTest.cpp: New. Test - assertion_traits<>. - - * examples/cppunittest/Makefile.am: Add - assertion_traitsTest.{h,cpp}. - - * examples/cppunittest/TestAssertTest.h: - * examples/cppunittest/TestAssertTest.cpp: Add - testAssertDoubleEqualsPrecision() to test precision of failure - message. - -2007-01-27 Steve M. Robbins - - * examples/cppunittest/TestAssertTest.cpp: - * examples/cppunittest/TestAssertTest.h: Remove declaration of - unimplemented functions testAssertDoubleNotEquals1 and - testAssertDoubleNotEquals2. Factor new method - testAssertDoubleNonFinite out of existing testAssertDoubleEquals. - - * src/cppunit/Win32DynamicLibraryManager.cpp (doLoadLibrary): - Unconditionally use ANSI version of LoadLibrary() and other - functions with string arguments. - -2007-01-26 Steve M. Robbins - - * config/ax_cxx_have_isfinite.m4: New. Autoconf macro that tests - for finite() in C++ mode. - * configure.in: Check for isfinite() and finite(). - - * examples/cppunittest/TestAssertTest.cpp (testAssertDoubleEquals): - * src/cppunit/TestAssert.cpp (assertDoubleEquals): Account for - non-finite values. - -2007-01-11 Steve M. Robbins - - * examples/cppunittest/MockFunctor.h: - * examples/cppunittest/MockProtector.h: - * examples/cppunittest/XmlOutputterTest.cpp: - * examples/cppunittest/XmlUniformiser.cpp: - * src/DllPlugInTester/CommandLineParser.cpp: - * src/cppunit/DynamicLibraryManagerException.cpp: - * src/cppunit/TestCaseDecorator.cpp: - * src/cppunit/TextTestRunner.cpp: - * src/cppunit/XmlDocument.cpp: Arrange field initializers in - correct order. - - * include/cppunit/plugin/TestPlugIn.h (struct CppUnitTestPlugIn): - * include/cppunit/extensions/TestFixtureFactory.h (class TestFixtureFactory): - * include/cppunit/XmlOutputterHook.h (XmlOutputterHook): Add - virtual destructor to virtual class. - - * examples/cppunittest/TestAssertTest.cpp: Put a C++ statement in - the first argument of CPPUNIT_ASSERT_THROW() and - CPPUNIT_ASSERT_NO_THROW(). - - * examples/hierarchy/main.cpp (main): Return value now reflects - whether tests passed. - * examples/hierarchy/Makefile.am (XFAIL_TESTS): New. Mark hierachy - test program as an expected failure. - - * Makefile.am (dist-hook): Don't fail if $(distdir)/lib already - exists. - - * config/bb_enable_doxygen.m4 (BB_ENABLE_DOXYGEN): Add quotes - around function name, BB_ENABLE_DOXYGEN. - -2006-10-26 Baptiste Lepilleur - * include/cppunit/TestResult.h: - * include/cppunit/ui/Config.h: fixed compilation issues with QtTestRunner. - -2006-06-29 Baptiste Lepilleur - * Makefile.am: - * lib/.keepme: added dummy file to prevent lib/ removal by some - unzip clients. Fixed bug #1527877 . - - * src/msvc6/TesRunner/TestRunner.rc: - * src/msvc6/testpluginrunner/TestPlugInRunner.rc: Fixed bug #1528212 - (some resources wrongly tagged as French). - -2006-06-29 Baptiste Lepilleur - * include/cppunit/ui/text/TextTestRunner.h - * src/cppunit/TextTestRunner.cpp: applied patch #1210013 to remove - hidden virtual function warning. - - * autogen.sh: applied patch #1449380 contributed by Sander Temme - to allow running autogen on Mac OS X. - - * doc/header.html: updated to handle new tabs css required for - html doc generated with doxygen 1.4.7. - - * src/msvc6/testrunner/MsDevCallerListCtrl.cpp: applied correction - provided to fix bug #1498175 (double click on failure does not - goto failure). - -2006-03-04 Baptiste Lepilleur - * contrib/xml-xsl/report.xsl: reported correction posted on the wiki. - - * removed debian/ directory. An up to date patch can be found at: - packages.debian.org. - - * cppunit.spec.in: applied patch #1242905 partially (%post and %postun). - - * cppunit.pc.in: - * configure.in: - * Makefile.am: integrated patch from Robert Leight to generate pkg-config. - -2006-02-04 Baptiste Lepilleur - * include/cppunit/TestListener.h: - * src/qttestrunner/TestRunnerModel.cpp: removed compilation warning. - -2006-02-01 Baptiste Lepilleur - * examples/qt: integrated Ernst patch from qt examples. - -2005-12-12 Baptiste Lepilleur - * src/qttestrunner: integrated Ernst patch for QtTestRunner and Qt 3.x. - Enhanced qmake project files to handle multiple build configuration - -2005-11-27 Baptiste Lepilleur - * doc/cookbook.dox: fixed type (patch #1334567) - -2005-11-06 Baptiste Lepilleur - * include/cppunit/config/SourcePrefix.h: disable warning #4996 - (sprintf is deprecated) for visual studio 2005. - - * include/cppunit/TestAssert.h: use sprintf_s instead of sprintf for - visual studio 2005. - - * examples/ClockerPlugIn/ClockerPlugIn.cpp - * examples/DumperPlugIn/DumperPlugIn.cpp: use SourcePrefix.h. Fixed - wrong macro usage to implement DllMain. - - * examples/msvc6/HostApp/ExamplesTestCase.h - * examples/msvc6/HostApp/ExamplesTestCase.cpp - * examples/simple/ExamplesTestCase.h - * examples/simple/ExamplesTestCase.cpp: removed divideByZero test case - as it cause some crash on some platforms. - - -2005-10-27 Baptiste Lepilleur - * include/cppunit/TestAssert.h: added missing #include - -2005-07-30 Baptiste Lepilleur - * include/cppunit/config/SourcePrefix.h: added, prefix added at begining of sources - to remove warning. Removed most warning when compiling with VC++ 6sp6. - - * examples/money/Money.h: - * examples/money/MoneyTest.cpp: added assert equal usage. - -2005-07-30 Baptiste Lepilleur - - * include/cppunit/config/config-msvc6.h: auto-detect if RTTI are enabled - the _CPPRTTI macro (defined by the compiler when enabling RTTI). - - * include/cppunit/config/config-msvc6.h: added missing macro definition - CPPUNIT_HAVE_CPP_CAST. - - * src/cppunit/TestResultCollector.cpp: fixed memory leak in destructor. - -2005-07-15 Baptiste Lepilleur - - * config/bb_enable_doxygen.m4: Rolled back Brad Hards patch as it break - generation of doc/Makefile.am. - - * cppunit.spec.in: Applied patch #1232555 from Patrice Dumas. This file is - use for RPM packaging. - - * development snapshot release 1.11.0. - -2005-07-09 Baptiste Lepilleur - - * doc/Money.dox: - * include/cppunit/TestSuite.h: - * include/cppunit/XmlOutputterHook.h: applied Brad Hards patch - that correct miscellaneous doc generation issues (unescaped <>, \...). - - * include/cppunit/plugin/TestPlugIn.h: - * include/cppunit/CompilerOutputter.h: - * doc/CppUnit-win.dox: removed a few documentation generation warnings. - - * config/bb_enable_doxygen.m4: applied Brad Hards patch to remove warning - when running ./autogen.sh or aclocal. - - * doc/money.dox: fixed bad usage of CPPUNIT_ASSERT_EQUALS. - -2005-07-05 Baptiste Lepilleur - - * Examples/simple/Makefile.am: do not install 'simple' programm - (patch #1230784). - -2005-07-05 Baptiste Lepilleur - - * include/cppunit/TestResultCollector.h - * src/cppunit/TestResultCollector.cpp: fixed memory leak - occuring when calling reset(). - - * src/cppunit/DllMain.cpp: added work-around for mingw compilation - for BLENDFUNCTION macro issue when including windows.h. - - * src/qttestrunner/TestRunnerDlgImpl.cpp: fixed display of multiline - messages. - - * include/cppunit/Portability.h: better integration of compiler output - for gcc on Mac OS X with Xcode (contributed by Claus Broch). - -2005-06-14 Baptiste Lepilleur - * src/msvc6/testrunner/ProgressBar.cpp: applied patch from bug #1165875, - (use system color for border instead of hard-coded color). - - * src/cppunit/Makefile.am: - * configure.in: MinGW, cygwin: enable build of shared library when using - libtool. patch #1194394 contributed by Stéphane Fillod. - - * cppunit.m4: applied patch #1076398 contributed by Henner Sudek. Fix - version number comparison in AM_PATH_CPPUNIT. - - * contrib/xml-xsl/cppunit2junit.txt - * contrib/xml-xsl/cppunit2junit.xsl - * contrib/readme.txt: XSLT for compatibility with Ant junit xml formatter. - Patch #1112053 contributed by Norbert Barbosa. - -2005-02-23 Baptiste Lepilleur - - * examples/hierarchy/BoardGameTest.h: - * examples/hierarchy/ChessTest.h: fixed compilation issue, prefixed access - to class member with 'this' (inheriting from template parameter - dependent class). - -2004-11-19 Baptiste Lepilleur - - * include/cppunit/Message.h - * include/cppunit/SourceLine.h: - * src/cppunit/Message.cpp: - * src/cppunit/SourceLine.cpp: provided thread-safe copy constructor on - platform that do not provide thread-safe copy constructor for std::string. - -2004-11-08 Baptiste Lepilleur - - * include/cppunit/TestAssert.h: fixed portability bug pointed out by - Neil Ferguson. - -2004-11-06 Baptiste Lepilleur - - * include/cppunit/TestAssert.h: integrated Neil Ferguson patch for high - precision conversion to string for double number. Modified the patch - to works even if DBL_DIG C99 macro is not defined. - - * include/cppunit/Portability.h: fixed EVC++ 4 detection. - - * src/cppunit/Win32DynamicLibraryManager.cpp: integrated patch #1024428, - MinGW compilation under Windows XP. - -2004-11-05 Baptiste Lepilleur - - * include/cppunit/TestAssert.h: - * src/cppunit/TestAssert.cpp: integrated Neil Ferguson patch for missing - _MESSAGE assertion variants. Also enhanced the failure message of a - few assertions. - -2004-09-10 Baptiste Lepilleur - - * src/msvc6/DSPlugIn/StdAfx.h: add #error to prevent compilation on VC 7. - - * src/msvc6/testrunner/MsDevCallerListCtrl.cpp: - * src/msvc6/testrunner/MsDevCallerListCtrl.h: integrated go to source line - features on double click contributed by Max Quatember and - Andreas Pfaffenbichler. - -2004-08-01 Baptiste Lepilleur - - * include/cppunit/XmlOutputter.h: - * include/cppunit/tools/XmlDocument.h: - * src/cppunit/XmlDocument.cpp: - * src/cppunit/XmlOutputter.cpp: integrated patch #997006 from Akos Maroy. - This patch makes the 'standalone' attribute in XML header optional. - -2004-06-25 Baptiste Lepilleur - - * include/cppunit/Portability.h: moved OStringStream alias definition to - portability/Stream.h. User need to define EVC4 to indicate that - config-evc4.h should be used. (how to we detect this automatically ?). - Notes that this means it might be needed to add #include to some - headers since its no longer included by Portability.h. - - * include/cppunit/portability/Stream.h: define alias OStringStream, stdCOut(), - and OFileStream. If CPPUNIT_NO_STREAM is defined (evc4 config), then provides - our own implementation (based on sprintf and fwrite). - - * include/cppunit/config/config-evc4.h: config file for embedded visual c++ 4. - Still need to detect for this platform in Portability.h (currently relying on - EVC4 being defined...) - - * *.[cpp/h]: most source files have been impacted with the following change: - #include -> #include - std::ostream -> CPPUNIT_NS::OStream - std::ofstream -> CPPUNIT_NS::OFileStream - std::cout -> CPPUNIT_NS::stdCOut() - std::endl -> "\n" - Also, code using std::cin as been defined out if CPPUNIT_NO_STREAM was defined. - The exact list of impact files can be obtain in CVS using tags: - TG_CPPUNIT_NO_STREAM_BEFORE & TG_CPPUNIT_NO_STREAM_AFTER. - -2004-06-19 Baptiste Lepilleur - - * cppunit.m4: patch #946302, AM_PATH_CPPUNIT doesn't report result - if CppUnit is missing. - - -2004-06-18 Baptiste Lepilleur - - * Release 10.0.2 - - * include/cppunit/extension/TestSuiteBuilderContext.h: - * src/cppunit/TestSuiteBuilderContext.cpp: fixed bug #921843. This bug - was caused by a known STL bug in VC++ 6. - See http://www.dinkumware.com/vc_fixes.html issue with shared - std::map in dll. As a work-around the map has been replaced by a vector. - - * src/DllPlugInTester/*.cpp: bug #941625, string literal using char * - instead of const char *. Patch contributed by Curt Arnold has been - applied. - - * src/msvc6/testrunner/TestRunnerDlg.h: - * src/msvc6/testrunner/TestRunnerDlg.cpp: - * src/msvc6/testpluginrunner/TestPlugIn.cpp: - * src/msvc6/testpluginrunner/TestPlugInRunnerApp.cpp: - * src/msvc6/testpluginrunner/TestPlugInRunnerModel.cpp: - * src/msvc6/testpluginrunner/TestPlugInRunnerModel.h: bug #952912, - memory leaks when loading/reloading plug-ins. - -2004-06-17 Baptiste Lepilleur - - * include/cppunit/Portability.h: - * include/cppunit/plugin/TestPlugIn.h: fixed report compilation issue - with mingw & cygwin. WIN32 is now always defined if _WIN32 is defined. - Bug #945737 & #930338. - - * doc/Makefile.am: fixed bug #940650 => cp -dpR, removed option -p since - there is no link to preserve anyway (does not exist on SunOs). - - * src/cppunit/TestPath.cpp: bug #938753, array bound read in - splitPathString() with substr if an empty string is passed. - - * src/*/*.dsp: bug #933154, post build fail in directory with spaces. - - -2004-06-16 Baptiste Lepilleur - - * release 1.10.0 - - * install-UNIX.txt: added some notes concerning Sun CC 5.5 & AIX. - - * examples/*/*.dsp: fixed project settings (rtti not enabled). - -2004-03-13 Baptiste Lepilleur - - * release 1.9.14 - -2004-03-13 Baptiste Lepilleur - - * cppunit-config.in: bug #903363, missing -ldl from the output of - cppunit-config --libs. Fixed thanks Eric Blossom patch. - - * examples/qt/Main.cpp: - * examples/qt/ExampleTestCase.h: fixed bug #789672: QT example should - use CPPUNIT_NS macro. - - * src/cppunit/UnixDynamicLibraryManager.cpp: applied patch #816563 - from Gareth Sylvester. Adding RTLD_GLOBAL allows test plug-ins - to provide symbols to shared objects they load themselves. - - * examples/cppunittest/TestAssertTest.h: - * examples/cppunittest/TestAssertTest.cpp: - * examples/cppunittest/XmlUniformiserTest.h: - * examples/cppunittest/XmlUniformiserTest.cpp: - * include/cppunit/TestAssert.h: add the exception assertion macros - from cppunit 2: CPPUNIT_ASSERT_THROW, CPPUNIT_ASSERT_NO_THROW, - CPPUNIT_ASSERT_ASSERTION_FAIL, CPPUNIT_ASSERT_ASSERTION_PASS. - Updated unit test to use and test the new macros. - - * include/cppunit/extensions/HelperMacros.h: deprecated the - test case factory that check for exception (CPPUNIT_TEST_FAIL & - CPPUNIT_TEST_EXCEPTION). - - -2004-02-20 Baptiste Lepilleur - - * release 1.9.12 - -2004-02-18 Baptiste Lepilleur - - * configure.in: - * makefile.am: - * config/ax_cxx_gcc_abi_demangle.m4: - * src/cppunit/TypeInfoHelper.cpp: added patch from - Neil Ferguson to use gcc c++ abi to demangle typeinfo - name when available. - -2003-05-15 Baptiste Lepilleur - - * include/cppunit/plugin/testplugin.h: fixed bug #767358, wrong - preprocessor symbol for SHL_LOADER. - -2003-05-15 Baptiste Lepilleur - - * include/cppunit/config/config-msvc6.h: changed the compiler outputter - default format (CPPUNIT_COMPILER_LOCATION_FORMAT) for Visual Studio 7.0. - Assertion now appears in the task list. - -2003-05-07 Baptiste Lepilleur - - * include/cppunit/extensions/Makefile.am: removed TestSuiteBuilder.h - - * Makefile.am - * configure.in - * config/ac_dll.m4 - * examples/cppunittest/Makefile.am - * examples/hierarchy/Makefile.am - * examples/money/Makefile.am - * examples/simple/Makefile.am - * include/cppunit/config/SelectDllLoader.h - * include/cppunit/plugin/TestPlugIn.h - * include/cppunit/tools/Algorithm.h - * src/DllPlugInTester/Makefile.am - * src/cppunit/Makefile.am - * src/cppunit/TestDecorator.cpp - * src/cppunit/ShlDynamicLibraryManager.cpp - * src/cppunit/UnixDynamicLibraryManager.cpp - * src/cppunit/Win32DynamicLibraryManager.cpp: applied patch from - Abdessattar Sassi to add support - for plug-in to hp-ux (patch #721546). - - * INSTALL-unix: added build instruction for HP-UX. - -2003-04-06 Baptiste Lepilleur - - * include/cppunit/extensions/TestSuiteBuilder.h: removed (unused) - -2003-03-31 Baptiste Lepilleur - - * src/cppunit/DynamicLibraryManager.cpp: fixed compilation issue on Mingw - (bug #711583) - -2003-03-20 Baptiste Lepilleur - - * include/cppunit/extensions/TestNamer.h: - * src/cppunit/TestNamer.cpp: Fixed bug #704684, TestNamer has non-virtual - destructor. - -2003-03-15 Baptiste Lepilleur - - * src/msvc6/testrunner/DynamicWindow/cdxCDynamicWndEx.cpp: - * examples/msvc6/CppUnitTestApp/CppUnitTestApp.cpp: - * examples/msvc6/HostApp/HostApp.cpp: - * src/msvc6/testpluginrunner/TestPlugInRunnerApp.cpp: fixed compatibility - issues with vc7 MFC. - - * include/cppunit/tools/Algorithm.h: - * examples/cppunittest/XmlOutputterTest.cpp: - * examples/cppunittest/XmlUniformiser.*: - * src/cppunit/CompilerOutputter.cpp: - * src/cppunit/ProtectorChain.cpp: - * src/cppunit/StringTools.cpp: - * src/cppunit/TestPath.cpp: - * src/cppunit/TypeInfoHelper.cpp: - * src/cppunit/XmlElement.cpp: - * src/cppunit/XmlOutputter.cpp: - * src/DllPlugInTester/CommandLineParser.h: - * src/msvc6/testrunner/TestRunnerDlg.cpp: switched to using unsigned index in loop to - avoid signed/unsigned warning in vc7. - - * include/cppunit/extension/ExceptionTestCaseDecorator.h: removed dll export - on template (caused link error on vc7). - -2003-03-11 Baptiste Lepilleur - * config/bb_enable_doxygen.m4: - * doc/Makefile.am: applied Luke Dunstan's fix for bug #700730 (spaces not - allowed in doxygen path) - - * src/cppunit/XmlElement.cpp: - * src/examples/cppunittest/XmlUniformser.cpp: fixed bug #676505 (no space - between attributes of XmlElement). - - * include/cppunit/tools/Algorithm.h: - * src/cppunit/TestResult.cpp: - * src/msvc6/testrunner/TestRunnerModel.cpp: added removeFromSequence - algorithm in Algorithm.h to fix STLPort compatibility issue - (std::remove use the one of cstdio instead of algorithm). Bug #694971. - - * src/examples/cppunittest/TrackedTestCase.cpp: - * src/examples/cppunittest/CppUnitTestMain.cpp: - * src/examples/money/Money.h: partially applied patch #699794. Fixed - compilation issues with Borland C++ 6. - -2003-01-23 Baptiste Lepilleur - - * include/cppunit/extensions/TestNamer.h: fixed bug #662666 (missing include - for typeinfo). - -2002-12-12 Baptiste Lepilleur - - * src/cppunit/TestResult.cpp: TestFailure are no longer passed as temporary, - but explicitely instantiated on the stack. Work around AIX compiler bug. - -2002-12-03 Baptiste Lepilleur - - * include/cppunit/TextTestResult.h: added missing dll export for - operator << (bug #610119). - -2002-12-02 Baptiste Lepilleur - - * include/cppunit/plugin/DynamicLibraryManagerException.h: added constructor - to fix compilation issues on recents version of gcc and sun CC (bug #619059) - - * include/cppunit/input/XmlInputHelper.h: added. - - * src/cppunit/XmlOuputter.cpp: use iterator instead of const_iterator. - - * src/src/msvc6/testrunner/DynamicWindow/cdxCDynamicWnd.cpp: added call to - IsUp() in cdxCDynamicWnd::DoOnGetMinMaxInfo() before calling - GetBorderSize() which caused an assertion. Bug #643612. - -2002-09-10 Baptiste Lepilleur - - * include/cppunit/extensions/TestSuiteBuilderContext.h: - * src/cppunit/TestSuiteBuilderContext.cpp: added addProperty() and - getStringProperty(). Added macros CPPUNIT_TEST_SUITE_PROPERTY. - - * src/msvc6/testrunner/TestRunnerDlg.cpp: integrated Tim Threlkeld's - bug fix #610162: browse button was disabled if history was empty. - - * src/msvc6/testrunner/DynamicWindow/cdxCSizeIconCtrl.cpp: integrated - Tim Threlkeld's bug fix #610191: common control were not initialized. - - * include/cppunit/extensions/ExceptionTestCaseDecorator.h: bug #603172, - missing Message construction. - - * src/cppunit/DefaultProtector.cpp: bug #603172. Fixed missing ';'. - - * src/cppunit/TestCase.cpp: bug #603671. Removed unguarded typeinfo - include. - - * examples/cppunittests/*Suite.h: bug #603666. Added missing Portability.h - include. - -2002-09-01 Baptiste Lepilleur - - * include/cppunit/ui/text/TextTestRunner.h: fixed header guards. - -2002-08-29 Baptiste Lepilleur - - * include/cppunit/TestResult.h: - * src/cppunit/TestResult.cpp: fixed shouldStop() bug. - -2002-08-29 Baptiste Lepilleur - - * include/cppunit/CompilerOutputter.h: - * include/cppunit/Exception.h: - * include/cppunit/Protector.h: - * include/cppunit/TestListener.h: - * include/cppunit/TestPath.h: - * include/cppunit/TestResult.h: - * include/cppunit/TestRunner.h: - * include/cppunit/XmlOutputter.h: - * include/cppunit/plugin/DynamicLibraryManager.h: - * include/cppunit/plugin/PlugInManager.h: - * include/cppunit/plugin/PlugInParameters.h: - * include/cppunit/TestPlugIn.h: - * src/cppunit/DefaultProtector.h: - * src/cppunit/ProtectorChain.h: - * src/cppunit/ProtectorContext.h: - * src/cppunit/TestCase.cpp: - * src/cppunit/TestResult.cpp: fixed a dew documentation bugs. - - * include/cppunit/TestResult.h: - * src/cppunit/TestResult.cpp: moved documentation to header. - -2002-08-29 Baptiste Lepilleur - - * include/cppunit/Asserter.h: - * include/cppunit/Message.h: - * include/cppunit/extensions/TestNamer.h: - * include/cppunit/extensions/TestSuiteBuilder.h: - * include/cppunit/tools/XmlDocument.h: - * include/cppunit/tools/XmlElement.h: Fixed a few documentation bugs. - -2002-08-28 Baptiste Lepilleur - - * include/cppunit/Portability.h: added CPPUNIT_STATIC_CAST. - - * include/cppunit/extensions/TestFixtureFactory.h: extracted from - HelperMacros.h. Added template class ConcretTestFixtureFactory. - - * include/cppunit/extensions/TestSuiteBuilderContext.h: - * src/cppunit/TestSuiteBuilderContext.cpp: added. Context used - to add test case to the fixture suite. Prevent future - compatibility break for custom test API. - - * include/cppunit/extensions/HelperMacros.h: mostly rewritten. No - longer use TestSuiteBuilder. Added support for abstract test fixture - through macro CPPUNIT_TEST_SUITE_END_ABSTRACT. Made custom test API - easier to use. - - * examples/cppunittest/HelperMacrosTest.h: - * examples/cppunittest/HelperMacrosTest.cpp: updated against - HelperMacros.h changes. - -2002-08-27 Baptiste Lepilleur - - * CodingGuideLines.txt: updated for OS/390 C++ limitation. - - * examples/cppunittests/MockFunctor.h: added. Mock Functor to help - testing. - - * examples/cppunittests/MockProtector.h: qdded. Mock Protector to help - testing. - - * examples/cppunittests/TestResultTest.h - * examples/cppunittests/TestResultTest.cpp: added tests for - pushProtector(), popProtector() and protect(). - - * include/cppunit/TestAssert.h: removed default message value from - assertEquals(). Caused compilation error on OS/390. - - * include/cppunit/plugin/PlugInParameters.h: - * src/cppunit/PlugInParameters.cpp: renamed commandLine() to - getCommandLine(). - - * src/msvc6/testrunner/TestRunnerDlg.h: - * src/msvc6/testrunner/TestRunnerDlg.cpp: bug fix, disabled Browse - button while running tests. - -2002-08-22 Steve M. Robbins - - * cppunit.m4: Doc fix: MINIMUM-VERSION is not optional when using - this macro. - -2002-08-04 Baptiste Lepilleur - - * src/cppunit/XmlDocument.cpp: fixed compatility bug with C++ builder. - - * include/cppunit/plugin/Parameters.h: renamed PlugInParameters.h. - - * src/cppunit/PlugInParameter.cpp: added. Implementation of class - PlugInParameters. - - * examples/DumperPlugIn/DumperPlugIn.cpp: - * examples/ClockerPlugIn/ClockerPlugIn.cpp: - * src/DllPlugInTester/CommandLineParser.h: - * src/DllPlugInTester/CommandLineParser.cpp: - * include/cppunit/plugin/TestPlugInDefaultImpl.h: - * src/cppunit/TestPlugInDefaultImpl.cpp: - * include/cppunit/plugin/PlugInManager.h: - * src/cppunit/PlugInManager.cpp: updated against PlugInParameter - change. - -2002-08-03 Baptiste Lepilleur - - * include/cppunit/XmlOutputterHook.h: integrated Stephan Stapel - documentation update. - -2002-08-03 Baptiste Lepilleur - - * include/cppunit/Exception.h: - * src/cppunit/Exception.h: added setMessage(). - - * include/cppunit/Protector.h: - * src/cppunit/Protector.cpp: added class ProtectorGuard. Change the - reportXXX() method to support Exception passing and SourceLine. - - * include/cppunit/TestCaller.h: removed 'expect exception' features. - It is now handled by ExceptionTestCaseDecorator and TestCaller no - longer need default template argument support. - - * include/cppunit/TestCase.h: - * include/cppunit/extensions/TestCaller.h: runTest() is now public - instead of protected, so that it can be decorated. - - * include/cppunit/TestResult.h: - * src/cppunit/TestResult.h: added pushProtector() and popProtector() - methods. This allow user to specify their own exception trap when - running test case. - - * include/cppunit/extensions/TestDecorator.h: - * src/cppunit/TestDecorator.cpp: added. Extracted from TestDecorator.h. - The test passed to the constructor is now owned by the decorator. - - * include/cppunit/extensions/TestCaseDecorator.h: - * src/cppunit/TestCaseDecorator.cpp: added. Decorator for TestCase - setUp(), tearDown() and runTest(). - - * include/cppunit/extensions/ExceptionTestCaseDecorator.h: added. - TestCaseDecorator to expect that a specific exception is thrown. - - * include/cppunit/extensions/HelperMacros.h: updated against TestCaller - change. - - * src/cppunit/DefaultFunctor.h: fixed bug (did not return underlying - test return code). - - * src/cppunit/ProtectorChain.cpp: fixed bug in chaing return code. - - * src/cppunit/DefaultFunctor.h: fixed bug. - - * src/msvc6/testrunner/ActiveTest.h: - * src/msvc6/testrunner/ActiveTest.cpp: updated against - TestCaseDecorator ownership policy change. Moved inline functions - to .cpp. - - * examples/cppunittest/TestSetUpTest.cpp: updated to use MockTestCase - and against the new ownership policy. - - * examples/cppunittest/TestDecoratorTest.cpp: - * examples/cppunittest/RepeatedTestTest.cpp: updated against - TestDecorator ownership policy change. - - * examples/cppunittest/ExceptionTestCaseDecoratorTest.h: - * examples/cppunittest/ExceptionTestCaseDecoratorTest.cpp: added. Unit - tests for ExceptionTestCaseDecoratorTest. - -2002-07-16 Baptiste Lepilleur - - * include/cppunit/Protector.h: - * src/cppunit/Protector.cpp: added. Base class for protectors. - - * src/cppunit/DefaultProtector.h: - * src/cppunit/DefaultProtector.cpp: added. Implementation of the default - protector used to catch std::exception and any other exception. - - * src/cppunit/ProtectorChain.h: - * src/cppunit/ProtectorChain.cpp: added. Implementation of a chain of - protector, allowing catching custom exception and implementation of - expected exception. - - * src/cppunit/TestCase.cpp: - * src/cppunit/TestResult.cpp: updated to use protector. - -2002-07-14 Baptiste Lepilleur - - * CodingGuideLines.txt: added. CppUnit's coding guidelines for portability. - - * include/cppunit/portability/CppUnitStack.h: added. wrapper for std::stack. - - * include/cppunit/portability/CppUnitSet.h: added. wrapper for std::set. - - * include/cppunit/ui/text/TestRunner.h: fixed namespace definition for - deprecated TestRunner. - - * include/cppunit/TestAssert.h: - * src/cppunit/TestAssert.cpp: removed old deprecated functions that did - not use SourceLine. Moved assertEquals() and assertDoubleEquals() into - CppUnit namespace. - - * src/cppunit/TestFactoryRegistry.cpp: use CppUnitMap instead of std::map. - - * src/DllPlugInTester/CommandLineParser.h: use CppUnitDeque instead - std::deque. - - * examples/cppunittest/*.h: - * examples/cppunittest/*.cpp: removed all usage of CppUnitTest namespace. - Everything is now in global space. - - * examples/*/*.h: - * examples/*/*.cpp: replaced usage of CppUnit:: with CPPUNIT_NS::. - - * examples/ClockerPlugIn/ClockerModel.h: use CppUnit STL wrapper instead - of STL container. - -2002-07-13 Baptiste Lepilleur - - * include/cppunit/ui/text/TestRunner.h: - * src/cppunit/TextTestRunner.cpp: Renamed TextUi::TestRunner - TextTestRunner and moved it to the CppUnit namespace. Added - a deprecated typedef for compatibility with previous version. - - * include/cppunit/ui/text/TextTestRunner.h: added. - - * include/cppunit/ui/mfc/TestRunner.h: - * src/cppunit/msvc6/testrunner/TestRunner.cpp: Renamed MfcUi::TestRunner - MfcTestRunner. Added deprecated typedef for compatibility. Renamed - TestRunner.cpp to MfcTestRunner.cpp. - - * include/cppunit/ui/mfc/MfcTestRunner.h: added. - - * include/cppunit/ui/qt/TestRunner.h: - * src/qttestrunner/TestRunner.cpp: renamed QtUi::TestRunner QtTestRunner - and moved it to CppUnit namespace. Added a deprecated typedef for - compatibility. Renamed TestRunner.cpp to QtTestRunner.cpp. - - * include/cppunit/ui/qt/TestRunner.h: - * src/qttestrunner/TestRunner.h: Moved TestRunner to CppUnit namespace - and renamed it QtTestRunner. Added deprecated typedef for compatibility. - - * include/cppunit/Asserter.h: - * src/cppunit/Asserter.cpp: changed namespace Asserter to a struct and - made all methods static. - - * include/cppunit/extensions/HelperMacros.h: - * include/cppunit/extensions/SourceLine.h: - * include/cppunit/extensions/TestAssert.h: - * include/cppunit/extensions/TestPlugIn.h: - * include/cppunit/Portability.h: changed CPPUNIT_NS(symbol) to a - symbol macro that expand either to CppUnit or nothing. The symbol is - no longer a parameter. - - * include/cppunit/portability/CppUnitVector.h: - * include/cppunit/portability/CppUnitDeque.h: - * include/cppunit/portability/CppUnitMap.h: added. STL Wrapper for - compilers that do not support template default argumenent and need - the allocator to be passed when instantiating STL container. - - * examples/cppunittest/*.h: - * examples/cppunittest/*.cpp: - * src/msvc6/testrunner/*.h: - * src/msvc6/testrunner/*.cpp: - * src/msvc6/testpluginrunner/*.h: - * src/msvc6/testpluginrunner/*.cpp: - * src/qttestrunner/*.h: - * src/qttestrunner/*.cpp: replaced occurence of CppUnit:: by CPPUNIT_NS. - - * src/cppunit/TestSuite.h: - replaced occurence of std::vector by CppUnitVector. - -2002-07-12 Baptiste Lepilleur - - * include/cppunit/config/Portability.h: If the compiler does not support - namespace (CPPUNIT_HAVE_NAMESPACES=0), define CPPUNIT_NO_STD_NAMESPACE - and CPPUNIT_NO_NAMESPACE. If CPPUNIT_NO_STD_NAMESPACE is defined, then - CppUnit assumes that STL are in the global namespace. If - CPPUNIT_NO_NAMESPACE is defined, then CppUnit classes are placed in the - global namespace instead of the CppUnit namespace. - - * include/cppunit/config/config-bcb5.h: - * include/cppunit/config/config-msvc6.h: added definition of macro - CPPUNIT_HAVE_NAMESPACES. - - * include/cppunit/tools/StringTools.h: use CPPUNIT_WRAP_COLUMN as default - parameter value for wrap(). - - * include/cppunit/*/*.h: - * src/cppunit/*.cpp: changed all CppUnit namespace declaration to use - macros CPPUNIT_NS_BEGIN and CPPUNIT_NS_END. Also, changed reference - to CppUnit namespace (essentially in macros) using CPPUNIT_NS macro. - - * doc/doxyfile.in: - * doc/CppUnit-Win.dox: updated doxygen configuration files so that - CPPUNIT_NS_BEGIN and CPPUNIT_NS_END macros are expanded. This help - generates the documentation using the CppUnit namespace. - -2002-07-11 Baptiste Lepilleur - - * include/cppunit/Portability.h: added macro CPPUNIT_CONST_CAST. - - * src/cppunit/Exception.cpp: - * src/cppunit/Test.cpp: - * examples/cppunittest/MockTestCase.cpp: replaced usage of const_cast with - CPPUNIT_CONST_CAST. - - * include/cppunit/Test.h: - * src/cppunit/Test.cpp: made findTestPath(), findTest() and resolvePath() - const methods. - -2002-07-10 Baptiste Lepilleur - - * include/cppunit/extensions/AutoRegisterSuite.h: - * include/cppunit/extensions/Orthodox.h: - * include/cppunit/extensions/TestSuiteBuilder.h: - * include/cppunit/extensions/TestSuiteFactory.h: - * include/cppunit/TestCaller.h: - * examples/hierarchy/BoardGameTest.h: - * examples/hierarchy/ChessTest.h: replaced usage of 'typename' in template - declaration with 'class'. - - * include/cppunit/ui/text/TestRunner.h: - * src/cppunit/TextTestRunner.cpp: updated to use the generic TestRunner. - Removed methods runTestByName() and runTest(). Inherits - CppUnit::TestRunner. - - * include/cppunit/extensions/TestSuiteBuilder.h: removed templatized method - addTestCallerForException(). It is no longer used since release 1.9.8. - - * examples/cppunittest/MockTestCase.h - * examples/cppunittest/MockTestCase.cpp: removed the usage of 'mutable' - keyword. - -2002-07-04 Baptiste Lepilleur - - * src/msvc6/DSPlugIn/DSPlugIn.dsp: updated so that only the release - configuration get copied to the lib/ directory. - -2002-07-03 Baptiste Lepilleur - - * include/cppunit/XmlOutputter.h: fixed XmlOutputter constructed default - value initializatino which caused compilation error with BC5. - - * src/cppunit/PlugInManager.cpp: added missing CPPUNIT_NO_TESTPLUGIN guard. - - * src/msvc6/testrunner/TestRunner.dsp: - * src/msvc6/testrunner/TestRunner.rc: - * src/msvc6/testrunner/TestRunnerDlg.cpp: - * src/msvc6/testrunner/TestRunnerDlg.h: - * src/msvc6/testrunner/TreeHierarchyDlg.cpp: - * src/msvc6/testrunner/TreeHierarchyDlg.h: - * src/msvc6/testpluginrunner/TestPlugInRunner.dsp: - * src/msvc6/testpluginrunner/TestPlugInRunner.rc: - * src/msvc6/testpluginrunner/TestPlugInRunnerApp.cpp: - * src/msvc6/testpluginrunner/TestPlugInRunnerDlg.cpp: - * src/msvc6/testpluginrunner/TestPlugInRunnerDlg.h: applied Steven Mitter - patch to fix bug #530426 (conflict between TestRunner and host - application's resources). Adapted patch to compile work with Unicode. - - * src/msvc6/testrunner/ResourceLoaders.h: - * src/msvc6/testrunner/ResourceLoaders.cpp: - * src/msvc6/testrunner/Change-Diary-ResourceBugFix.txt: added, from - Steven Mitter's patch. Simplified loadCString() to compile with Unicode. - - * src/cppunit/cppunit.dsp: - * src/cppunit/cppunit_dll.dsp: - * src/DllPlugInTester/DllPlugInTester.dsp: - * src/msvc6/testrunner/TestRunner.dsp: - * src/msvc6/testpluginrunner/TestPlugInRunner.dsp: all lib, dll and exe are - now created in the intermediate directory. A post-build rule is used to - copy them to the lib/ directory. - -2002-06-17 Baptiste Lepilleur - - * include/cppunit/AdditionalMessage.h: - * src/cppunit/AdditionalMessage.cpp: added. Class to help passing - additional message parameter. - - * include/cppunit/Asserter.h: added makeExpected(), makeActual() and - makeNotEqualMessage(). Removed methods made unnecessary by the - use of AdditionalMessage. - - * include/cppunit/Portability.h: added CPPUNIT_WRAP_COLUMN to define - CppUnit default wrap column. - - * src/cppunit/CompilerOutputter.cpp: use CPPUNIT_WRAP_COLUMN instead - of hard-coded value. - -2002-06-16 Baptiste Lepilleur - - * bumped version to 1.9.9 - - * release 1.9.8 - - * include/cppunit/plugin/TestPlugIn.h: updated documentation. - - * include/cppunit/tools/XmlDocument.h: updated documentation. - - * include/cppunit/tools/StringTools.h: - * src/cppunit/StringTools.cpp: added split() and wrap() functions. - - * include/cppunit/CompilerOutputter.h: - * src/cppunit/CompilerOutputter.cpp: extracted wrap() and - splitMessageIntoLines() to StringTools. - - * include/cppunit/XmlOutputterHook.h: - * src/cppunit/XmlOutputterHook.cpp: removed rooNode parameter from - beginDocument() and endDocument(). It can be retreive from document. - Renamed 'node' occurences to 'element'. - - * include/cppunit/XmlOutputter.h: - * src/cppunit/XmlOutputter.cpp: updated against - XmlOutputterHook changes. Renamed 'node' occurences to 'element'. - - * src/cppunit/Message.cpp: - * src/cppunit/XmlElement.cpp: added missing include - - * examples/ClockerPlugIn/ClockerXmlHook.h: - * examples/ClockerPlugIn/ClockerXmlHook.cpp: updated against - XmlOutputterHook changes. - - * examples/cppunittest/MessageTest.cpp: removed std::string() from - assertion. Somehow gcc can't parse it. Added missing include . - - * examples/cppunittest/XmlElement.cpp: added missing include . - - * examples/cppunittest/XmlElementTest.h: - * examples/cppunittest/XmlElementTest.cpp: Renamed 'node' occurences - to 'element'. - - * examples/cppunittest/XmlOutputterTest.cpp: updated against - XmlOutputterHook changes. - - * examples/cppunittest/StringToolsTest.h: - * examples/cppunittest/StringToolsTest.cpp: added. Unit tests for - StringTools. Turn out that VC++ dismiss empty lines in tools output, - which is the reason why empty lines where not printed in - CompilerOutputter. - -2002-06-14 Baptiste Lepilleur - - * include/cppunit/plugin/PlugInManager.h: - * src/cppunit/PlugInManager.cpp: added two methods to use the plug-in - interface for Xml Outputter hooks. - - * include/cppunit/plugin/TestPlugIn.h: added two methods to the plug-in - interface for Xml Outputter hooks. - - * include/cppunit/plugin/TestPlugInAdapter.h: - * src/cppunit/plugin/TestPlugInAdapter.cpp: renamed TestPlugInDefaultImpl. - Added empty implementation for Xml outputter hook methods. - - * include/cppunit/tools/StringTools.h: - * src/cppunit/tools/StringTools.cpp: added. Functions to manipulate string - (conversion, wrapping...) - - * include/cppunit/tools/XmlElement.h: - * src/cppunit/XmlElement.cpp: renamed addNode() to addElement(). Added - methods to walk and modify XmlElement (for hook). Added documentation. - Use StringTools. - - * include/cppunit/XmlOutputter.h: - * src/cppunit/XmlOutputter.cpp: added hook calls & management. - - * include/cppunit/XmlOutputterHook.h: - * src/cppunit/XmlOutputterHook.cpp: added. Hook to customize XML output. - - * src/DllPlugInTester/DllPlugInTester.cpp: call plug-in XmlOutputterHook - when writing XML output. Modified so that memory is freed before - unloading the test plug-in (caused crash when freeing the XmlDocument). - - * examples/ReadMe.txt: - * examples/ClockerPlugIn/ReadMe.txt: added details about the plug-in - (usage, xml content...) - - * examples/ClockerPlugIn/ClockerModel.h: - * examples/ClockerPlugIn/ClockerModel.cpp: extracted from ClockerListener. - Represents the test hierarchy and tracked time for each test. - - * examples/ClockerPlugIn/ClockerListener.h: - * examples/ClockerPlugIn/ClockerListener.cpp: extracted test hierarchy - tracking to ClockerModel. Replaced the 'flat' view option with a 'text' - option to print the timed test tree to stdout. - - * examples/ClockerPlugIn/ClockerPlugIn.cpp: updated to hook the XML - output and use the new classes. - - * examples/ClockerPlugIn/ClockerXmlHook.h: - * examples/ClockerPlugIn/ClockerXmlHook.cpp: added. XmlOutputterHook to - includes the timed test hierarchy and test timing in the XML output. - - * examples/cppunittest/XmlElementTest.h: - * examples/cppunittest/XmlElementTest.cpp: added new test cases. - - * examples/cppunittest/XmlOutputterTest.h: - * examples/cppunittest/XmlOutputterTest.cpp: added tests for - XmlOutputterHook. - -2002-06-14 Baptiste Lepilleur - - * src/cppunit/TypeInfoHelper.cpp: added work around for bug #565481. - gcc 3.0 RTTI name() returns the type prefixed with a number (the - length of the type). The work around strip the number. - - * src/msvc6/testpluginrunner/TestPlugInRunnerApp.cpp: registry key is now - set. Allow to save settings. - - * src/msvc6/testpluginrunner/TestPlugInRunnerDlg.h: - * src/msvc6/testpluginrunner/TestPlugInRunnerDlg.cpp: added layout - initialization for resizing. - - * src/msvc6/testpluginrunner/TestPlugRunner.rc: - * src/msvc6/testpluginrunner/TestPlugInRunner.dsp: added TestRunner - project files. Somehow I can't get cdxCDynamicDialog to compile - as a MFC extension. Included all sources files and resources - as a very dirt work around. - - * src/msvc6/testrunner/TestRunnerDlg.h: - * src/msvc6/testrunner/TestRunnerDlg.cpp: - * src/msvc6/testrunner/TestRunnerModel.h: those classes are no longer - exported in the MFC extension. See TestPlugInRunner issue with - cdxCDynamicDialog. - - * include/cppunit/Message.h: - * include/cppunit/TestPath.h: - * include/cppunit/TestResult.h: - * include/cppunit/TestResultCollector.h: - * include/cppunit/TestSuite.h: - * include/cppunit/TestFactoryRegistry.h: - * include/cppunit/XmlElement.h: - * include/cppunit/TypeInfoHelper.h: commented out STL template export - in DLL. This caused conflicts when instantiting the same template in - a user project. - -2002-06-14 Baptiste Lepilleur - - * src/cppunit/CompilerOutputter.cpp: fixed bug #549762 (line wrap). - - * src/msvc6/testrunner/DynamicWindow/*: added. Dynamic Window library - from Hans Bühler (hans.buehler@topmail.de) to resize window. - - * src/msvc6/testrunner/TestRunnerModel.h: - * src/msvc6/testrunner/TestRunnerModel.cpp: removed dialog bounds from - settings. Added public registry keys for cppunit, main dialog, and - browse dialog. - - * src/msvc6/testrunner/TreeHierarchyDlg.h: - * src/msvc6/testrunner/TreeHierarchyDlg.cpp: dialog is now resizable. - Window placement is stored and restored. - - * src/msvc6/testrunner/TestRunnerDlg.h: - * src/msvc6/testrunner/TestRunnerDlg.cpp: replaced dialog resizing code - by usage of Hans Bühler's Dynamic Window library. Dialog placement - is stored/restored by that library. ProgressBar is now a child window. - Added edit field to see the details of the failure. List on show - the short description of the failure. - - * src/msvc6/testrunner/ProgressBar.h: - * src/msvc6/testrunner/ProgressBar.cpp: is now a CWnd. - - * src/msvc6/testrunner/TestRunner.rc: named all static fill ID for resizing. - Added an invisble static field for progress bar placement. - -2002-06-13 Baptiste Lepilleur - - * doc/other_documentation.dox: fixed some typos. - - * include/cppunit/NotEqualException.h: - * src/cppunit/NotEqualException.cpp: removed. - - * include/cppunit/Exception.h: - * src/cppunit/Exception.cpp: removed 'type' related stuffs. - - * include/cppunit/TextTestResult.h: - * src/cppunit/TextTestResult.cpp: delegate printing to TextOutputter. - - * examples/simple/ExampleTestCase.h: - * examples/simple/ExampleTestCase.cpp: reindented. - - * src/qttestrunner/build: - * src/qttestrunner/qttestrunner.pro: - * src/qttestrunner/TestBrowserDlgImpl.h: - * src/qttestrunner/TestRunnerModel.h: applied Thomas Neidhart's patch, - 'Some minor fixes to compile QTTestrunner under Linux.'. - -2002-06-13 Baptiste Lepilleur - - * include/cppunit/Asserter.h: - * src/cppunit/Asserter.cpp: added functions that take a Message as a - parameter. Existing function have a short description indicating - an assertion failure. - - * include/cppunit/CompilerOuputter.h: - * src/cppunit/CompilerOuputter.cpp: removed printNotEqualMessage() and - printDefaultMessage(). Updated to use Message. - - * include/cppunit/Message.h: - * src/cppunit/Message.cpp: added. Represents a message associated to an - Exception. - - * include/cppunit/Exception.h: - * src/cppunit/Exception.cpp: the message associated to the exception is now - stored as a Message instead of a string. - - * include/cppunit/NotEqualException.cpp: constructs a Message instead of a - string. - - * include/cppunit/TestAssert.h: - * src/cppunit/TestAssert.cpp: updated to use Asserter functions that - take a message when pertinent (CPPUNIT_FAIL...). - - * include/cppunit/TestCaller.h: - * src/cppunit/TestCaller.cpp: exception not caught failure has a better - short description. - - * src/cppunit/TestCase.cpp: better short description when setUp() or - tearDown() fail. - - * src/msvc6/testrunner/TestRunnerDlg.cpp: replace '/n' in failure message - with space. - - * examples/cppunittest/ExceptionTest.cpp: - * examples/cppunittest/NotEqualExceptionTest.cpp: - * examples/cppunittest/TestCallerTest.cpp: - * examples/cppunittest/TestFailureTest.cpp: - * examples/cppunittest/TestResultCollectorTest.h: - * examples/cppunittest/TestResultCollectorTest.cpp: - * examples/cppunittest/TestResultTest.cpp: - * examples/cppunittest/XmlOutputterTest.h: - * examples/cppunittest/XmlOutputterTest.cpp: updated to use Exception/Message. - - * examples/cppunittest/MessageTest.h: - * examples/cppunittest/MessageTest.cpp: added. Unit test for Message. - -2002-06-11 Baptiste Lepilleur - - * install-unix: added some hints extracted from bug #544684 on how to compile - for Solaris/Forte C++ compiler. - - * TODO: cleaned-up and added new things. - - * include/cppunit/extensions/HelperMacros.h: CPPUNIT_TEST_SUITE now declares - a class named ThisTestFixtureFactory which is a wrapper for the fixture - factory. This removes the need to cast the fixture to the correct type when - using the factory. Updated other macros implementation to use this new - factory. Modified CPPUNIT_TEST_CUSTOM(S) macros to use this new factory - class. Added macro CPPUNIT_TEST_ADD to help create new macros like - CPPUNIT_TEST_xxx. - - * examples/cppunittest/HelperMacrosTest.h: - * examples/cppunittest/HelperMacrosTest.cpp: added unit tests for - CPPUNIT_TEST_CUSTOM, CPPUNIT_TEST_CUSTOMS and CPPUNIT_TEST_ADD. - -2002-06-01 Baptiste Lepilleur - - * doc/cookbook.dox: fixed bug. - - * install-unix: added compilation instruction for Solaris/Sun 6.0 - -2002-05-25 Baptiste Lepilleur - - * include/cppunit/extensions/TestSuiteBuilder.h: updated to use TestNamer. Removed - template method addTestCallerForException() which should solve the compilation - issue with Sun 5.0/6.0 compiler. - - * include/cppunit/extensions/HelperMacros.h: updated against TestSuiteBuilder - change. Added CPPUNIT_TEST_CUSTOM and CPPUNIT_TEST_CUSTOMS to add custom - tests to the fixture suite. - - * include/cppunit/extensions/TestNamer.h: - * src/cppunit/TestNamer.cpp: added, TestNamer to name test case and fixture. - -2002-05-23 Baptiste Lepilleur - - * include/cppunit/XmlOutputter.h: - * src/cppunit/XmlOutputter.cpp: extracted class XmlOutputter::Node to - XmlElement. Extracted xml 'prolog' generation to XmlDocument. - - * include/cppunit/tools/XmlElement.h: - * src/cppunit/tools/XmlElement.cpp: added, extracted from XmlOutputter::Node. - - * include/cppunit/tools/XmlDocument.h: - * src/cppunit/tools/XmlDocument.cpp: added, extracted from XmlOutputter. Handle - XML document prolog (encoding & style-sheet) and manage the root element. - - * src/DllPlugInTester/DllPlugInTester.cpp: bug fix, flag --xsl was ignored. - - * examples/cppunittest/XmlOutputterTest.h: - * examples/cppunittest/XmlOutputterTest.cpp: updated for XmlOuputter changes. - extracted tests for XmlOutputter::Node to XmlElementTest - - * examples/cppunittest/XmlElementTest.h: - * examples/cppunittest/XmlElementTest.cpp: added, tests extracted from - XmlOutputterTest. - -2002-05-21 Baptiste Lepilleur - - * src/msvc6/testrunner/MsDevCallerListCtrl.h: - * src/msvc6/testrunner/MsDevCallerListCtrl.cpp: - * src/msvc6/testrunner/Resource.h: - * src/msvc6/testrunner/TestRunner.rc: - * src/msvc6/testrunner/TestRunnerDlg.cpp: - * src/msvc6/testrunner/TestRunnerModel.h: - * src/msvc6/testpluginrunner/TestPlugInRunner.rc: - * src/msvc6/testpluginrunner/TestPlugInRunnerDlg.cpp: - * src/msvc6/testpluginrunner/TestPlugInRunnerDlg.h: - * src/msvc6/testpluginrunner/TestPlugInRunnerModel.cpp: integrated patch from - Marco Welti (Welti@GretagMacbeth.ch) with a few clean up. - Display the name of the test being run during above the progress bar. Allow the - VC++ add-ins to works with TestPlugInRunner (COM init). DLL name can be specified - on the command line after flag '-testsuite'. Display wait cursor, clear and reload - history when reloading DLL. - - * THANKS: added Marco Welti to the list. - -2002-05-07 Baptiste Lepilleur - - * src/DllPlugInTester/CommandLineParser.cpp: fixed compilation issue. - - * src/msvc6/TestRunner/ActiveTest.h: - * src/msvc6/TestRunner/ActiveTest.cpp: reindented. bugfix: thread - handle resource leak (bug #553424). - -2002-04-25 Baptiste Lepilleur - - * src/cppunit/XmlOutputter.cpp: bugfix, use ISO-8859-1 encoding if an - empty string is given. - - * src/DllPlugInTester/CommandLineParser.h: - * src/DllPlugInTester/CommandLineParser.cpp: - * src/DllPlugInTester/DllPlugInTester.cpp: added option -w to wait for - the user to press a key before exiting (Philippe Lavoie patch, - with change). - -2002-04-22 Baptiste Lepilleur - - * include/cppunit/plugin/DynamicLibraryManagerException.h: removed - trailing ',' in enum. - - * examples/ClockerPlugIn/ClockerListener.cpp: bugfix, average test - case time computation. - -2002-04-21 Baptiste Lepilleur - - * bumped version to 1.9.7 - - * comitted stuffs I forgot to in 1.9.6. - -2002-04-21 Baptiste Lepilleur - - * contrib/bc5/bcc-makefile.zip: updated, generic makefile for - Borland 5.5, contributed by project cuppa. - - * examples/cppunittest/*Suite.h: integrated Jeffrey Morgan's patch, - to remove warning with gcc. - - * release 1.9.6 - -2002-04-21 Baptiste Lepilleur - - * src/DllPlugInTester/makefile.am: removed ld.so from LDADD flags. - - * src/DllPlugInTester/CommandLineParser.h: - * src/DllPlugInTester/CommandLineParser.cpp: rewrote, fixed problem - with double quotes in command line... - - * src/DllPlugInTester/CommandLineParserTest.h: - * src/DllPlugInTester/CommandLineParserTest.cpp: - * src/DllPlugInTester/DllPlugInTesterTest.cpp: added, unit tests for - CommandLineParser. - - * src/msvc6/TestPlugIn/*: removed. - - * examples/Money/*: added. New 'hello world' example. - - * doc/Money.dox: added. Article that go along with the Money example. - -2002-04-21 Baptiste Lepilleur - - * THANKS: updated - - * src/cppunit/DynamicLibraryManager.cpp: bugfix: did not pass - library name to exception. - - * include/cppunit/TestPath.h: - * src/cppunit/TestPath.cpp: changed into value object. - - * src/cppunit/BeosDynamicLibraryManager.cpp: integrated patch from - Shibu Yoshiki for BeOS ('cuppa' project team). - - * src/DllPlugInTester/CommandLineParser.h: - * src/DllPlugInTester/CommandLineParser.cpp: added. Command line - parsing. - - * src/DllPlugInTester/DllPlugInTester.cpp: full command line support - with parameters for plug-ins. - - * src/DllPlugInTester/makefile.am: - * examples/simple/makefile.am: - * examples/cppunittest/makefile.am: integrated Jeffrey Morgan's patch, - Unix side should be working again. - - * examples/ReadMe.txt: added. Brief description of each example. - - * examples/cppunittest/CppUnitTestPlugIn.cpp: - * examples/cppunittest/CppUnitTestPlugIn.dsp: added. New project to - build CppUnit's test suite as a test plug-in. - - * examples/cppunittest/CppUnitTestSuite.cpp: updated. Use new - helper macros to create the test suite hierarchy. - - * examples/simple/simple_plugin.opt: added. Contains debug tab - settings. - - * examples/ClockerPlugIn/ClockerListener.cpp: - * examples/ClockerPlugIn/ClockerListener.h: - * examples/ClockerPlugIn/Timer.cpp: - * examples/ClockerPlugIn/Timer.h: - * examples/ClockerPlugIn/WinNtTimer.cpp: - * examples/ClockerPlugIn/WinNtTimer.h: - * examples/ClockerPlugIn/ClockerPlugIn.cpp: - * examples/ClockerPlugIn/ClockerPlugIn.dsp: added. test listener - plug-in that times tests. - - * examples/DumperPlugIn/DumperListener.cpp: - * examples/DumperPlugIn/DumperListener.h: - * examples/DumperPlugIn/DumperPlugIn.cpp: - * examples/DumperPlugIn/DumperPlugIn.dsp: added. test listener - plug-in that dump the test tree. - - -2002-04-19 Baptiste Lepilleur - - * src/cppunit/PlugInManager.cpp: fixed bug in unload(). - - * include/cppunit/TypeInfoHelper.h: - * src/cppunit/TypeInfoHelper.cpp: Implementation is now always available - is CPPUNIT_HAVE_RTTI is not 0. This removes the need to use - different libraries. CPPUNIT_USE_TYPEINFO_NAME can be set on a - case by case basis for HelperMacros. - - * src/cppunit/TestFactoryRegistry.cpp: removed unused include of - TypeInfoHelper.h. - - * include/cppunit/TextTestProgressListener.h: - * src/cppunit/TextTestProgressListener.cpp: used endTest() instead - of done() to finalize. - - * src/msvc6/TestPlugInRunner/TestPlugIn.h: - * src/msvc6/TestPlugInRunner/TestPlugIn.cpp: updated to use the - new test plug-in system. - - * examples/simple/SimplePlugIn.cpp: - * examples/simple/simple_plugin.dsp: crossplatform test plug-in - example using 'simple'. - - * examples/msvc6/EasyTestPlugIn/*: projects replaced with the - crossplatform projecct examples/simple/simple_plugin.dsp. - -2002-04-19 Baptiste Lepilleur - - * configure.in: added some makefile.am - - * contrib/readme.txt: updated. - - * contrib/bc5/bc5-makefile.zip: added borland 5.5 makefile. Contributed by - project cuppa. - - * src/cppunit/TypeInfoHelper.cpp: fixed implementation to be more - portable. - - -2002-04-18 Baptiste Lepilleur - - * bumped version to 1.9.3 - - * FAQ: added question about 4786 warning on VC++. - - * NEWS: updated. - - * contrib/msvc/readme.txt: moved to contrib/readme.txt. - - * contrib/xml-xsl/report.xsl: added XML style sheet contributed by - 'cuppa' project team (http://sourceforge.jp/projects/cuppa/) - - * examples/cppunittest/TestResultTest.h: - * examples/cppunittest/TestResultTest.cpp: added tests for - startTestRun()/endTestRun(). - - * examples/simple/*: added. A simple example. - - * include/cppunit/BriefTestProgressListener.h: - * src/cppunit/BriefTestProgressListener.cpp: added. Verbose progess listener - that print the test name before running the test. - - * include/cppunit/TestListener.h: added startTestRun()/endTestRun(). - - * include/cppunit/TestResult.h: - * src/cppunit/TestResult.cpp: added runTest(), to be called to run - a test by test runner. - - * src/cppunit/TextTestRunner.cpp: - * src/cppunit/TestRunner.cpp: updated to use TestResult::runTest(). - - * include/cppunit/plugin/PlugInManager.h: - * src/cppunit/PlugInManager.cpp: added. Managers for all loaded plug-ins. - - * include/cppunit/plugin/TestPlugInDefaultImpl.h: - * src/cppunit/TestPlugInDefaultImpl.cpp: renamed TestPlugInAdapter. All - implementations are empty. - - * include/cppunit/plugin/TestPlugInSuite.h: removed. - * src/cppunit/TestPlugInSuite.cpp: removed. Replaced by PlugInManager. - - * include/cppunit/plugin/TestPlugIn.h: rewrote the plug-in interface to - provide more versatility. updated macros to match new interface. - - * include/cppunit/extensions/TestFactoryRegistry.h: - * include/cppunit/extensions/TestFactoryRegistry.cpp: Added unregisterFactory(). - Added convenience method addRegistry(). Rewrote registry life cycle - management. AutoRegisterSuite can now detect that the registry has been - destroy and not call to it to unregister its test factory. - - * include/cppunit/extensions/AutoRegisterTest.h: on destruction, the registered - factory is unregistered from the registry. - - * include/cppunit/extensions/HelperMacros.h: added macros - CPPUNIT_REGISTRY_ADD_TO_DEFAULT and CPPUNIT_REGISTRY_ADD to help - build test suite hierarchy. - - * src/cppunit/msvc/DllPlugInTester/*: moved to src/cppunit/DllPlugInTester/. - - * src/cppunit/DllPlugInTester/DllPlugInTester.cpp: removed UNICODE stuffs. Use - the PlugInManager instead of PlugInTestSuite. Simplified: only one test on - command line, but many DLL can be specified. Added configurations to link - against cppunit dll, those are now the default configuration (static linking - don't make much sense for plug-in). - -2002-04-15 Baptiste Lepilleur - - * release 1.9.2. - - * NEWS: updated. - - * configure.in: added include/cppunit/config/Makefile and - include/cppunit/plugin/Makefile to the list of target. - - * doc/CppUnit-win.dox: enabled generation of HTML Help documentation. - - * include/cppunit/config/Makefile.am: - * include/cppunit/plugin/Makefile.am: added. - - * include/cppunit/config-bcb5.h: - * include/cppunit/config-msvc6.h: - * include/cppunit/config-mac.h: moved to include/cppunit/config/. - - * include/cppunit/Portability.h: updated config files location. Added macros - CPPUNIT_STRINGIZE and CPPUNIT_JOIN (implementation adapted from boost.org). - Added macro CPPUNIT_MAKE_UNIQUE_NAME. - - * include/cppunit/Test.h: modified methods order. - - * include/cppunit/extensions/HelperMacros.h: renamed macro - __CPPUNIT_MAKE_UNIQUE_NAME to CPPUNIT_MAKE_UNIQUE_NAME and moved its - definition to include/cppunit/Portability.h. - - * include/cppunit/extensions/TestDecorator.h: Inherits Test instead of TestLeaf. - - * include/cppunit/plugin/DynamicLibraryManager.h: - * src/cppunit/DynamicLibraryManager.cpp: added. DLL manager (load & lookup - symbol). - - * src/cppunit/BeOsDynamicLibraryManager.cpp: - * src/cppunit/UnixDynamicLibraryManager.cpp: - * src/cppunit/Win32DynamicLibraryManager.cpp: added. Implementation of - platform dependent methods of DynamicLibraryManager. - - * include/cppunit/plugin/DynamicLibraryManagerException.h: - * src/cppunit/DynamicLibraryManagerException.cpp: added. Exception thrown - by DynamicLibraryManager. - - * include/cppunit/plugin/TestPlugIn.h: added. CppUnitTestPlugIn interface - definition. Helper macros to implements plug-in. - - * include/cppunit/plugin/TestPlugInSuite.h: - * src/cppunit/plugin/TestPlugInSuite.cpp: added. A suite to wrap a test - plug-in. - - * include/cppunit/plugin/TestPlugInDefaultImpl.h: - * src/cppunit/TestPlugInDefaultImpl.cpp: added. A default implementation - of the test plug-in interface. - - * src/msvc6/DllPlugInTester/DllPlugInTester.cpp: updated to use the - new TestPlugIn. - - * examples/cppunittest/TestResultCollectorTest.cpp: fixed typo. - -2002-04-14 Baptiste Lepilleur - - * NEWS: updated. - - * include/cppunit/TestSucessListener.h: - * src/cppunit/TestSucessListener.cpp: renamed TestSuccessListener - - * doc/cookbook.dox: - * src/msvc6/DllPlugInTester/DllPlugInTester.cpp: - * examples/cppunittest/TestResultCollectorTest.h: - * examples/cppunittest/TestResultCollectorTest.cpp: - * examples/cppunittest/XmlOutputterTest.h: - * examples/cppunittest/XmlOutputterTest.cpp: - * include/cppunit/CompilerOutputter.h: - * include/cppunit/TestListener.h: - * include/cppunit/XmlOutputter.h: - * src/cppunit/XmlOutputter.cpp: - * src/cppunit/CompilerOutputter.cpp: fixed 'success' typo (was misspelled - 'sucess'). - - * include/cppunit/TestResultCollector.h: - * src/cppunit/TestResultCollector.cpp: updated (renaming of - TestSucessListener). - - * src/cppunit/XmlOutputter.cpp: - * examples/cppunittest/XmlOutputterTest.cpp: Changed SucessfulTests tag to - SucessfulTests. - -2002-04-13 Baptiste Lepilleur - - * include/cppunit/XmlOutputter.h: - * src/cppunit/XmlOutputter.cpp: Made XML output more human readable. Idented element. - - * examples/cppunittest/XmlUniformiser.h: - * examples/cppunittest/XmlUniformiser.cpp: - * examples/cppunittest/XmlUniformiserTest.cpp: modified to ignore trailing space - at the end of element content. - -2002-04-13 Baptiste Lepilleur - - * Snapshot 1.9.0 - - * NEWS: updated - - * doc/other_documentation.dox: addded new module for test plug-in. - - * include/msvc6/DSPlugin/TestRunnerDSPlugin.h: - * include/msvc6/DSPlugin/TestRunnerDSPlugin_i.c: added. Those file are - generated by project src/msvc/DSPlugin. They are provided to allow - compilation of TestRunner without compiling DSPlugIn which does not - build on VC++ 7. - - * examples/examples.dsw: removed DSPlugIn for workspace (fail to build - with VC++ 7). Added DllPlugInTester.dsp to workspace. - - * examples/msvc6/TestPlugIn/TestPlugIn.dsp: added post-build unit testing - using the new DllPlugInTester. - - * examples/msvc6/EasyTestPlugIn/*: a new project that - demonstrates the use of CPPUNIT_TESTPLUGIN_IMPL to create a test plug-in. - - * src/cppunit/cppunit.dsw: - * src/TestPlugInRunner.dsw: - * src/TestRunner.dsw: removed. Should use src/CppUnitLibraries.dsw instead. - - * include/cppunit/ui/text/TestRunner.h: - * src/cppunit/TextTestRunner.cpp: removed findTestName() method. Replaced - by Test::findTest(). - - * src/msvc6/DSPlugIn/DSPlugIn.dsp: - * src/msvc6/DSPlugIn/DSAddIn.h: changed include for add-in. MIDL generates - files in sub-directory ToAddToDistribution. Generated file should be - copied to include/msvc6/DSPlugin when modified. This remove the dependecy - of MfcTestRunner on DSPlugIn. - - * src/msvc6/testrunner/ListCtrlFormatter.h: - * src/msvc6/testrunner/ListCtrlFormatter.cpp: added GetNextColumnIndex(). - - * src/msvc6/testrunner/src/TestRunnerDlg.h: - * src/msvc6/testrunner/src/TestRunnerDlg.cpp: set column number in - MsDevCallerListCtrl when initializing the list. - - * src/msvc6/testrunner/src/MsDevCallerListCtrl.h: - * src/msvc6/testrunner/src/MsDevCallerListCtrl.cpp: column indexes for - file and line number are no longer static. Added methods to set those - indexes. Changed DSPlugIn header name. - - * include/msvc6/testrunner/TestPlugInInterface.h: fixed inclusion of - windows header for WINAPI. Added macro CPPUNIT_TESTPLUGIN_IMPL to - automatically implements a test plug-in. - - * src/msvc6/DllPlugInTester/*: added new project. A application to test DLL - and report using CompilerOutputter. Target for post-build testing and - debugging of DLL. - - -2002-04-13 Baptiste Lepilleur - - * include/cppunit/CompilerOutputter.h: - * src/cppunit/CompilerOutputter.h: deprecated defaultOuputter(). Added - setLocationFormat() and format specifiation in constructor. A string - that represent the location format is used to output the location. - Default format is defined by CPPUNIT_COMPILER_LOCATION_FORMAT. - - * include/cppunit/config-msvc6.h: - * include/cppunit/Portability.h: added CPPUNIT_COMPILER_LOCATION_FORMAT. - Use gcc location format if VC++ is not detected. - - * include/cppunit/Test.h: fixed documentation. - - * include/cppunit/TestListener.h: added startSuite() and endSuite() - callbacks. Added new example to documentation. - - * include/cppunit/TestResult.h: - * src/cppunit/TestResult.cpp: - * include/cppunit/TestComposite.h: - * src/cppunit/TestComposite.cpp: Updated to inform the listeners. - - * src/qttestrunner/TestBrowserDlgImpl.cpp: used Test new composite - interface instead of RTTI to explore the test hierarchy. - - * examples/cppunittest/MockTestListener.h: - * examples/cppunittest/MockTestListener.cpp: updated,added support for - startSuite() and endSuite(). - - * examples/cppunittest/TestResultTest.h: - * examples/cppunittest/TestResultTest.cpp: added tests for startSuite() - and endSuite(). - -2002-04-12 Baptiste Lepilleur - - * Makefile.am: added examples/qt to tar ball release. - - * TODO: heavily updated. - - * contrib/msvc/CppUnit*.wwtpl: changed base class for unit test to TestFixture. - - * include/cppunit/Test.h: removed toString() method. Not used by the framework - and source of confusions with getName(). - Added getChildTestCount() and getChildTestAt(), introducing the composite pattern - at top level. Added utility methods findTest() and findTestPath(). - - * src/cppunit/Test.cpp: added. Implementation of new utility methods. - - * include/cppunit/TestCase.h: - * src/cppunit/TestCase.cpp: inherits TestLeaf. Removed toString(), run(void) and - defaultResult(). Removed default constructor. - - * src/cppunit/TestCase.cpp: - * src/cppunit/TestSuite.cpp: fixed some includes that used "" instead of <>. - - * include/cppunit/TestComposite.h: - * src/cppunit/TestComposite.cpp: added. Common implementation of Test for composite - tests (TestSuite). - - * include/cppunit/TestFailure.h: - * src/cppunit/TestFailure.cpp: removed toString(). - - * include/cppunit/TestLeaf.h: - * src/cppunit/TestLeaf.cpp: added. Common implementation of Test for single test - (TestCase). - - * include/cppunit/TestListener.h: added TimingListener example to documentation. - - * include/cppunit/TestPath.h: - * src/cppunit/TestPath.cpp: added. List of test traversed to access a test in the - test hierarchy. - - * include/cppunit/TestRunner.h: added. Generic TestRunner. - - * src/cppunit/TestRunner.cpp: moved to TextTestRunner.cpp. Added new implementation - of includecppunit/TestRunner.h. - - * include/cppunit/TestSuite.h: - * src/cppunit/TestSuite.cpp: inherits TestComposite and implements new Test - interface. Removed toString(). - - * src/cppunit/TextTestRunner.cpp: moved from TestRunner.cpp. Implementation of - include/cppunit/ui/text/TestRunner.h. - - * include/cppunit/extensions/RepeatedTest.h: - * src/cppunit/RepeatedTest.cpp: removed toString(). - - * include/cppunit/extensions/TestDecorator.h: inherits TestLeaf. - Removed toString() - - * include/cppunit/XmlOutputter.h: - * src/cppunit/XmlOutputter.cpp: - * examples/cppunittest/XmlOutputterTest.cpp: - * examples/cppunittest/XmlOutputterTest.h: XML outputter now escape node content. - Add unit test for that bug (#540944). Added style sheet support. Modified - XML structure: failure message as its own element. - - * src/msvc/testrunner/TestRunnerModel.h: - * src/msvc/testrunner/TestRunnerModel.cpp: used Test::findTest() to find a test - by name instead of using RTTI. Added toAnsiString() for convertion when - compiling as UNICODE. - - * src/msvc/testrunner/TreeHierarchyDlg.h: - * src/msvc/testrunner/TreeHierarchyDlg.cpp: used new composite interface of Test - to explorer the test hierarchy instead of RTTI. - - * examples/cppunittest/TestPathTest.h: - * examples/cppunittest/TestPathTest.cpp: added, unit tests for TestPath. - - * examples/cppunittest/TestCaseTest.h: - * examples/cppunittest/TestCaseTest.cpp: added test for TestLeaf. - - * examples/cppunittest/TestSuiteTest.h: - * examples/cppunittest/TestSuiteTest.cpp: added test for TestComposite and - new Test interface. - -2002-04-11 Baptiste Lepilleur - - * configure.in: bumped version to 1.9.0 - - * NEWS: added version 1.9.0 - -2002-04-11 Baptiste Lepilleur - - * doc/FAQ: removed question about the Exception::operator =() problem. - - * release 1.8.0 - -2002-04-11 Steve M. Robbins - - * include/cppunit/ui/mfc/Makefile.am: - * include/cppunit/ui/qt/Makefile.am: - * include/cppunit/ui/text/Makefile.am: Set the libcppunitincludedir - variable. Correct case of header file ui/qt/Config.h. - - * configure.in: Output the new include/*/Makefiles. - -2002-04-10 Baptiste Lepilleur - - * Makefile.am: removed directory cppunitui from copy when making - the dist. - - * include/cppunit/ui: added Makefile.am for dist and install. - -2002-04-10 Baptiste Lepilleur - - * include/cppunitui/: moved to include/cppunit/ui (fix unix - install problem). - - * doc/cookbook.dox: - * examples/cppunittest/CppUnitTestMain.cpp: - * examples/msvc/CppUnitTestApp/HostApp.cpp: - * examples/msvc/HostApp/HostApp.cpp: - * examples/qt/Main.Cpp: - * examples/src/cppunit/TestRunner.cpp: - * examples/src/msvc6/TestRunner/TestRunner.cpp: - * examples/src/qttestrunner/TestRunner.cpp: updated to use - instead of in include directives. - - * doc/CppUnit-win.dox: generated documentation give the include - path at the bottom of the page for each class. - - * NEWS: added compatibility break for 1.7.10 users. - -2002-04-05 Baptiste Lepilleur - - * examples/cppunittest/CppUnitTestMain.cpp: never wait for a key press. - -2002-04-04 Baptiste Lepilleur - - * NEW: added CPPUNIT_ASSERT_EQUAL_MESSAGE compatiblity break. - - * include/cppunit/TestAssert.h: changed arguments order for - CPPUNIT_ASSERT_EQUAL_MESSAGE. 'message' is now the first argument - instead of the last (like CPPUNIT_ASSERT_MESSAGE). - - * examples/cppunittest/MockTestCase.cpp: - * examples/cppunittest/MockTestListener.cpp: updated to reflect - change on CPPUNIT_ASSERT_EQUAL_MESSAGE. - -2002-03-28 Baptiste Lepilleur - - * configure.in: bumped version to 1.7.11 - -2002-03-28 Baptiste Lepilleur - - * doc/cookbook.html: removed. Replaced by cookbook.doc. - - * doc/cookbook.dox: added, conversion of cookbook.html to Doxygen - format. - - * doc/other_documentation.dox: added groups definition. - - * doc/Makefile.am: replaced cookbook.html by cookbook.dox - - * doc/Doxyfile.in: added predefined CPPUNIT_HAVE_CPP_SOURCE_ANNOTATION. - Replaced cookbook.html by cookbook.dox. - - * include/cppunitui/mfc/TestRunner.h: added, extracted from - include/msvc6/testrunner/TestRunner.h. Moved class TestRunner to - namespace CppUnit::MfcUi. - - * include/msvc6/testrunner/TestRunner.h: deprecated. A simple - typedef to CppUnit::MfcUi::TestRunner. - - * include/textui/TestRuner.h: added, extracted from - include/cppunit/TextTestRunner.h. - - * src/cppunit/TextTestRunner.cpp: renamed TestRunner.cpp. Moved - into namespace CppUnit::TextUi. - - * src/msvc6/testruner/TestRunner.cpp: moved into namespace - CppUnit::MfcUi. - - * src/cppunit/CompilerOutputter.cpp: removed printing "- " before - NotEqualException addional message, for consistency between - different TestRunner (Mfc,Text...) - - * include/cppunit/Asserter.h: - * include/cppunit/CompilerOutputter.h: - * include/cppunit/Exception.h: - * include/cppunit/NotEqualException.h: - * include/cppunit/Outputter.h: - * include/cppunit/SourceLine.h: - * include/cppunit/TestAssert.h: - * include/cppunit/TestCaller.h: - * include/cppunit/TestFailure.h: - * include/cppunit/TestFixture.h: - * include/cppunit/TestListener.h: - * include/cppunit/TestResult.h: - * include/cppunit/TestResultCollector.h: - * include/cppunit/TestSucessListener.h: - * include/cppunit/TestSuite.h: - * include/cppunit/TextTestProgressListener.h: - * include/cppunit/TextTestRunner.h: - * include/cppunit/XmlOutputter.h: - * include/cppunit/extensions/AutoRegisterSuite.h: - * include/cppunit/extensions/HelperMacros.h: - * include/cppunit/extensions/TestFactoryRegistry.h: - * include/cppunit/extensions/TestSuiteBuilder.h: - * include/cppunit/extensions/TestSuiteFactory.h: doc - update. organization in groups. - - * examples/msvc6/CppUnitTestApp/CppUnitTestApp.cpp: - * examples/msvc6/HostApp/HostApp.cpp: updated to use - CppUnit::MfcUi::TestRunner. - - * examples/cppunittest/CppUnitTestMain.cpp: updated to use - CppUnit::TextUi::TestRunner. - -2002-03-27 Baptiste Lepilleur - - * include/msvc/testrunner/TestRunner.h: updated doc. reindented. - - * include/cppunit/Asserter.h: - * include/cppunit/Asserter.cpp: - * include/cppunit/TestResultCollector.h: - * include/cppunit/TestResult.h: - * include/cppunit/SynchronizedObject.h: - * include/cppunit/extensions/TestCaller.h: doc update. - - * include/cppunitui/qt/TestRunner.h: doc update. - -2002-03-27 Baptiste Lepilleur - - * makefile.am: added src/CppUnitLibraries.dsw, new contribution, and - src/qttestrunner. - - * TODO: updated (doc). - - * contrib/msvc/AddingUnitTestMethod.dsm: added, submitted by - bloodchen@hotmail.com. - - * constrib/msvc/readme.txt: updated. - - * include/cppunit/TestAsserter.h: - * include/cppunit/SourceLine.h: updated doc. - - * include/cppunit/TestCaller.h: reindented. updated doc. - - * include/cppunit/extensions/HelperMacros.h: relaxed constraint on fixture. - Fixture base class may be TestFixture instead of TestCase. - - * include/cppunit/TestCase.h: - * src/cppunit/TestCase.h: TestCase inherits TestFixture for setUp() and - tearDown() definition. Moved documentation to TestFixture. - - * include/cppunit/TestFixture.h: updated documentation. - - * include/cppunit/TestRegistry.h: - * src/cppunit/TestRegistry.cpp: Removed. Replaced by TestFactoryRegistry. - - * include/cppunit/TextTestRunner.h: - * src/cppunit/TextTestRunner.cpp: made printing progress using a - TextTestProgressListener optional. - - * examples/cppunittest/ExceptionTest.h: - * examples/cppunittest/HelperMacrosTest.h: - * examples/cppunittest/HelperMacrosTest.cpp: - * examples/cppunittest/NotEqualException.h: - * examples/cppunittest/OrthodoxTest.h: - * examples/cppunittest/RepeatedTest.h: - * examples/cppunittest/TestAssertTest.h: - * examples/cppunittest/TestCallerTest.h: - * examples/cppunittest/TestDecoratorTest.h: - * examples/cppunittest/TestFailureTest.h: - * examples/cppunittest/TestResultCollectorTest.h: - * examples/cppunittest/TestResultTest.h: - * examples/cppunittest/TestSetUpTest.h: - * examples/cppunittest/TestSuiteTest.h: - * examples/cppunittest/XmlOutputterTest.h: - * examples/cppunittest/XmlOutputterTest.cpp: - * examples/cppunittest/XmlUniformizerTest.h: - * examples/cppunittest/XmlUniformizerTest.cpp: changed base class for fixture - from TestCase to TestFixture. - - * examples/hierarchy/BoardGameTest.h: - * examples/hierarchy/ChessTest.h: - * examples/hierarchy/main.cpp: updated to use HelperMacros for correct - fixture instantiation (the ChessBoard::testReset test case was using - BoardGame fixture instance instead of ChessBoard). - -2002-03-26 Baptiste Lepilleur - - * configure.in: bumped version to 1.7.9 - -2002-03-26 Baptiste Lepilleur - - * src/msvc6/testpluginrunner/TestPlugInRunner.dsp: fixed release configuration. - -2002-03-25 Baptiste Lepilleur - - * include/cppunit/makefile.am: removed TestRegistry.h - - * include/cppunit/TestRegistry.h: removed. Obsolete, replaced by - TestFactoryRegistry. - - * src/cppunit/makefile.am: removed TestRegistry.cpp. Added cppunit_dll.dsp. - - * include/cppunit/CompilerOutputter.h: - * include/cppunit/NotEqualException.h: - * include/cppunit/SynchronizedObject.h: - * include/cppunit/TestFixture.h: - * include/cppunit/TestListener.h: - * include/cppunit/TestResult.h: - * include/cppunit/TestSucessListener.h: - * include/cppunit/TextOutputter.h: - * include/cppunit/TextTestProgressListener.h: - * include/cppunit/TextTestResult.h: - * include/cppunit/XmlOutputter.h: - * include/cppunit/extensions/TestFactory.h: - * include/cppunit/extensions/TestFactoryRegistry.h: - * include/cppunit/extensions/TestSuiteBuilder.h: - * include/cppunit/extensions/TestSuiteFactory.h: minor doc update. - - * include/cppunit/TestFixture.h: added DLL export. - - * include/cppunit/msvc6/TestPlugInInterface.h: updated doc. Added automatic - exportation of TestPlugIn publishing function. - - * src/cppunit/TestCase.cpp: - * include/cppunit/TestCase.h: inherits setUp() and tearDown() from - class TestFixture. - -2002-03-25 Baptiste Lepilleur - - * configure.in: bumped version to 1.7.7 - -2002-03-25 Baptiste Lepilleur - - * include/cppunit/config-msvc6.h: - * include/cppunit/Portability.h - * include/cppunit/extensions/TestFactoryRegistry.h - * include/cppunit/TestResult.h - * include/cppunit/TestResultCollector.h - * include/cppunit/TestSuite.h - * include/cppunit/TextTestRunner.h - * include/cppunit/XmlOutputter.h: removed warning when compiling CppUnit - as DLL. - - * src/cppunit/DllMain.cpp: added some defines to speed up compilation a bit. - -2002-03-25 Baptiste Lepilleur - - * INSTALL-WIN32.txt: updated for MFC Unicode TestRunner. - - * src/msvc6/testrunner/TestRunner.dsp: added Unicode configurations. - - * src/msvc6/testrunner/ListCtrlSetter.cpp: - * src/msvc6/testrunner/ListCtrlSetter.h: replaced usage of std::string by - CString for easier ansi/unicode switch. - - * src/msvc6/testrunner/MsDevCallerListCtrl.cpp: - * src/msvc6/testrunner/TestRunnerDlg.cpp: - * src/msvc6/testrunner/TestRunnerModel.cpp: - * src/msvc6/testrunner/TestRunnerModel.h: - * src/msvc6/testrunner/TreeHierarchyDlg.cpp: made changes to compile with - either ANSI and UNICODE support. - - * examples/msvc6/HostApp/HostApp.cpp: - * examples/msvc6/HostApp/HostApp.h: - * examples/msvc6/HostApp/HostAppDoc.cpp: - * examples/msvc6/HostApp/HostAppDoc.h: moved TestRunner execution to - HostApp::RunUnitTests() and removed the MainFrame application window. - - * examples/msvc6/HostApp/HostApp.dsp: added Unicode configurations. - -2002-03-24 Baptiste Lepilleur - - * INSTALL-WIN32.txt: added some info to build cppunit as a DLL. - - * include/cppunit/config-msvc6.h: added definition of macro CPPUNIT_API - when building or linking DLL. Defined CPPUNIT_BUILD_DLL when building, and - CPPUNIT_DLL when linking. - - * include/cppunit/Portability.h: added empty definition of macro - CPPUNIT_API when not building or using CppUnit as a DLL. When any of - those symbol is defined, the symbol CPPUNIT_NEED_DLL_DECL is set to 1. - - * include/cppunit/extensions/RepeatedTest.h: - * include/cppunit/extensions/TestDecorator.h: - * include/cppunit/extensions/TestSetUp.h: - * include/cppunit/TestCaller.h - * include/cppunit/extensions/TestFactory.h - * include/cppunit/extensions/TestFactoryRegistry.h - * include/cppunit/extensions/TypeInfoHelper.h - * include/cppunit/Asserter.h - * include/cppunit/Exception.h - * include/cppunit/NotEqualException.h - * include/cppunit/SourceLine.h - * include/cppunit/SynchronizedObject.h - * include/cppunit/Test.h - * include/cppunit/TestAssert.h - * include/cppunit/TestCase.h - * include/cppunit/TestFailure.h - * include/cppunit/TestListener.h - * include/cppunit/TestResult.h - * include/cppunit/TestSuite.h - * include/cppunit/CompilerOutputter.h - * include/cppunit/Outputter.h - * include/cppunit/TestResultCollector.h - * include/cppunit/TestSuccessListener.h - * include/cppunit/TextOutputter.h - * include/cppunit/TextTestProgressListener.h - * include/cppunit/TextTestResult.h - * include/cppunit/TextTestRunner.h - * include/cppunit/XmlOutputter.h: added CPPUNIT_API for DLL export. - - * include/cppunit/TestSuite.h: - * src/cppunit/TestSuite.cpp: reindented - - * include/cppunit/extensions/TestSetUp.h: - * src/cppunit/TestSetUp.cpp: added .cpp. extracted inline method and moved - them to cpp file. - - * src/cppunit/DllMain.cpp: added, contains Dll entry point. - -2002-03-06 Baptiste Lepilleur - - * src/cppunit/TextTestProgressListener.cpp: flush the stream after each - progess step. - -2002-03-03 Baptiste Lepilleur - - * configure.in: updated version number to 1.7.4 - -2002-03-03 Baptiste Lepilleur - - * include/cppunit/makefile.am: - * src/cppunit/makefile.am: added missing SynchronizedObject and - TextOutputter.h. - - * generated 1.7.3 tar ball. - -2002-02-29 Baptiste Lepilleur - - * inclued/cppunit/XmlOutputter.h: - * inclued/cppunit/XmlOutputter.cpp: added optional parameter to constructor - to specify the encoding. - - * configure.in: updated version number to 1.7.3 - -2002-02-28 Baptiste Lepilleur - - * NEW: updated and restructured. - - * include/cppunit/CompilerOutputter.h: - * src/cppunit/CompilerOutputter.cpp: - updated against TestResultChange. Changed TestResult to TestResultCollector. - - * include/cppunit/extensions/HelperMacros.h: minor documentation fix. - - * include/cppunit/Outputter.h: added. Abstract base class for all Outputter. - - * include/cppunit/Portability.h: made the fix on OStringStream suggested by - Bob Summerwill to remove level 4 warning with VC++. - - * include/cppunit/TestAssert.h: added macro CPPUNIT_ASSERT_EQUAL_MESSAGE. - - * src/cppunit/TestFailure.cpp: - * include/cppunit/TestFailure.h: added method clone() to duplicate a - failure. Made all method virtual. - - * include/cppunit/TestListener.h: changed signature of addFailure() to - addFailure( const TestFailure &failure ). Failure is now only a temporary - object. - - * include/cppunit/Outputter.h: added. Abstract base class for all - outputter. Used by TextTestRunner. - - * include/cppunit/SynchronizedObject.h: - * src/cppunit/SynchronizedObject.cpp: added. Class extracted from - TestResult. Base class for objects that can be accessed from different - threads. - - * include/cppunit/TestResult.h: TestFailure.h is no longer included. - - * include/cppunit/TestResult.h: - * src/cppunit/TestResult.cpp: extracted all methods related to keeping track - of the result to the new TestResultCollector class which is a TestListener. - - * include/cppunit/TestResultCollector.h: - * src/cppunit/TestResultCollector.cpp: added. TestListener which kept track - of the result of the test run. All failure/error, and tests are tracked. - - * include/cppunit/TestSucessListener.h: - * src/cppunit/TestSucessListener.cpp: added. TestListener extracted from - TestResult. Is responsible for wasSucessful(). - - * include/cppunit/TestCase.h: - * src/cppunit/TestCase.cpp: reindented. - - * include/cppunit/TextOutputter.h: - * src/cppunit/TextOutputter.cpp: added. Copied from the deprecated - TextTestResult and modified to act as an Ouputter. - - * include/cppunit/TextTestProgressListener.h: - * src/cppunit/TextTestProgressListener.cpp: Copied from the deprecated - TextTestResult and modified to print the dot while the test are running. - - * include/cppunit/TextTestResult.h: - * src/cppunit/TextTestResult.cpp: updated against TestResult change. - No compatiblity break. Deprecated. - - * include/cppunit/TextTestRunner.h: - * src/cppunit/TextTestRunner.cpp: updated to work with the new TestResult. - Use TextTestProgressListener and TextOutputter instead of TextTestResult. - Any outputter with interface Outputter can be used to print the test result - (CompilerOutputter, XmlOutputter, TextOutputter...) - - * include/cppunit/XmlOutputter.h: - * src/cppunit/XmlOutputter.cpp: updated against TestResultChange. - Changed TestResult to TestResultCollector. - - * src/msvc6/TestRunnerDlg.h: - * src/msvc6/TestRunnerDlg.cpp: fixed the 'fullrowselect' feature of the - list view. The dialog is a TestListener itself, it no longer use the - GUITestResult class. - - * src/msvc6/TestRunner.rc: moved the "autorun test button" in such a way that - it did not overlap the progress bar anymore. - - * src/msvc6/MfcSynchronizationObject.h: added. Generic SynchronizedObject - lock for MFC. - - * src/msvc6/GUITestResult.h : - * src/msvc6/GUITestResult.cpp : removed. - - * src/qttestrunner/TestRunnerModel.h: - * src/qttestrunner/TestRunnerModel.cpp: changed addFailure() signature to - reflect change on TestListener. - - * examples/cppunittest/CppUnitTestMain.cpp: updated to use the new Outputter - abstraction and TextTestRunner facilities. - - * examples/cppunittest/FailingTestCase.h: - * examples/cppunittest/FailingTestCase.cpp: removed. Replaced by MockTestCase. - - * examples/cppunittest/FailingTestCase.h: - * examples/cppunittest/FailingTestCase.h: - - * examples/cppunittest/HelperMacrosTest.h: - * examples/cppunittest/HelperMacrosTest.cpp: Updated against TestResult change. - Use MockTestListener instead of TestResult to check for sucess or failure. - - * examples/cppunittest/MockTestListener.h: - * examples/cppunittest/MockTestListener.cpp: the class now behave like a mock - object. - - * examples/cppunittest/MockTestCase.h: - * examples/cppunittest/MockTestCase.cpp: added. Mock TestCase object. - - * examples/cppunittest/OrthodoxTest.h: - * examples/cppunittest/OrthodoxTest.cpp: Updated against TestResult change. - Use MockTestListener instead of TestResult to check for sucess or failure. - - * examples/cppunittest/SynchronizedTestResult.h: Updated against TestResult - change. - - * examples/cppunittest/TestCallerTest.h: - * examples/cppunittest/TestCallerTest.cpp: Updated against TestResult change. - Use MockTestListener instead of TestResult. - - * examples/cppunittest/TestCaseTest.h: - * examples/cppunittest/TestCaseTest.cpp: Updated against TestResult change. - Use MockTestListener and MockTestCase instead of FailingTestCase and TestResult. - - * examples/cppunittest/TestDecoratorTest.h: - * examples/cppunittest/TestDecoratorTest.cpp: Updated against TestResult change. - Use MockTestCase instead of FailingTestCase. - - * examples/cppunittest/TestListenerTest.h: - * examples/cppunittest/TestListenerTest.cpp: removed. Those unit tests have been - rewrote and moved to TestResultTest. - - * examples/cppunittest/TestResultTest.h: - * examples/cppunittest/TestResultTest.cpp: Updated to test the new interface. - Tests from TestListenerTest have been moved here. - - * examples/cppunittest/TestResultCollectorTest.h: - * examples/cppunittest/TestResultCollectorTest.cpp: added. Tests for the class - that been extracted from TestResult. - - * examples/cppunittest/TestSetUpTest.h: - * examples/cppunittest/TestSetUpTest.cpp: renamed SetUp inner class to MockSetUp. - Changed interface to be more akin to a Mock object. - - * examples/cppunittest/TestSuiteTest.h: - * examples/cppunittest/TestSuiteTest.cpp: Updated against TestResult change, - and rewrote to use MockTestCase instead of FailingTestCase. - - * examples/cppunittest/XmlOutputterTest.h: - * examples/cppunittest/XmlOutputterTest.cpp: Updated against TestResult change. - Added some utility methods to make the update easier. - -2001-10-28 Steve M. Robbins - - * INSTALL-unix: Add note about cygwin. - -2001-10-24 Baptiste Lepilleur - - * examples/msvc6/CppUnitTestApp/CppUnitTestApp.dsp: - * examples/msvc6/HostApp/HostApp.dsp: use custom file build instead - of post-build/pre-link step to copy the TestRunner DLL to the - Release/Debug directory. - - * src/msvc6/ProgressBar.cpp: - * src/msvc6/ProgressBar.h: - * src/msvc6/TestRunner.rc: - * src/msvc6/TestRunnerDlg.cpp: - * src/msvc6/TestRunnerDlg.h: - * src/msvc6/testRunner.dsp: - * src/msvc6/TestRunnerModel.cpp: - * src/msvc6/TestRunnerModel.h: included Gigi Sayfan (gigi@morphink.com) - patch. The dialog can now be resized, and list view columns and dialog - sizes are saved. - - * src/msvc6/ProgressBar.cpp: - * src/msvc6/ProgressBar.h: Minor refactoring. - - * THANKS: added Gigi Sayfan to the list. - -2001-10-21 Steve M. Robbins - - * configure.in: Bump version to 1.7.2. - - * Release 1.7.1 (alpha). - - * Merged changes from cvs BRANCH_1_6; details follow. - - * examples/cppunittest/TestSetUpTest.h (class SetUp): Add - namespace qualifier to CppUnit::TestSetup() constructor call. - - * include/cppunit/Makefile.am (dist-hook): Restore hook to - remove config-auto.h from distribution. - - * doc/Makefile.am: Move the definition of htmldir inside if DOC - conditional. Add "else" branch to conditional with dummy targets - for install-data-hook and uninstall-local. Move all-local outside - the conditional, and move "dox" target into both branches of the - conditional. - -2001-10-20 Steve M. Robbins - - * examples/cppunittest/Makefile.am (cppunittestmain_SOURCES): - Include XmlUnformiserTest files. - - * doc/Doxyfile.in (GENERATE_MAN): Do not generate man pages. - * doc/Makefile.am: Do not make man directories. - -2001-10-19 Baptiste Lepilleur - - * include/cppunit/Exception.h: - * src/cppunit/Exception.cpp: what(), added back the throw() qualifier. - -2001-10-14 Baptiste Lepilleur - - * include/cppunitui/* : added, Qt TestRunner. - - * examples/qt/* : added, example showing the use of Qt TestRunner. - - * src/qttestrunner : added, source of the Qt TestRunner DLL. - -2001-10-08 Steve M. Robbins - - * src/cppunit/Exception.cpp (what): Remove "throw()" qualifier, to - match earlier change to header. - -2001-10-07 Baptiste Lepilleur - - * include/cppunit/CompilerTestResultOutputter.h : - renamed CompilerOutputter.h - - * src/cppunit/CompilerTestResultOutputter.cpp : - renamed CompilerOutputter.cpp - - * include/cppunit/CompilerTestResultOutputter.h : - * src/cppunit/CompilerTestResultOutputter.cpp : ajust max line length - for wrapping. Added static factory method defaultOutputter(). Print - the number of test runs on success. - - * include/cppunit/CompilerTestResultOutputter.h : renamed - CompilerOutputter.h. - - * src/cppunit/CompilerTestResultOutputter.cpp : renamed - CompilerOutputter.cpp. - - * examples/cppunittest/CppUnitTestMain.cpp : use factory method - CompilerTestResultOutputter::defaultOutputter(). - - * src/msvc6/DSPlugIn/DSPlugIn.dsp : removed COM registration in - post-build step. IT is automatically done by VC++ when the add-in is - added. Caused build to failed if the add-in was used in VC++. - - * NEWS : updated. - - * src/cppunit/TestAssert.cpp : modified deprecated assert - implementations to use Asserter. - - * examples/cppunittest/XmlTestResultOutputterTest.h : - renamed XmlOutputterTest.h. - - * examples/cppunittest/XmlTestResultOutputterTest.cpp : - renamed XmlOutputterTest.cpp. - - * NEWS : - * examples/cppunittest/CppUnitTestMain.cpp : - * examples/cppunittest/CppUnitTestMain.dsp : - * examples/cppunittest/Makefile.am : - * examples/cppunittest/XmlTestResultOutputterTest.h : - * examples/cppunittest/XmlTestResultOutputterTest.cpp : - * examples/msvc6/CppUniTestApp/CppUnitTestApp.dsp - * include/cppunit/CompilerOutputter.h : - * include/cppunit/Makefile.am : - * include/cppunit/XmlTestResultOutputter.h : - * src/cppunit/CompilerOutputter.cpp : - * src/cppunit/cppunit.dsp : - * src/cppunit/Makefile.am : - * src/cppunit/XmlTestResultOutputter.cpp : change due to renaming - CompilerTestResultOutputter to CompilerOutputter, - XmlTestResultOutputter to XmlOuputter, XmlTestResultOutputterTest - to XmlOutputterTest. - -2001-10-06 Baptiste Lepilleur - - * include/cppunit/CompilerTestResultOutputter.h : - * src/cppunit/CompilerTestResultOutputter.cpp : added. Output result - in a compiler compatible format. - - * src/cppunit/CppUnit.dsp : - * include/cppunit/MakeFile.am : - * src/cppunit/MakeFile.am : added CompilerTestResultOutputter.cpp - and CompilerTestResultOutputter.h. - - * examples/cppunittest/CppUnitTestMain.cpp : if -selftest is specified - on the command line, no standard test result are printed, but compiler - compatible result at printed. - - * examples/cppunittest/CppUnitTestMain.dsp : added post-build step to - run the test suite with -selftest. - - * NEWS : updated. - - * src/cppunit/TextTestRunner.cpp : skip a line after printing - progress. - -2001-10-06 Baptiste Lepilleur - - * examples/cppunittest/CppUnitTestMain.cpp : application returns - 0 is test suite run sucessfuly, 1 otherwise. - - * src/cppunit/Exception.cpp : bug fix, operator =() with VC++. - Removed call to std::exception::operator =() which is bugged - on VC++. - - * doc/FAQ : added a note explaining why the test - ExceptionTest.testAssignment used to fail. - - * NEWS : updated and detailed. - - * include/cppunit/TestResult.h : - * src/cppunit/TestResult.cpp : added reset(). - - * include/cppunit/TextTestRunner.h : - * src/cppunit/TextTestRunner.cpp : Constructor take an optional - TextTestRestult. The TextTestResult remain alive as long as - the runner. Added result() to retreive the result. Printing the - result is now optinal (enabled by default). - -2001-10-05 Baptiste Lepilleur - - * include/cppunit/Asserter.h : - * src/cppunit/Asserter.cpp : added. Helper to create assertion macros. - - * src/cppunit/cppunit.dsp : - * src/cppunit/Makefile.am : - * include/cppunit/Makefile.am : added Asserter.h and Asserter.cpp. - - * include/cppunit/Exception.h : - * src/cppunit/Exception.cpp : added constructor that take a - SourceLine argument. Deprecated static constant and old constructor. - Fixed some constness issues. - - * examples/cppunittest/ExceptionTest.cpp : Refactored. - - * NEWS : partially updated (need to be more detailed) - - * include/cppunit/NotEqualException.h : - * src/cppunit/NotEqualException.cpp : added constructor that take a - SourceLine argument. Deprecated old constructor. Added a third element - to compose message. - - * examples/cppunittest/NotEqualExceptionTest.cpp : moved to "Core" - suite. Added test for SourceLine() and additionalMessage(). - Refactored. - - * include/cppunit/SourceLine.h : - * src/cppunit/SourceLine.cpp : added. Result of applying - IntroduceParameterObject refactoring on filename & line number... - - * include/cppunit/TestAssert.h : - * src/cppunit/TestAssert.cpp : deprecated old assert functions. - added functions assertEquals() and assertDoubleEquals() which use - SourceLine. - - * src/cppunit/TestCase.cpp : Modified for SourceLine. - - * include/cppunit/TestFailure.h : - * src/cppunit/TestFailure.cpp : added failedTestName(), and - sourceLine(). - - * src/msvc6/testrunner/TestRunnerDlg.cpp : modified to use SourceLine. - - * include/cppunit/TextTestResult.h : - * src/cppunit/TextTestResult.cpp : corrected include order and - switched to angled brackets. Refactored. Don't print failure location - if not available. Not equal failure dump additional message if - available. - - * src/cppunit/TextTestRunner.cpp : run() now returns a boolean to - indicate if the run was sucessful. - - * src/cppunit/XmlTestResultOutputter.cpp : replaced itoa() with - OStringStream. Refactored. - - * examples/cppunittest/XmlUniformiser.h : - * examples/cppunittest/XmlUniformiser.cpp : - CPPUNITTEST_ASSERT_XML_EQUAL capture failure location. Refactored - checkXmlEqual(). - - * examples/cppunittest/XmlUniformiserTest.h : - * examples/cppunittest/XmlUniformiserTest.cpp : added test for - CPPUNITTEST_ASSERT_XML_EQUAL. - - * include/cppunit/XmlTestResultOutputter.h : - * src/cppunit/XmlTestResultOutputter.cpp : updated to use SourceLine. - -2001-10-05 Baptiste Lepilleur - - * NEWS : updated. - - * include/cppunit/Exception.h : added include Portability.h. - - * include/cppunit/TestResult.* : changed TestFailures to a deque. - added tests(). - - * examples/cppunittest/CppUnitTest.dsp : - * examples/cppunittest/MakeFile.am : - * examples/msvc6/CppUnitTestApp/CppUnitTestApp.dsp : Added - XmlTestResultOutputterTest.*, XmlUniformiser.*, XmlUniformiserTest.*, - UnitTestToolSuite.h, OutputSuite.h. - - * examples/msvc6/CppUnitTestApp/CppUnitTestApp.dsp : revised project - folders structure. Added missing NoteEqualExceptionTest.*. - - * examples/cppunittest/CppUnitTestSuite.cpp : added 'Output' and - 'UnitTestTool' suites. - - * src/cppunit/cppunit.dsp: removed estring.h. Revised project folders - structure. Removed TestRegistry.*. Added TestSetUp.h, - XmlTestResultOutputter.*. - - * src/cppunit/MakeFile.am: added XmlTestResultOutputter.*. - - * src/testrunner/TestRunnerDlg.cpp: removed disabled code. - -2001-10-03 Baptiste Lepilleur - - * include/cppunit/TestFailure.cpp : - * include/cppunit/TestFailure.h : fixed some constness issues. Added - argument to indicate the type of failure to constructor. Added - isError(). - - * include/cppunit/TestListener.h : removed addError(). addFailure() - now take a TestFailure as argument. - - * include/cppunit/TestResult.h : - * include/cppunit/TestResult.cpp : removed errors(). Refactored. Fixed - some constness issues. Added typedef TestFailures for vector returned - by failures(). failures() returns a const reference on the list of - failure. added testFailuresTotal(). Constructor can take an optional - synchronization object. - - * include/cppunit/TextTestResult.h : - * include/cppunit/TextTestResult.cpp : removed printErrors(). - Refactored. Updated to suit new TestResult, errors and failures are - reported in the same list. - - * examples/cppunittest/TestFailureTest.cpp : - * examples/cppunittest/TestFailureTest.h : modified to use the new - TestFailure constructor. Added one test. - - * examples/cppunittest/TestListenerTest.cpp: removed addError(). - Refactored to suit new TestListener. - - * examples/cppunittest/TestResultTest.h : - * examples/cppunittest/TestResultTest.cpp : modified to suit the - new TestResult. - -2001-10-02 Baptiste Lepilleur - - * include/cppunit/extensions/TestFactoryRegistry.h - * src/cppunit/TestFactoryRegistry.cpp : fixed memory leaks that - occured when a TestFactoryRegistry was registered into another - TestFactoryRegistry. - - * include/cppunit/extensions/AutoRegisterSuite.h : updated doc. - - * include/cppunit/extensions/HelperMacros.h : added macro - CPPUNIT_TEST_SUITE_NAMED_REGISTRATION to register a suite into - a named suite. Updated doc. - - * examples/cppunittest/CoreSuite.h: - * examples/cppunittest/ExtensionSuite.h: - * examples/cppunittest/HelperSuite.h: added, declaration of suite for - use with CPPUNIT_TEST_SUITE_NAMED_REGISTRATION. - - * examples/cppunittest/makefile.am : added HelperSuite.h, CoreSuite.h, - ExtensionSuite.h, CppUnitTestSuite.h and CppUnitTestSuite.cpp. - - * examples/cppunittest/CppUnitTestSuite.*: added. - - * examples/cppunittest/ExceptionTest.cpp: - * examples/cppunittest/TestAssertTest.cpp: - * examples/cppunittest/TestCaseTest.cpp: - * examples/cppunittest/TestFailureTest.cpp: - * examples/cppunittest/TestListenerTest.cpp: - * examples/cppunittest/TestResultTest.cpp: - * examples/cppunittest/TestSuiteTest.cpp: moved into named suite - "Core" using CPPUNIT_TEST_SUITE_NAMED_REGISTRATION. - - * examples/cppunittest/OrthodoxTest.cpp: - * examples/cppunittest/RepeatedTest.cpp: - * examples/cppunittest/TestDecoratorTest.cpp: - * examples/cppunittest/TestSetUpTest.cpp: moved into named suite - "Extension" using CPPUNIT_TEST_SUITE_NAMED_REGISTRATION. - - * examples/cppunittest/HelperMacrosTest.cpp: - * examples/cppunittest/TestCallerTest.cpp: moved into named suite - "Helper" using CPPUNIT_TEST_SUITE_NAMED_REGISTRATION. - - * examples/cppunittest/CppUnitTest.dsp : - * examples/msvc6/CppUnitTestApp/CppUnitTestApp.dsp : added - Makefile.am, HelperSuite.h, CoreSuite.h, ExtensionSuite.h, - CppUnitTestSuite.h and CppUnitTestSuite.cpp. - -2001-10-01 Baptiste Lepilleur - - * NEWS : updated. - - * doc/other_documentation.dox : added all the authors to the list of - authors. - - * examples/cppunittest/HelperMacrosTest.*: added unit tests for - CPPUNIT_TEST_FAIL & CPPUNIT_TEST_EXCEPTION. - - * examples/cppunittest/TestAssertTest.*: added unit tests for - CPPUNIT_FAIL. Corrected spelling error. Relaxed constraint on message - produced by CPPUNIT_ASSERT_MESSAGE. Refactored some tests. - - * include/cppunit/extensions/HelperMacros.h : added macro - CPPUNIT_TEST_EXCEPTION to create a test case for the specified method - that must throw an exception of the specified type. - - * include/cppunit/extensions/TestSuiteBuilder.h : made - makeTestName() public. Added addTestCallerForException() to add a - test case expecting an exception of the specified type to be - caught. - - * include/cppunit/TestAssert.h : added macro CPPUNIT_FAIL as a - shortcut for CPPUNIT_ASSERT_MESSAGE( message, false ). - -2001-09-30 Steve M. Robbins - - * configure.in: Set version to 1.7.0. - -2001-09-30 Steve M. Robbins - - * Release 1.6.1. - - * doc/footer.html: Do not meddle with font size. - - * doc/header.html: Add link to FAQ. Do not meddle with font size. - - * doc/Doxyfile.in (PROJECT_NAME): Set to "CppUnit", to be - consistent on capitalization. - (PROJECT_NUMBER): Include "Version" in the string. - - * doc/Makefile.am (EXTRA_DIST): Distribute FAQ. - - * Makefile.am (EXTRA_DIST): Distribute contrib/msvc/CppUnit.WWTpl - and contrib/msvc/readme.txt. - (dist-hook): Change line endings of these files. - - * include/cppunit/extensions/RepeatedTest.h - * src/cppunit/RepeatedTest.cpp (countTestCases, toString): - Add const qualifier to function. - -2001-09-30 Baptiste Lepilleur - - * contrib/msvc/CppUnit.WWTpl: added, template for WorkSpace Whiz! - to create new classes and unit tests. - - * doc/FAQ: - * INSTALL-WIN32.txt: moved FAQ from install-WIN32 to that file. Added - a generic question to hint at the helper macros. - - * include/cppunit/extensions/HelperMacros.h: bug #464844, moved - declaration of ThisTestCaseFactory from CPPUNIT_TEST_SUITE_END to - CPPUNIT_TEST_SUITE where the Fixture class name is available from - the macro parameter. - -2001-09-30 Steve M. Robbins - - * include/cppunit/config-mac.h: New. Macintosh configuration, - courtesy of Duane Murphy. - - * include/cppunit/Portability.h: Move include inside - #if-block that needs it. - - * doc/Makefile.am (doc-dist): Creates tar file of HTML doc files. - Remove all wildcarded filenames. Do not bother with manpages. - - * Makefile.am (EXTRA_DIST): Distribute INSTALL-unix and - cppunit-config.1. - (man_MANS): Install cppunit-config.1. - (doc-dist): Use "make doc-dist" in doc directory. - - * cppunit-config.1: Document --prefix and --exec-prefix. - - * cppunit-config.in (Usage): Remove "[LIBRARIES]" from help string. - -2001-09-29 Steve M. Robbins - - * configure.in: Set version to 1.6.1. - -2001-09-29 Baptiste Lepilleur - - * example/cppunittest/TestCaller.*: remove some memory leaks. - TestCaller exception catching features is now tested correctly. - Previous test tested nothing! - -2001-09-23 Steve M. Robbins - - * configure.in: Set version to 1.6.0. - - * Makefile.am (EXTRA_DIST): Add BUGS. - - * NEWS: Incorporate Baptiste's notes. - - * BUGS: New file for list of known bugs. - - * README: Note about file BUGS. - -2001-09-24 Baptiste Lepilleur - - * include/cppunit/TestAssert.h : changed header order to remove - warning on VC++ - - * include/cppunit/TestCaller.h : bugfix: threw 'new Exception' - instead of 'Exception'. - -2001-09-23 Steve M. Robbins - - * doc/footer.html: Put devel list in mailto tag. - - * doc/Makefile.am (man_MANS): Restore ability to install manpages. - (htmldir): HTML pages installed under $(pkgdatadir). - - * doc/other_documentation.dox: Reference cookbook.html - in same directory. Remove obsolete text. - - * configure.in: Do not set CFLAGS; remove --enable-debug-mode. - - * include/cppunit/Portability.h: - * include/cppunit/extensions/HelperMacros.h: Allow user - to request the old-style CU_TEST family of macros. - - * doc/Doxyfile.in (EXCLUDE_PATTERNS): Remove estring.h. - - * README: Add contact and bug-reporting info. - - * INSTALL-unix: New. Move the unix install notes here - from README. - - * AUTHORS: Put myself on the list. - -2001-09-21 Baptiste Lepilleur - - * include/cppunit/TestFailure.h : made destructor virtual. - - * INSTALL-WIN32.txt : added some more infos about DSPlugIn. - - * src/msvc6/DSPlugIn/DSPlugIn.rgs: added some registry data - that where missing to register the COM object. - - * src/msvc6/DSPlugIn/DSPlugIn.rc: updated some dll version info. - - * src/msvc6/DSPlugIn/DSPlugIn.dsp: fixed the custom build step to - register the DLL using regsvr32.exe. Added a post-build step to - copy the dll to the lib/ directory. This prevent a blocking - compilation error if the DLL is in use by VC++. - -2001-09-20 Steve M. Robbins - - * Makefile.am (snapshot): Replace "date -I" GNUism with portable - specification for ISO date format. - (dist-hook): Correct rule to change line endings for INSTALL-WIN32.txt. - - * include/cppunit/Portability.h: - * config/ac_cxx_have_strstream.m4 (AC_CXX_HAVE_STRSTREAM): Extend - to check for and use in preference to . - Patrick Hartling reports the former is required for the SGI - MIPSpro 7.3.1.2 compiler. - -2001-09-19 Baptiste Lepilleur - - * examples/cppunittest/makefile.am : added TestSetupTest.(cpp/h) - - * examples/examples.dsw: removed some unnecessary dependencies. - - * examples/msvc6/HostApp/HostApp.dsp: fixed release configuration - - * src/msvc6/DSPlugIn/DSPlugIn.dsp: fixed release configuration, and - disabled the custom build command that does not work. - - * include/cppunit/extensions/HelperMacros.h: reordered header to remove - some warning with VC++. - - * INSTALL-WIN32.txt : detailed what was in each project. Added a FAQ - about the failing test case in cppunittest. - -2001-09-19 Steve M. Robbins - - * README: Describe how to check if libtool is fixed. - - * Makefile.am (dist-hook): Include INSTALL-WIN32.txt in the list - of files to convert to MSDOS line endings. - (snapshot): Use ISO-8601 compliant date for filename. - (ACLOCAL_AMFLAGS): Specify local directory. - -2001-09-18 Steve M. Robbins - - * include/cppunit/TextTestResult.h: Change include from - to . Sugggested by Peer Sommerlund. - - * include/cppunit/Portability.h: Qualify ostrstream with std. - Suggested by Patrick Hartling. - -2001-09-18 Baptiste Lepilleur - - * examples/examples.dsw: - * examples/msvc6/CppUnitTestApp/CppUnitTestApp.dsw: - * examples/msvc6/HostApp/HostApp.dsw: - * examples/msvc6/TestPlugIn/TestPlugIn.dsw: Added missing - project dependency. - - * src/msvc6/DSPlugIn/DSPlugIn.dsp: fixed *.tlb output directory. - - * include/msvc6/testrunner/TestPlugInInterface.h: does not define - NOMINMAX if already defined. - -2001-09-17 Baptiste Lepilleur - - * Makefile.am: Added INSTALL-WIN32.txt to EXTRA_DIST. - - * INSTALL-WIN32.txt: added, short documentation for CppUnit and VC++. - - * include/cppunit/extensions/HelperMacros.h: bug #448363, removed - an extraneous ';' at the end of CPPUNIT_TEST_SUITE_END macro. - - * examples/cppunittest/TestCallerTest.cpp: bug #448332, fixed - memory leaks. - - * src/msvc6/testrunner/TestRunnerDlg.h: - * src/msvc6/testpluginrunner/TestPlugInRunnerDlg.h: - * src/msvc6/testpluginrunner/TestPlugInRunnerDlg.cpp: change to define - IDD to a dummy value when subclassing the dialog. - - * src/cppunit/cppunit.dsp: - * src/msvc6/testrunner/TestRunner.dsp: - * src/msvc6/testpluginrunner/TestPlugInRunner.dsp: - * examples/cppunitttest/CppUnitTestMain.dsp: - * examples/hierarchy.dsp: - * examples/msvc6/TestPlugIn/TestPlugIn.dsp: - * examples/msvc6/HostApp/HostApp.dsp: all configurations can be compiled. - - * src/msvc6/testpluginrunner/TestPlugInRunner.dsw: added dependency to - cppunit.dsp and TestRunner.dsp. - -2001-09-16 Steve M. Robbins - - * Revert TestFixture-related changes from 2001-07-15: - - * src/cppunit/cppunit.dsp (SOURCE): Remove TestFixture.h. - - * src/cppunit/TestCase.cpp (setUp, tearDown): Restore function - bodies. - - * include/cppunit/TestCase.h (class TestCase): Do not derive - from class TestFixture. Restore member functions setUp() - and tearDown(). - - * include/cppunit/TestCaller.h: Do not include - . - - * include/cppunit/Makefile.am (libcppunitinclude_HEADERS): Remove - TestFixture.h. - -2001-09-14 Baptiste Lepilleur - * src/msvc6/testrunner/TestRunner.dsp: fixed release configuration. - - * src/msvc6/testrunner/TestRunner.dsw: added DSPlugIn.dsp. TestRunner - depends on DSPlugIn. - - * src/msvc6/testrunner/TestRunner.cpp: - * src/msvc6/testrunner/TestRunnerDlg.h: - * src/msvc6/testrunner/TestRunnerDlg.cpp: - * src/msvc6/testrunner/MsDevCallerListCtrl.cpp: - * src/msvc6/testrunner/MsDevCallerListCtrl.h: - * src/msvc6/DSPlugIn/*: integrated patch from - Patrick Berny (PPBerny@web.de). An add-ins for VC++. Double-cliking - a failed test in the TestRunner, VC++ will open the source file and - go to the failure location. - - * src/cppunit/Exception.cpp: - * include/cppunit/Exception.h: compile fix, call to overrided - operator = of parent class failed. Using typedef to the parent - class fix that. - - * src/cppunit/cppunit.dsp: added TestFixture.h - - * src/cppunit/TestFactoryRegistry.cpp: removed which isn't - needed any more. - - * include/cppunit/TestCase.h: - * include/cppunit/TestSuite.h: - * include/cppunit/extensions/TestFactoryRegistry.h: added - include before any other includes to remove warning - with VC++. - - * include/cppunit/Portability.h: moved platform specific includes at - the beginning of the header. fixed CPPUNIT_HAVE_CPP_SOURCE_ANNOTATION - declaration. - - * include/cppunit/config-msvc6.h: removed pragma once (useless, should - be put in each header to have an effect). - -2001-08-07 Steve M. Robbins - - * doc/Makefile.am: Add workaround for broken Doxygen. - - * src/cppunit/TextTestResult.cpp (operator<<): Remove CppUnit:: - prefix. - - * configure.in: Add check for . - * src/cppunit/TestAssert.cpp: Use if not - available. - * src/cppunit/TestCase.cpp: Do not include . - - * include/cppunit/config-bcb5.h (HAVE_CMATH): - * include/cppunit/config-msvc6.h (HAVE_CMATH): Add. - - * src/cppunit/Exception.cpp: Qualify std::exception. - - * examples/cppunittest/OrthodoxTest.h (TestCase): Add assignment - operator. MIPSpro fails to compile without one. - - * Makefile.am: Removed automake conditional "DOC". - * doc/Makefile.am: Placed "DOC" conditional around - rules that invoke Doxygen. - - * config/Makefile.am: Removed. - * configure.in: Do not create config/Makefile. - * Makefile.am (EXTRA_DIST): Distribute config/*.m4. - (SUBDIRS): Do not descend into config. - -2001-07-15 Steve M. Robbins - - * include/cppunit/TestFixture.h: New. Declare class TextFixture. - - * include/cppunit/TestCaller.h: - * include/cppunit/TestCase.h: - * src/cppunit/TestCase.cpp: - * include/cppunit/Makefile.am: Subclass TestCase from TestFixture. - -2001-07-14 Steve M. Robbins - - * include/cppunit/Exception.h: - * include/cppunit/Test.h: - * include/cppunit/TestCaller.h: - * include/cppunit/TestCase.h: - * include/cppunit/TestFailure.h: - * include/cppunit/TestListener.h: - * include/cppunit/TestSuite.h: - * include/cppunit/extensions/RepeatedTest.h: - * include/cppunit/extensions/TestDecorator.h: - * src/cppunit/TestCase.cpp: Add documentation. - -2001-07-13 Steve M. Robbins - - * examples/cppunittest/TestAssertTest.h: - * examples/cppunittest/TestAssertTest.cpp: Add tests - for CPPUNIT_ASSERT_EQUAL. - -2001-07-12 Steve M. Robbins - - * configure.in: Set to version 1.5.6. On the assumption that - backwards compatibility has been broken (though I'm not certain), - set the binary age and interface age to zero. - - * examples/cppunittest/TestFailureTest.h: - * include/cppunit/Exception.h: - * include/cppunit/NotEqualException.h: - * src/cppunit/Exception.cpp: - * src/cppunit/NotEqualException.cpp: Add "throw()" to overridden - std::exception destructors; required for GCC 3.0. - -2001-07-07 Steve M. Robbins - - * include/cppunit/Makefile.am: Clean config-auto.h using - DISTCLEANFILES. - - * doc/Makefile.am: Temporarily disable manpage installation. - Fix html installation to ensure files removed by uninstall. - - * src/cppunit/estring.h: Removed. - - * src/cppunit/Makefile.am: - * src/cppunit/TestCase.cpp: - * src/cppunit/TextTestResult.cpp: Recode to avoid use of estring. - - * examples/cppunittest/OrthodoxTest.h: Add const qualifier - to operator== methods. - - * include/cppunit/config-bcb5.h: - * include/cppunit/config-msvc6.h: Define CPPUNIT_HAVE_SSTREAM to 1. - - * config/ac_cxx_have_sstream.m4: New. Defines macro - AC_CXX_HAVE_SSTREAM. Taken from the autoconf archive. - - * config/ac_cxx_have_strstream.m4: New. Copy of above, - modified to check for presence of strstream; defines - macro AC_CXX_HAVE_STRSTREAM. - - * configure.in: Invoke AC_CXX_HAVE_SSTREAM and - AC_CXX_HAVE_STRSTREAM. - - * include/cppunit/Portability.h: Define class - CppUnit::OStringStream. - - * include/cppunit/TestAssert.h: - * src/cppunit/TestFactoryRegistry.cpp: Replace std::ostringstream - by CppUnit::OStringStream. - - -2001-07-06 Steve M. Robbins - - * configure.in: Add --disable-typeinfo-name option. - - * README: Add note about new configure option. - - * configure.in: Remove AM_DISABLE_STATIC. - - * INSTALL: Update to version from autoconf 2.50. - -2001-07-05 Steve M. Robbins - - * include/cppunit/Portability.h: Remove definition of - CPPUNIT_USE_TYPEINFO. - - * configure.in: Define USE_TYPEINFO_NAME in config.h. - - * include/cppunit/config-msvc6.h (CPPUNIT_USE_TYPEINFO_NAME): - * include/cppunit/config-bcb5.h (CPPUNIT_USE_TYPEINFO_NAME): Add - definition. - - * include/cppunit/TestCaller.h: - * include/cppunit/extensions/TypeInfoHelper.h: - * include/cppunit/extensions/TestSuiteBuilder.h: - * include/cppunit/extensions/HelperMacros.h: - * src/cppunit/TypeInfoHelper.cpp: - * src/cppunit/TestFactoryRegistry.cpp: - * src/cppunit/TestCase.cpp (toString): - Switch from CPPUNIT_USE_TYPEINFO to CPPUNIT_USE_TYPEINFO_NAME. - - * src/cppunit/TestAssert.cpp: Remove include of estring.h. - - * configure.in: Invoke AC_PROG_CC to workaround a automake - bug. Move probes for CC/CXX ahead of the libtool macros. - - * examples/hierarchy/Makefile.am: - * examples/cppunittest/Makefile.am: - * src/cppunit/Makefile.am (INCLUDES): Search - $(top_builddir)/include for . - -2001-06-27 Baptiste Lepilleur - - * examples/msvc6/CppUnitTestApp/CppUnitTestApp.dsp: - moved dll copy from post-build to custom build setting, so that the - dll is copied even if the CppUnitTestApp was not modified. - - * examples/msvc6/TestPlugIn/: a new example of test plug in. - - * src/msvc6/TestRunner/ListCtrlFormatter.* - * src/msvc6/TestRunner/ListCtrlSetter.*: - added, helper to manipulate list control. - - * src/msvc6/TestRunner/TestRunnerDlg.*: change to make the error list - more compact. text moved to string resources. icons added for typ - test tfailure type. - - * src/msvc6/TestRunner/MostRecentTests.*: added, classes that will - replace the current implementation of MRU test which make it hard - to subclass the dialog. - - * src/msvc6/TestRunner/res/errortype.bmp: added, bitmap with error - types (failure and error). - - * src/msvc6/TestPlugInRunner/: A test runner to run test plug in. - Test plug in are DLL that publish a specified plug in interface. - Those DLL are loaded and reloaded by the TestPlugInRunner to run - tests. This remove the need to wrap DLL with a executable to test - them. - - * src/cppunit/cppunit.dsp: - removed config.h from project - added Portability.h and config-msvc6.h - - * include/cppunit/config-msvc6.h: - undef CPPUNIT_FUNC_STRING_COMPARE_STRING_FIRST - - -2001-06-20 Steve M. Robbins - - * autogen.sh: Stop when tool fails. Try /usr/local/share/aclocal - only if aclocal fails without it. - - * README.CVS: New. - -2001-06-18 Steve M. Robbins - - * include/cppunit/Portability.h (CPPUNIT_USE_TYPEINFO): - (CPPUNIT_ENABLE_NAKED_ASSERT): - (CPPUNIT_HAVE_CPP_SOURCEANNOTATION): Fix setting of - default values. - -2001-06-17 Steve M. Robbins - - * configure.in: Require autoconf 2.50 or better. - -2001-06-17 Bastiaan Bakker - - * configure.in: moved config.h from include/ to config/ - - * configure.in: added AC_CREATE_PREFIX_CONFIG_H call - - * config/ac_create_prefix_config_h.m4: added - - * configure.in: removed include/cppunit/config.h from AC_OUTPUT - * include/cppunit/config.h.in: obsoleted by - AC_CREATE_PREFIX_CONFIG_H macro. - - * configure.in: - * config/bb_enable_doxygen.m4: moved doxygen stuff into - BB_ENABLE_DOXYGEN macro - - * include/cppunit/Makefile.am: removed config.h, added config-auto.h, - config-msvc6.h, config-bcb5.h, Portability.h - - * include/cppunit/Makefile.am: added dist-hook to exclude - config-auto.h from dist tar - - * include/cppunit/TestAssert.h: - * include/cppunit/extensions/TypeInfoHelper.h: - * include/cppunit/extensions/TestSuiteBuilder.h: - * include/cppunit/extensions/HelperMacros.h: - * src/cppunit/TypeInfoHelper.cpp: - * src/cppunit/TestRegistry.cpp: - * src/cppunit/TestFactoryRegistry.cpp: - * src/cppunit/TestCase.cpp: replaced #include of with - - - * src/cppunit/TypeInfoHelper.cpp: use new macro name - CPPUNIT_FUNC_STRING_COMPARE_STRING_FIRST - - -2001-06-12 Baptiste Lepilleur - - * include/cppunit/NotEqualException.h - * src/cppunit/NotEqualException.h: - Fixed constructor and operator = (aren't unit test nice?). Added - methods expectedValue() and actualValue(). - - * include/cppunit/TestAssert.h: - * src/cppunit/TestAssert.cpp: - Use NotEqualException to report equality failure. - - * src/cppunit/TestFactoryRegistry.cpp: fixed makeTest(). It did not use m_name for - naming the suite. - - * src/cppunit/TestResult.cpp: - Report expect/was on different line for assertEquals failure. - - * examples/cppunittest/NotEqualExceptionTest.*: added unit tests for - NotEqualException. - - * examples/cppunittest/OrthodoxTest.*: operator ! use explicit construction. - - * examples/msvc6/CppUnitTestApp/CppUnitTestApp.cpp: modified so that the dialog - is not displayed after the tests are run. - -2001-06-11 Steve M. Robbins - - * examples/cppunittest/TestResultTest.cpp (testAddTwoErrors, - testAddTwoFailures): Replace vector::at() with more portable - vector::operator[]; GCC doesn't have the former. - - * include/cppunit/extensions/TestDecorator.h (countTestCases): - Declare return type. - - * src/cppunit/Makefile.am (libcppunit_la_SOURCES): Add - TestAssert.cpp, RepeatedTest.cpp. - - * include/cppunit/TestCaller.h (NoExceptionExpected): Fix - constructor name. - -2001-06-11 Baptiste Lepilleur - - * include/cppunit/Exception.h: now inherit from std::exception - instead of ::exception. Added clone(), type(), and isInstanceOf() - methods for subclassing support. Changed UNKNOWNLINENUMBER type to - long for consistence with lineNumber(). - - * include/cppunit/NotEqualException.h: addded, exception to be - used with assertEquals(). - - * include/cppunit/TestAssert.h: changed TestAssert into a - namespace instead of a class. This remove the need of template - member methods and does not cause compiler internal error on - VC++. Macro CPPUNIT_ASSERT_MESSAGE has been added to fail test - with a specified message. - - * include/cppunit/TestCaller.h: added "Expected exception" - support. Based on Tim Jansen patch (#403745), but use a traits - instead of RTTI to distingh between "No expected exception" and - "Excepted exception". Exception type name is reported using RTTI - if CPPUNIT_USE_TYPEINFO is defined. - - * include/cppunit/extensions/HelperMacros.h: static method suite() - implemented by CPPUNIT_TEST_SUITE_END macro now returns a - TestSuite instead of a Test. - - * include/cppunit/extensions/RepeatedTest.h: corrected - countTestCases, operator = declaration. - - * include/cppunit/extensions/TestDecorator.h: removed const from - run() method. Did not match run() declaration of Test class. - - * include/cppunit/extensions/TestFactory.h: fixed a comment. - - * include/cppunit/extensions/TestSetup.h: corrected run() method - declaration. Methods setUp() and tearDown() were not declared - virtual. - - * include/cppunit/extensions/TestSuiteBuilder.h: added a method - addTestCaller() which take a pointer on a fixture. - - * include/cppunit/NotEqualException.cpp: addded, exception to be - used with assertEquals(). - - * src/cppunit/RepeatedTest.cpp: added to reduce header dependency - (TestResult.h was missing). - - * src/cppunit/TestAssert.cpp: added to put non template functions - there. - - * src/cppunit/TestCase.cpp: added std:: prefix to catch - (exception& e). Integrated a modified version of Tim Jansen patch - (#403745) for TestCase to make the unit test (TestCaseTest) - pass. If the setUp() fail then neither the runTest() nor the - tearDown() method is called. - - * examples/examples.dsw: added cppunittest projects to workspace. - - * examples/cppunittest/TestResultTest.*: renamed - TestListenerTest.* - - * examples/cppunittest/*: added unit tests for: HelperMacros, - TestAssert, TestCaller, TestCase, TestFailure, TestResult, - TestSuite, TestDecoratorTest, TestSetUp, RepeatedTestTest, - Orthodox, Exception. - -2001-06-05 Baptiste Lepilleur - - * src/cppunit/TypeInfoHelper.cpp: removed #include , - cppunit/config.h was already included. - - * src/cppunit/cppunit.dsp: removed TestAssert.cpp from project. - - * added/updated .cvsignore files for beter handling of windows - projects. - - * added include/cppunit/config.h with a default configuration for - VC++ 6.0. - - * include/cppunit/.cvsignore: removed config.h from the list of - ignored file. - - * renamed VC++ configurations without RTTI from "Debug No - CU_USE_TYPEINFO" to "Debug Crossplatform". - - * include/cppunit/TestAssert.h: added include for fabs(). - -2001-06-02 Steve M. Robbins - - * src/cppunit/Exception.cpp: Remove unnecessary namespace - declaration; it confuses Doxygen. - -2001-06-02 Steve M. Robbins - - * configure.in: Add AC_CXX_STRING_COMPARE_STRING_FIRST. - - * autogen.sh: Add "-I config" to aclocal flags, to pick up - the new .m4 files. - - * config/ac_cxx_namespaces.m4: New. Taken from - http://cryp.to/autoconf-archive. - - * config/ac_cxx_string_compare_string_first.m4: New. Detect - if std::string::compare() takes string argument first. - -2001-06-02 Steve M. Robbins - - * include/cppunit/TestAssert.h: Declare generic assertion_traits - class. Replace notEqualsMessage functions for long and double by - a generic, template function. Replace assertEquals for longs by a - generic template function. Inline all class methods. Define new - assertion macros CPPUNIT_ASSERT, CPPUNIT_ASSERT_EQUAL, and - CPPUNIT_ASSERT_DOUBLES_EQUAL; the old names are available by - editing . - - * src/cppunit/TestAssert.cpp: Removed. Move code to inline - functions. - - * config/ac_cxx_rtti.m4: New. Taken from - http://cryp.to/autoconf-archive. - - * include/cppunit/config.h.in: New. Input file for installable, - generated config.h file. - - * configure.in: Use AC_CXX_RTTI; generate include/cppunit/config.h. - - * include/cppunit/extensions/HelperMacros.h: - * include/cppunit/extensions/TestSuiteBuilder.h: - * include/cppunit/extensions/TypeInfoHelper.h: - * src/cppunit/TestCase.cpp: - * src/cppunit/TestFactoryRegistry.cpp: - * src/cppunit/TypeInfoHelper.cpp: - Use "#if CPPUNIT_USE_TYPEINFO" rather than "#ifdef". - - * src/cppunit/TypeInfoHelper.cpp: Allow for std::string::compare() - that takes the string in the first argument. - - * doc/cookbook.html: - * examples/cppunittest/TestCallerTest.cpp: - * examples/cppunittest/TestResultTest.cpp: - * examples/hierarchy/BoardGameTest.h: - * examples/hierarchy/ChessTest.h: - * examples/msvc6/HostApp/ExampleTestCase.cpp: - * include/cppunit/TestCase.h: - * include/cppunit/extensions/Orthodox.h: - Replace assert by CPPUNIT_ASSERT. - Replace assertLongsEqual by CPPUNIT_ASSERT_EQUAL. - Replace assertDoublesEqual by CPPUNIT_ASSERT_DOUBLES_EQUAL. - - * * (CU_TEST_SUITE, CU_TEST, CU_TEST_SUITE_END, - CU_TEST_SUITE_REGISTRATION): Replace prefix CU_ with CPPUNIT_. - - * examples/cppunittest/.cvsignore: Add UNIX generated files. - -2001-06-01 Bastiaan Bakker - - * examples/cppunittest/Makefile.am: added - - * configure.in: added examples/cppunittest/Makefile to AC_OUTPUT. - - * examples/cppunittest/TestCallerTest (suite), - examples/cppunittest/TestResultTest (suite): fixed 'ISO C++ - forbids taking the address of a bound member function to form - a pointer to member function' bug reported by g++. - - * examples/cppunittest/TestCallerTest (suite), - examples/cppunittest/TestResultTest (suite): removed dependency on - RTTI. - -2001-06-01 Baptiste Lepilleur - - * added project cppunittest to examples/: unit tests to test cppunit. - The main file is CppUnitTestMain.cpp. Unit tests have been implemented - for TestCaller and TestListener. - - * added project CppUnitTestApp to examples/msvc6: graphical runner - for cppunittest. - - * added TestListener to TestResult. It is a port of junit - TestListener. - - * updated some .cvsignore to ignore files generated with VC++. - -2001-05-30 Bastiaan Bakker - - * src/cppunit/TestCase.cpp (toString): put type_info in std - namespace and inside CU_USE_TYPEINFO ifdef. - -2001-05-29 Steve M. Robbins - - * examples/hierarchy/main.cpp: Remove extraneous includes. - - * src/cppunit/TextTestResult.cpp (addError, addFailure): Do not - emit a newline. - - * include/cppunit/extensions/HelperMacros.h: Rework documentation. - (CU_TEST_SUITE): Move definition of member function suite() ... - (CU_TEST_SUITE_END): ... to here. - (CU_TEST): Use '&' to take address of member function - "testMethod". - - * include/cppunit/extensions/AutoRegisterSuite.h: Declare "factory" - as a TestFactory*. - -2001-05-28 Steve M. Robbins - - * doc/other_documentation.dox: Don't include "CppUnit" in - anchor text, since Doxygen puts its own anchor around it. - - * doc/Makefile.am (html/index.html): Depend on - other_documentation.dox. - - * doc/Doxyfile.in (EXCLUDE): Move config.h and estring.h to - EXCLUDE_PATTERNS; they were not being excluded. - - * ChangeLog: Reformat all entries to start with . See - for change log - format. - - * doc/cookbook.html: Update all code examples, except for TestRunner - section. - -2001-05-23 Baptiste Lepilleur - - * Updated CU_TEST_SUITE macro documentation. It is now stated - explicitly that you do not need to specify template parameter as - macro argument. The documentation example has been updated to - reflect that. - -2001-05-23 Bastiaan Bakker - - * autogen.sh: added '--add-missing' option to automake. - * autogen.sh: added '--force' option to libtoolize and removed - '--copy'. - * config: removed generated files from CVS. - -2001-05-20 Baptiste Lepilleur - - * Fixed bug #424320 (VC++ TestRunner): access violation caused by - NULL pointer in history list. NULL pointer are not added to the - history anymore. - -2001-05-19 Baptiste Lepilleur - - * Added some items to the TODO list for VC++ TestRunner. - - * "Debug" configuration is now the default configuration in VC++ - project. - - * Modified sort order in the test browser of VC++ TestRunner so - that tests are in the same order as in the suite. Suites are still - sorted alphabetically. - - * Merged Steve M. Robbins patch to replace assertImplementation - with assert in hierarchy example. - - * Added a TextTestRunner to runner tests. It is based on Michael - Feather's version, but have been rewriten. - - * Removed traces that printed the test name in TextTestResult - while running. - - * Added the test name to error and failure report in - TextTestResult. - - * Updated hierarchy example to use TextTestRunner. - -2001-05-18 Baptiste Lepilleur - - * Symbol CU_USE_TYPEINFO must be defined instead of USE_TYPEINFO - to compile RTTI. - - * Added back default constructor to TestSuiteBuilder which use - RTTI. It is available only if CU_USE_TYPEINFO is defined. - - * Moved TypeInfoHelper.h from src/cppunit to - include/cppunit/extensions. - - * Macro CU_TEST_SUITE in HelperMacros.h now use TestSuiteBuilder - default constructor if CU_USE_TYPEINFO is defined, otherwise it - use the type name given to the CU_TEST_SUITE macro. - - * TestFactoryRegistry::registerFactory(factory) now generate a - dummy name based on a serial number instead of using RTTI. The - macro CU_TEST_SUITE_REGISTRATION and class AutoRegisterSuite can - now when CU_USE_TYPEINFO is not defined. - - * Added a new Configuration named "Debug Without CU_USE_TYPEINFO" - to msvc6 projects. The flag CU_USE_TYPEINFO is not defined in that - configuration. - -2001-05-17 Steve M. Robbins - - * Makefile.am (dist-hook): Copy files relative to $(top_srcdir). - - * doc/Makefile.am: Generated doc files depend on Doxyfile. - - * doc/Doxyfile.in: Use autoconf substitutions in file names. - - * examples/hierarchy/Makefile.am (check_PROGRAMS): Build hierarchy - with "make check", not "make all". - - * examples/hierarchy/Makefile.am (INCLUDES): - - * src/cppunit/Makefile.am (INCLUDES): Search in - $(top_srcdir)/include. - - * Added .cvsignore files. - -2001-05-16 Bastiaan Bakker - - * Merged Debian packaging support files by Christian Leutloff from - debian package version 1.5.4-2. Added make target 'debian' for - debian package creation. - -2001-05-09 Bastiaan Bakker - - * Release as 1.5.5. - - * Finished CppUnitW 1.2 merge. Removed RTTI depency from - TestSuite. Added TestCaller constructor for calling methods in - existing TestCases. - -2001-04-29 Bastiaan Bakker - - * Merged Baptiste Lepilleurs CppUnitW 1.2. Some differences: - TypeInfo stuff (in TestSuite) compiled in only if USE_TYPEINFO is - set. TestSuite.getTests now returns a const ref instead of taking - a ref as parameter. Removed auto_ptr stuff from - TestFactoryRegistry: auto_ptr cannot be used in containers. - -2001-04-28 Bastiaan Bakker - - * Merged MSVC++ specific TestRunner and example adapted from - Micheal Feathers version by Baptiste Lepilleur. - - * Moved cppunit subdir into src. - -2001-04-24 Bastiaan Bakker - - * Merged Baptiste Lepilleurs patch for TestRegistry: now TestCases - do not automatically register with the Registry anymore. - - * Added extension headers from Micheal Feathers port to - include/cppunit/extensions. - -2001-04-19 Bastiaan Bakker - - * Added MSVC++ workspace and project files, submitted by Baptiste - Lepilleur. - -2001-04-15 Bastiaan Bakker - - * Moved public headers from cppunit into new subdir - include/cppunit. This should make more clear which headers are - used internally only (like estring.h). - - * Moved autoconf auxiliary stuff into new subdir config, to make - the top dir less crowded. - - * Prefixed std:: to cerr, cout and endl. - -2001-04-14 Bastiaan Bakker - - * Release as 1.5.4 - - * Added support for RPM generation. - - * Added autoconf support for Doxygen document generation: Doxygen - and GraphViz dot are automatically detected and LaTeX and HTML can - be switch on or off. - - * cppunit/TextTestResult.cpp: changed cout to stream. Fixes bug - #232636 - - * cppunit/TextTestReulst.cpp: add '#include '. Fixes - bug #223290 - - * cppunit/*.cpp: removed bogus 'inline' specifiers. Fixes bug - #224542 and #223291. - - * doc/header.html: corrected link to CppUnit project page Fixes - bug #414073 - - * cppunit/*.cpp, examples/hierarchy/main.cpp: removed all 'using - namespace ...' occurences. - -2001-01-31 Tim Jansen - - * cppunit/TestCase.cpp, cppunit/TestCase.h, cppunit/TestSuite.h, - cppunit/TestSuite.cpp: applied patch #402271 by bwithrow. Fixes - bug #220207 - - * cppunit/TestSuite.cpp (deleteContents): clear vector after - contents have been deleted (so there are no invalid pointers in - the vector) Patch #403540 / #403542 - - * cppunit/TestCaller.h: create Fixture with empty constructor so - that only the TestCaller but not the Fixture instance is - registered in the TestRegistry Patch #403541 / #403542 - - * examples/hierarchy/BoardGameTest.h, - examples/hierarchy/ChessTest.h, examples/hierarchy/main.cpp: - initialize example TestCases with TestSuite so that the - TestCallers are registered in the TestRegistry Patch - #403542. Fixes bug #415249 - - * cppunit/TestCaller.h, cppunit/TestCase.cpp, cppunit/TestCase.h: - changed documentation; made hopefully clearer which constructor - registers the instance in the TestRegistry; corrected syntax in - code example Patch #403542. diff --git a/contrib/cppunit-1.12.1/CodingGuideLines.txt b/contrib/cppunit-1.12.1/CodingGuideLines.txt deleted file mode 100644 index 5651ee802..000000000 --- a/contrib/cppunit-1.12.1/CodingGuideLines.txt +++ /dev/null @@ -1,61 +0,0 @@ -CppUnit's coding guidelines for portability: --------------------------------------------- - -- don't explicitly declare CppUnit namespace, instead use macro - CPPUNIT_NS_BEGIN and CPPUNIT_NS_END. - -- don't explicitly use 'CppUnit' to refer to class in CppUnit namespace, - instead use macro CPPUNIT_NS which expands to either 'CppUnit' or - nothing depending on the configuration. - -- don't use the 'using directive', always use full qualification. For STL, - always use std::. - -- don't use C++ style cast directly, instead use CppUnit's cast macro - (CPPUNIT_CONST_CAST). - -- don't use the mutable keyword, instead do a const cast. - -- don't use the typename keyword in template declaration, instead use 'class'. - -- don't make use of RTTI (typeid) or dynamic_cast mandatory. - -- don't use STL container directly, instead use CppUnit's wrapper located - in include/cppunit/portability. This help support compilers that don't - support default template parameter and require an allocator to be - specified. - -- don't use default template parameters. If needed, use STLPort wrapper - technic (see include/cppunit/portability/). - -- don't use templatized member functions (template method declared inside a - class), instead declares them as simple template functions (even - mainstream compiler such as VC++ 6 as trouble with them). - -- don't use default parameter value in template function. Not supported - by all compiler (on OS/390 for instance). - -- don't use STL container at() method, instead use the array accessor []. - at() is not supported on some gcc versions. - -- dereferencing containers must be done by (*ref_ptr).data instead of - ref_ptr->data. - -In brief, it should be possible to compile CppUnit on a C++ compiler that do -not have the following features: -- C++ style cast -- mutable and typename keyword -- RTTI -- template default parameters -- templatized member functions (that is a template function declared within a - class). -- namespace - -As such, usage of those features should always be optional. - -Following those guidelines should allow to compile on most compilers, as long -as STL are available (in std namespace or not), with some form of strstream and -iostream, as well as exception support. - --- -Baptiste Lepilleur diff --git a/contrib/cppunit-1.12.1/INSTALL b/contrib/cppunit-1.12.1/INSTALL deleted file mode 100644 index 666ffd9f8..000000000 --- a/contrib/cppunit-1.12.1/INSTALL +++ /dev/null @@ -1,226 +0,0 @@ -Basic Installation -================== - - These are generic installation instructions. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, and a -file `config.log' containing compiler output (useful mainly for -debugging `configure'). - - It can also use an optional file (typically called `config.cache' -and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. (Caching is -disabled by default to prevent problems with accidental use of stale -cache files.) - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If you are using the cache, and at -some point `config.cache' contains results you don't want to keep, you -may remove or edit it. - - The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You only need -`configure.ac' if you want to change it or regenerate `configure' using -a newer version of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. - -Compilers and Options -===================== - - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. Run `./configure --help' -for details on some of the pertinent environment variables. - - You can give `configure' initial values for variables by setting -them in the environment. You can do that on the command line like this: - - ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix - - *Note Environment Variables::, for more details. - -Compiling For Multiple Architectures -==================================== - - You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - If you have to use a `make' that does not support the `VPATH' -variable, you have to compile the package for one architecture at a time -in the source code directory. After you have installed the package for -one architecture, use `make distclean' before reconfiguring for another -architecture. - -Installation Names -================== - - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=PATH' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features -================= - - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Specifying the System Type -========================== - - There may be some features `configure' cannot figure out -automatically, but needs to determine by the type of host the package -will run on. Usually `configure' can figure that out, but if it prints -a message saying it cannot guess the host type, give it the -`--build=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name which has the form: - - CPU-COMPANY-SYSTEM - -where SYSTEM can have one of these forms: - - OS - KERNEL-OS - - See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the host type. - - If you are _building_ compiler tools for cross-compiling, you should -use the `--target=TYPE' option to select the type of system they will -produce code for. - - If you want to _use_ a cross compiler, that generates code for a -platform different from the build platform, you should specify the host -platform (i.e., that on which the generated programs will eventually be -run) with `--host=TYPE'. In this case, you should also specify the -build platform with `--build=TYPE', because, in this case, it may not -be possible to guess the build platform (it sometimes involves -compiling and running simple test programs, and this can't be done if -the compiler is a cross compiler). - -Sharing Defaults -================ - - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Environment Variables -===================== - - Variables not defined in a site shell script can be set in the -environment passed to configure. However, some packages may run -configure again during the build, and the customized values of these -variables may be lost. In order to avoid this problem, you should set -them in the `configure' command line, using `VAR=value'. For example: - - ./configure CC=/usr/local2/bin/gcc - -will cause the specified gcc to be used as the C compiler (unless it is -overridden in the site shell script). - -`configure' Invocation -====================== - - `configure' recognizes the following options to control how it -operates. - -`--help' -`-h' - Print a summary of the options to `configure', and exit. - -`--version' -`-V' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`--cache-file=FILE' - Enable the cache: use and save the results of the tests in FILE, - traditionally `config.cache'. FILE defaults to `/dev/null' to - disable caching. - -`--config-cache' -`-C' - Alias for `--cache-file=config.cache'. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error - messages will still be shown). - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. - diff --git a/contrib/cppunit-1.12.1/INSTALL-WIN32.txt b/contrib/cppunit-1.12.1/INSTALL-WIN32.txt deleted file mode 100644 index 31756cd3a..000000000 --- a/contrib/cppunit-1.12.1/INSTALL-WIN32.txt +++ /dev/null @@ -1,205 +0,0 @@ -Frequently Asked Questions: See doc/FAQ - - -At the current time, the only supported WIN32 platform is -Microsoft Visual C++. You must have VC++ 6.0 at least. - -Quick Steps to compile & run a sample using the GUI TestRunner: -- Open examples/examples.dsw in VC++ (contains all the samples). - VC7 will ask you if you want to convert, anwser 'yes to all'. -- Make HostApp the Active project -- Compile -- For Visual Studio 6 only: - - in VC++, Tools/Customize.../Add-ins and macro files/Browse... - - select the file lib/TestRunnerDSPlugIn.dll and press ok to register - the add-ins (double-click on failure = open file in VC++). -- Run the project - - -Project build Target: ---------------------- - -Framework & tools: - -* cppunit (cppunit.lib) : unit testing framework library, the one you use -to write unit tests. - -* cppunit_dll(cppunit_dll.dll/lib) : same as above, but build as a DLL. - -* DllPlugInTester(DllPlugInTester.exe) : test plug-in runner executable. -Use this to test DLL in your post-build step, or debug them. - -* TestRunner (testrunner.dll) : a MFC extension DLL to run and browser unit -tests from a GUI. - -* DSPlugIn (lib/TestRunnerDSPlugIn.dll) : a VC++ 6.0 add-in used by -testrunner.dll. If you double-click on a failure in the MFC TestRunner, -a running instance of VC++ will open the file and highlight the line. -This add-ins is not required for Visual Studio 7. - -* TestPlugInRunner : (Warning: experimental) a VC++ -application to run test plug-in. A test plug-in is a DLL that publish a -specified interface. This application is still incomplete (the auto-reload -feature is missing). - -All libraries are placed in the lib/ directory. - - -Examples: ---------- - -* CppUnitTestMain : the actual test suite use to test CppUnit. Use a -TextTestRunner, and post-build testing with CompilterOutputter. Configuration -to link against cppunit static library and cppunit dll library. - -* CppUnitTestApp : contains the same test suite as CppUnitTestMain, but -run them using the MFC TestRunner. - -* hierarchy : a sample demonstrating how to sublcass test (you might rather -want to use HelperMacros.h and the CPPUNIT_TEST_SUB_SUITE macro which does -it in a 'cleaner' way. That sample has not been updated for a long time). - -* HostApp : a sample using the MFC TestRunner demonstrating different test -failure. Also demonstrates the MFC Unicode TestRunner. - -* Money : an example that come along with the Money article of the -documentation. Probably what you want to look at if you are a newbie. - - -Configuration: --------------- - -CppUnit and TestRunner comes with 3 configurations. - -* Release (): Multihtreaded DLL, release mode -* Debug (d): Debug Multithreaded DLL, debug mode -* Unicode Release (u): Unicode Multihtreaded DLL, release mode -* Unicode Debug (ud): Unicode Debug Multithreaded DLL, debug mode - -For CppUnit, when building as dll, "dll" is appended to the 'suffix'. - -The letters enclosed in brackets indicates the suffix added to -the library name. For example, the debug configuration cppunit static library -name is cppunitd.lib. The debug configuration cppunit dll name is cppunitd_dll.lib. - - -Building: ---------- - -* Open the src/CppUnitLibraries.dsw workspace in VC++. -* In the 'Build' menu, select 'Batch Build...' -* In the batch build dialog, select all projects and press the build button. -* The resulting libraries can be found in the lib/ directory. - - -Testing: --------- - -* Open the workspace examples/Examples.dsw. -* Make CppUnitTestApp the active project. -* Select the configuration you build the library for. -* Compile and run the project. The TestRunner GUI should appear. - - -Libraries: ----------- - -All the compiled libraries and DLL can be found in the 'lib' directory. -Most libraries can be build from src/CppUnitLibraries.dsw workspace. - -lib\: -cppunit.lib : CppUnit static library "Multithreaded DLL" -cppunitd.lib : CppUnit static library "Debug Multithreaded DLL" -cppunit_dll.dll : CppUnit dynamic library (DLL) "Multithreaded DLL" -cppunit_dll.lib : CppUnit dynamic import library "Multithreaded DLL" -cppunitd_dll.dll : CppUnit dynamic library (DLL) "Debug Multithreaded DLL" -cppunitd_dll.lib : CppUnit dynamic import library "Debug Multithreaded DLL" -qttestrunner.dll : QT TestRunner dynamic library (DLL) "Multithreaded DLL" -qttestrunner.lib : QT TestRunner import library "Multithreaded DLL" -testrunner.dll : MFC TestRunner dynamic library (DLL) "Multithreaded DLL" -testrunner.lib : MFC TestRunner import library "Multithreaded DLL" -testrunnerd.dll : MFC TestRunner dynamic library (DLL) "Debug Multithreaded DLL" -testrunnerd.lib : MFC TestRunner import library "Debug Multithreaded DLL" -testrunneru.dll : MFC Unicode TestRunner dynamic library (DLL) "Multithreaded DLL" -testrunneru.lib : MFC Unicode TestRunner import library "Multithreaded DLL" -testrunnerud.dll : MFC Unicode TestRunner dynamic library (DLL) "Debug Multithreaded DLL" -testrunnerud.lib : MFC Unicode TestRunner import library "Debug Multithreaded DLL" -TestRunnerDSPlugIn.dll : The add-in you register in VC++. - -Notes that when you are using CppUnit DLL (cppunit*_dll.dll), you must link -against the associated import library and define the pre-processor symbol -CPPUNIT_DLL in your project. - - -Tools: ------- - -CppUnit provides a generic test runner for test plug-in: DllPlugInTester. -It can be found in the lib/ directory. It requires cppunit*_dll.dll - -lib/: -DllPlugInTester_dll.exe : test plug-in runner, "Multithreaded DLL", cppunit_dll.dll -DllPlugInTesterd_dll.exe : test plug-in runner, "Debug Multithreaded DLL", cppunitd_dll.dll -DllPlugInTester.exe : test plug-in runner, "Multithreaded DLL", static link cppunit.lib -DllPlugInTesterd.exe : test plug-in runner, "Debug Multithreaded DLL", static link cppunitd.lib - -Notes that the DllPlugInTester(d).exe version of this tools does not allow -to use the automatic test registration that comes along with test plug-in. -You probably don't want to use them unless you really know what you are doing. - - -Using CppUnit: --------------- - -* Writing unit tests: - To write unit tests, you need to link against cppunitXX.lib, where - XX is the chosen configuration suffix letters. - CppUnit include directory must be in the include search path. - You can do that by adding the include directory in - Project Settings/C++/Preprocessor/Additional include directories, - or Tools/Options/Directories/Include. - - Quick steps: - - link lib/cppunitXX.lib - - include/ must be in the include search path - -* Using the TestRunner GUI: - To use the test runner GUI you need to link against testrunnerXX.lib - and cppunitXX.lib, where XX is the chosen configuration suffix - letters. testrunner.dll must be in the path when your program is - run (the Debug/Release directory, your project dsp directory, or - in a directory specified in the PATH environment variable). - One of the easiest way to do that is to either add a post-build - command or add the testrunner.dll which is in the lib/ directory - to your project and define a custom build step that copy the - dll to your "Intermediate" directory (Debug or Release usually). - - Since the TestRunner GUI is a MFC extension DLL, it can access - the CWinApp of the using application. Settings are stored using - the application registry key. That means that "most recently used - test" settings are different for each application. - - Quick steps: - - link lib/cppunitXX.lib and lib/testrunnerXX.lib - - include/ must be in the include search path - - lib/testrunnerXX.dll must be available to run your project - -* Using the DSPlugIn: - You must register the plug-in with VC++. This is done in - Tools/Customize/Add-ins and Macro files, selecting browse and - selecting lib/TestRunnerDSPlugIn.dll (you can register the release - or the debug version, both work). - - If an instance of VC++ is running and you double-click on a failure, - VC++ will open the file and select the failure line. - -* Using the Test Plug In Runner: - Your DLL must export a function that implement the interface -defined in include/msvc6/testrunner/TestPlugInInterface.h. -See examples/msvc6/TestPlugIn/TestPlugInInterfaceImpl.* for an example. -Be warned, that runner is still experimental and have not been tested -much. - - If you did a batch build, run TestPlugInRunnerd.exe and choose dll - examples/cppunittest/DebugPlugIn/CppUnitTestPlugInd.dll, or - examples/simple/DebugPlugIn/simple_plugind.dll to test it out. diff --git a/contrib/cppunit-1.12.1/INSTALL-unix b/contrib/cppunit-1.12.1/INSTALL-unix deleted file mode 100644 index 52b4d8b28..000000000 --- a/contrib/cppunit-1.12.1/INSTALL-unix +++ /dev/null @@ -1,121 +0,0 @@ -See the file INSTALL for basic instructions. A short explanation for -each non-standard configure option follows. - - --disable-typeinfo-name - -Some output from the library will use a class name to distinguish -between tests. Normally, the Run-Time Type Information (RTTI) system -is used (specifically, the type_info::name() function) to generate the -name. Some compilers return human-readable names via this interface. -Other compilers do not. - -If your compiler does not generate a pleasing class name, specify -this option; the names will be generated by other means. The names -are used only for diagnostic purposes -- no functionality will be -lost nor gained by using this option. - - - - System Notes - ------------ - -cygwin ------- - -We have a number of reports that the shared library fails to -build properly. This may manifest itself as a failure to -build and run the test suite ("make check"). - -The workaround is to build a static library only. Configure using - - ./configure --disable-shared - -Then build normally. - - - -DEC alpha with cxx V6.1-029 and RogueWave STL ---------------------------------------------- - -A user reports that you have to issue the command - - export DEC_CXX="-D__USE_STD_IOSTREAM -D__STD_MS" - -in order to get ostream defined in namespace std. Otherwise, the -build reports the following error. - - Cannot define CppUnit::OStringStream - - - -If the compiler complains about 'exception', it may help to -re-run configure with - - CPPFLAGS='-U_OSF_SOURCE' - -on the configure line. Please let us know about your experiences -with this platform so that we can keep this information up-to-date. - - - -IRIX 6 / MIPSpro compiler -------------------------- - -The MIPSpro compiler requires the "-LANG:std" flag to enable the -standard C++ library. You must set the CC variable when you configure, -as follows - ./configure CC='CC -LANG:std' - -There is a bug in released versions of libtool prevents the -LANG flag -from being properly passed during the linking stage. To check if you -have this bug, examine the output of "grep 'no.*irix' libtool". If -you see a line like "no/*-*-irix*)" then you suffer from the bug. [A -fixed version of libtool will look like "no/*-*-irix* | /*-*-irix*)".] - -If your libtool script suffers from the bug, open it in an editor, -find the first line that contains "with_gcc", and change it to -read "with_gcc=no". - -The MIPSpro version 7.30 is able to compile cppunit proper, but will -fail to compile the example testsuite. I am assuming this is due -to known bugs in the compiler (7.30 is not the latest version). -The library appears to function OK. Please let us know if you find -it otherwise. - - -Solaris/Sun CC compiler ------------------------ - -Use the following configure line: - -./configure CXX=CC CXXFLAGS="-pta -instances=static -mt --xtarget=generic -g -features=no%transitions --xildoff" LD=CC LDFLAGS=-xildoff - -In Forte C++ compiler for Solaris all the linking has to go via -CC and ar, ld should not be run directly. For archive use CC -xar and -for linking and generating the .so use CC -G - -Notes: CC 5.5 don't need that much flag to compile correctly. Though, I'm not -sure what are the required one. - - -AIX ---- - -./configure --disable-shared - -The autogen tools don't seem to generate correctly script to handle dynamic linking. -If anyone know how to get it working, please contact us. - - -HP-UX ------ -Use the following options with configure to -enable the use of aCC and cc for the compilation of -CppUnit: -./configure --enable-hpuxshl CC=cc CXX=aCC CXXFLAGS="-AA" - -AA sets all the necessary flags to enable namespaces, -stl v2,.... - diff --git a/contrib/cppunit-1.12.1/Makefile.am b/contrib/cppunit-1.12.1/Makefile.am deleted file mode 100644 index 90642176e..000000000 --- a/contrib/cppunit-1.12.1/Makefile.am +++ /dev/null @@ -1,80 +0,0 @@ -AUTOMAKE_OPTIONS = 1.4 -ACLOCAL_AMFLAGS = -I config - -SUBDIRS = src include examples doc - -pkgconfigdatadir = $(libdir)/pkgconfig - -pkgconfigdata_DATA = cppunit.pc - -bin_SCRIPTS = cppunit-config -man_MANS = cppunit-config.1 - - -EXTRA_DIST = BUGS INSTALL-unix INSTALL-WIN32.txt CodingGuideLines.txt \ - cppunit-config.1 \ - cppunit.m4 cppunit.spec.in cppunit.spec \ - $(m4sources) \ - contrib/msvc/CppUnit.WWTpl \ - contrib/msvc/readme.txt \ - contrib/msvc/AddingUnitTestMethod.dsm \ - contrib/bc5/bcc-makefile.zip \ - contrib/xml-xsl/tests.xml \ - contrib/xml-xsl/report.xsl \ - src/CppUnitLibraries.dsw \ - lib/.keepme - -m4sources = \ - config/ac_create_prefix_config_h.m4 \ - config/ac_cxx_have_sstream.m4 \ - config/ac_cxx_have_strstream.m4 \ - config/ax_cxx_gcc_abi_demangle.m4 \ - config/ac_cxx_namespaces.m4 \ - config/ac_cxx_rtti.m4 \ - config/ac_cxx_string_compare_string_first.m4 \ - config/bb_enable_doxygen.m4 \ - config/ac_dll.m4 - -m4datadir = $(datadir)/aclocal -m4data_DATA = cppunit.m4 - -# Not sure what is creating the timestamp file. -# The so_locations file only happens on IRIX. -DISTCLEANFILES = config/stamp-h1 so_locations - -dist-hook: - cp -dpR $(top_srcdir)/src/msvc6 $(distdir)/src - cp -dpR $(top_srcdir)/src/qttestrunner $(distdir)/src - cp -dpR $(top_srcdir)/include/msvc6 $(distdir)/include - cp -dpR $(top_srcdir)/examples/msvc6 $(distdir)/examples - cp -dpR $(top_srcdir)/examples/qt $(distdir)/examples - test -d $(distdir)/lib || mkdir $(distdir)/lib - find $(distdir) -name CVS | xargs rm -rf - perl -pi -e 's/\n/\r\n/g' `find $(distdir) -name '*.ds?'` \ - $(distdir)/contrib/msvc/* \ - $(distdir)/INSTALL-WIN32.txt - -.PHONY: release snapshot rpm docs doc-dist - -release: - rm -rf .deps */.deps - $(MAKE) distcheck - -snapshot: - $(MAKE) dist distdir=$(PACKAGE)-`date +%Y-%m-%d` - -rpm: dist - rpm -ta $(PACKAGE)-$(VERSION).tar.gz - mv -f /usr/src/redhat/SRPMS/$(PACKAGE)-$(VERSION)-*.rpm . - mv -f /usr/src/redhat/RPMS/*/$(PACKAGE)-$(VERSION)-*.rpm . - mv -f /usr/src/redhat/RPMS/*/$(PACKAGE)-doc-$(VERSION)-*.rpm . - -debian: - chmod a+x debian/rules - dpkg-buildpackage -rfakeroot -sa -us -uc -tc - -doc-dist: - $(MAKE) -C doc doc-dist - mv -f doc/$(PACKAGE)-docs-$(VERSION).tar.gz . - - diff --git a/contrib/cppunit-1.12.1/Makefile.in b/contrib/cppunit-1.12.1/Makefile.in deleted file mode 100644 index eef51fbd4..000000000 --- a/contrib/cppunit-1.12.1/Makefile.in +++ /dev/null @@ -1,872 +0,0 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = . -DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/cppunit-config.in \ - $(srcdir)/cppunit.pc.in $(srcdir)/cppunit.spec.in \ - $(top_srcdir)/config/config.h.in $(top_srcdir)/configure \ - AUTHORS COPYING ChangeLog INSTALL NEWS THANKS TODO \ - config/config.guess config/config.sub config/depcomp \ - config/install-sh config/ltmain.sh config/missing -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = \ - $(top_srcdir)/config/ac_create_prefix_config_h.m4 \ - $(top_srcdir)/config/ac_cxx_have_sstream.m4 \ - $(top_srcdir)/config/ac_cxx_have_strstream.m4 \ - $(top_srcdir)/config/ac_cxx_namespaces.m4 \ - $(top_srcdir)/config/ac_cxx_rtti.m4 \ - $(top_srcdir)/config/ac_cxx_string_compare_string_first.m4 \ - $(top_srcdir)/config/ac_dll.m4 \ - $(top_srcdir)/config/ax_cxx_gcc_abi_demangle.m4 \ - $(top_srcdir)/config/ax_cxx_have_isfinite.m4 \ - $(top_srcdir)/config/bb_enable_doxygen.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno config.status.lineno -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config/config.h -CONFIG_CLEAN_FILES = cppunit.pc cppunit.spec cppunit-config -am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" \ - "$(DESTDIR)$(m4datadir)" "$(DESTDIR)$(pkgconfigdatadir)" -binSCRIPT_INSTALL = $(INSTALL_SCRIPT) -SCRIPTS = $(bin_SCRIPTS) -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive -man1dir = $(mandir)/man1 -NROFF = nroff -MANS = $(man_MANS) -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -m4dataDATA_INSTALL = $(INSTALL_DATA) -pkgconfigdataDATA_INSTALL = $(INSTALL_DATA) -DATA = $(m4data_DATA) $(pkgconfigdata_DATA) -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) -am__remove_distdir = \ - { test ! -d $(distdir) \ - || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr $(distdir); }; } -DIST_ARCHIVES = $(distdir).tar.gz -GZIP_ENV = --best -distuninstallcheck_listfiles = find . -type f -print -distcleancheck_listfiles = find . -type f -print -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CPPUNIT_BINARY_AGE = @CPPUNIT_BINARY_AGE@ -CPPUNIT_INTERFACE_AGE = @CPPUNIT_INTERFACE_AGE@ -CPPUNIT_MAJOR_VERSION = @CPPUNIT_MAJOR_VERSION@ -CPPUNIT_MICRO_VERSION = @CPPUNIT_MICRO_VERSION@ -CPPUNIT_MINOR_VERSION = @CPPUNIT_MINOR_VERSION@ -CPPUNIT_VERSION = @CPPUNIT_VERSION@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOT = @DOT@ -DOXYGEN = @DOXYGEN@ -DSYMUTIL = @DSYMUTIL@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBADD_DL = @LIBADD_DL@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -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@ -enable_dot = @enable_dot@ -enable_html_docs = @enable_html_docs@ -enable_latex_docs = @enable_latex_docs@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = 1.4 -ACLOCAL_AMFLAGS = -I config -SUBDIRS = src include examples doc -pkgconfigdatadir = $(libdir)/pkgconfig -pkgconfigdata_DATA = cppunit.pc -bin_SCRIPTS = cppunit-config -man_MANS = cppunit-config.1 -EXTRA_DIST = BUGS INSTALL-unix INSTALL-WIN32.txt CodingGuideLines.txt \ - cppunit-config.1 \ - cppunit.m4 cppunit.spec.in cppunit.spec \ - $(m4sources) \ - contrib/msvc/CppUnit.WWTpl \ - contrib/msvc/readme.txt \ - contrib/msvc/AddingUnitTestMethod.dsm \ - contrib/bc5/bcc-makefile.zip \ - contrib/xml-xsl/tests.xml \ - contrib/xml-xsl/report.xsl \ - src/CppUnitLibraries.dsw \ - lib/.keepme - -m4sources = \ - config/ac_create_prefix_config_h.m4 \ - config/ac_cxx_have_sstream.m4 \ - config/ac_cxx_have_strstream.m4 \ - config/ax_cxx_gcc_abi_demangle.m4 \ - config/ac_cxx_namespaces.m4 \ - config/ac_cxx_rtti.m4 \ - config/ac_cxx_string_compare_string_first.m4 \ - config/bb_enable_doxygen.m4 \ - config/ac_dll.m4 - -m4datadir = $(datadir)/aclocal -m4data_DATA = cppunit.m4 - -# Not sure what is creating the timestamp file. -# The so_locations file only happens on IRIX. -DISTCLEANFILES = config/stamp-h1 so_locations -all: all-recursive - -.SUFFIXES: -am--refresh: - @: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \ - cd $(srcdir) && $(AUTOMAKE) --gnu \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - echo ' $(SHELL) ./config.status'; \ - $(SHELL) ./config.status;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) - -config/config.h: config/stamp-h1 - @if test ! -f $@; then \ - rm -f config/stamp-h1; \ - $(MAKE) $(AM_MAKEFLAGS) config/stamp-h1; \ - else :; fi - -config/stamp-h1: $(top_srcdir)/config/config.h.in $(top_builddir)/config.status - @rm -f config/stamp-h1 - cd $(top_builddir) && $(SHELL) ./config.status config/config.h -$(top_srcdir)/config/config.h.in: $(am__configure_deps) - cd $(top_srcdir) && $(AUTOHEADER) - rm -f config/stamp-h1 - touch $@ - -distclean-hdr: - -rm -f config/config.h config/stamp-h1 -cppunit.pc: $(top_builddir)/config.status $(srcdir)/cppunit.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $@ -cppunit.spec: $(top_builddir)/config.status $(srcdir)/cppunit.spec.in - cd $(top_builddir) && $(SHELL) ./config.status $@ -cppunit-config: $(top_builddir)/config.status $(srcdir)/cppunit-config.in - cd $(top_builddir) && $(SHELL) ./config.status $@ -install-binSCRIPTS: $(bin_SCRIPTS) - @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" - @list='$(bin_SCRIPTS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - if test -f $$d$$p; then \ - f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ - echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \ - $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \ - else :; fi; \ - done - -uninstall-binSCRIPTS: - @$(NORMAL_UNINSTALL) - @list='$(bin_SCRIPTS)'; for p in $$list; do \ - f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ - echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ - rm -f "$(DESTDIR)$(bindir)/$$f"; \ - done - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -install-man1: $(man1_MANS) $(man_MANS) - @$(NORMAL_INSTALL) - test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" - @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ - l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ - for i in $$l2; do \ - case "$$i" in \ - *.1*) list="$$list $$i" ;; \ - esac; \ - done; \ - for i in $$list; do \ - if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ - else file=$$i; fi; \ - ext=`echo $$i | sed -e 's/^.*\\.//'`; \ - case "$$ext" in \ - 1*) ;; \ - *) ext='1' ;; \ - esac; \ - inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ - inst=`echo $$inst | sed -e 's/^.*\///'`; \ - inst=`echo $$inst | sed '$(transform)'`.$$ext; \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \ - done -uninstall-man1: - @$(NORMAL_UNINSTALL) - @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ - l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ - for i in $$l2; do \ - case "$$i" in \ - *.1*) list="$$list $$i" ;; \ - esac; \ - done; \ - for i in $$list; do \ - ext=`echo $$i | sed -e 's/^.*\\.//'`; \ - case "$$ext" in \ - 1*) ;; \ - *) ext='1' ;; \ - esac; \ - inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ - inst=`echo $$inst | sed -e 's/^.*\///'`; \ - inst=`echo $$inst | sed '$(transform)'`.$$ext; \ - echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \ - rm -f "$(DESTDIR)$(man1dir)/$$inst"; \ - done -install-m4dataDATA: $(m4data_DATA) - @$(NORMAL_INSTALL) - test -z "$(m4datadir)" || $(MKDIR_P) "$(DESTDIR)$(m4datadir)" - @list='$(m4data_DATA)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(m4dataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(m4datadir)/$$f'"; \ - $(m4dataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(m4datadir)/$$f"; \ - done - -uninstall-m4dataDATA: - @$(NORMAL_UNINSTALL) - @list='$(m4data_DATA)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(m4datadir)/$$f'"; \ - rm -f "$(DESTDIR)$(m4datadir)/$$f"; \ - done -install-pkgconfigdataDATA: $(pkgconfigdata_DATA) - @$(NORMAL_INSTALL) - test -z "$(pkgconfigdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdatadir)" - @list='$(pkgconfigdata_DATA)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(pkgconfigdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdatadir)/$$f'"; \ - $(pkgconfigdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdatadir)/$$f"; \ - done - -uninstall-pkgconfigdataDATA: - @$(NORMAL_UNINSTALL) - @list='$(pkgconfigdata_DATA)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(pkgconfigdatadir)/$$f'"; \ - rm -f "$(DESTDIR)$(pkgconfigdatadir)/$$f"; \ - done - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -$(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -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; nonemtpy = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - 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; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - $(am__remove_distdir) - test -d $(distdir) || mkdir $(distdir) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - distdir) \ - || exit 1; \ - fi; \ - done - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" distdir="$(distdir)" \ - dist-hook - -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r $(distdir) -dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 - $(am__remove_distdir) - -dist-lzma: distdir - tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma - $(am__remove_distdir) - -dist-tarZ: distdir - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__remove_distdir) - -dist-shar: distdir - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__remove_distdir) - -dist-zip: distdir - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - $(am__remove_distdir) - -dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ - bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.lzma*) \ - unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac - chmod -R a-w $(distdir); chmod a+w $(distdir) - mkdir $(distdir)/_build - mkdir $(distdir)/_inst - chmod a-w $(distdir) - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && cd $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ - distuninstallcheck \ - && chmod -R a-w "$$dc_install_base" \ - && ({ \ - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ - } || { rm -rf "$$dc_destdir"; exit 1; }) \ - && rm -rf "$$dc_destdir" \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck - $(am__remove_distdir) - @(echo "$(distdir) archives ready for distribution: "; \ - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ - sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' -distuninstallcheck: - @cd $(distuninstallcheck_dir) \ - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ - || { echo "ERROR: files left after uninstall:" ; \ - if test -n "$(DESTDIR)"; then \ - echo " (check DESTDIR support)"; \ - fi ; \ - $(distuninstallcheck_listfiles) ; \ - exit 1; } >&2 -distcleancheck: distclean - @if test '$(srcdir)' = . ; then \ - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ - exit 1 ; \ - fi - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left in build directory after distclean:" ; \ - $(distcleancheck_listfiles) ; \ - exit 1; } >&2 -check-am: all-am -check: check-recursive -all-am: Makefile $(SCRIPTS) $(MANS) $(DATA) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(m4datadir)" "$(DESTDIR)$(pkgconfigdatadir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(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: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-hdr \ - distclean-libtool distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: install-m4dataDATA install-man \ - install-pkgconfigdataDATA - -install-dvi: install-dvi-recursive - -install-exec-am: install-binSCRIPTS - -install-html: install-html-recursive - -install-info: install-info-recursive - -install-man: install-man1 - -install-pdf: install-pdf-recursive - -install-ps: install-ps-recursive - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf $(top_srcdir)/autom4te.cache - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-binSCRIPTS uninstall-m4dataDATA uninstall-man \ - uninstall-pkgconfigdataDATA - -uninstall-man: uninstall-man1 - -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ - install-strip - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am am--refresh check check-am clean clean-generic \ - clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ - dist-gzip dist-hook dist-lzma dist-shar dist-tarZ dist-zip \ - distcheck distclean distclean-generic distclean-hdr \ - distclean-libtool distclean-tags distcleancheck distdir \ - distuninstallcheck dvi dvi-am html html-am info info-am \ - install install-am install-binSCRIPTS 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-m4dataDATA install-man install-man1 \ - install-pdf install-pdf-am install-pkgconfigdataDATA \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-binSCRIPTS \ - uninstall-m4dataDATA uninstall-man uninstall-man1 \ - uninstall-pkgconfigdataDATA - - -dist-hook: - cp -dpR $(top_srcdir)/src/msvc6 $(distdir)/src - cp -dpR $(top_srcdir)/src/qttestrunner $(distdir)/src - cp -dpR $(top_srcdir)/include/msvc6 $(distdir)/include - cp -dpR $(top_srcdir)/examples/msvc6 $(distdir)/examples - cp -dpR $(top_srcdir)/examples/qt $(distdir)/examples - test -d $(distdir)/lib || mkdir $(distdir)/lib - find $(distdir) -name CVS | xargs rm -rf - perl -pi -e 's/\n/\r\n/g' `find $(distdir) -name '*.ds?'` \ - $(distdir)/contrib/msvc/* \ - $(distdir)/INSTALL-WIN32.txt - -.PHONY: release snapshot rpm docs doc-dist - -release: - rm -rf .deps */.deps - $(MAKE) distcheck - -snapshot: - $(MAKE) dist distdir=$(PACKAGE)-`date +%Y-%m-%d` - -rpm: dist - rpm -ta $(PACKAGE)-$(VERSION).tar.gz - mv -f /usr/src/redhat/SRPMS/$(PACKAGE)-$(VERSION)-*.rpm . - mv -f /usr/src/redhat/RPMS/*/$(PACKAGE)-$(VERSION)-*.rpm . - mv -f /usr/src/redhat/RPMS/*/$(PACKAGE)-doc-$(VERSION)-*.rpm . - -debian: - chmod a+x debian/rules - dpkg-buildpackage -rfakeroot -sa -us -uc -tc - -doc-dist: - $(MAKE) -C doc doc-dist - mv -f doc/$(PACKAGE)-docs-$(VERSION).tar.gz . -# 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/contrib/cppunit-1.12.1/NEWS b/contrib/cppunit-1.12.1/NEWS deleted file mode 100644 index bf82dfdbd..000000000 --- a/contrib/cppunit-1.12.1/NEWS +++ /dev/null @@ -1,1151 +0,0 @@ - New in CppUnit 1.12.1: - ---------------------- - -* Assertion: - - - CPPUNIT_ASSERT_DOUBLES_EQUAL() now properly handles non-finite - values, specifically NaN, +Inf, and -Inf. - -* Portability: - - - Fixed some compilation issue for QtTestRunner. - - Code should build on Windows in UNICODE mode. - - New in CppUnit 1.12.0: - ---------------------- - -* Portability: - - - autogen.sh can now be run on Mac OS X (patch #1449380 - contributed by Sander Temme). - -* MFC Test runner: - - - fixed bug #1498175: double click on failure would sometime - not goto failed assertion in visual studio. - -* Documentation: - - - now generated with doxygen 1.4.7 new 'tabs' style. - - - New in CppUnit 1.11.4: - ---------------------- - - -* Portability: - - - Support for Embedded Visual C++ 4 added. For this purpose, CppUnit now - provides a very simple stream implementation if none is provided. - This should also help porting on other platforms which have STL but - no stream support. Just make sure that CPPUNIT_NO_STREAM is defined - to 1 in your config header. - -* Assertion: - - - Added missing _MESSAGE variants for the following assertions: - - CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE - CPPUNIT_ASSERT_THROW_MESSAGE - CPPUNIT_ASSERT_NO_THROW_MESSAGE - CPPUNIT_ASSERT_ASSERTION_FAIL_MESSAGE - CPPUNIT_ASSERT_ASSERTION_PASS_MESSAGE - - Notes: change made to CPPUNIT_ASSERT_THROW may cause compilation error - if you're expecting std::exception as it would be caught twice. Contact us - if it is an issue (we don't see much use for such a test). - - Some assertions failure message are now more detailed (exception, - expression). - Thanks to Neil Ferguson who contributed this patch. - - - Assertion on real number now output expected and actual value using the - maximum available precision instead of the previous strategy of rounding - to 6 digits. - - Thanks to Neil Ferguson who contributed this patch. - -* Outputter: - - - XML Ouputter: patch #997006 contributed by Akos Maroy makes the - 'stand-alone' attribute of the XML header optional. - See XmlOutputter::setStandalone() & XmlDocument::setStandalone(). - - - Better integration of compiler output for gcc on Mac OS X with Xcode - (contributed by Claus Broch). - -* MFC Test Runner - - - Integration with VC++ 7.0 & 7.1. Double clicking on a failure will now - to the failure location in the open IDE (no add-in necessary). - This was contributed by Max Quatember and Andreas Pfaffenbichler. - - - Progress bar: now use system color to draw border - (patch from bug #1165875 contributed by Pieter Van Dyck). - -* QT Test Runner - - - Fixed display of multi-line messages (patch contributed by Karol Szkudlarek). - -* Compilation: - - - The standard pkg-config file is now generated on unix (contributed by - Robert Leight). - - - MinGW: patch #1024428 contributed by astar, fixed compilation issue in - Win32DynamicLibraryManager.cpp. - - - MinGW, cygwin: enable build of shared library when using libtool. - patch #1194394 contributed by Stéphane Fillod. - - - autotool: applied patch #1076398 contributed by Henner Sudek. Quote: - "This patch allows AM_PATH_CPPUNIT to accept version - numbers without minor and micro version. - Now you can do: - AM_PATH_CPPUNIT(1.9) - instead of - AM_PATH_CPPUNIT(1.9.0)" - - - Visual Studio 2005: removed deprecated warning. - -* Documentation: - - - Corrected many typos in cookbook and money example. Thanks to all - those who helped ! - -* Bug Fix: - - - cppunit.m4: patch #946302, AM_PATH_CPPUNIT doesn't report result - if CppUnit is missing. - - - Message/SourceLine: copy constructor have been specifically implemented - to ensure they are thread-safe even if std::string copy constructor - is not (usually on reference count based implementation). - - - TestResultCollector: fixed memory leak occuring when calling reset(). - -* Contrib: - - - added XSLT for compatibility with Ant junit xml formatter. - Patch #1112053 contributed by Norbert Barbosa. - See xml-xsl/cppunit2junit.xsl and cppunit2junit.txt for details. - - - xml-xsl/report.xsl has been fixed to work with current xml output. - -* (Possible) Compatiblity break: - - - All text output is now done on cout() instead of sometime cerr & - sometime cout depending on the component. - - - OStringStream definition has been removed from Portability.h. This - means that is no longer included, and that ostringstream and - string might not be defined. In practice this should have no impact - since those includes have been moved to other CppUnit headers. - -* Notes: - - - CppUnit now uses the alias OStream when refering to std::ostream for - portability. - - - - New in CppUnit 1.10.2: - ---------------------- - -* Bug Fix: - - - Memory checker: bug #938753, array bound read in - splitPathString() with substr if an empty string is passed. - - - Memory leaks: bug #952912, many memory leaks removed in the - MFC test plug-in runner. - - - Crash when using CPPUNIT_TEST_SUITE_REGISTRATION with cppunit dll. - Bug #921843. This bug was caused by a known STL bug in VC++ 6. - See http://www.dinkumware.com/vc_fixes.html issue with shared - std::map in dll. - -* Compilation: - - - mingw & cigwin, bug #930338 & #945737 fixed. - - - make install does not work on SunOS. Bug #940650 fixed. - - - bug #933154, post-build step fails in directory with spaces - with Visual C++. - - - DllPlugInTester, bug #941625 (char * string literal). Applied patch - contribued by Curt Arnold. - - - New in CppUnit 1.10.0 (same as 1.9.14): - -------------------------------------- - -* Assertions - - - Ported exception assertion macros from cppunit 2 to the 1.9.x series: - CPPUNIT_ASSERT_THROW, CPPUNIT_ASSERT_NO_THROW, - CPPUNIT_ASSERT_ASSERTION_FAIL, CPPUNIT_ASSERT_ASSERTION_PASS. - -* Deprecated: - - - The helper macros: CPPUNIT_TEST_FAIL & CPPUNIT_TEST_EXCEPTION have - been deprecated. Use the new exception assertion macros instead. - -* Bug Fix: - - - cppunit-config: bug #903363, missing -ldl from the output of - cppunit-config --libs. Fixed thanks Eric Blossom patch. - - - test plug-in(unix): Adding RTLD_GLOBAL allows test plug-ins - to provide symbols to shared objects they load themselves. - Thanks goes to Gareth Sylvester for this patch (#816563). - - - New in CppUnit 1.9.12: - --------------------- - -* Test Plug-in - - - added support contributed support for UNIX systems that - have libdld and not libdl (e.g. hp-ux). Contributed by - Abdessattar Sassi. - -* RTTI - - - TypeInfoHelper now used gcc c++ abi to demangle typeinfo name thanks to - Neil Ferguson contribution. - -* Bug Fix: - - - MFC TestRunner: integrated bug fix from Tim Threlkeld for bug - #610191 and #610162. Fixed assertion when minizing dialog - (bug #643612). - - - XMLOutputter: Fixed bug #676505: no space inserted between attributes - of XmlElement. - - - CppUnit portability: fixed many mistakes relating to compilation - without type info or namespace reported by Philip Craig. - - - Missing destructor with no throw specification for - DynamicLibraryManagerException. Bug #619059. - - - Fixed missing export for operator <<(TextTestResult). Bug #610119. - - - Missing include for typeinfo in TestNamer.h. Bug #662666. - -* Compilation - - - Fixed compilation issues for Borland C++ 6 and STLPort. Bug #694971, - #699794 and #662666. - - - Fixed compilation issues for AIX. - - - Fixed compilation issues for Visual C++ .NET 2002. - - - Fixed doxygen usage in mingw environment (space not allowed in - doxygen path). Bug #700730. - - - Fixed compilation issue for mingw (bug #711583). - - - New in CppUnit 1.9.10: - --------------------- - - - Major portability improvement - - Protector - - HelperMacros - - MFC TestRunner bug fixes - - Failure diagnostic - - Asserter - -* Major portability improvement: - - - Much work has been done to reduce C++ feature requirement to compile - CppUnit. It should now be possible to compile CppUnit on most - compilers, as long as STL are available (in std namespace or not), - with some form of strstream and iostream, as well as exception support. - See CodingGuideLines.txt for details. - -* Protector - - - Protector can be passed to the TestResult to 'protect' call to - setUp(), runTest() and tearDown() method. With this, it is easy to - capture exceptions which do not have std::exception as a base class, - such as CException or RWXMsg for example. TestResult and Protector - class documentation. Look at src/cppunit/DefaultProtector.cpp for - an example of implementation. - -* Helper macros - - - Mostly rewritten. It no longer use TestSuiteBuilder. A new object - TestSuiteBuilderContext was introduced. It is used to name test case, - create test fixture instance and add test to the fixture suite. It - is now much more easier to add custom test cases using - CPPUNIT_TEST_SUITE_ADD_CUSTOM_TESTS. Should also prevent most - compability break concerning that macro. - - - Useful typedef are now public: TestFixtureType, ParentTestFixtureType. - - - New typedef for custom test method parameter: - typedef TestSuiteBuilderContext - TestSuiteBuilderContextType; - - - added support for abstract test fixture with - CPPUNIT_TEST_SUITE_END_ABSTRACT(). See documentation for further - detail. - -* Failure diagnostic - - - setUp() and tearDown() now provides a detailed diagnostic of the - failure (assertion, exception...) - - - If RTTI is allowed to extract type info, CppUnit will report the - actual exception type in the diagnostic. - -* Asserter: - - - A new AdditionalMessage class has been introduced. It is used for - assertion that takes an additional 'message' argument - (CPPUNIT_ASSERT_MESSAGE...). Since this macro has an implicit - constructor that take a string, which creates a Message with the - specified string as detail. That way, additional message can be a - single string or a complex Message object. See documentation for - example of use. - -* Bug Fix: - - - MFC TestRunner: bug #530426 (conflict between TestRunner and host - application's resources). A huge thanks to Steven Mitter for that one. - - - MFC TestRunner: Browse button is now disabled while running test. - -* Deprecated - - - CppUnit::TextUi::TestRunner moved to CppUnit::TextTestRunner. - - CppUnit::MfcUi::TestRunner moved to CppUnit::MfcTestRunner. - - CppUnit::QtUi::TestRunner moved to CppUnit::QtTestRunner. - -* Compatiblity break: - - - CppUnitTextUi::TestRunner, removed runTestByName() and runTest(). - - TestSuiteBuilder: removed templatized method - addTestCallerForException(). See implementation of - CPPUNIT_TEST_EXCEPTION implementation for an alternative. - - TestAssert: removed deprecated functions (those not using SourceLine) - assertImplementation(), assertNotEqualImplementation(), - assertEquals(). Moved non deprecated functions assertEquals() and - assertEquals() into CppUnit namespace. - - Plug-ins 'Parameters' typedef has been replaced by class - PlugInParameters. The method commandLine() returns what used to be in - Parameters[0]. This should avoid future compatibility break when the - parameters passing API will be defined. - - TestPlugIn::initialize() now takes a PlugInParameters in argument - instead of a Parameters. - - template void assertEquals() no longer has a default message - value (no impact, unless you used this function directly instead of - assertion macros). - - HelperMacros: renamed CPPUNIT_TEST_ADD to - CPPUNIT_TEST_SUITE_ADD_TEST. - - HelperMacros: removed CPPUNIT_TEST_CUSTOM. Instead use - CPPUNIT_TEST_SUITE_ADD_CUSTOM_TESTS and call context.addTest() - passing the test that was returned. - - HelperMacros: renamed CPPUNIT_TEST_CUSTOMS to - CPPUNIT_TEST_SUITE_ADD_CUSTOM_TESTS. Changed method signature to - static void aMethodName( TestSuiteBuilderContextType &context ). - You can replace the 3 previous parameters by context. (See - documentation for further detail). - - - - New in CppUnit 1.9.8: - --------------------- - - - New custom test macros for fixture suite - - Exception message are now structured - - Added detail field to MFC TestRunner - - New XmlDocument class to easily create new XML output format - - XmlOutputter customization - - Test plug-in XMLOutputter hook - - ClockerPlugIn example includes test time in XML output - - DllPlugInTester allows test plug-in to hook the XmlOutputter - - Configurable CompilerOutputter wrapping - -* New custom test macros - - - 3 new macros have been added for use when declaring test fixture suite: - - CPPUNIT_TEST_CUSTOM : to specify a method that returns an instance of - Test to add to the suite - - CPPUNIT_TEST_CUSTOM : to specify a method that add some tests to the - suite - - CPPUNIT_TEST_ADD : to add a test to the suite. Used this to create custom - CPPUNIT_TEST_xxx macros. - - See macros documentation for examples and details. - -* Exception message - - - Exception message are now stored in a Message object instead of a string. - A message is composed of two items: - - a short description (~20/30 characters) - - a list of detail strings - - The short description is used to indicate how the detail strings should be - interpreted. It usually indicates the failure types, such as - "assertion failed", "forced failure", "unexpected exception caught", - "equality assertion failed"... It should not contains new line characters - (\n). - - Detail strings are used to provide more information about the failure. It - can contains the asserted expression, the expected and actual values in an - equality assertion, some addional messages... Detail strings can contains - new line characters (\n). - - This change allow ouputters to deal with all failure the same way (there is - no special case for the equality assertion any more). - -* New XmlDocument class to easily create new XML output format - - - Classes XmlDocument and XmlElement where extracted from XmlOutputter. This - help writing outputters that use a completly different XML format. - - - XmlDocument represents a XML file, and XmlElement represents a XML element. - -* XmlOutputter customization - - - Xml output can be customized using XmlOutputterHook. To do so, subclass - XmlOutputterHook and register it to the XmlOutputter with addHook() before - call XmlOutputter::write(). - - Hook can be used to add some datas to the XmlDocument or the XmlElement of - a specific hook. Methods have been added to XmlElement to help navigating - and modifying the XmlDocument. - - See ClockerPlugIn example. - -* MFC TestRunner - - - The name of the test is displayed just before being run. - - Browse Test Hierarchy dialog is resizable. - - Better (and cleaner) handling of windows resizing - - Failure list now only show the short description of the failure. - - Edit field added to display the details of the selected failure. - -* MFC test plug-in runner (TestPlugInRunner): - - - command line: a dll name can be specified on the command after -testsuite: - example: TestPlugInRunnerd.exe -testsuite Simpled.dll - - - Layout configuration is stored/restored. - -* Test plug-in XML output Hook - - - TestPlugIn interface provides a mean for plug-in to register hook for - XML output. Practically, this allow plug-in to add specific data to the - output. See ClockerPlugIn example, which add timing datas to the xml - output. - -* DllPlugInTester: - - - added option -w / --wait to wait for the user to press a key before exiting. - - - plug-in can now provides XmlOutputterHook to add specific datas to the - XML ouput. See ClockerPlugIn example. - -* CompilerOutputter wrapping is parametrized - - - Wrap column can be set with setWrapColumn(). Default is now 79 instead of 80. - - - Wrapping can be disabled with setNoWrap(). - -* Examples: - - - ClockerPlugIn: the example now use the new XmlOutputterHook. Test time are - now included in the XML output. See examples/ClockerPlugIn/ReadMe.txt for - details. - -* Bug Fix: - - - CompilerOutputter: fixed wrapping issues (UT magic!) - - - DllPlugInTester: use ISO-LATIN1 encoding if none is given. Flag --xsl was - ignored. - - - MfcUi plug-in runner (TesTPlugInRunner): better handling of history when - loading and reloading a dll. - - - Qt Test Runner: minor bug fixes. Should compile on Unix. - - - XmlOutputter: use the default encoding if an empty string is given as - encoding - -* Compatibility Break: - - - CompilerOutputter: removed printNotEqualMessage() and printDefaultMessage(). - No longer needed since Exception message are processed in a generic way. - Removed wrap(). Extracted to StringTools. - - - Exception constructor takes a Message instead of a string. Notes that the - first argument in Message constructor is a short description, not the message. - Therefore, the change will usualy have the following form: - Exception( Message( "assertion failed", oldMessage ) ); - You may want to use Asserter functions instead of constructing and throwing - the exception manually. - - - TestPlugInAdapter: renamed TestPlugInDefaultImpl. - - - TestSuiteBuilder: removed default constructor. All remaining constructors - take an additional argument of type TestNamer used to specify the fixture - named and generate test case name. Remove template method - addTestCallerForException(). Use addTest() instead (see - CPPUNIT_TEST_EXCEPTION implementation). - - - TextTestResult: most printing method were removed. This task is now delegated - to TextOuputter. - - - XmlElement: renamed addNode() to addElement(). - - - XmlOutputter: removed methods writeProlog() and writeTestResult() which - are replaced by XmlDocument. Renamed makeRootNode() to setRootNode(). It - no longer returns the root node, but set the root node of the XML document. - - - XmlOuputter::Node: class has been extracted and renamed XmlElement. - -* Deprecated: - - - Asserter: all functions that use a string for the failure message. Construct - a Message instead (see Exception constructor compatiblity break and - Exception message feature). - - - New in CppUnit 1.9.6: - --------------------- - - - DllPlugInTester can be parametrized from command line - - Two test listener plug-in examples - - An 'hello world' example & getting started document : Money - - Contribution: generic makefile for Borland 5.5 free compiler. - - Bug fixes - -* DllPlugInTester: - - - Advanced command line to support miscellaneous listener outputer. - Parameters can now be passed to test plug-in: - - -c --compiler - Use CompilerOutputter - -x --xml [filename] - Use XmlOutputter (if filename is omitted, then output to cout or - cerr. - -s --xsl stylesheet - XML style sheet for XML Outputter - -e --encoding encoding - XML file encoding (UTF8, shift_jis, ISO-8859-1...) - -b --brief-progress - Use BriefTestProgressListener (default is TextTestProgressListener) - -n --no-progress - Show no test progress (disable default TextTestProgressListener) - -t --text - Use TextOutputter - -o --cout - Ouputters output to cout instead of the default cerr. - filename[="options"] - Many filenames can be specified. They are the name of the - test plug-ins to load. Optional plug-ins parameters can be - specified after the filename by adding '='. - [:testpath] - Optional. Only one test path can be specified. It must - be prefixed with ':'. See TestPath constructor for syntax. - - 'parameters' (test plug-in or XML filename, test path...) may contains - spaces if double quoted. Quote may be escaped with \". - - Some examples of command lines: -DllPlugInTesterd_dll.exe -b -x tests.xml -c simple_plugind.dll CppUnitTestPlugInd.dll - Will load 2 tests plug-ins (available in lib/), use the brief test - progress, output the result in XML in file tests.xml and also - output the result using the compiler outputter. - -DllPlugInTesterd_dll.exe ClockerPlugInd.dll="flat" -n CppUnitTestPlugInd.dll - Will load the 2 test plug-ins, and pass the parameter string "flat" - to the Clocker plug-in, disable test progress. Clocker being a test - listener plug-ins (it doesn't implements any tests, it just register - a TestListener), this is equivalent to say 'run all the test - of CppUnitTestPlugIn and use ClockerPlugIn as a TestLisener'. - -DllPlugInTesterd_dll.exe CppUnitTestPlugInd.dll :Core - Will run the test named "Core" (a suite in the present case ) of the - test plug-in. - -* Documentation - - - New getting started documentation. Not completed yet, but probably - a good complement to the current cookbook. Explore the creation - of the Money example. - -* Examples - - - Money (examples/Money): the 'hello world' example. Unit tests for - a simple Money class. - - - DllPlugInTesterTest (src/DllPlugInTester/DllPlugInTester.dsp): - unit tests for CommandLineParser. Not really an example, but only - slightly more complex than Money. - - - ClockerPlugIn (examples/ClockerPlugIn): a test listener plug-in - that track tests and test suites running time. Parameter: "flat" - for a reporting with a flattened tree. - - - DumperPlugIn (examples/DumperPlugIn): a test listener plug-in that - dump the test tree as it run. Paramater: "flat" for a reporting - with a flattened tree. - - - CppUnitTestPlugIn (examples/cppunitest/CppUnitTestPlugIn.dsp): - CppUnit's test suite as a test plug-in. - -* Contribution - - - Contributed by project cuppa team (http://sourceforge.jp/projects/cuppa/): - - - Makefile for CppUnit with Borland C++ 5.5 free compiler: does not - depend on a specific CppUnit version. - -* Compatiblity breaks - - - DllPlugInTester: (1.9.4 only), should add -c to DllPlugInTester - command line. - -* Bug Fix: - - - DynamicLibaryManager did not report the library name when loading a - a library. - - - BeosDynamicLibraryManager: fixed thanks to Shibu Yoshiki - ('cuppa' project team). - - - Broken build on Unix should be fixed for most (thanks to - Jeffrey Morgan). - - - New in CppUnit 1.9.4: - ---------------------- - - - More versatile, easier to make test plug-in. - - A PlugInManager to manage multiple test plug-ins. - - Crossplatform test plug-in runner. - - Crossplatform test plug-in example. - - A brief progress listener - - Easier test hierarchy creation - - Improved documentation. - - Tracking of test run start/end. - - Contribution: XML style sheet & borland 5.5 makefile. - - Help needed on the Unix side! - -* Buildling on Unix: - - - I did not get any feed back on the previous build issue on Unix. Using - a simple autobook example was useless to try to solve the problem. Here - is the issue: - - CppUnit library build fine, it is the example I'm having trouble with. - - Since the test plug-in have been added, CppUnit use the function - dlopen(), dlsym() and dlclose() on unix to load/unload the plug-in. - - Those functions apparently requires to link another library when - building an exectuable. Here is was should be done: - - linking against the said library for each example. - - generates the shared library for the examples/simple/simple_plugin - example (source files are ExampleTestCase.cpp, ExampleTestCase.cpp - and SimplePlugIn.cpp). - - if possible, makes the above optionnal if --disable-test-plug-in - is defined: - - don't link the dlXXX library - - don't compile the plug-in example - - add #define CPPUNIT_NO_TESTPLUGIN 1 to the config file - - Contact me on the mailing-list for more details. - -* TestPlugIn: - - - A simple fact I realised while testing: if you link your test plug-in - against the DLL version of cppunit (or shared library on Unix), then - test registered to the TestFactoryRegistry (it is what's hide behind - CPPUNIT_TEST_SUITE_REGISTRATION) are automatically shared. Changes - have been made to support that usage (CppUnit was crashing badly). - Using the TestFactoryRegistry provides much more flexiblity that - providing a single suite for the plug-in. As such: - - - CppUnit plug-in should be linked against the dll version of CppUnit library. - - - Plug-in should register their tests using the CPPUNIT_TEST_SUITE_xxx macros. - - - 'homemade' suite can still be registred to the TestFactoryRegistry that is - passed as parameter on plug-in initialization. Notes that you must - unregister those suites during plug-in uninitialization, otherwise on - destruction, the TestFactoryRegistry will attempt to destroy them... Your - plug-in would have been already unloaded... - - - Plug-in can accept parameters on initialization (notes that the Parameters - object is far from being stabilized, but whatever form it takes, it will be - a list of string). - - - Plug-in can register their one listener for a test run. This means that you - can extends 'DllPlugInTester' by creating test plug-in... This also means - than you can listen to startTestRun()/endTestRun() to do some global - setUp/tearDown (to initialize globales resources, such as COM...) - - - Why all this fuss around test plug-in ? Test plug-in are the incarnation of - an old concept: testable components... - -* PlugInManager: - - - The PlugInManager is used to load/unload plug-ins. It takes care of all - the 'plug-in' protocol and makes it easy to use multiple plug-ins at the - same time. It dispatches the addListener()/removeListener() message to - each plug-in. - -* Crossplatform test plug-in runner (src/DllPlugInRunner): - - - This application can be used to run your test plug-ins. It can load - multiple test plug-ins and run all or a specific test in the test - hierarchy returned by TestFactoryRegistry::getRegistry().makeTest(). - - - Plug-in loaded by the plug-in may also be custom TestListener. - - - It can be use for post-build check and to debug the plug-in. - - - Why use it? It keep you away from CppUnit API changes! - -* Easier test hierarchy creation (TestFactoryRegistry/HelperMacros): - - - added method addRegistry(name) to add a named registry to the registry. - see TestFactoryRegistry for an example of use. - - - added macros CPPUNIT_REGISTRY_ADD( which, to ) and - CPPUNIT_REGISTRY_ADD_TO_DEFAULT( which ) to create test hierarchy at static - initialization (in the spirit of CPPUNIT_TEST_SUITE_xxx() macros). - -* VerboseTestProgressListener: - - - A new TestListener that prints the test name before running it. Most useful when - a test crashing, mean a application crash. - -* Documentation: - - - More details about the test plug-in, how to use it, how does it works... - See module/Writing Test Plug-in. - -* Examples: - - - examAdded crossplatform simple example. Equivalent to VC++ HostApp example. - - examples/simple: a very simple example, demonstrating the use of CppUnit - with a single TestFixture. Demonstrate both how to build an application - using TestRunner, and how to build a test plug-in to use with the - test plug-in runner. - -* Contribution - - - Contributed by project cuppa team (http://sourceforge.jp/projects/cuppa/): - - - XML style sheet: transform CppUnit XML output into HTML. - - Makefile for CppUnit with Borland C++ 5.5 free compiler. - -* Behavior changes: - - - Test runner should call TestResult::runTest() to run the 'top level' test. This - will inform the TestListener of the test run start/end. - -* Compatiblity break: - - - TestFactoryRegistry don't own register test anymore. AutoRegisterSuite has - been updated to preverse its apparent behavior. It should be of concern - if you created and registered custom TestFactory. - - - Removed TextTestProgressListener::done(). No longer needed, it listens - for endTestRun(). - -* Compatiblity Break for 1.9.2 users: - - - TestPlugIn.h: CppUnitTestPlugIn as been completly rewritten. - - - TestPlugIn.h: macro CPPUNIT_PLUGIN_IMPLEMENT() don't take any arguments. - - - TestSuitePlugIn: removed. A similar functionnality is provided by - PlugInManager. - - - TestPlugInDefaultImpl: renamed TestPlugInAdapter. It does not implements - any default behavior anymore. - - - DllPlugInRunner: no longer support multiple specific tests. The test path must - be prefixed with ':'. Release and Debug configuration links against cppunit_dll. - -* Bug Fix: - - - Crash when linking CppUnit DLL within another DLL that registered test. Caused - by the destruction of tests registered to TestFactoryRegistry. Fixed by - providing a register/unregister interface and removing the ownership of - TestFactory to TestFactoryRegistry. - - - - New in CppUnit 1.9.2: - ---------------------- - - In short: - - Cleaner XML output - - Crossplatform Test plug-in - - TestPlugInSuite to wrap test plug-in - - More TestPlugIn documentation. - -* TestPlugIn: - - The test plug-in functionnality has been rewritten from scrash. - TestPlugIn related macro are now crossplatform (exporting the plug-in - function from the dynamic library...). - - - Class DynamicLibraryManager provides a generic way to access dynamic - library. Platform specific implementation provided for WIN32, unix, BeOs. - Can be very easily ported to new platform. - - - A More flexible and hopefully extensible interface has been introduced - (CppUnitPlugIn). - - - A default implementation using the test factory registry is provided - (TestPlugInDefaultImpl). Can be easily customized. - - - The one line test plug-in declaration was renamed CPPUNIT_PLUGIN_IMPLEMENT. - - See modules/Writing Test Plug-in documentation and examples/EasyTestPlugIn. - -* XmlOutputter: - - - XML output is now indented. Nodes that don't have children are one line - tag. The output can now easily be read. - -* Compatibility break: - - - class TestSucessListener was renamed to TestSuccessListener. - - - XmlOutput: renamed tag to - - - Global fix of the 'success' typo (was misspelled 'sucess'). Main impacts are listed - above, but check your own code in case you override some protected/private methods. - - - TestPlugInInterface (include/msvc6/TestPlugInInterface.h): this header and class - are now obsolete. You should use include/cppunit/plugin/TestPlugIn.h instead. - Macro CPPUNIT_TESTPLUGIN_IMPL have been replaced by CPPUNIT_PLUGIN_IMPLEMENT. - - - TestDecorator inherits Test instead of TestLeaf. - - - DllPlugInTester only run DLL implementing the new new TestPlugIn interface. - - - New in CppUnit 1.9.0: - ---------------------- - - In short: - - Exploration of the test hierarchy without RTTI support - - Utility methods to find a test in the hierarchy - - TestPath to store/load the path to a specific test in the hierarchy - - Generic TestRunner - - Style sheet support added to XML ouput. - - CompilerOutputter supports run-time parametrization of error location format. - - Tracking of test suite run. - - Debugging and post-build testing of DLL using DllPlugInTester. - - Easy creation a test plug-in and test plug-in new example - -* Test: - - - Exploration of the test hierarchy without RTTI support: - Added Test::getChildTestCount() and Test::getChildTestAt() to walk the test hierarchy - without RTTI. - - - Utility methods to find a test in the hierarchy: - Added Test::findTest(), Test::findTestPath() and Test::resolveTestPath(). - -* TestPath: - - - A new class that store the path to a specific test (list of pointer). Can be - converted into a string and constructed from a string. Typically used with - TestRunner. - -* TestListener: - - - Added startSuite() and endSuite() callback that are called before and after a - test suite runs its child tests. See TestListener for detail and new example. - -* CompilerOutputter: - - - Support run-time parametrization of compiler error format. Support for gcc error - format added. See CompilerOutputter::setLocationFormat(). - -* XmlOutputter: - - - Added style sheet support. - - - XML structure change (see Compatibility break) - -* DllPlugInTester: (src/msvc6/DllPlugInTester, in src/CppUnitLibraries.dsw) - - - An application to load a DLL test plug-in and run the specified test. Test - result are reported using a CompilerOutputter. It can be used for post-build - testing, but to debug DLL too! See examples/msvc6/TestPlugIn/TestPlugIn.dsp - which demonstrate both. - -* TestPlugInInterface (include/msvc6/TestPlugInInterface.h): - - - Easy creation a test plug-in with the new macro CPPUNIT_TESTPLUGIN_IMPL - that implements and exports everything for you. - See examples/msvc6/EasyTestPlugIn for an example. - - -* Compatibility break: - - - Test::toString() has been removed. Applies to all subclass of Test. - It was not used by the framework and was source of confusion with getName(). - - - TestCase::run(void) and TestCase::defaultResult() have been removed. Using the - run() method with a TestResult instead. - - - XmlOutput: added a message element to the XML structure. The message associated - to a failure is now in the content of element instead of in the content - of the element. - Changed from: - - test6 - Error - error2 - - To: - - test6 - Error - error2 - - - -* Deprecated: - - - CompilerOutputter::defaultOutputter(): use default constructor instead. - - -* Bug fix: - - - XmlOutputter: did not escape content (bug #540944). - - - Included qt/examples in distribution - - - Removed dependency of MfcTestRunner on DSPlugIn. It should now compile with - VC++ 7. - - - New in CppUnit 1.8.0: - ---------------------- - - In short: - - new assertions - - new facilities to write custom assertions - - new macros to define test case in your fixture - - registration of test fixture in named suite - - xml & compiler format test result output - - a new graphic test runner for the QT library - - MFC test runner window is resizable - - cppunit as a DLL - - Unicode support for MFC test runner. - - architecture clean-up: TestResultCollector extracted from TestResult. - - architecture clean-up: TestFixture extracted from TestCase. - - cookbook and documentation updated. - -* New assertion (TestAssert.h): - - CPPUNIT_FAIL(message) : equivalent to CPPUNIT_ASSERT_MESSAGE( message, false ) - - CPPUNIT_ASSERT_EQUAL_MESSAGE( expectedValue, actualValue, additionalMessage ): - behave like CPPUNIT_ASSERT_EQUAL but allow to add some contextual information. - -* New macros to write test case (HelperMacros.h): - - CPPUNIT_TEST_EXCEPTION that expect an exception of a specified type to - be thrown. - - CPPUNIT_TEST_FAIL that expect a test to fail. - - CPPUNIT_TEST_SUITE_NAMED_REGISTRATION to register a suite in a named suite. See - cppunittest example for a demo. - -* TextTestRunner (TextTestRunner.h): - -run() returns a boolean indicating is the run was successful. - -the constructor and setOutputter() allow you do define a specific outputter - to print the test result (CompilerOutputter, TextOutputter, XmlOutputter...) - -result() provide access to the result of the test run. - -eventManager() give access to the TestResult, allowing you to register others - TestListener. - -* TestResult (TestResult.h): - - That class has been split in two: TestResult and TestResultCollector. - - - TestResult manages the TestListener (registration and event dispatch), as - well as the stop flag indicating if the current test run should be interrupted. - All other responsabilites have been moved to TestResultCollector. - - - TestResult no longer hold the result of the test run (this is done by - TestResultCollector which is a TestListener). - -* TestListener (TestListener.h): - - all failures and errors are reported using a single method: - virtual void addFailure( const TestFailure &failure ) - => the failure object life time is limited to that of the method call. - Use TestFailure::isError() to distinguish error from failure. - Use TestFailure::clone() to obtain a duplicate of the failure. - -* New helpers to construct your own assertion (Asserter.h): - - It is now very easy to create your own assertion macro with failure - location. - - Asserter namespace contains functions used to construct and throw exception - to report failure. See Asserter documentation for an example of usage, and - examples/cppunittest/XmlUniformiser.h for a real life example. - - CPPUNIT_SOURCELINE() macro have been added (SourceLine.h). It captures the - failure location in a SourceLine object. Use it to write your own macros. - - Asserter namespace contains functions used to construct and throw exception - to report failure. See Asserter documentation for an example of usage, and - examples/cppunittest/XmlUniformiser.h for a real life example. - -* TestListener (TestListener.h): - - - TestSucesssListener : a simple listener that checks if a test has failed. - - - TestResultCollector : store all the test result. This class has been - extracted from the hold TestResult class. - - - TextTestProgressListener : print dot on cout to each time a test ends. - Letter 'F' and 'E' are printed when a failure or an error occurs. - -* Output (Outputter.h): - - - XML output: You can dump the TestResult as an XML document using - XmlOutputter. See examples/cppunittest/XmlOutputterTest.cpp for document - structure and usage. - - - Compiler compatible output : CompilerOutputter print the result in a - compiler compatible format. You can use your IDE to jump to the first - failure. See examples/cppunittest/CppUniTestMain.cpp for an example of usage. - - - Text output : replace the deprecated TextTestResult. Print the result in - a human readable format. - -* NotEqualException constructor take an additional message (usually used to -point out where the difference occured between the expected and actual value) -that can be retreived with additionalMessage(). See Asserter documentation for -an example of usage. - -* CppUnit - - - CppUnit can be compiled as a DLL (WIN32 platform). - DLL can be generated by the cppunit_dll.dsp project. You must define the - pre-processor symbol CPPUNIT_DLL when linking against CppUnit DLL. - See cppunittests examples for an example. - -* TestRunner - - - Qt TestRunner : a test runner for the Qt library (http://www.trolltech.com). - See examples/qt for an example of use. - - - MFC TestRunner : the dialog can now be resized. List view column sizes, - as well as the dialog size, are saved. Unicode configurations have been added. - -* Deprecated - - - TextTestResult : use the test listener TextTestProgressListener and the - ouputter TextOuputter instead. - - - Methods having fileName, lineNumber as parameter. Usually replaced by - a similar method that take a SourceLine parameter. Exception and - TestAssert are impacted. - - - TestRegistryFactory::registerFactory( const std::string &name, - TestFactory *factory ). - - You must define the symbol CPPUNIT_ENABLE_SOURCELINE_DEPRECATED to enable - old Exception constructor, UNKNOWNFILENAME and UNKNOWNLINENUMBER, as well - as function defined in the TestAssert namespace. The exception construction - and throwing as been moved to Asserter namespace. - -* Compatibility break: - - TestResult has been split in two class. TestResultCollector compatibility - breaks refer to the methods that were previously in TestResult. - - - TestListener::addError() was removed. addFailure() is used to report -any kind of failure. - - TestResultCollector::errors() was removed. Use failures() instead. - - TestResultCollector::failures() now reports all kind of failures. - - TestResultCollector::failures() returns a const reference. - - void TestListener::addFailure( TestFailure *failure ) was removed. - - void TestListener::addError( TestFailure *failure ) signature changed. - - - CPPUNIT_ASSERT_EQUAL_MESSAGE: changed arguments order. 'message' is now - the first argument instead of the last (like CPPUNIT_ASSERT_MESSAGE). - Notes that CPPUNIT_ASSERT_EQUAL was introduced in release 1.7.3. - - - directory for TestRunners as moved from cppunitui/ to cppunit/ui/ (concern - only users of release 1.7.10) - -* Bug fix: - - test ExceptionTest.testAssignment() don't fail anymore on VC++. See FAQ - for detail. - - - New in CppUnit 1.6.1 - -------------------- - -* This is a bug-fixing release. - - - New in CppUnit 1.6.0 - -------------------- - -* All CppUnit macros now begin with "CPPUNIT_". - - Macros CU_TEST_SUITE, CU_TEST, CU_TEST_SUITE_END, CU_TEST_SUB_SUITE, - and CU_TEST_SUITE_REGISTRATION are renamed but are otherwise unchanged; - they take the same arguments, and have the same effect. The old-style - macros can be used if your sources #define CPPUNIT_ENABLE_CU_TEST_MACROS - to 1 before including any CppUnit headers. - - Macros assert, assertEqual, and assertDoublesEqual, have been replaced - by CPPUNIT_ASSERT, CPPUNIT_ASSERT_EQUAL, and CPPUNIT_ASSERT_DOUBLES_EQUAL, - respectively. Macro assertLongsEqual is replaced by CPPUNIT_ASSERT_EQUAL. - The old assert macros can be used if your sources #define - CPPUNIT_ENABLE_NAKED_ASSERT to 1 before including any CppUnit headers. - - The old macro names are deprecated and will vanish in a future version - of CppUnit. - - -* Equality assertion CPPUNIT_ASSERT_EQUAL(expected,actual) can test - any type of expression. The types of "expected" and "actual" must - be the same; use a cast if necessary. - - -* Equality tested using CPPUNIT_ASSERT_EQUAL may be re-defined using - a traits class. Ditto for the string representation used in the - diagnostic messages. - - -* New assertion with arbitrary message: CPPUNIT_ASSERT_MESSAGE. - - -* A test case obtained using class TestCaller may check that - a particular exception is thrown. - - -* CppUnit has a test suite for itself! - - -* VC++ integration for MFC TestRunner. - diff --git a/contrib/cppunit-1.12.1/README b/contrib/cppunit-1.12.1/README deleted file mode 100644 index a27c5452f..000000000 --- a/contrib/cppunit-1.12.1/README +++ /dev/null @@ -1,19 +0,0 @@ - CppUnit --- The C++ Unit Test Library - ------------------------------------- - http://cppunit.sourceforge.net - - -CppUnit is the C++ port of the famous JUnit framework for unit -testing. - -For MSWindows installation notes, see INSTALL-WIN32.txt. -For other systems -- including cygwin -- see INSTALL and INSTALL-unix. - - -Bug reports are welcome. Please use the SourceForge bug tracking -system at http://sourceforge.net/projects/cppunit/. Bugs that already -appear in the file BUGS do not need to be reported. - -Email to the current maintainers may be sent to -. - diff --git a/contrib/cppunit-1.12.1/THANKS b/contrib/cppunit-1.12.1/THANKS deleted file mode 100644 index 89cfa9c7a..000000000 --- a/contrib/cppunit-1.12.1/THANKS +++ /dev/null @@ -1,23 +0,0 @@ -Tim Jansen -Christian Leutloff -Steve M. Robbins -Patrick Berny -Patrick Hartling -Peer Sommerlund -Duane Murphy -Gigi Sayfan -Armin "bored" Michel -Jeffrey Morgan -'cuppa' project team (http://sourceforge.jp/projects/cuppa/) -Phil Verghese -Lavoie Philippe -Pavel Zabelin -Marco Welti -Thomas Neidhart -Hans Bühler (Dynamic Window library used by MFC UI) -John Sisson -Steven Mitter -Stephan Stapel -Abdessattar Sassi (hp-ux plug-in support) -Max Quatember and Andreas Pfaffenbichler (VC++ 7 MFC TestRunner go to source line) -Vincent Rivière diff --git a/contrib/cppunit-1.12.1/TODO b/contrib/cppunit-1.12.1/TODO deleted file mode 100644 index 19fa3240a..000000000 --- a/contrib/cppunit-1.12.1/TODO +++ /dev/null @@ -1,35 +0,0 @@ -* Bugs: -Asserter::makeNotEqualMessage() strip the shortDescription of the additional message. - -* CppUnit: - - STL concept checker. - - Memory leak tracking: setUp/tearDown should be leak safe if no failure occured. - -* UnitTest - - add tests for XmlOutputter::setStyleSheet (current assertion macro strip when - testing ) - -* VC++ TestRunner: - - Modify MfcUi::TestRunner to expose TestResult (which allow specific TestListener - for global initialization). - - Update MfcTestRunner to use TestPath to store test in the registry - -* Documentation: - CookBook: - - how to create simple test cases (with CppUnit namespace) - - test case using only CPPUINT_ASSERT - - test case using CPPUNIT_ASSERT_EQUAL - - advanced assertions with the CPPUNIT_ASSERT_MESSAGE - - Helper Macros for convenience - - Creating a suite - - Composing a suite from more suites (i.e. compose tests for n modules to - form a big test for the whole program) - - customizing output using an user defined TestListener - - how to write the TestListener (subclass of TestListener) - - how to hook it in - - how to use the GUI - - MSVC++ special stuff - - other custmization stuff I haven't understood yet - - CppUnit: architecture overview. - diff --git a/contrib/cppunit-1.12.1/aclocal.m4 b/contrib/cppunit-1.12.1/aclocal.m4 deleted file mode 100644 index ac008c6a6..000000000 --- a/contrib/cppunit-1.12.1/aclocal.m4 +++ /dev/null @@ -1,7542 +0,0 @@ -# generated automatically by aclocal 1.10.1 -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(AC_AUTOCONF_VERSION, [2.61],, -[m4_warning([this file was generated for autoconf 2.61. -You have another version of autoconf. It may work, but is not guaranteed to. -If you have problems, you may need to regenerate the build system entirely. -To do so, use the procedure documented by the package, typically `autoreconf'.])]) - -# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- - -# serial 52 Debian 1.5.26-1 AC_PROG_LIBTOOL - - -# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) -# ----------------------------------------------------------- -# If this macro is not defined by Autoconf, define it here. -m4_ifdef([AC_PROVIDE_IFELSE], - [], - [m4_define([AC_PROVIDE_IFELSE], - [m4_ifdef([AC_PROVIDE_$1], - [$2], [$3])])]) - - -# AC_PROG_LIBTOOL -# --------------- -AC_DEFUN([AC_PROG_LIBTOOL], -[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl -dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX -dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. - AC_PROVIDE_IFELSE([AC_PROG_CXX], - [AC_LIBTOOL_CXX], - [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX - ])]) -dnl And a similar setup for Fortran 77 support - AC_PROVIDE_IFELSE([AC_PROG_F77], - [AC_LIBTOOL_F77], - [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 -])]) - -dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. -dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run -dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. - AC_PROVIDE_IFELSE([AC_PROG_GCJ], - [AC_LIBTOOL_GCJ], - [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], - [AC_LIBTOOL_GCJ], - [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], - [AC_LIBTOOL_GCJ], - [ifdef([AC_PROG_GCJ], - [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) - ifdef([A][M_PROG_GCJ], - [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) - ifdef([LT_AC_PROG_GCJ], - [define([LT_AC_PROG_GCJ], - defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) -])])# AC_PROG_LIBTOOL - - -# _AC_PROG_LIBTOOL -# ---------------- -AC_DEFUN([_AC_PROG_LIBTOOL], -[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl -AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl -AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl -AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' -AC_SUBST(LIBTOOL)dnl - -# Prevent multiple expansion -define([AC_PROG_LIBTOOL], []) -])# _AC_PROG_LIBTOOL - - -# AC_LIBTOOL_SETUP -# ---------------- -AC_DEFUN([AC_LIBTOOL_SETUP], -[AC_PREREQ(2.50)dnl -AC_REQUIRE([AC_ENABLE_SHARED])dnl -AC_REQUIRE([AC_ENABLE_STATIC])dnl -AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_PROG_LD])dnl -AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl -AC_REQUIRE([AC_PROG_NM])dnl - -AC_REQUIRE([AC_PROG_LN_S])dnl -AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl -# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! -AC_REQUIRE([AC_OBJEXT])dnl -AC_REQUIRE([AC_EXEEXT])dnl -dnl -AC_LIBTOOL_SYS_MAX_CMD_LEN -AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE -AC_LIBTOOL_OBJDIR - -AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl -_LT_AC_PROG_ECHO_BACKSLASH - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='sed -e 1s/^X//' -[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'] - -# Same as above, but do not quote variable references. -[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'] - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - -# Constants: -rm="rm -f" - -# Global variables: -default_ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a -ltmain="$ac_aux_dir/ltmain.sh" -ofile="$default_ofile" -with_gnu_ld="$lt_cv_prog_gnu_ld" - -AC_CHECK_TOOL(AR, ar, false) -AC_CHECK_TOOL(RANLIB, ranlib, :) -AC_CHECK_TOOL(STRIP, strip, :) - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$AR" && AR=ar -test -z "$AR_FLAGS" && AR_FLAGS=cru -test -z "$AS" && AS=as -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$DLLTOOL" && DLLTOOL=dlltool -test -z "$LD" && LD=ld -test -z "$LN_S" && LN_S="ln -s" -test -z "$MAGIC_CMD" && MAGIC_CMD=file -test -z "$NM" && NM=nm -test -z "$SED" && SED=sed -test -z "$OBJDUMP" && OBJDUMP=objdump -test -z "$RANLIB" && RANLIB=: -test -z "$STRIP" && STRIP=: -test -z "$ac_objext" && ac_objext=o - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" -fi - -_LT_CC_BASENAME([$compiler]) - -# Only perform the check for file, if the check method requires it -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - AC_PATH_MAGIC - fi - ;; -esac - -_LT_REQUIRED_DARWIN_CHECKS - -AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) -AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], -enable_win32_dll=yes, enable_win32_dll=no) - -AC_ARG_ENABLE([libtool-lock], - [AC_HELP_STRING([--disable-libtool-lock], - [avoid locking (might break parallel builds)])]) -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -AC_ARG_WITH([pic], - [AC_HELP_STRING([--with-pic], - [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], - [pic_mode="$withval"], - [pic_mode=default]) -test -z "$pic_mode" && pic_mode=default - -# Use C for the default configuration in the libtool script -tagname= -AC_LIBTOOL_LANG_C_CONFIG -_LT_AC_TAGCONFIG -])# AC_LIBTOOL_SETUP - - -# _LT_AC_SYS_COMPILER -# ------------------- -AC_DEFUN([_LT_AC_SYS_COMPILER], -[AC_REQUIRE([AC_PROG_CC])dnl - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC -])# _LT_AC_SYS_COMPILER - - -# _LT_CC_BASENAME(CC) -# ------------------- -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. -AC_DEFUN([_LT_CC_BASENAME], -[for cc_temp in $1""; do - case $cc_temp in - compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; - distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` -]) - - -# _LT_COMPILER_BOILERPLATE -# ------------------------ -# Check for compiler boilerplate output or warnings with -# the simple compiler test code. -AC_DEFUN([_LT_COMPILER_BOILERPLATE], -[AC_REQUIRE([LT_AC_PROG_SED])dnl -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$rm conftest* -])# _LT_COMPILER_BOILERPLATE - - -# _LT_LINKER_BOILERPLATE -# ---------------------- -# Check for linker boilerplate output or warnings with -# the simple link test code. -AC_DEFUN([_LT_LINKER_BOILERPLATE], -[AC_REQUIRE([LT_AC_PROG_SED])dnl -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$rm -r conftest* -])# _LT_LINKER_BOILERPLATE - -# _LT_REQUIRED_DARWIN_CHECKS -# -------------------------- -# Check for some things on darwin -AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS],[ - case $host_os in - rhapsody* | darwin*) - AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) - AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) - - AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], - [lt_cv_apple_cc_single_mod=no - if test -z "${LT_MULTI_MODULE}"; then - # By default we will add the -single_module flag. You can override - # by either setting the environment variable LT_MULTI_MODULE - # non-empty at configure time, or by adding -multi_module to the - # link flags. - echo "int foo(void){return 1;}" > conftest.c - $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ - -dynamiclib ${wl}-single_module conftest.c - if test -f libconftest.dylib; then - lt_cv_apple_cc_single_mod=yes - rm -rf libconftest.dylib* - fi - rm conftest.c - fi]) - AC_CACHE_CHECK([for -exported_symbols_list linker flag], - [lt_cv_ld_exported_symbols_list], - [lt_cv_ld_exported_symbols_list=no - save_LDFLAGS=$LDFLAGS - echo "_main" > conftest.sym - LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" - AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], - [lt_cv_ld_exported_symbols_list=yes], - [lt_cv_ld_exported_symbols_list=no]) - LDFLAGS="$save_LDFLAGS" - ]) - case $host_os in - rhapsody* | darwin1.[[0123]]) - _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; - darwin1.*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - darwin*) - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - 10.[[012]]*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - 10.*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - esac - ;; - esac - if test "$lt_cv_apple_cc_single_mod" = "yes"; then - _lt_dar_single_mod='$single_module' - fi - if test "$lt_cv_ld_exported_symbols_list" = "yes"; then - _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' - else - _lt_dar_export_syms="~$NMEDIT -s \$output_objdir/\${libname}-symbols.expsym \${lib}" - fi - if test "$DSYMUTIL" != ":"; then - _lt_dsymutil="~$DSYMUTIL \$lib || :" - else - _lt_dsymutil= - fi - ;; - esac -]) - -# _LT_AC_SYS_LIBPATH_AIX -# ---------------------- -# Links a minimal program and checks the executable -# for the system default hardcoded library path. In most cases, -# this is /usr/lib:/lib, but when the MPI compilers are used -# the location of the communication and MPI libs are included too. -# If we don't find anything, use the default library path according -# to the aix ld manual. -AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], -[AC_REQUIRE([LT_AC_PROG_SED])dnl -AC_LINK_IFELSE(AC_LANG_PROGRAM,[ -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi],[]) -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -])# _LT_AC_SYS_LIBPATH_AIX - - -# _LT_AC_SHELL_INIT(ARG) -# ---------------------- -AC_DEFUN([_LT_AC_SHELL_INIT], -[ifdef([AC_DIVERSION_NOTICE], - [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], - [AC_DIVERT_PUSH(NOTICE)]) -$1 -AC_DIVERT_POP -])# _LT_AC_SHELL_INIT - - -# _LT_AC_PROG_ECHO_BACKSLASH -# -------------------------- -# Add some code to the start of the generated configure script which -# will find an echo command which doesn't interpret backslashes. -AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], -[_LT_AC_SHELL_INIT([ -# Check that we are running under the correct shell. -SHELL=${CONFIG_SHELL-/bin/sh} - -case X$ECHO in -X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` - ;; -esac - -echo=${ECHO-echo} -if test "X[$]1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X[$]1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then - # Yippee, $echo works! - : -else - # Restart under the correct shell. - exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} -fi - -if test "X[$]1" = X--fallback-echo; then - # used as fallback echo - shift - cat </dev/null 2>&1 && unset CDPATH - -if test -z "$ECHO"; then -if test "X${echo_test_string+set}" != Xset; then -# find a string as large as possible, as long as the shell can cope with it - for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... - if (echo_test_string=`eval $cmd`) 2>/dev/null && - echo_test_string=`eval $cmd` && - (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null - then - break - fi - done -fi - -if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - : -else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - IFS="$lt_save_ifs" - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$dir/echo" - break - fi - done - IFS="$lt_save_ifs" - - if test "X$echo" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - echo='print -r' - elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} - else - # Try using printf. - echo='printf %s\n' - if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # Cool, printf works - : - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - echo="$CONFIG_SHELL [$]0 --fallback-echo" - elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$CONFIG_SHELL [$]0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do - if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null - then - break - fi - prev="$cmd" - done - - if test "$prev" != 'sed 50q "[$]0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} - else - # Oops. We lost completely, so just stick with echo. - echo=echo - fi - fi - fi - fi -fi -fi - -# Copy echo and quote the copy suitably for passing to libtool from -# the Makefile, instead of quoting the original, which is used later. -ECHO=$echo -if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then - ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" -fi - -AC_SUBST(ECHO) -])])# _LT_AC_PROG_ECHO_BACKSLASH - - -# _LT_AC_LOCK -# ----------- -AC_DEFUN([_LT_AC_LOCK], -[AC_ARG_ENABLE([libtool-lock], - [AC_HELP_STRING([--disable-libtool-lock], - [avoid locking (might break parallel builds)])]) -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '[#]line __oline__ "configure"' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - if test "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -s390*-*linux*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, - [AC_LANG_PUSH(C) - AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) - AC_LANG_POP]) - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; -sparc*-*solaris*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; - *) - if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then - LD="${LD-ld} -64" - fi - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], -[*-*-cygwin* | *-*-mingw* | *-*-pw32*) - AC_CHECK_TOOL(DLLTOOL, dlltool, false) - AC_CHECK_TOOL(AS, as, false) - AC_CHECK_TOOL(OBJDUMP, objdump, false) - ;; - ]) -esac - -need_locks="$enable_libtool_lock" - -])# _LT_AC_LOCK - - -# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) -# ---------------------------------------------------------------- -# Check whether the given compiler option works -AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], -[AC_REQUIRE([LT_AC_PROG_SED]) -AC_CACHE_CHECK([$1], [$2], - [$2=no - ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$3" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - $2=yes - fi - fi - $rm conftest* -]) - -if test x"[$]$2" = xyes; then - ifelse([$5], , :, [$5]) -else - ifelse([$6], , :, [$6]) -fi -])# AC_LIBTOOL_COMPILER_OPTION - - -# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [ACTION-SUCCESS], [ACTION-FAILURE]) -# ------------------------------------------------------------ -# Check whether the given compiler option works -AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], -[AC_REQUIRE([LT_AC_PROG_SED])dnl -AC_CACHE_CHECK([$1], [$2], - [$2=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $3" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&AS_MESSAGE_LOG_FD - $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - $2=yes - fi - else - $2=yes - fi - fi - $rm -r conftest* - LDFLAGS="$save_LDFLAGS" -]) - -if test x"[$]$2" = xyes; then - ifelse([$4], , :, [$4]) -else - ifelse([$5], , :, [$5]) -fi -])# AC_LIBTOOL_LINKER_OPTION - - -# AC_LIBTOOL_SYS_MAX_CMD_LEN -# -------------------------- -AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], -[# find the maximum length of command line arguments -AC_MSG_CHECKING([the maximum length of command line arguments]) -AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl - i=0 - teststring="ABCD" - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; - - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; - - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=102400 - ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` - else - lt_cv_sys_max_cmd_len=32768 - fi - ;; - *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len"; then - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - else - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ - = "XX$teststring") >/dev/null 2>&1 && - new_result=`expr "X$teststring" : ".*" 2>&1` && - lt_cv_sys_max_cmd_len=$new_result && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - teststring= - # Add a significant safety factor because C++ compilers can tack on massive - # amounts of additional arguments before passing them to the linker. - # It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - fi - ;; - esac -]) -if test -n $lt_cv_sys_max_cmd_len ; then - AC_MSG_RESULT($lt_cv_sys_max_cmd_len) -else - AC_MSG_RESULT(none) -fi -])# AC_LIBTOOL_SYS_MAX_CMD_LEN - - -# _LT_AC_CHECK_DLFCN -# ------------------ -AC_DEFUN([_LT_AC_CHECK_DLFCN], -[AC_CHECK_HEADERS(dlfcn.h)dnl -])# _LT_AC_CHECK_DLFCN - - -# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, -# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) -# --------------------------------------------------------------------- -AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], -[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl -if test "$cross_compiling" = yes; then : - [$4] -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } - else - puts (dlerror ()); - - exit (status); -}] -EOF - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) $1 ;; - x$lt_dlneed_uscore) $2 ;; - x$lt_dlunknown|x*) $3 ;; - esac - else : - # compilation failed - $3 - fi -fi -rm -fr conftest* -])# _LT_AC_TRY_DLOPEN_SELF - - -# AC_LIBTOOL_DLOPEN_SELF -# ---------------------- -AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], -[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl -if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ]) - ;; - - *) - AC_CHECK_FUNC([shl_load], - [lt_cv_dlopen="shl_load"], - [AC_CHECK_LIB([dld], [shl_load], - [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], - [AC_CHECK_FUNC([dlopen], - [lt_cv_dlopen="dlopen"], - [AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], - [AC_CHECK_LIB([svld], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], - [AC_CHECK_LIB([dld], [dld_link], - [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) - ]) - ]) - ]) - ]) - ]) - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - AC_CACHE_CHECK([whether a program can dlopen itself], - lt_cv_dlopen_self, [dnl - _LT_AC_TRY_DLOPEN_SELF( - lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, - lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) - ]) - - if test "x$lt_cv_dlopen_self" = xyes; then - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - AC_CACHE_CHECK([whether a statically linked program can dlopen itself], - lt_cv_dlopen_self_static, [dnl - _LT_AC_TRY_DLOPEN_SELF( - lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, - lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) - ]) - fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi -])# AC_LIBTOOL_DLOPEN_SELF - - -# AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) -# --------------------------------- -# Check to see if options -c and -o are simultaneously supported by compiler -AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], -[AC_REQUIRE([LT_AC_PROG_SED])dnl -AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl -AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], - [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], - [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes - fi - fi - chmod u+w . 2>&AS_MESSAGE_LOG_FD - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $rm conftest* -]) -])# AC_LIBTOOL_PROG_CC_C_O - - -# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) -# ----------------------------------------- -# Check to see if we can do hard links to lock some files if needed -AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], -[AC_REQUIRE([_LT_AC_LOCK])dnl - -hard_links="nottested" -if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - AC_MSG_CHECKING([if we can lock with hard links]) - hard_links=yes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - AC_MSG_RESULT([$hard_links]) - if test "$hard_links" = no; then - AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) - need_locks=warn - fi -else - need_locks=no -fi -])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS - - -# AC_LIBTOOL_OBJDIR -# ----------------- -AC_DEFUN([AC_LIBTOOL_OBJDIR], -[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], -[rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null]) -objdir=$lt_cv_objdir -])# AC_LIBTOOL_OBJDIR - - -# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) -# ---------------------------------------------- -# Check hardcoding attributes. -AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], -[AC_MSG_CHECKING([how to hardcode library paths into programs]) -_LT_AC_TAGVAR(hardcode_action, $1)= -if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ - test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \ - test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then - - # We can hardcode non-existant directories. - if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && - test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then - # Linking always hardcodes the temporary library directory. - _LT_AC_TAGVAR(hardcode_action, $1)=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - _LT_AC_TAGVAR(hardcode_action, $1)=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - _LT_AC_TAGVAR(hardcode_action, $1)=unsupported -fi -AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) - -if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi -])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH - - -# AC_LIBTOOL_SYS_LIB_STRIP -# ------------------------ -AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], -[striplib= -old_striplib= -AC_MSG_CHECKING([whether stripping libraries is possible]) -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - AC_MSG_RESULT([yes]) -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - old_striplib="$STRIP -S" - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) -fi - ;; - *) - AC_MSG_RESULT([no]) - ;; - esac -fi -])# AC_LIBTOOL_SYS_LIB_STRIP - - -# AC_LIBTOOL_SYS_DYNAMIC_LINKER -# ----------------------------- -# PORTME Fill in your ld.so characteristics -AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], -[AC_REQUIRE([LT_AC_PROG_SED])dnl -AC_MSG_CHECKING([dynamic linker characteristics]) -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -m4_if($1,[],[ -if test "$GCC" = yes; then - case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'` - else - lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary. - lt_tmp_lt_search_path_spec= - lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[[lt_foo]]++; } - if (lt_freq[[lt_foo]] == 1) { print lt_foo; } -}'` - sys_lib_search_path_spec=`echo $lt_search_path_spec` -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi]) -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix[[4-9]]*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[[01]] | aix4.[[01]].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[[45]]*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' - m4_if([$1], [],[ - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[[123]]*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[[01]]* | freebsdelf3.[[01]]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ - freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -interix[[3-9]]*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux* | k*bsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -netbsdelf*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='NetBSD ld.elf_so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -nto-qnx*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -openbsd*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[[89]] | openbsd2.[[89]].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - export_dynamic_flag_spec='${wl}-Blargedynsym' - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - shlibpath_overrides_runpath=no - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - shlibpath_overrides_runpath=yes - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -AC_MSG_RESULT([$dynamic_linker]) -test "$dynamic_linker" = no && can_build_shared=no - -AC_CACHE_VAL([lt_cv_sys_lib_search_path_spec], -[lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"]) -sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -AC_CACHE_VAL([lt_cv_sys_lib_dlsearch_path_spec], -[lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"]) -sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi -])# AC_LIBTOOL_SYS_DYNAMIC_LINKER - - -# _LT_AC_TAGCONFIG -# ---------------- -AC_DEFUN([_LT_AC_TAGCONFIG], -[AC_REQUIRE([LT_AC_PROG_SED])dnl -AC_ARG_WITH([tags], - [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], - [include additional configurations @<:@automatic@:>@])], - [tagnames="$withval"]) - -if test -f "$ltmain" && test -n "$tagnames"; then - if test ! -f "${ofile}"; then - AC_MSG_WARN([output file `$ofile' does not exist]) - fi - - if test -z "$LTCC"; then - eval "`$SHELL ${ofile} --config | grep '^LTCC='`" - if test -z "$LTCC"; then - AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) - else - AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) - fi - fi - if test -z "$LTCFLAGS"; then - eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" - fi - - # Extract list of available tagged configurations in $ofile. - # Note that this assumes the entire list is on one line. - available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` - - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for tagname in $tagnames; do - IFS="$lt_save_ifs" - # Check whether tagname contains only valid characters - case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in - "") ;; - *) AC_MSG_ERROR([invalid tag name: $tagname]) - ;; - esac - - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null - then - AC_MSG_ERROR([tag name \"$tagname\" already exists]) - fi - - # Update the list of available tags. - if test -n "$tagname"; then - echo appending configuration tag \"$tagname\" to $ofile - - case $tagname in - CXX) - if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - AC_LIBTOOL_LANG_CXX_CONFIG - else - tagname="" - fi - ;; - - F77) - if test -n "$F77" && test "X$F77" != "Xno"; then - AC_LIBTOOL_LANG_F77_CONFIG - else - tagname="" - fi - ;; - - GCJ) - if test -n "$GCJ" && test "X$GCJ" != "Xno"; then - AC_LIBTOOL_LANG_GCJ_CONFIG - else - tagname="" - fi - ;; - - RC) - AC_LIBTOOL_LANG_RC_CONFIG - ;; - - *) - AC_MSG_ERROR([Unsupported tag name: $tagname]) - ;; - esac - - # Append the new tag name to the list of available tags. - if test -n "$tagname" ; then - available_tags="$available_tags $tagname" - fi - fi - done - IFS="$lt_save_ifs" - - # Now substitute the updated list of available tags. - if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then - mv "${ofile}T" "$ofile" - chmod +x "$ofile" - else - rm -f "${ofile}T" - AC_MSG_ERROR([unable to update list of available tagged configurations.]) - fi -fi -])# _LT_AC_TAGCONFIG - - -# AC_LIBTOOL_DLOPEN -# ----------------- -# enable checks for dlopen support -AC_DEFUN([AC_LIBTOOL_DLOPEN], - [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) -])# AC_LIBTOOL_DLOPEN - - -# AC_LIBTOOL_WIN32_DLL -# -------------------- -# declare package support for building win32 DLLs -AC_DEFUN([AC_LIBTOOL_WIN32_DLL], -[AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) -])# AC_LIBTOOL_WIN32_DLL - - -# AC_ENABLE_SHARED([DEFAULT]) -# --------------------------- -# implement the --enable-shared flag -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -AC_DEFUN([AC_ENABLE_SHARED], -[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE([shared], - [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], - [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_shared=]AC_ENABLE_SHARED_DEFAULT) -])# AC_ENABLE_SHARED - - -# AC_DISABLE_SHARED -# ----------------- -# set the default shared flag to --disable-shared -AC_DEFUN([AC_DISABLE_SHARED], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_SHARED(no) -])# AC_DISABLE_SHARED - - -# AC_ENABLE_STATIC([DEFAULT]) -# --------------------------- -# implement the --enable-static flag -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -AC_DEFUN([AC_ENABLE_STATIC], -[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE([static], - [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], - [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_static=]AC_ENABLE_STATIC_DEFAULT) -])# AC_ENABLE_STATIC - - -# AC_DISABLE_STATIC -# ----------------- -# set the default static flag to --disable-static -AC_DEFUN([AC_DISABLE_STATIC], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_STATIC(no) -])# AC_DISABLE_STATIC - - -# AC_ENABLE_FAST_INSTALL([DEFAULT]) -# --------------------------------- -# implement the --enable-fast-install flag -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -AC_DEFUN([AC_ENABLE_FAST_INSTALL], -[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE([fast-install], - [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], - [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT) -])# AC_ENABLE_FAST_INSTALL - - -# AC_DISABLE_FAST_INSTALL -# ----------------------- -# set the default to --disable-fast-install -AC_DEFUN([AC_DISABLE_FAST_INSTALL], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_FAST_INSTALL(no) -])# AC_DISABLE_FAST_INSTALL - - -# AC_LIBTOOL_PICMODE([MODE]) -# -------------------------- -# implement the --with-pic flag -# MODE is either `yes' or `no'. If omitted, it defaults to `both'. -AC_DEFUN([AC_LIBTOOL_PICMODE], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -pic_mode=ifelse($#,1,$1,default) -])# AC_LIBTOOL_PICMODE - - -# AC_PROG_EGREP -# ------------- -# This is predefined starting with Autoconf 2.54, so this conditional -# definition can be removed once we require Autoconf 2.54 or later. -m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], -[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], - [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 - then ac_cv_prog_egrep='grep -E' - else ac_cv_prog_egrep='egrep' - fi]) - EGREP=$ac_cv_prog_egrep - AC_SUBST([EGREP]) -])]) - - -# AC_PATH_TOOL_PREFIX -# ------------------- -# find a file program which can recognize shared library -AC_DEFUN([AC_PATH_TOOL_PREFIX], -[AC_REQUIRE([AC_PROG_EGREP])dnl -AC_MSG_CHECKING([for $1]) -AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, -[case $MAGIC_CMD in -[[\\/*] | ?:[\\/]*]) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -dnl $ac_dummy forces splitting on constant user-supplied paths. -dnl POSIX.2 word splitting is done only on the output of word expansions, -dnl not every word. This closes a longstanding sh security hole. - ac_dummy="ifelse([$2], , $PATH, [$2])" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$1; then - lt_cv_path_MAGIC_CMD="$ac_dir/$1" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac]) -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - AC_MSG_RESULT($MAGIC_CMD) -else - AC_MSG_RESULT(no) -fi -])# AC_PATH_TOOL_PREFIX - - -# AC_PATH_MAGIC -# ------------- -# find a file program which can recognize a shared library -AC_DEFUN([AC_PATH_MAGIC], -[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) - else - MAGIC_CMD=: - fi -fi -])# AC_PATH_MAGIC - - -# AC_PROG_LD -# ---------- -# find the pathname to the GNU or non-GNU linker -AC_DEFUN([AC_PROG_LD], -[AC_ARG_WITH([gnu-ld], - [AC_HELP_STRING([--with-gnu-ld], - [assume the C compiler uses GNU ld @<:@default=no@:>@])], - [test "$withval" = no || with_gnu_ld=yes], - [with_gnu_ld=no]) -AC_REQUIRE([LT_AC_PROG_SED])dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - AC_MSG_CHECKING([for ld used by $CC]) - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [[\\/]]* | ?:[[\\/]]*) - re_direlt='/[[^/]][[^/]]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - AC_MSG_CHECKING([for GNU ld]) -else - AC_MSG_CHECKING([for non-GNU ld]) -fi -AC_CACHE_VAL(lt_cv_path_LD, -[if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | dragonfly*) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; - -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case $host_cpu in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; - -interix[[3-9]]*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be Linux ELF. -linux* | k*bsd*-gnu) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -nto-qnx*) - lt_cv_deplibs_check_method=unknown - ;; - -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; -esac -]) -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 -])# AC_DEPLIBS_CHECK_METHOD - - -# AC_PROG_NM -# ---------- -# find the pathname to a BSD-compatible name lister -AC_DEFUN([AC_PROG_NM], -[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, -[if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_nm_to_check="${ac_tool_prefix}nm" - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - ;; - esac - fi - done - IFS="$lt_save_ifs" - done - test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm -fi]) -NM="$lt_cv_path_NM" -])# AC_PROG_NM - - -# AC_CHECK_LIBM -# ------------- -# check for math library -AC_DEFUN([AC_CHECK_LIBM], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -LIBM= -case $host in -*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) - # These system don't have libm, or don't need it - ;; -*-ncr-sysv4.3*) - AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") - AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") - ;; -*) - AC_CHECK_LIB(m, cos, LIBM="-lm") - ;; -esac -])# AC_CHECK_LIBM - - -# AC_LIBLTDL_CONVENIENCE([DIRECTORY]) -# ----------------------------------- -# sets LIBLTDL to the link flags for the libltdl convenience library and -# LTDLINCL to the include flags for the libltdl header and adds -# --enable-ltdl-convenience to the configure arguments. Note that -# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, -# it is assumed to be `libltdl'. LIBLTDL will be prefixed with -# '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/' -# (note the single quotes!). If your package is not flat and you're not -# using automake, define top_builddir and top_srcdir appropriately in -# the Makefiles. -AC_DEFUN([AC_LIBLTDL_CONVENIENCE], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl - case $enable_ltdl_convenience in - no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; - "") enable_ltdl_convenience=yes - ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; - esac - LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la - LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) - # For backwards non-gettext consistent compatibility... - INCLTDL="$LTDLINCL" -])# AC_LIBLTDL_CONVENIENCE - - -# AC_LIBLTDL_INSTALLABLE([DIRECTORY]) -# ----------------------------------- -# sets LIBLTDL to the link flags for the libltdl installable library and -# LTDLINCL to the include flags for the libltdl header and adds -# --enable-ltdl-install to the configure arguments. Note that -# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, -# and an installed libltdl is not found, it is assumed to be `libltdl'. -# LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with -# '${top_srcdir}/' (note the single quotes!). If your package is not -# flat and you're not using automake, define top_builddir and top_srcdir -# appropriately in the Makefiles. -# In the future, this macro may have to be called after AC_PROG_LIBTOOL. -AC_DEFUN([AC_LIBLTDL_INSTALLABLE], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl - AC_CHECK_LIB(ltdl, lt_dlinit, - [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], - [if test x"$enable_ltdl_install" = xno; then - AC_MSG_WARN([libltdl not installed, but installation disabled]) - else - enable_ltdl_install=yes - fi - ]) - if test x"$enable_ltdl_install" = x"yes"; then - ac_configure_args="$ac_configure_args --enable-ltdl-install" - LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la - LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) - else - ac_configure_args="$ac_configure_args --enable-ltdl-install=no" - LIBLTDL="-lltdl" - LTDLINCL= - fi - # For backwards non-gettext consistent compatibility... - INCLTDL="$LTDLINCL" -])# AC_LIBLTDL_INSTALLABLE - - -# AC_LIBTOOL_CXX -# -------------- -# enable support for C++ libraries -AC_DEFUN([AC_LIBTOOL_CXX], -[AC_REQUIRE([_LT_AC_LANG_CXX]) -])# AC_LIBTOOL_CXX - - -# _LT_AC_LANG_CXX -# --------------- -AC_DEFUN([_LT_AC_LANG_CXX], -[AC_REQUIRE([AC_PROG_CXX]) -AC_REQUIRE([_LT_AC_PROG_CXXCPP]) -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) -])# _LT_AC_LANG_CXX - -# _LT_AC_PROG_CXXCPP -# ------------------ -AC_DEFUN([_LT_AC_PROG_CXXCPP], -[ -AC_REQUIRE([AC_PROG_CXX]) -if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - AC_PROG_CXXCPP -fi -])# _LT_AC_PROG_CXXCPP - -# AC_LIBTOOL_F77 -# -------------- -# enable support for Fortran 77 libraries -AC_DEFUN([AC_LIBTOOL_F77], -[AC_REQUIRE([_LT_AC_LANG_F77]) -])# AC_LIBTOOL_F77 - - -# _LT_AC_LANG_F77 -# --------------- -AC_DEFUN([_LT_AC_LANG_F77], -[AC_REQUIRE([AC_PROG_F77]) -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) -])# _LT_AC_LANG_F77 - - -# AC_LIBTOOL_GCJ -# -------------- -# enable support for GCJ libraries -AC_DEFUN([AC_LIBTOOL_GCJ], -[AC_REQUIRE([_LT_AC_LANG_GCJ]) -])# AC_LIBTOOL_GCJ - - -# _LT_AC_LANG_GCJ -# --------------- -AC_DEFUN([_LT_AC_LANG_GCJ], -[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], - [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], - [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], - [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], - [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], - [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) -])# _LT_AC_LANG_GCJ - - -# AC_LIBTOOL_RC -# ------------- -# enable support for Windows resource files -AC_DEFUN([AC_LIBTOOL_RC], -[AC_REQUIRE([LT_AC_PROG_RC]) -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) -])# AC_LIBTOOL_RC - - -# AC_LIBTOOL_LANG_C_CONFIG -# ------------------------ -# Ensure that the configuration vars for the C compiler are -# suitably defined. Those variables are subsequently used by -# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. -AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) -AC_DEFUN([_LT_AC_LANG_C_CONFIG], -[lt_save_CC="$CC" -AC_LANG_PUSH(C) - -# Source file extension for C test sources. -ac_ext=c - -# Object file extension for compiled C test sources. -objext=o -_LT_AC_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' - -_LT_AC_SYS_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) -AC_LIBTOOL_PROG_COMPILER_PIC($1) -AC_LIBTOOL_PROG_CC_C_O($1) -AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) -AC_LIBTOOL_PROG_LD_SHLIBS($1) -AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) -AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) -AC_LIBTOOL_SYS_LIB_STRIP -AC_LIBTOOL_DLOPEN_SELF - -# Report which library types will actually be built -AC_MSG_CHECKING([if libtool supports shared libraries]) -AC_MSG_RESULT([$can_build_shared]) - -AC_MSG_CHECKING([whether to build shared libraries]) -test "$can_build_shared" = "no" && enable_shared=no - -# On AIX, shared libraries and static libraries use the same namespace, and -# are all built from PIC. -case $host_os in -aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - -aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; -esac -AC_MSG_RESULT([$enable_shared]) - -AC_MSG_CHECKING([whether to build static libraries]) -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" = yes || enable_static=yes -AC_MSG_RESULT([$enable_static]) - -AC_LIBTOOL_CONFIG($1) - -AC_LANG_POP -CC="$lt_save_CC" -])# AC_LIBTOOL_LANG_C_CONFIG - - -# AC_LIBTOOL_LANG_CXX_CONFIG -# -------------------------- -# Ensure that the configuration vars for the C compiler are -# suitably defined. Those variables are subsequently used by -# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. -AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) -AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], -[AC_LANG_PUSH(C++) -AC_REQUIRE([AC_PROG_CXX]) -AC_REQUIRE([_LT_AC_PROG_CXXCPP]) - -_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_AC_TAGVAR(allow_undefined_flag, $1)= -_LT_AC_TAGVAR(always_export_symbols, $1)=no -_LT_AC_TAGVAR(archive_expsym_cmds, $1)= -_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_AC_TAGVAR(hardcode_direct, $1)=no -_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= -_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= -_LT_AC_TAGVAR(hardcode_minus_L, $1)=no -_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported -_LT_AC_TAGVAR(hardcode_automatic, $1)=no -_LT_AC_TAGVAR(module_cmds, $1)= -_LT_AC_TAGVAR(module_expsym_cmds, $1)= -_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown -_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_AC_TAGVAR(no_undefined_flag, $1)= -_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= -_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no - -# Dependencies to place before and after the object being linked: -_LT_AC_TAGVAR(predep_objects, $1)= -_LT_AC_TAGVAR(postdep_objects, $1)= -_LT_AC_TAGVAR(predeps, $1)= -_LT_AC_TAGVAR(postdeps, $1)= -_LT_AC_TAGVAR(compiler_lib_search_path, $1)= -_LT_AC_TAGVAR(compiler_lib_search_dirs, $1)= - -# Source file extension for C++ test sources. -ac_ext=cpp - -# Object file extension for compiled C++ test sources. -objext=o -_LT_AC_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_AC_SYS_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# Allow CC to be a program name with arguments. -lt_save_CC=$CC -lt_save_LD=$LD -lt_save_GCC=$GCC -GCC=$GXX -lt_save_with_gnu_ld=$with_gnu_ld -lt_save_path_LD=$lt_cv_path_LD -if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then - lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx -else - $as_unset lt_cv_prog_gnu_ld -fi -if test -n "${lt_cv_path_LDCXX+set}"; then - lt_cv_path_LD=$lt_cv_path_LDCXX -else - $as_unset lt_cv_path_LD -fi -test -z "${LDCXX+set}" || LD=$LDCXX -CC=${CXX-"c++"} -compiler=$CC -_LT_AC_TAGVAR(compiler, $1)=$CC -_LT_CC_BASENAME([$compiler]) - -# We don't want -fno-exception wen compiling C++ code, so set the -# no_builtin_flag separately -if test "$GXX" = yes; then - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' -else - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= -fi - -if test "$GXX" = yes; then - # Set up default GNU C++ configuration - - AC_PROG_LD - - # Check if GNU C++ uses GNU ld as the underlying linker, since the - # archiving commands below assume that GNU ld is being used. - if test "$with_gnu_ld" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - - # If archive_cmds runs LD, not CC, wlarc should be empty - # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to - # investigate it a little bit more. (MM) - wlarc='${wl}' - - # ancient GNU ld didn't support --whole-archive et. al. - if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ - grep 'no-whole-archive' > /dev/null; then - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= - fi - else - with_gnu_ld=no - wlarc= - - # A generic and very simple default shared library creation - # command for GNU C++ for the case where it uses the native - # linker, instead of GNU ld. If possible, this setting should - # overridden to take advantage of the native linker features on - # the platform it is being used on. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - fi - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' - -else - GXX=no - with_gnu_ld=no - wlarc= -fi - -# PORTME: fill in a description of your system's C++ link characteristics -AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) -_LT_AC_TAGVAR(ld_shlibs, $1)=yes -case $host_os in - aix3*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - aix[[4-9]]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) - for ld_flag in $LDFLAGS; do - case $ld_flag in - *-brtl*) - aix_use_runtimelinking=yes - break - ;; - esac - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - _LT_AC_TAGVAR(archive_cmds, $1)='' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - - if test "$GXX" = yes; then - case $host_os in aix4.[[012]]|aix4.[[012]].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - _LT_AC_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an empty executable. - _LT_AC_SYS_LIBPATH_AIX - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - _LT_AC_SYS_LIBPATH_AIX - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds its shared libraries. - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - chorus*) - case $cc_basename in - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_AC_TAGVAR(always_export_symbols, $1)=no - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - darwin* | rhapsody*) - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_automatic, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - _LT_AC_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" - if test "$GXX" = yes ; then - output_verbose_link_cmd='echo' - _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - _LT_AC_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - _LT_AC_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" - if test "$lt_cv_apple_cc_single_mod" != "yes"; then - _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" - fi - else - case $cc_basename in - xlc*) - output_verbose_link_cmd='echo' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' - _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - ;; - *) - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - fi - ;; - - dgux*) - case $cc_basename in - ec++*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - ghcx*) - # Green Hills C++ Compiler - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - freebsd[[12]]*) - # C++ shared libraries reported to be fairly broken before switch to ELF - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - freebsd-elf*) - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - ;; - freebsd* | dragonfly*) - # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF - # conventions - _LT_AC_TAGVAR(ld_shlibs, $1)=yes - ;; - gnu*) - ;; - hpux9*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - aCC*) - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - hpux10*|hpux11*) - if test $with_gnu_ld = no; then - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - case $host_cpu in - hppa*64*|ia64*) ;; - *) - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; - esac - fi - case $host_cpu in - hppa*64*|ia64*) - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - *) - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - ;; - esac - - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - aCC*) - case $host_cpu in - hppa*64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes; then - if test $with_gnu_ld = no; then - case $host_cpu in - hppa*64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - fi - else - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - interix[[3-9]]*) - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - irix5* | irix6*) - case $cc_basename in - CC*) - # SGI C++ - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - - # Archives containing C++ object files must be created using - # "CC -ar", where "CC" is the IRIX C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' - ;; - *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' - fi - fi - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - ;; - esac - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - linux* | k*bsd*-gnu) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' - ;; - icpc*) - # Intel C++ - with_gnu_ld=yes - # version 8.0 and above of icpc choke on multiply defined symbols - # if we add $predep_objects and $postdep_objects, however 7.1 and - # earlier do not add the objects themselves. - case `$CC -V 2>&1` in - *"Version 7."*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - *) # Version 8.0 or newer - tmp_idyn= - case $host_cpu in - ia64*) tmp_idyn=' -i_dynamic';; - esac - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - esac - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - ;; - pgCC* | pgcpp*) - # Portland Group C++ compiler - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - ;; - cxx*) - # Compaq C++ - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' - - runpath_var=LD_RUN_PATH - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - - # Not sure whether something based on - # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 - # would be better. - output_verbose_link_cmd='echo' - - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' - ;; - esac - ;; - esac - ;; - lynxos*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - m88k*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - mvs*) - case $cc_basename in - cxx*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' - wlarc= - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - fi - # Workaround some broken pre-1.5 toolchains - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' - ;; - openbsd2*) - # C++ shared libraries are fairly broken - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - openbsd*) - if test -f /usr/libexec/ld.so; then - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - fi - output_verbose_link_cmd='echo' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - osf3*) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' - - ;; - RCC*) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - cxx*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' - - else - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - osf4* | osf5*) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Archives containing C++ object files must be created using - # the KAI C++ compiler. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' - ;; - RCC*) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - cxx*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ - echo "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ - $rm $lib.exp' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' - - else - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - psos*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - sunos4*) - case $cc_basename in - CC*) - # Sun C++ 4.x - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - lcc*) - # Lucid - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - solaris*) - case $cc_basename in - CC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes - _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. - # Supported since Solaris 2.6 (maybe 2.5.1?) - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' - ;; - esac - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - - output_verbose_link_cmd='echo' - - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' - ;; - gcx*) - # Green Hills C++ Compiler - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - - # The C++ compiler must be used to create the archive. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' - ;; - *) - # GNU C++ compiler with Solaris linker - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' - if $CC --version | grep -v '^2\.7' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" - else - # g++ 2.7 appears to require `-G' NOT `-shared' on this - # platform. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" - fi - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - ;; - esac - fi - ;; - esac - ;; - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) - _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - # So that behaviour is only enabled if SCOABSPATH is set to a - # non-empty value in the environment. Most likely only useful for - # creating official distributions of packages. - # This is a hack until libtool officially supports absolute path - # names for shared libraries. - _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - tandem*) - case $cc_basename in - NCC*) - # NonStop-UX NCC 3.20 - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - vxworks*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; -esac -AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) -test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no - -_LT_AC_TAGVAR(GCC, $1)="$GXX" -_LT_AC_TAGVAR(LD, $1)="$LD" - -AC_LIBTOOL_POSTDEP_PREDEP($1) -AC_LIBTOOL_PROG_COMPILER_PIC($1) -AC_LIBTOOL_PROG_CC_C_O($1) -AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) -AC_LIBTOOL_PROG_LD_SHLIBS($1) -AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) -AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) - -AC_LIBTOOL_CONFIG($1) - -AC_LANG_POP -CC=$lt_save_CC -LDCXX=$LD -LD=$lt_save_LD -GCC=$lt_save_GCC -with_gnu_ldcxx=$with_gnu_ld -with_gnu_ld=$lt_save_with_gnu_ld -lt_cv_path_LDCXX=$lt_cv_path_LD -lt_cv_path_LD=$lt_save_path_LD -lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld -lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld -])# AC_LIBTOOL_LANG_CXX_CONFIG - -# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) -# ------------------------------------ -# Figure out "hidden" library dependencies from verbose -# compiler output when linking a shared library. -# Parse the compiler output and extract the necessary -# objects, libraries and library flags. -AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP], -[AC_REQUIRE([LT_AC_PROG_SED])dnl -dnl we can't use the lt_simple_compile_test_code here, -dnl because it contains code intended for an executable, -dnl not a library. It's possible we should let each -dnl tag define a new lt_????_link_test_code variable, -dnl but it's only used here... -ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - # - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - if test "$solaris_use_stlport4" != yes; then - _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; - -solaris*) - case $cc_basename in - CC*) - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - - # Adding this requires a known-good setup of shared libraries for - # Sun compiler versions before 5.6, else PIC objects from an old - # archive will be linked into the output, leading to subtle bugs. - if test "$solaris_use_stlport4" != yes; then - _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; -esac -]) -case " $_LT_AC_TAGVAR(postdeps, $1) " in -*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; -esac -])# AC_LIBTOOL_POSTDEP_PREDEP - -# AC_LIBTOOL_LANG_F77_CONFIG -# -------------------------- -# Ensure that the configuration vars for the C compiler are -# suitably defined. Those variables are subsequently used by -# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. -AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)]) -AC_DEFUN([_LT_AC_LANG_F77_CONFIG], -[AC_REQUIRE([AC_PROG_F77]) -AC_LANG_PUSH(Fortran 77) - -_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_AC_TAGVAR(allow_undefined_flag, $1)= -_LT_AC_TAGVAR(always_export_symbols, $1)=no -_LT_AC_TAGVAR(archive_expsym_cmds, $1)= -_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_AC_TAGVAR(hardcode_direct, $1)=no -_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= -_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= -_LT_AC_TAGVAR(hardcode_minus_L, $1)=no -_LT_AC_TAGVAR(hardcode_automatic, $1)=no -_LT_AC_TAGVAR(module_cmds, $1)= -_LT_AC_TAGVAR(module_expsym_cmds, $1)= -_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown -_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_AC_TAGVAR(no_undefined_flag, $1)= -_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= -_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no - -# Source file extension for f77 test sources. -ac_ext=f - -# Object file extension for compiled f77 test sources. -objext=o -_LT_AC_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="\ - subroutine t - return - end -" - -# Code to be used in simple link tests -lt_simple_link_test_code="\ - program t - end -" - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_AC_SYS_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${F77-"f77"} -compiler=$CC -_LT_AC_TAGVAR(compiler, $1)=$CC -_LT_CC_BASENAME([$compiler]) - -AC_MSG_CHECKING([if libtool supports shared libraries]) -AC_MSG_RESULT([$can_build_shared]) - -AC_MSG_CHECKING([whether to build shared libraries]) -test "$can_build_shared" = "no" && enable_shared=no - -# On AIX, shared libraries and static libraries use the same namespace, and -# are all built from PIC. -case $host_os in -aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; -aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; -esac -AC_MSG_RESULT([$enable_shared]) - -AC_MSG_CHECKING([whether to build static libraries]) -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" = yes || enable_static=yes -AC_MSG_RESULT([$enable_static]) - -_LT_AC_TAGVAR(GCC, $1)="$G77" -_LT_AC_TAGVAR(LD, $1)="$LD" - -AC_LIBTOOL_PROG_COMPILER_PIC($1) -AC_LIBTOOL_PROG_CC_C_O($1) -AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) -AC_LIBTOOL_PROG_LD_SHLIBS($1) -AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) -AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) - -AC_LIBTOOL_CONFIG($1) - -AC_LANG_POP -CC="$lt_save_CC" -])# AC_LIBTOOL_LANG_F77_CONFIG - - -# AC_LIBTOOL_LANG_GCJ_CONFIG -# -------------------------- -# Ensure that the configuration vars for the C compiler are -# suitably defined. Those variables are subsequently used by -# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. -AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)]) -AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG], -[AC_LANG_SAVE - -# Source file extension for Java test sources. -ac_ext=java - -# Object file extension for compiled Java test sources. -objext=o -_LT_AC_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="class foo {}" - -# Code to be used in simple link tests -lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_AC_SYS_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${GCJ-"gcj"} -compiler=$CC -_LT_AC_TAGVAR(compiler, $1)=$CC -_LT_CC_BASENAME([$compiler]) - -# GCJ did not exist at the time GCC didn't implicitly link libc in. -_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - -_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds - -AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) -AC_LIBTOOL_PROG_COMPILER_PIC($1) -AC_LIBTOOL_PROG_CC_C_O($1) -AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) -AC_LIBTOOL_PROG_LD_SHLIBS($1) -AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) -AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) - -AC_LIBTOOL_CONFIG($1) - -AC_LANG_RESTORE -CC="$lt_save_CC" -])# AC_LIBTOOL_LANG_GCJ_CONFIG - - -# AC_LIBTOOL_LANG_RC_CONFIG -# ------------------------- -# Ensure that the configuration vars for the Windows resource compiler are -# suitably defined. Those variables are subsequently used by -# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. -AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)]) -AC_DEFUN([_LT_AC_LANG_RC_CONFIG], -[AC_LANG_SAVE - -# Source file extension for RC test sources. -ac_ext=rc - -# Object file extension for compiled RC test sources. -objext=o -_LT_AC_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' - -# Code to be used in simple link tests -lt_simple_link_test_code="$lt_simple_compile_test_code" - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_AC_SYS_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${RC-"windres"} -compiler=$CC -_LT_AC_TAGVAR(compiler, $1)=$CC -_LT_CC_BASENAME([$compiler]) -_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes - -AC_LIBTOOL_CONFIG($1) - -AC_LANG_RESTORE -CC="$lt_save_CC" -])# AC_LIBTOOL_LANG_RC_CONFIG - - -# AC_LIBTOOL_CONFIG([TAGNAME]) -# ---------------------------- -# If TAGNAME is not passed, then create an initial libtool script -# with a default configuration from the untagged config vars. Otherwise -# add code to config.status for appending the configuration named by -# TAGNAME from the matching tagged config vars. -AC_DEFUN([AC_LIBTOOL_CONFIG], -[# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - _LT_AC_TAGVAR(compiler, $1) \ - _LT_AC_TAGVAR(CC, $1) \ - _LT_AC_TAGVAR(LD, $1) \ - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \ - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \ - _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \ - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \ - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \ - _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \ - _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \ - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \ - _LT_AC_TAGVAR(old_archive_cmds, $1) \ - _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \ - _LT_AC_TAGVAR(predep_objects, $1) \ - _LT_AC_TAGVAR(postdep_objects, $1) \ - _LT_AC_TAGVAR(predeps, $1) \ - _LT_AC_TAGVAR(postdeps, $1) \ - _LT_AC_TAGVAR(compiler_lib_search_path, $1) \ - _LT_AC_TAGVAR(compiler_lib_search_dirs, $1) \ - _LT_AC_TAGVAR(archive_cmds, $1) \ - _LT_AC_TAGVAR(archive_expsym_cmds, $1) \ - _LT_AC_TAGVAR(postinstall_cmds, $1) \ - _LT_AC_TAGVAR(postuninstall_cmds, $1) \ - _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \ - _LT_AC_TAGVAR(allow_undefined_flag, $1) \ - _LT_AC_TAGVAR(no_undefined_flag, $1) \ - _LT_AC_TAGVAR(export_symbols_cmds, $1) \ - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \ - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \ - _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \ - _LT_AC_TAGVAR(hardcode_automatic, $1) \ - _LT_AC_TAGVAR(module_cmds, $1) \ - _LT_AC_TAGVAR(module_expsym_cmds, $1) \ - _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \ - _LT_AC_TAGVAR(fix_srcfile_path, $1) \ - _LT_AC_TAGVAR(exclude_expsyms, $1) \ - _LT_AC_TAGVAR(include_expsyms, $1); do - - case $var in - _LT_AC_TAGVAR(old_archive_cmds, $1) | \ - _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \ - _LT_AC_TAGVAR(archive_cmds, $1) | \ - _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \ - _LT_AC_TAGVAR(module_cmds, $1) | \ - _LT_AC_TAGVAR(module_expsym_cmds, $1) | \ - _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \ - _LT_AC_TAGVAR(export_symbols_cmds, $1) | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\[$]0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'` - ;; - esac - -ifelse([$1], [], - [cfgfile="${ofile}T" - trap "$rm \"$cfgfile\"; exit 1" 1 2 15 - $rm -f "$cfgfile" - AC_MSG_NOTICE([creating $ofile])], - [cfgfile="$ofile"]) - - cat <<__EOF__ >> "$cfgfile" -ifelse([$1], [], -[#! $SHELL - -# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -# Free Software Foundation, Inc. -# -# This file is part of GNU Libtool: -# Originally by Gordon Matzigkeit , 1996 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 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, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# A sed program that does not truncate output. -SED=$lt_SED - -# Sed that helps us avoid accidentally triggering echo(1) options like -n. -Xsed="$SED -e 1s/^X//" - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# The names of the tagged configurations supported by this script. -available_tags= - -# ### BEGIN LIBTOOL CONFIG], -[# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# LTCC compiler flags. -LTCFLAGS=$lt_LTCFLAGS - -# A language-specific compiler. -CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) - -# Is the compiler the GNU C compiler? -with_gcc=$_LT_AC_TAGVAR(GCC, $1) - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_[]_LT_AC_TAGVAR(LD, $1) - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) - -# Must we lock files when doing compilation? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) - -# Commands used to build and install a shared archive. -archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) -archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) -module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) - -# The directories searched by this compiler when creating a shared -# library -compiler_lib_search_dirs=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_dirs, $1) - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1) - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=$lt_fix_srcfile_path - -# Set to yes if exported symbols are required. -always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) - -# The commands to list exported symbols. -export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) - -# Symbols that must always be exported. -include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) - -ifelse([$1],[], -[# ### END LIBTOOL CONFIG], -[# ### END LIBTOOL TAG CONFIG: $tagname]) - -__EOF__ - -ifelse([$1],[], [ - case $host_os in - aix3*) - cat <<\EOF >> "$cfgfile" - -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -EOF - ;; - esac - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) - - mv -f "$cfgfile" "$ofile" || \ - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" -]) -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi -])# AC_LIBTOOL_CONFIG - - -# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) -# ------------------------------------------- -AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], -[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl - -_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= - -if test "$GCC" = yes; then - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' - - AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], - lt_cv_prog_compiler_rtti_exceptions, - [-fno-rtti -fno-exceptions], [], - [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) -fi -])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI - - -# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE -# --------------------------------- -AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], -[AC_REQUIRE([AC_CANONICAL_HOST]) -AC_REQUIRE([LT_AC_PROG_SED]) -AC_REQUIRE([AC_PROG_NM]) -AC_REQUIRE([AC_OBJEXT]) -# Check for command to grab the raw symbol name followed by C symbol from nm. -AC_MSG_CHECKING([command to parse $NM output from $compiler object]) -AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], -[ -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[[BCDEGRST]]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' - -# Transform an extracted symbol line into a proper C declaration -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[[BCDT]]' - ;; -cygwin* | mingw* | pw32*) - symcode='[[ABCDGISTW]]' - ;; -hpux*) # Its linker distinguishes data from code symbols - if test "$host_cpu" = ia64; then - symcode='[[ABCDEGRST]]' - fi - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - ;; -linux* | k*bsd*-gnu) - if test "$host_cpu" = ia64; then - symcode='[[ABCDGIRSTW]]' - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - fi - ;; -irix* | nonstopux*) - symcode='[[BCDEGRST]]' - ;; -osf*) - symcode='[[BCDEGQRST]]' - ;; -solaris*) - symcode='[[BDRT]]' - ;; -sco3.2v5*) - symcode='[[DT]]' - ;; -sysv4.2uw2*) - symcode='[[DT]]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[[ABDT]]' - ;; -sysv4) - symcode='[[DFNSTU]]' - ;; -esac - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[[ABCDGIRSTW]]' ;; -esac - -# Try without a prefix undercore, then with it. -for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # Write the raw and C identifiers. - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext < $nlist) && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if grep ' nm_test_var$' "$nlist" >/dev/null; then - if grep ' nm_test_func$' "$nlist" >/dev/null; then - cat < conftest.$ac_ext -#ifdef __cplusplus -extern "C" { -#endif - -EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' - - cat <> conftest.$ac_ext -#if defined (__STDC__) && __STDC__ -# define lt_ptr_t void * -#else -# define lt_ptr_t char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr_t address; -} -lt_preloaded_symbols[[]] = -{ -EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext - cat <<\EOF >> conftest.$ac_ext - {0, (lt_ptr_t) 0} -}; - -#ifdef __cplusplus -} -#endif -EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_save_LIBS="$LIBS" - lt_save_CFLAGS="$CFLAGS" - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then - pipe_works=yes - fi - LIBS="$lt_save_LIBS" - CFLAGS="$lt_save_CFLAGS" - else - echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD - fi - else - echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD - fi - else - echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD - cat conftest.$ac_ext >&5 - fi - rm -rf conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done -]) -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - AC_MSG_RESULT(failed) -else - AC_MSG_RESULT(ok) -fi -]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE - - -# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) -# --------------------------------------- -AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], -[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= -_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= -_LT_AC_TAGVAR(lt_prog_compiler_static, $1)= - -AC_MSG_CHECKING([for $compiler option to produce PIC]) - ifelse([$1],[CXX],[ - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - mingw* | cygwin* | os2* | pw32*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - m4_if([$1], [GCJ], [], - [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - *djgpp*) - # DJGPP does not support shared libraries at all - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - interix[[3-9]]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - sysv4*MP*) - if test -d /usr/nec; then - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic - fi - ;; - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - else - case $host_os in - aix[[4-9]]*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - chorus*) - case $cc_basename in - cxch68*) - # Green Hills C++ Compiler - # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" - ;; - esac - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case $cc_basename in - xlc*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - ;; - esac - ;; - dgux*) - case $cc_basename in - ec++*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - ghcx*) - # Green Hills C++ Compiler - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - freebsd* | dragonfly*) - # FreeBSD uses GNU C++ - ;; - hpux9* | hpux10* | hpux11*) - case $cc_basename in - CC*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - if test "$host_cpu" != ia64; then - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - fi - ;; - aCC*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - ;; - *) - ;; - esac - ;; - interix*) - # This is c89, which is MS Visual C++ (no shared libs) - # Anyone wants to do a port? - ;; - irix5* | irix6* | nonstopux*) - case $cc_basename in - CC*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - # CC pic flag -KPIC is the default. - ;; - *) - ;; - esac - ;; - linux* | k*bsd*-gnu) - case $cc_basename in - KCC*) - # KAI C++ Compiler - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - icpc* | ecpc*) - # Intel C++ - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - pgCC* | pgcpp*) - # Portland Group C++ compiler. - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - cxx*) - # Compaq C++ - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - esac - ;; - esac - ;; - lynxos*) - ;; - m88k*) - ;; - mvs*) - case $cc_basename in - cxx*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' - ;; - *) - ;; - esac - ;; - netbsd* | netbsdelf*-gnu) - ;; - osf3* | osf4* | osf5*) - case $cc_basename in - KCC*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - ;; - RCC*) - # Rational C++ 2.4.1 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - cxx*) - # Digital/Compaq C++ - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - *) - ;; - esac - ;; - psos*) - ;; - solaris*) - case $cc_basename in - CC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - gcx*) - # Green Hills C++ Compiler - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - ;; - *) - ;; - esac - ;; - sunos4*) - case $cc_basename in - CC*) - # Sun C++ 4.x - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - lcc*) - # Lucid - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - tandem*) - case $cc_basename in - NCC*) - # NonStop-UX NCC 3.20 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - *) - ;; - esac - ;; - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - case $cc_basename in - CC*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - esac - ;; - vxworks*) - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - esac - fi -], -[ - if test "$GCC" = yes; then - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - m4_if([$1], [GCJ], [], - [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - - interix[[3-9]]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - enable_shared=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic - fi - ;; - - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; - - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case $cc_basename in - xlc*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - ;; - esac - ;; - - mingw* | cygwin* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - m4_if([$1], [GCJ], [], - [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - - hpux9* | hpux10* | hpux11*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC (with -KPIC) is the default. - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - newsos6) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - linux* | k*bsd*-gnu) - case $cc_basename in - icc* | ecc*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - pgcc* | pgf77* | pgf90* | pgf95*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - ccc*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All Alpha code is PIC. - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C 5.9 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - ;; - *Sun\ F*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='' - ;; - esac - ;; - esac - ;; - - osf3* | osf4* | osf5*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All OSF/1 code is PIC. - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - rdos*) - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - solaris*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - case $cc_basename in - f77* | f90* | f95*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; - *) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; - esac - ;; - - sunos4*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - unicos*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - - uts4*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - *) - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - esac - fi -]) -AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then - AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], - _LT_AC_TAGVAR(lt_cv_prog_compiler_pic_works, $1), - [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], - [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in - "" | " "*) ;; - *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; - esac], - [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) -fi -case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" - ;; -esac - -# -# Check to make sure the static flag actually works. -# -wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\" -AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], - _LT_AC_TAGVAR(lt_cv_prog_compiler_static_works, $1), - $lt_tmp_static_flag, - [], - [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) -]) - - -# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) -# ------------------------------------ -# See if the linker supports building shared libraries. -AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], -[AC_REQUIRE([LT_AC_PROG_SED])dnl -AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) -ifelse([$1],[CXX],[ - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - case $host_os in - aix[[4-9]]*) - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' - else - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' - fi - ;; - pw32*) - _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" - ;; - cygwin* | mingw*) - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' - ;; - linux* | k*bsd*-gnu) - _LT_AC_TAGVAR(link_all_deplibs, $1)=no - ;; - *) - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; - esac - _LT_AC_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] -],[ - runpath_var= - _LT_AC_TAGVAR(allow_undefined_flag, $1)= - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no - _LT_AC_TAGVAR(archive_cmds, $1)= - _LT_AC_TAGVAR(archive_expsym_cmds, $1)= - _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= - _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= - _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_minus_L, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown - _LT_AC_TAGVAR(hardcode_automatic, $1)=no - _LT_AC_TAGVAR(module_cmds, $1)= - _LT_AC_TAGVAR(module_expsym_cmds, $1)= - _LT_AC_TAGVAR(always_export_symbols, $1)=no - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - _LT_AC_TAGVAR(include_expsyms, $1)= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - _LT_AC_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - # Exclude shared library initialization/finalization symbols. -dnl Note also adjust exclude_expsyms for C++ above. - extract_expsyms_cmds= - # Just being paranoid about ensuring that cc_basename is set. - _LT_CC_BASENAME([$compiler]) - case $host_os in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - _LT_AC_TAGVAR(ld_shlibs, $1)=yes - if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= - fi - supports_anon_versioning=no - case `$LD -v 2>/dev/null` in - *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - - # See if GNU ld supports shared libraries. - case $host_os in - aix[[3-9]]*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - _LT_AC_TAGVAR(ld_shlibs, $1)=no - cat <&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - fi - ;; - - amigaos*) - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_AC_TAGVAR(always_export_symbols, $1)=no - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - interix[[3-9]]*) - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | k*bsd*-gnu) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - tmp_addflag= - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - *) - tmp_sharedflag='-shared' ;; - esac - _LT_AC_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - - if test $supports_anon_versioning = yes; then - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - $echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - _LT_AC_TAGVAR(link_all_deplibs, $1)=no - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - _LT_AC_TAGVAR(ld_shlibs, $1)=no - cat <&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) - _LT_AC_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - sunos4*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - - if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then - runpath_var= - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_AC_TAGVAR(always_export_symbols, $1)=yes - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported - fi - ;; - - aix[[4-9]]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' - else - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - _LT_AC_TAGVAR(archive_cmds, $1)='' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - - if test "$GCC" = yes; then - case $host_os in aix4.[[012]]|aix4.[[012]].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - _LT_AC_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an empty executable. - _LT_AC_SYS_LIBPATH_AIX - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - _LT_AC_SYS_LIBPATH_AIX - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds its shared libraries. - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - # see comment about different semantics on the GNU ld section - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - - bsdi[[45]]*) - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' - # FIXME: Should let the user specify the lib program. - _LT_AC_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' - _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - ;; - - darwin* | rhapsody*) - case $host_os in - rhapsody* | darwin1.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_automatic, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - if test "$GCC" = yes ; then - output_verbose_link_cmd='echo' - _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - _LT_AC_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - _LT_AC_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" - else - case $cc_basename in - xlc*) - output_verbose_link_cmd='echo' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' - _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - ;; - *) - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - fi - ;; - - dgux*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - freebsd1*) - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - hpux9*) - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; - - hpux10*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - fi - ;; - - hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - case $host_cpu in - hppa*64*|ia64*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - *) - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - ;; - - netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - newsos6) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - else - case $host_os in - openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - ;; - esac - fi - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - os2*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - else - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' - - # Both c and cxx compiler support -rpath directly - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - fi - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - - solaris*) - _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' - if test "$GCC" = yes; then - wlarc='${wl}' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' - else - wlarc='' - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' - fi - ;; - esac - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv4) - case $host_vendor in - sni) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' - _LT_AC_TAGVAR(hardcode_direct, $1)=no - ;; - motorola) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv4.3*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - _LT_AC_TAGVAR(ld_shlibs, $1)=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) - _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *) - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - fi -]) -AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) -test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no - -# -# Do we need to explicitly link libc? -# -case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in -x|xyes) - # Assume -lc should be added - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $_LT_AC_TAGVAR(archive_cmds, $1) in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - AC_MSG_CHECKING([whether -lc should be explicitly linked in]) - $rm conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if AC_TRY_EVAL(ac_compile) 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) - pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) - _LT_AC_TAGVAR(allow_undefined_flag, $1)= - if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) - then - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - else - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - fi - _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) - ;; - esac - fi - ;; -esac -])# AC_LIBTOOL_PROG_LD_SHLIBS - - -# _LT_AC_FILE_LTDLL_C -# ------------------- -# Be careful that the start marker always follows a newline. -AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ -# /* ltdll.c starts here */ -# #define WIN32_LEAN_AND_MEAN -# #include -# #undef WIN32_LEAN_AND_MEAN -# #include -# -# #ifndef __CYGWIN__ -# # ifdef __CYGWIN32__ -# # define __CYGWIN__ __CYGWIN32__ -# # endif -# #endif -# -# #ifdef __cplusplus -# extern "C" { -# #endif -# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); -# #ifdef __cplusplus -# } -# #endif -# -# #ifdef __CYGWIN__ -# #include -# DECLARE_CYGWIN_DLL( DllMain ); -# #endif -# HINSTANCE __hDllInstance_base; -# -# BOOL APIENTRY -# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) -# { -# __hDllInstance_base = hInst; -# return TRUE; -# } -# /* ltdll.c ends here */ -])# _LT_AC_FILE_LTDLL_C - - -# _LT_AC_TAGVAR(VARNAME, [TAGNAME]) -# --------------------------------- -AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) - - -# old names -AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) -AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) -AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) -AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) -AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) -AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) -AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) - -# This is just to silence aclocal about the macro not being used -ifelse([AC_DISABLE_FAST_INSTALL]) - -AC_DEFUN([LT_AC_PROG_GCJ], -[AC_CHECK_TOOL(GCJ, gcj, no) - test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" - AC_SUBST(GCJFLAGS) -]) - -AC_DEFUN([LT_AC_PROG_RC], -[AC_CHECK_TOOL(RC, windres, no) -]) - - -# Cheap backport of AS_EXECUTABLE_P and required macros -# from Autoconf 2.59; we should not use $as_executable_p directly. - -# _AS_TEST_PREPARE -# ---------------- -m4_ifndef([_AS_TEST_PREPARE], -[m4_defun([_AS_TEST_PREPARE], -[if test -x / >/dev/null 2>&1; then - as_executable_p='test -x' -else - as_executable_p='test -f' -fi -])])# _AS_TEST_PREPARE - -# AS_EXECUTABLE_P -# --------------- -# Check whether a file is executable. -m4_ifndef([AS_EXECUTABLE_P], -[m4_defun([AS_EXECUTABLE_P], -[AS_REQUIRE([_AS_TEST_PREPARE])dnl -$as_executable_p $1[]dnl -])])# AS_EXECUTABLE_P - -# NOTE: This macro has been submitted for inclusion into # -# GNU Autoconf as AC_PROG_SED. When it is available in # -# a released version of Autoconf we should remove this # -# macro and use it instead. # -# LT_AC_PROG_SED -# -------------- -# Check for a fully-functional sed program, that truncates -# as few characters as possible. Prefer GNU sed if found. -AC_DEFUN([LT_AC_PROG_SED], -[AC_MSG_CHECKING([for a sed that does not truncate output]) -AC_CACHE_VAL(lt_cv_path_SED, -[# Loop through the user's path and test for sed and gsed. -# Then use that list of sed's as ones to test for truncation. -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for lt_ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - if AS_EXECUTABLE_P(["$as_dir/$lt_ac_prog$ac_exec_ext"]); then - lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" - fi - done - done -done -IFS=$as_save_IFS -lt_ac_max=0 -lt_ac_count=0 -# Add /usr/xpg4/bin/sed as it is typically found on Solaris -# along with /bin/sed that truncates output. -for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do - test ! -f $lt_ac_sed && continue - cat /dev/null > conftest.in - lt_ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >conftest.in - # Check for GNU sed and select it if it is found. - if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then - lt_cv_path_SED=$lt_ac_sed - break - fi - while true; do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo >>conftest.nl - $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break - cmp -s conftest.out conftest.nl || break - # 10000 chars as input seems more than enough - test $lt_ac_count -gt 10 && break - lt_ac_count=`expr $lt_ac_count + 1` - if test $lt_ac_count -gt $lt_ac_max; then - lt_ac_max=$lt_ac_count - lt_cv_path_SED=$lt_ac_sed - fi - done -done -]) -SED=$lt_cv_path_SED -AC_SUBST([SED]) -AC_MSG_RESULT([$SED]) -]) - -# Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -# (This private macro should not be called outside this file.) -AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.10' -dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to -dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.10.1], [], - [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl -]) - -# _AM_AUTOCONF_VERSION(VERSION) -# ----------------------------- -# aclocal traces this macro to find the Autoconf version. -# This is a private macro too. Using m4_define simplifies -# the logic in aclocal, which can simply ignore this definition. -m4_define([_AM_AUTOCONF_VERSION], []) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. -# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.10.1])dnl -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -_AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)]) - -# AM_AUX_DIR_EXPAND -*- Autoconf -*- - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to -# `$srcdir', `$srcdir/..', or `$srcdir/../..'. -# -# Of course, Automake must honor this variable whenever it calls a -# tool from the auxiliary directory. The problem is that $srcdir (and -# therefore $ac_aux_dir as well) can be either absolute or relative, -# depending on how configure is run. This is pretty annoying, since -# it makes $ac_aux_dir quite unusable in subdirectories: in the top -# source directory, any form will work fine, but in subdirectories a -# relative path needs to be adjusted first. -# -# $ac_aux_dir/missing -# fails when called from a subdirectory if $ac_aux_dir is relative -# $top_srcdir/$ac_aux_dir/missing -# fails if $ac_aux_dir is absolute, -# fails when called from a subdirectory in a VPATH build with -# a relative $ac_aux_dir -# -# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -# are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is `.', but things will broke when you -# start a VPATH build or use an absolute $srcdir. -# -# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, -# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` -# and then we would define $MISSING as -# MISSING="\${SHELL} $am_aux_dir/missing" -# This will work as long as MISSING is not called from configure, because -# unfortunately $(top_srcdir) has no meaning in configure. -# However there are other variables, like CC, which are often used in -# configure, and could therefore not use this "fixed" $ac_aux_dir. -# -# Another solution, used here, is to always expand $ac_aux_dir to an -# absolute PATH. The drawback is that using absolute paths prevent a -# configured tree to be moved without reconfiguration. - -AC_DEFUN([AM_AUX_DIR_EXPAND], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` -]) - -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 8 - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ(2.52)dnl - ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE])dnl -AC_SUBST([$1_FALSE])dnl -_AM_SUBST_NOTMAKE([$1_TRUE])dnl -_AM_SUBST_NOTMAKE([$1_FALSE])dnl -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([[conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]]) -fi])]) - -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 9 - -# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... - - -# _AM_DEPENDENCIES(NAME) -# ---------------------- -# See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "GCJ", or "OBJC". -# We try a few techniques and use that to set a single cache variable. -# -# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was -# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular -# dependency, and given that the user is not expected to run this macro, -# just rely on AC_PROG_CC. -AC_DEFUN([_AM_DEPENDENCIES], -[AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -AC_REQUIRE([AM_MAKE_INCLUDE])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl - -ifelse([$1], CC, [depcc="$CC" am_compiler_list=], - [$1], CXX, [depcc="$CXX" am_compiler_list=], - [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], UPC, [depcc="$UPC" am_compiler_list=], - [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) - -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_$1_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` - fi - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - case $depmode in - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - none) break ;; - esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. - if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_$1_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_$1_dependencies_compiler_type=none -fi -]) -AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -AM_CONDITIONAL([am__fastdep$1], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) -]) - - -# AM_SET_DEPDIR -# ------------- -# Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES -AC_DEFUN([AM_SET_DEPDIR], -[AC_REQUIRE([AM_SET_LEADING_DOT])dnl -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -]) - - -# AM_DEP_TRACK -# ------------ -AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE(dependency-tracking, -[ --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH])dnl -_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl -]) - -# Generate code to set up dependency tracking. -*- Autoconf -*- - -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -#serial 3 - -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done -done -])# _AM_OUTPUT_DEPENDENCY_COMMANDS - - -# AM_OUTPUT_DEPENDENCY_COMMANDS -# ----------------------------- -# This macro should only be invoked once -- use via AC_REQUIRE. -# -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each `.P' file that we will -# need in order to bootstrap the dependency handling code. -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -[AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) - -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 8 - -# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. -AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) - -# Do all the work for Automake. -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2008 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 13 - -# This macro actually does too much. Some checks are only needed if -# your package does certain things. But this isn't really a big deal. - -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -# AM_INIT_AUTOMAKE([OPTIONS]) -# ----------------------------------------------- -# The call with PACKAGE and VERSION arguments is the old style -# call (pre autoconf-2.50), which is being phased out. PACKAGE -# and VERSION should now be passed to AC_INIT and removed from -# the call to AM_INIT_AUTOMAKE. -# We support both call styles for the transition. After -# the next Automake release, Autoconf can make the AC_INIT -# arguments mandatory, and then we can depend on a new Autoconf -# release and drop the old call support. -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.60])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi -AC_SUBST([CYGPATH_W]) - -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl -dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, - [m4_fatal([AC_INIT should be called with package and version arguments])])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl - -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) - AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) -AM_MISSING_PROG(AUTOCONF, autoconf) -AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) -AM_MISSING_PROG(AUTOHEADER, autoheader) -AM_MISSING_PROG(MAKEINFO, makeinfo) -AM_PROG_INSTALL_SH -AM_PROG_INSTALL_STRIP -AC_REQUIRE([AM_PROG_MKDIR_P])dnl -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES(CC)], - [define([AC_PROG_CC], - defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES(CXX)], - [define([AC_PROG_CXX], - defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES(OBJC)], - [define([AC_PROG_OBJC], - defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl -]) -]) - - -# When config.status generates a header, we must update the stamp-h file. -# This file resides in the same directory as the config header -# that is generated. The stamp files are numbered to have different names. - -# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -# loop where config.status creates the headers, so we can generate -# our stamp files there. -AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -[# Compute $1's index in $config_headers. -_am_arg=$1 -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} -AC_SUBST(install_sh)]) - -# Copyright (C) 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 2 - -# Check whether the underlying file-system supports filenames -# with a leading dot. For instance MS-DOS doesn't. -AC_DEFUN([AM_SET_LEADING_DOT], -[rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) - -# Check to see how 'make' treats includes. -*- Autoconf -*- - -# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 3 - -# AM_MAKE_INCLUDE() -# ----------------- -# Check to see how make treats includes. -AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo done -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) - -# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- - -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 5 - -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) - - -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it supports --run. -# If it does, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([missing])dnl -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - AC_MSG_WARN([`missing' script is too old or missing]) -fi -]) - -# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_MKDIR_P -# --------------- -# Check for `mkdir -p'. -AC_DEFUN([AM_PROG_MKDIR_P], -[AC_PREREQ([2.60])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, -dnl while keeping a definition of mkdir_p for backward compatibility. -dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. -dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of -dnl Makefile.ins that do not define MKDIR_P, so we do our own -dnl adjustment using top_builddir (which is defined more often than -dnl MKDIR_P). -AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl -case $mkdir_p in - [[\\/$]]* | ?:[[\\/]]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac -]) - -# Helper functions for option handling. -*- Autoconf -*- - -# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 3 - -# _AM_MANGLE_OPTION(NAME) -# ----------------------- -AC_DEFUN([_AM_MANGLE_OPTION], -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) - -# _AM_SET_OPTION(NAME) -# ------------------------------ -# Set option NAME. Presently that only means defining a flag for this option. -AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) - -# _AM_SET_OPTIONS(OPTIONS) -# ---------------------------------- -# OPTIONS is a space-separated list of Automake options. -AC_DEFUN([_AM_SET_OPTIONS], -[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) - -# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -# ------------------------------------------- -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -AC_DEFUN([_AM_IF_OPTION], -[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) - -# Check to make sure that the build environment is sane. -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 4 - -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftest.file -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftest.file` - fi - rm -f conftest.file - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken -alias in your environment]) - fi - - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT(yes)]) - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_STRIP -# --------------------- -# One issue with vendor `install' (even GNU) is that you can't -# specify the program used to strip binaries. This is especially -# annoying in cross-compiling environments, where the build's strip -# is unlikely to handle the host's binaries. -# Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in `make install-strip', and initialize -# STRIPPROG with the value of the STRIP variable (set by the user). -AC_DEFUN([AM_PROG_INSTALL_STRIP], -[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be `maybe'. -if test "$cross_compiling" != no; then - AC_CHECK_TOOL([STRIP], [strip], :) -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) - -# Copyright (C) 2006 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- -# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. -# This macro is traced by Automake. -AC_DEFUN([_AM_SUBST_NOTMAKE]) - -# Check how to create a tarball. -*- Autoconf -*- - -# Copyright (C) 2004, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 2 - -# _AM_PROG_TAR(FORMAT) -# -------------------- -# Check how to create a tarball in format FORMAT. -# FORMAT should be one of `v7', `ustar', or `pax'. -# -# Substitute a variable $(am__tar) that is a command -# writing to stdout a FORMAT-tarball containing the directory -# $tardir. -# tardir=directory && $(am__tar) > result.tar -# -# Substitute a variable $(am__untar) that extract such -# a tarball read from stdin. -# $(am__untar) < result.tar -AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. -AM_MISSING_PROG([AMTAR], [tar]) -m4_if([$1], [v7], - [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], - [m4_case([$1], [ustar],, [pax],, - [m4_fatal([Unknown tar format])]) -AC_MSG_CHECKING([how to create a $1 tar archive]) -# Loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' -_am_tools=${am_cv_prog_tar_$1-$_am_tools} -# Do not fold the above two line into one, because Tru64 sh and -# Solaris sh will not grok spaces in the rhs of `-'. -for _am_tool in $_am_tools -do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; - do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi -done -rm -rf conftest.dir - -AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) -AC_MSG_RESULT([$am_cv_prog_tar_$1])]) -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) # _AM_PROG_TAR - -m4_include([config/ac_create_prefix_config_h.m4]) -m4_include([config/ac_cxx_have_sstream.m4]) -m4_include([config/ac_cxx_have_strstream.m4]) -m4_include([config/ac_cxx_namespaces.m4]) -m4_include([config/ac_cxx_rtti.m4]) -m4_include([config/ac_cxx_string_compare_string_first.m4]) -m4_include([config/ac_dll.m4]) -m4_include([config/ax_cxx_gcc_abi_demangle.m4]) -m4_include([config/ax_cxx_have_isfinite.m4]) -m4_include([config/bb_enable_doxygen.m4]) diff --git a/contrib/cppunit-1.12.1/config/ac_create_prefix_config_h.m4 b/contrib/cppunit-1.12.1/config/ac_create_prefix_config_h.m4 deleted file mode 100644 index 1534ff42b..000000000 --- a/contrib/cppunit-1.12.1/config/ac_create_prefix_config_h.m4 +++ /dev/null @@ -1,107 +0,0 @@ -dnl @synopsis AC_CREATE_PREFIX_CONFIG_H [(OUTPUT-HEADER [,PREFIX [,ORIG-HEADER]])] -dnl -dnl this is a new variant from ac_prefix_config_ -dnl this one will use a lowercase-prefix if -dnl the config-define was starting with a lowercase-char, e.g. -dnl #define const or #define restrict or #define off_t -dnl (and this one can live in another directory, e.g. testpkg/config.h -dnl therefore I decided to move the output-header to be the first arg) -dnl -dnl takes the usual config.h generated header file; looks for each of -dnl the generated "#define SOMEDEF" lines, and prefixes the defined name -dnl (ie. makes it "#define PREFIX_SOMEDEF". The result is written to -dnl the output config.header file. The PREFIX is converted to uppercase -dnl for the conversions. -dnl -dnl default OUTPUT-HEADER = $PACKAGE-config.h -dnl default PREFIX = $PACKAGE -dnl default ORIG-HEADER, derived from OUTPUT-HEADER -dnl if OUTPUT-HEADER has a "/", use the basename -dnl if OUTPUT-HEADER has a "-", use the section after it. -dnl otherwise, just config.h -dnl -dnl In most cases, the configure.in will contain a line saying -dnl AC_CONFIG_HEADER(config.h) -dnl somewhere *before* AC_OUTPUT and a simple line saying -dnl AC_PREFIX_CONFIG_HEADER -dnl somewhere *after* AC_OUTPUT. -dnl -dnl example: -dnl AC_INIT(config.h.in) # config.h.in as created by "autoheader" -dnl AM_INIT_AUTOMAKE(testpkg, 0.1.1) # "#undef VERSION" and "PACKAGE" -dnl AM_CONFIG_HEADER(config.h) # in config.h.in -dnl AC_MEMORY_H # "#undef NEED_MEMORY_H" -dnl AC_C_CONST_H # "#undef const" -dnl AC_OUTPUT(Makefile) # creates the "config.h" now -dnl AC_CREATE_PREFIX_CONFIG_H # creates "testpkg-config.h" -dnl and the resulting "testpkg-config.h" contains lines like -dnl #ifndef TESTPKG_VERSION -dnl #define TESTPKG_VERSION "0.1.1" -dnl #endif -dnl #ifndef TESTPKG_NEED_MEMORY_H -dnl #define TESTPKG_NEED_MEMORY_H 1 -dnl #endif -dnl #ifndef _testpkg_const -dnl #define _testpkg_const const -dnl #endif -dnl -dnl and this "testpkg-config.h" can be installed along with other -dnl header-files, which is most convenient when creating a shared -dnl library (that has some headers) where some functionality is -dnl dependent on the OS-features detected at compile-time. No -dnl need to invent some "testpkg-confdefs.h.in" manually. :-) -dnl -dnl @version $Id: ac_create_prefix_config_h.m4,v 1.1 2001/06/17 15:47:32 bastiaan Exp $ -dnl @author Guido Draheim - -AC_DEFUN([AC_CREATE_PREFIX_CONFIG_H], -[changequote({, })dnl -ac_prefix_conf_OUT=`echo ifelse($1, , $PACKAGE-config.h, $1)` -ac_prefix_conf_DEF=`echo _$ac_prefix_conf_OUT | sed -e 'y:abcdefghijklmnopqrstuvwxyz./,-:ABCDEFGHIJKLMNOPQRSTUVWXYZ____:'` -ac_prefix_conf_PKG=`echo ifelse($2, , $PACKAGE, $2)` -ac_prefix_conf_LOW=`echo _$ac_prefix_conf_PKG | sed -e 'y:ABCDEFGHIJKLMNOPQRSTUVWXYZ-:abcdefghijklmnopqrstuvwxyz_:'` -ac_prefix_conf_UPP=`echo $ac_prefix_conf_PKG | sed -e 'y:abcdefghijklmnopqrstuvwxyz-:ABCDEFGHIJKLMNOPQRSTUVWXYZ_:' -e '/^[0-9]/s/^/_/'` -ac_prefix_conf_INP=`echo ifelse($3, , _, $3)` -if test "$ac_prefix_conf_INP" = "_"; then - case $ac_prefix_conf_OUT in - */*) ac_prefix_conf_INP=`basename $ac_prefix_conf_OUT` - ;; - *-*) ac_prefix_conf_INP=`echo $ac_prefix_conf_OUT | sed -e 's/[a-zA-Z0-9_]*-//'` - ;; - *) ac_prefix_conf_INP=config.h - ;; - esac -fi -changequote([, ])dnl -if test -z "$ac_prefix_conf_PKG" ; then - AC_MSG_ERROR([no prefix for _PREFIX_PKG_CONFIG_H]) -else - AC_MSG_RESULT(creating $ac_prefix_conf_OUT - prefix $ac_prefix_conf_UPP for $ac_prefix_conf_INP defines) - if test -f $ac_prefix_conf_INP ; then - AS_DIRNAME([/* automatically generated */], $ac_prefix_conf_OUT) -changequote({, })dnl - echo '#ifndef '$ac_prefix_conf_DEF >$ac_prefix_conf_OUT - echo '#define '$ac_prefix_conf_DEF' 1' >>$ac_prefix_conf_OUT - echo ' ' >>$ac_prefix_conf_OUT - echo /'*' $ac_prefix_conf_OUT. Generated automatically at end of configure. '*'/ >>$ac_prefix_conf_OUT - - echo 's/#undef *\([A-Z_]\)/#undef '$ac_prefix_conf_UPP'_\1/' >conftest.sed - echo 's/#undef *\([a-z]\)/#undef '$ac_prefix_conf_LOW'_\1/' >>conftest.sed - echo 's/#define *\([A-Z_][A-Za-z0-9_]*\)\(.*\)/#ifndef '$ac_prefix_conf_UPP"_\\1 \\" >>conftest.sed - echo '#define '$ac_prefix_conf_UPP"_\\1 \\2 \\" >>conftest.sed - echo '#endif/' >>conftest.sed - echo 's/#define *\([a-z][A-Za-z0-9_]*\)\(.*\)/#ifndef '$ac_prefix_conf_LOW"_\\1 \\" >>conftest.sed - echo '#define '$ac_prefix_conf_LOW"_\\1 \\2 \\" >>conftest.sed - echo '#endif/' >>conftest.sed - sed -f conftest.sed $ac_prefix_conf_INP >>$ac_prefix_conf_OUT - echo ' ' >>$ac_prefix_conf_OUT - echo '/*' $ac_prefix_conf_DEF '*/' >>$ac_prefix_conf_OUT - echo '#endif' >>$ac_prefix_conf_OUT -changequote([, ])dnl - else - AC_MSG_ERROR([input file $ac_prefix_conf_IN does not exist, dnl - skip generating $ac_prefix_conf_OUT]) - fi - rm -f conftest.* -fi]) - diff --git a/contrib/cppunit-1.12.1/config/ac_cxx_have_sstream.m4 b/contrib/cppunit-1.12.1/config/ac_cxx_have_sstream.m4 deleted file mode 100644 index 0630cf09c..000000000 --- a/contrib/cppunit-1.12.1/config/ac_cxx_have_sstream.m4 +++ /dev/null @@ -1,24 +0,0 @@ -dnl @synopsis AC_CXX_HAVE_SSTREAM -dnl -dnl If the C++ library has a working stringstream, define HAVE_SSTREAM. -dnl -dnl @author Ben Stanley -dnl @version $Id: ac_cxx_have_sstream.m4,v 1.1 2001/07/07 16:05:47 smr99 Exp $ -dnl -AC_DEFUN([AC_CXX_HAVE_SSTREAM], -[AC_CACHE_CHECK(whether the compiler has stringstream, -ac_cv_cxx_have_sstream, -[AC_REQUIRE([AC_CXX_NAMESPACES]) - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - AC_TRY_COMPILE([#include -#ifdef HAVE_NAMESPACES -using namespace std; -#endif],[stringstream message; message << "Hello"; return 0;], - ac_cv_cxx_have_sstream=yes, ac_cv_cxx_have_sstream=no) - AC_LANG_RESTORE -]) -if test "$ac_cv_cxx_have_sstream" = yes; then - AC_DEFINE(HAVE_SSTREAM,1,[define if the compiler has stringstream]) -fi -]) diff --git a/contrib/cppunit-1.12.1/config/ac_cxx_have_strstream.m4 b/contrib/cppunit-1.12.1/config/ac_cxx_have_strstream.m4 deleted file mode 100644 index 232a3d6f8..000000000 --- a/contrib/cppunit-1.12.1/config/ac_cxx_have_strstream.m4 +++ /dev/null @@ -1,29 +0,0 @@ -dnl @synopsis AC_CXX_HAVE_STRSTREAM -dnl -dnl If the C++ library has a working strstream, define HAVE_CLASS_STRSTREAM. -dnl -dnl Adapted from ac_cxx_have_sstream.m4 by Steve Robbins -dnl -AC_DEFUN([AC_CXX_HAVE_STRSTREAM], -[AC_CACHE_CHECK(whether the library defines class strstream, -ac_cv_cxx_have_class_strstream, -[AC_REQUIRE([AC_CXX_NAMESPACES]) - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - AC_CHECK_HEADERS(strstream) - AC_TRY_COMPILE([ -#if HAVE_STRSTREAM -# include -#else -# include -#endif -#ifdef HAVE_NAMESPACES -using namespace std; -#endif],[ostrstream message; message << "Hello"; return 0;], - ac_cv_cxx_have_class_strstream=yes, ac_cv_cxx_have_class_strstream=no) - AC_LANG_RESTORE -]) -if test "$ac_cv_cxx_have_class_strstream" = yes; then - AC_DEFINE(HAVE_CLASS_STRSTREAM,1,[define if the library defines strstream]) -fi -]) diff --git a/contrib/cppunit-1.12.1/config/ac_cxx_namespaces.m4 b/contrib/cppunit-1.12.1/config/ac_cxx_namespaces.m4 deleted file mode 100644 index 7041acfc8..000000000 --- a/contrib/cppunit-1.12.1/config/ac_cxx_namespaces.m4 +++ /dev/null @@ -1,22 +0,0 @@ -dnl @synopsis AC_CXX_NAMESPACES -dnl -dnl If the compiler can prevent names clashes using namespaces, define -dnl HAVE_NAMESPACES. -dnl -dnl @version $Id: ac_cxx_namespaces.m4,v 1.1 2001/06/02 23:26:36 smr99 Exp $ -dnl @author Luc Maisonobe -dnl -AC_DEFUN([AC_CXX_NAMESPACES], -[AC_CACHE_CHECK(whether the compiler implements namespaces, -ac_cv_cxx_namespaces, -[AC_LANG_SAVE - AC_LANG_CPLUSPLUS - AC_TRY_COMPILE([namespace Outer { namespace Inner { int i = 0; }}], - [using namespace Outer::Inner; return i;], - ac_cv_cxx_namespaces=yes, ac_cv_cxx_namespaces=no) - AC_LANG_RESTORE -]) -if test "$ac_cv_cxx_namespaces" = yes; then - AC_DEFINE(HAVE_NAMESPACES,1,[define to 1 if the compiler implements namespaces]) -fi -]) diff --git a/contrib/cppunit-1.12.1/config/ac_cxx_rtti.m4 b/contrib/cppunit-1.12.1/config/ac_cxx_rtti.m4 deleted file mode 100644 index e91bc645d..000000000 --- a/contrib/cppunit-1.12.1/config/ac_cxx_rtti.m4 +++ /dev/null @@ -1,34 +0,0 @@ -dnl @synopsis AC_CXX_RTTI -dnl -dnl If the compiler supports Run-Time Type Identification (typeinfo -dnl header and typeid keyword), define HAVE_RTTI. -dnl -dnl @version $Id: ac_cxx_rtti.m4,v 1.1 2001/06/02 22:29:52 smr99 Exp $ -dnl @author Luc Maisonobe -dnl -AC_DEFUN([AC_CXX_RTTI], -[AC_CACHE_CHECK(whether the compiler supports Run-Time Type Identification, -ac_cv_cxx_rtti, -[AC_LANG_SAVE - AC_LANG_CPLUSPLUS - AC_TRY_COMPILE([#include -class Base { public : - Base () {} - virtual int f () { return 0; } - }; -class Derived : public Base { public : - Derived () {} - virtual int f () { return 1; } - }; -],[Derived d; -Base *ptr = &d; -return typeid (*ptr) == typeid (Derived); -], - ac_cv_cxx_rtti=yes, ac_cv_cxx_rtti=no) - AC_LANG_RESTORE -]) -if test "$ac_cv_cxx_rtti" = yes; then - AC_DEFINE(HAVE_RTTI,1, - [define if the compiler supports Run-Time Type Identification]) -fi -]) diff --git a/contrib/cppunit-1.12.1/config/ac_cxx_string_compare_string_first.m4 b/contrib/cppunit-1.12.1/config/ac_cxx_string_compare_string_first.m4 deleted file mode 100644 index a1cb7a289..000000000 --- a/contrib/cppunit-1.12.1/config/ac_cxx_string_compare_string_first.m4 +++ /dev/null @@ -1,27 +0,0 @@ -dnl @synopsis AC_CXX_STRING_COMPARE_STRING_FIRST -dnl -dnl If the standard library string::compare() function takes the -dnl string as its first argument, define FUNC_STRING_COMPARE_STRING_FIRST to 1. -dnl -dnl @author Steven Robbins -dnl -AC_DEFUN([AC_CXX_STRING_COMPARE_STRING_FIRST], -[AC_CACHE_CHECK(whether std::string::compare takes a string in argument 1, -ac_cv_cxx_string_compare_string_first, -[AC_REQUIRE([AC_CXX_NAMESPACES]) - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - AC_TRY_COMPILE([#include -#ifdef HAVE_NAMESPACES -using namespace std; -#endif],[string x("hi"); string y("h"); -return x.compare(y,0,1) == 0;], - ac_cv_cxx_string_compare_string_first=yes, - ac_cv_cxx_string_compare_string_first=no) - AC_LANG_RESTORE -]) -if test "$ac_cv_cxx_string_compare_string_first" = yes; then - AC_DEFINE(FUNC_STRING_COMPARE_STRING_FIRST,1, - [define if library uses std::string::compare(string,pos,n)]) -fi -]) diff --git a/contrib/cppunit-1.12.1/config/ac_dll.m4 b/contrib/cppunit-1.12.1/config/ac_dll.m4 deleted file mode 100644 index ad7438a13..000000000 --- a/contrib/cppunit-1.12.1/config/ac_dll.m4 +++ /dev/null @@ -1,47 +0,0 @@ - -# AC_LTDL_DLLIB -# ------------- -AC_DEFUN([AC_LTDL_DLLIB], -[LIBADD_DL= -AC_SUBST(LIBADD_DL) - -AC_CHECK_FUNC([shl_load], - [AC_DEFINE([HAVE_SHL_LOAD], [1], - [Define if you have the shl_load function.])], - [AC_CHECK_LIB([dld], [shl_load], - [AC_DEFINE([HAVE_SHL_LOAD], [1], - [Define if you have the shl_load function.]) - LIBADD_DL="$LIBADD_DL -ldld"], - [AC_CHECK_LIB([dl], [dlopen], - [AC_DEFINE([HAVE_LIBDL], [1], - [Define if you have the libdl library or equivalent.]) - LIBADD_DL="-ldl"], - [AC_TRY_LINK([#if HAVE_DLFCN_H -# include -#endif - ], - [dlopen(0, 0);], - [AC_DEFINE([HAVE_LIBDL], [1], - [Define if you have the libdl library or equivalent.])], - [AC_CHECK_LIB([svld], [dlopen], - [AC_DEFINE([HAVE_LIBDL], [1], - [Define if you have the libdl library or equivalent.]) - LIBADD_DL="-lsvld"], - [AC_CHECK_LIB([dld], [dld_link], - [AC_DEFINE([HAVE_DLD], [1], - [Define if you have the GNU dld library.]) - LIBADD_DL="$LIBADD_DL -ldld" - ]) - ]) - ]) - ]) - ]) -]) - -if test "x$ac_cv_func_dlopen" = xyes || test "x$ac_cv_lib_dl_dlopen" = xyes; then - LIBS_SAVE="$LIBS" - LIBS="$LIBS $LIBADD_DL" - AC_CHECK_FUNCS(dlerror) - LIBS="$LIBS_SAVE" -fi -])# AC_LTDL_DLLIB diff --git a/contrib/cppunit-1.12.1/config/ax_cxx_gcc_abi_demangle.m4 b/contrib/cppunit-1.12.1/config/ax_cxx_gcc_abi_demangle.m4 deleted file mode 100644 index 7a74956cd..000000000 --- a/contrib/cppunit-1.12.1/config/ax_cxx_gcc_abi_demangle.m4 +++ /dev/null @@ -1,40 +0,0 @@ -dnl @synopsis AX_CXX_GCC_ABI_DEMANGLE -dnl -dnl If the compiler supports GCC C++ ABI name demangling (has header cxxabi.h -dnl and abi::__cxa_demangle() function), define HAVE_GCC_ABI_DEMANGLE -dnl -dnl Adapted from AC_CXX_RTTI by Luc Maisonobe -dnl -dnl @version $Id: ax_cxx_gcc_abi_demangle.m4,v 1.1 2004/02/18 20:45:36 blep Exp $ -dnl @author Neil Ferguson -dnl -AC_DEFUN([AX_CXX_GCC_ABI_DEMANGLE], -[AC_CACHE_CHECK(whether the compiler supports GCC C++ ABI name demangling, -ac_cv_cxx_gcc_abi_demangle, -[AC_LANG_SAVE - AC_LANG_CPLUSPLUS - AC_TRY_COMPILE([#include -#include -#include - -template -class A {}; -],[A instance; -int status = 0; -char* c_name = 0; - -c_name = abi::__cxa_demangle(typeid(instance).name(), 0, 0, &status); - -std::string name(c_name); -free(c_name); - -return name == "A"; -], - ac_cv_cxx_gcc_abi_demangle=yes, ac_cv_cxx_gcc_abi_demangle=no) - AC_LANG_RESTORE -]) -if test "$ac_cv_cxx_gcc_abi_demangle" = yes; then - AC_DEFINE(HAVE_GCC_ABI_DEMANGLE,1, - [define if the compiler supports GCC C++ ABI name demangling]) -fi -]) diff --git a/contrib/cppunit-1.12.1/config/ax_cxx_have_isfinite.m4 b/contrib/cppunit-1.12.1/config/ax_cxx_have_isfinite.m4 deleted file mode 100644 index 5f9c7fcae..000000000 --- a/contrib/cppunit-1.12.1/config/ax_cxx_have_isfinite.m4 +++ /dev/null @@ -1,27 +0,0 @@ -dnl @synopsis AX_CXX_HAVE_ISFINITE -dnl -dnl If isfinite() is available to the C++ compiler: -dnl define HAVE_ISFINITE -dnl add "-lm" to LIBS -dnl -AC_DEFUN([AX_CXX_HAVE_ISFINITE], - [ax_cxx_have_isfinite_save_LIBS=$LIBS - LIBS="$LIBS -lm" - - AC_CACHE_CHECK(for isfinite, ax_cv_cxx_have_isfinite, - [AC_LANG_SAVE - AC_LANG_CPLUSPLUS - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[#include ]], - [[int f = isfinite( 3 );]])], - [ax_cv_cxx_have_isfinite=yes], - [ax_cv_cxx_have_isfinite=no]) - AC_LANG_RESTORE]) - - if test "$ax_cv_cxx_have_isfinite" = yes; then - AC_DEFINE([HAVE_ISFINITE],1,[define if compiler has isfinite]) - else - LIBS=$ax_cxx_have_isfinite_save_LIBS - fi -]) diff --git a/contrib/cppunit-1.12.1/config/bb_enable_doxygen.m4 b/contrib/cppunit-1.12.1/config/bb_enable_doxygen.m4 deleted file mode 100644 index f388639bc..000000000 --- a/contrib/cppunit-1.12.1/config/bb_enable_doxygen.m4 +++ /dev/null @@ -1,34 +0,0 @@ -AC_DEFUN([BB_ENABLE_DOXYGEN], -[ -AC_ARG_ENABLE(doxygen, [ --enable-doxygen enable documentation generation with doxygen (auto)]) -AC_ARG_ENABLE(dot, [ --enable-dot use 'dot' to generate graphs in doxygen (auto)]) -AC_ARG_ENABLE(html-docs, [ --enable-html-docs enable HTML generation with doxygen (yes)], [], [ enable_html_docs=yes]) -AC_ARG_ENABLE(latex-docs, [ --enable-latex-docs enable LaTeX documentation generation with doxygen (no)], [], [ enable_latex_docs=no]) -if test "x$enable_doxygen" = xno; then - enable_doc=no -else - AC_PATH_PROG(DOXYGEN, doxygen, , $PATH) - if test "x$DOXYGEN" = x; then - if test "x$enable_doxygen" = xyes; then - AC_MSG_ERROR([could not find doxygen]) - fi - enable_doc=no - else - enable_doc=yes - AC_PATH_PROG(DOT, dot, , $PATH) - fi -fi -AM_CONDITIONAL(DOC, test x$enable_doc = xyes) - -if test x$DOT = x; then - if test "x$enable_dot" = xyes; then - AC_MSG_ERROR([could not find dot]) - fi - enable_dot=no -else - enable_dot=yes -fi -AC_SUBST(enable_dot) -AC_SUBST(enable_html_docs) -AC_SUBST(enable_latex_docs) -]) diff --git a/contrib/cppunit-1.12.1/config/config.guess b/contrib/cppunit-1.12.1/config/config.guess deleted file mode 100644 index f32079abd..000000000 --- a/contrib/cppunit-1.12.1/config/config.guess +++ /dev/null @@ -1,1526 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -# Free Software Foundation, Inc. - -timestamp='2008-01-23' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Originally written by Per Bothner . -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in - Debian*) - release='-gnu' - ;; - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} - exit ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; - *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} - exit ;; - macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} - exit ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; - "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; - "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; - "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; - "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; - "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; - "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; - "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; - "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; - "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac - # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; - arm:riscos:*:*|arm:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} - exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` - then - echo "$SYSTEM_NAME" - else - echo rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit ;; - *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then - eval $set_cc_for_build - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) - case ${UNAME_MACHINE} in - pc98) - echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - esac - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; - *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 - exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; - *:Interix*:[3456]*) - case ${UNAME_MACHINE} in - x86) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - EM64T | authenticamd) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; - IA64) - echo ia64-unknown-interix${UNAME_RELEASE} - exit ;; - esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - *:GNU:*:*) - # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu - exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; - arm*:Linux:*:*) - eval $set_cc_for_build - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_EABI__ - then - echo ${UNAME_MACHINE}-unknown-linux-gnu - else - echo ${UNAME_MACHINE}-unknown-linux-gnueabi - fi - exit ;; - avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - cris:Linux:*:*) - echo cris-axis-linux-gnu - exit ;; - crisv32:Linux:*:*) - echo crisv32-axis-linux-gnu - exit ;; - frv:Linux:*:*) - echo frv-unknown-linux-gnu - exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mips64el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - or32:Linux:*:*) - echo or32-unknown-linux-gnu - exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac - exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit ;; - sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu - exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit ;; - xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^LIBC/{ - s: ::g - p - }'`" - test x"${LIBC}" != x && { - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit - } - test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit ;; - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp - exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos - exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit ;; - SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} - exit ;; - SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} - exit ;; - SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} - exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in - unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; - NSE-?:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' - exit ;; - i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos - exit ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - c34*) - echo c34-convex-bsd - exit ;; - c38*) - echo c38-convex-bsd - exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac -fi - -cat >&2 < in order to provide the needed -information to handle your system. - -config.guess timestamp = $timestamp - -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/contrib/cppunit-1.12.1/config/config.h.in b/contrib/cppunit-1.12.1/config/config.h.in deleted file mode 100644 index db5f1feae..000000000 --- a/contrib/cppunit-1.12.1/config/config.h.in +++ /dev/null @@ -1,100 +0,0 @@ -/* config/config.h.in. Generated from configure.in by autoheader. */ - -/* define if library uses std::string::compare(string,pos,n) */ -#undef FUNC_STRING_COMPARE_STRING_FIRST - -/* define if the library defines strstream */ -#undef HAVE_CLASS_STRSTREAM - -/* Define to 1 if you have the header file. */ -#undef HAVE_CMATH - -/* Define if you have the GNU dld library. */ -#undef HAVE_DLD - -/* Define to 1 if you have the `dlerror' function. */ -#undef HAVE_DLERROR - -/* Define to 1 if you have the header file. */ -#undef HAVE_DLFCN_H - -/* Define to 1 if you have the `finite' function. */ -#undef HAVE_FINITE - -/* define if the compiler supports GCC C++ ABI name demangling */ -#undef HAVE_GCC_ABI_DEMANGLE - -/* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H - -/* define if compiler has isfinite */ -#undef HAVE_ISFINITE - -/* Define if you have the libdl library or equivalent. */ -#undef HAVE_LIBDL - -/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H - -/* define to 1 if the compiler implements namespaces */ -#undef HAVE_NAMESPACES - -/* define if the compiler supports Run-Time Type Identification */ -#undef HAVE_RTTI - -/* Define if you have the shl_load function. */ -#undef HAVE_SHL_LOAD - -/* define if the compiler has stringstream */ -#undef HAVE_SSTREAM - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRSTREAM - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H - -/* Name of package */ -#undef PACKAGE - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#undef PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the version of this package. */ -#undef PACKAGE_VERSION - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Define to 1 to use type_info::name() for class names */ -#undef USE_TYPEINFO_NAME - -/* Version number of package */ -#undef VERSION diff --git a/contrib/cppunit-1.12.1/config/config.sub b/contrib/cppunit-1.12.1/config/config.sub deleted file mode 100644 index 6759825a5..000000000 --- a/contrib/cppunit-1.12.1/config/config.sub +++ /dev/null @@ -1,1658 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -# Free Software Foundation, Inc. - -timestamp='2008-01-16' - -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.sub ($timestamp) - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit ;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ - uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ - | bfin \ - | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore | mep \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | mt \ - | msp430 \ - | nios | nios2 \ - | ns16k | ns32k \ - | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ - | score \ - | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ - | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - ms1) - basic_machine=mt-unknown - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nios-* | nios2-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rdos) - basic_machine=i386-pc - os=-rdos - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sde) - basic_machine=mipsisa32-sde - os=-elf - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sh5el) - basic_machine=sh5le-unknown - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; - tile*) - basic_machine=tile-unknown - os=-linux-gnu - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - tpf) - basic_machine=s390x-ibm - os=-tpf - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - mmix) - basic_machine=mmix-knuth - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -openbsd* | -solidbsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux-dietlibc) - os=-linux-dietlibc - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -os400*) - os=-os400 - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -syllable*) - os=-syllable - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -tpf*) - os=-tpf - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; - -zvmoe) - os=-zvmoe - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - score-*) - os=-elf - ;; - spu-*) - os=-elf - ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - c4x-* | tic4x-*) - os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; - mep-*) - os=-elf - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-haiku) - os=-haiku - ;; - *-ibm) - os=-aix - ;; - *-knuth) - os=-mmixware - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -os400*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -tpf*) - vendor=ibm - ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/contrib/cppunit-1.12.1/config/depcomp b/contrib/cppunit-1.12.1/config/depcomp deleted file mode 100644 index e5f9736c7..000000000 --- a/contrib/cppunit-1.12.1/config/depcomp +++ /dev/null @@ -1,589 +0,0 @@ -#! /bin/sh -# depcomp - compile a program generating dependencies as side-effects - -scriptversion=2007-03-29.01 - -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software -# Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Originally written by Alexandre Oliva . - -case $1 in - '') - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: depcomp [--help] [--version] PROGRAM [ARGS] - -Run PROGRAMS ARGS to compile a file, generating dependencies -as side-effects. - -Environment variables: - depmode Dependency tracking mode. - source Source file read by `PROGRAMS ARGS'. - object Object file output by `PROGRAMS ARGS'. - DEPDIR directory where to store dependencies. - depfile Dependency file to output. - tmpdepfile Temporary file to use when outputing dependencies. - libtool Whether libtool is used (yes/no). - -Report bugs to . -EOF - exit $? - ;; - -v | --v*) - echo "depcomp $scriptversion" - exit $? - ;; -esac - -if test -z "$depmode" || test -z "$source" || test -z "$object"; then - echo "depcomp: Variables source, object and depmode must be set" 1>&2 - exit 1 -fi - -# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. -depfile=${depfile-`echo "$object" | - sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} -tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} - -rm -f "$tmpdepfile" - -# Some modes work just like other modes, but use different flags. We -# parameterize here, but still list the modes in the big case below, -# to make depend.m4 easier to write. Note that we *cannot* use a case -# here, because this file can only contain one case statement. -if test "$depmode" = hp; then - # HP compiler uses -M and no extra arg. - gccflag=-M - depmode=gcc -fi - -if test "$depmode" = dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=-xM - depmode=dashmstdout -fi - -case "$depmode" in -gcc3) -## gcc 3 implements dependency tracking that does exactly what -## we want. Yay! Note: for some reason libtool 1.4 doesn't like -## it if -MD -MP comes after the -MF stuff. Hmm. -## Unfortunately, FreeBSD c89 acceptance of flags depends upon -## the command line argument order; so add the flags where they -## appear in depend2.am. Note that the slowdown incurred here -## affects only configure: in makefiles, %FASTDEP% shortcuts this. - for arg - do - case $arg in - -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; - *) set fnord "$@" "$arg" ;; - esac - shift # fnord - shift # $arg - done - "$@" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - mv "$tmpdepfile" "$depfile" - ;; - -gcc) -## There are various ways to get dependency output from gcc. Here's -## why we pick this rather obscure method: -## - Don't want to use -MD because we'd like the dependencies to end -## up in a subdir. Having to rename by hand is ugly. -## (We might end up doing this anyway to support other compilers.) -## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). -## - Using -M directly means running the compiler twice (even worse -## than renaming). - if test -z "$gccflag"; then - gccflag=-MD, - fi - "$@" -Wp,"$gccflag$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -## The second -e expression handles DOS-style file names with drive letters. - sed -e 's/^[^:]*: / /' \ - -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -## This next piece of magic avoids the `deleted header file' problem. -## The problem is that when a header file which appears in a .P file -## is deleted, the dependency causes make to die (because there is -## typically no way to rebuild the header). We avoid this by adding -## dummy dependencies for each header file. Too bad gcc doesn't do -## this for us directly. - tr ' ' ' -' < "$tmpdepfile" | -## Some versions of gcc put a space before the `:'. On the theory -## that the space means something, we add a space to the output as -## well. -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -sgi) - if test "$libtool" = yes; then - "$@" "-Wp,-MDupdate,$tmpdepfile" - else - "$@" -MDupdate "$tmpdepfile" - fi - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - - if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files - echo "$object : \\" > "$depfile" - - # Clip off the initial element (the dependent). Don't try to be - # clever and replace this with sed code, as IRIX sed won't handle - # lines with more than a fixed number of characters (4096 in - # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; - # the IRIX cc adds comments like `#:fec' to the end of the - # dependency line. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ - tr ' -' ' ' >> $depfile - echo >> $depfile - - # The second pass generates a dummy entry for each header file. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> $depfile - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -aix) - # The C for AIX Compiler uses -M and outputs the dependencies - # in a .u file. In older versions, this file always lives in the - # current directory. Also, the AIX compiler puts `$object:' at the - # start of each line; $object doesn't have directory information. - # Version 6 uses the directory in both cases. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - if test "$libtool" = yes; then - tmpdepfile1=$dir$base.u - tmpdepfile2=$base.u - tmpdepfile3=$dir.libs/$base.u - "$@" -Wc,-M - else - tmpdepfile1=$dir$base.u - tmpdepfile2=$dir$base.u - tmpdepfile3=$dir$base.u - "$@" -M - fi - stat=$? - - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - # Each line is of the form `foo.o: dependent.h'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -icc) - # Intel's C compiler understands `-MD -MF file'. However on - # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c - # ICC 7.0 will fill foo.d with something like - # foo.o: sub/foo.c - # foo.o: sub/foo.h - # which is wrong. We want: - # sub/foo.o: sub/foo.c - # sub/foo.o: sub/foo.h - # sub/foo.c: - # sub/foo.h: - # ICC 7.1 will output - # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using \ : - # foo.o: sub/foo.c ... \ - # sub/foo.h ... \ - # ... - - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - # Each line is of the form `foo.o: dependent.h', - # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | - sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp2) - # The "hp" stanza above does not work with aCC (C++) and HP's ia64 - # compilers, which have integrated preprocessors. The correct option - # to use with these is +Maked; it writes dependencies to a file named - # 'foo.d', which lands next to the object file, wherever that - # happens to be. - # Much of this is similar to the tru64 case; see comments there. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - if test "$libtool" = yes; then - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir.libs/$base.d - "$@" -Wc,+Maked - else - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir$base.d - "$@" +Maked - fi - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" - # Add `dependent.h:' lines. - sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" "$tmpdepfile2" - ;; - -tru64) - # The Tru64 compiler uses -MD to generate dependencies as a side - # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in `foo.d' instead, so we check for that too. - # Subdirectories are respected. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - - if test "$libtool" = yes; then - # With Tru64 cc, shared objects can also be used to make a - # static library. This mechanism is used in libtool 1.4 series to - # handle both shared and static libraries in a single compilation. - # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. - # - # With libtool 1.5 this exception was removed, and libtool now - # generates 2 separate objects for the 2 libraries. These two - # compilations output dependencies in $dir.libs/$base.o.d and - # in $dir$base.o.d. We have to check for both files, because - # one of the two compilations can be disabled. We should prefer - # $dir$base.o.d over $dir.libs/$base.o.d because the latter is - # automatically cleaned when .libs/ is deleted, while ignoring - # the former would cause a distcleancheck panic. - tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 - tmpdepfile2=$dir$base.o.d # libtool 1.5 - tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 - tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 - "$@" -Wc,-MD - else - tmpdepfile1=$dir$base.o.d - tmpdepfile2=$dir$base.d - tmpdepfile3=$dir$base.d - tmpdepfile4=$dir$base.d - "$@" -MD - fi - - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -#nosideeffect) - # This comment above is used by automake to tell side-effect - # dependency tracking mechanisms from slower ones. - -dashmstdout) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout, regardless of -o. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do - shift - done - shift - fi - - # Remove `-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - test -z "$dashmflag" && dashmflag=-M - # Require at least two characters before searching for `:' - # in the target name. This is to cope with DOS-style filenames: - # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. - "$@" $dashmflag | - sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - tr ' ' ' -' < "$tmpdepfile" | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -dashXmstdout) - # This case only exists to satisfy depend.m4. It is never actually - # run, as this mode is specially recognized in the preamble. - exit 1 - ;; - -makedepend) - "$@" || exit $? - # Remove any Libtool call - if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do - shift - done - shift - fi - # X makedepend - shift - cleared=no - for arg in "$@"; do - case $cleared in - no) - set ""; shift - cleared=yes ;; - esac - case "$arg" in - -D*|-I*) - set fnord "$@" "$arg"; shift ;; - # Strip any option that makedepend may not understand. Remove - # the object too, otherwise makedepend will parse it as a source file. - -*|$object) - ;; - *) - set fnord "$@" "$arg"; shift ;; - esac - done - obj_suffix="`echo $object | sed 's/^.*\././'`" - touch "$tmpdepfile" - ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - sed '1,2d' "$tmpdepfile" | tr ' ' ' -' | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" "$tmpdepfile".bak - ;; - -cpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do - shift - done - shift - fi - - # Remove `-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - "$@" -E | - sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | - sed '$ s: \\$::' > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - cat < "$tmpdepfile" >> "$depfile" - sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvisualcpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout, regardless of -o, - # because we must use -o when running libtool. - "$@" || exit $? - IFS=" " - for arg - do - case "$arg" in - "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; - *) - set fnord "$@" "$arg" - shift - shift - ;; - esac - done - "$@" -E | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" - echo " " >> "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -none) - exec "$@" - ;; - -*) - echo "Unknown depmode $depmode" 1>&2 - exit 1 - ;; -esac - -exit 0 - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: diff --git a/contrib/cppunit-1.12.1/config/install-sh b/contrib/cppunit-1.12.1/config/install-sh deleted file mode 100644 index a5897de6e..000000000 --- a/contrib/cppunit-1.12.1/config/install-sh +++ /dev/null @@ -1,519 +0,0 @@ -#!/bin/sh -# install - install a program, script, or datafile - -scriptversion=2006-12-25.00 - -# This originates from X11R5 (mit/util/scripts/install.sh), which was -# later released in X11R6 (xc/config/util/install.sh) with the -# following copyright and license. -# -# Copyright (C) 1994 X Consortium -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to -# deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- -# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the X Consortium shall not -# be used in advertising or otherwise to promote the sale, use or other deal- -# ings in this Software without prior written authorization from the X Consor- -# tium. -# -# -# FSF changes to this file are in the public domain. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. - -nl=' -' -IFS=" "" $nl" - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit=${DOITPROG-} -if test -z "$doit"; then - doit_exec=exec -else - doit_exec=$doit -fi - -# Put in absolute file names if you don't have them in your path; -# or use environment vars. - -chgrpprog=${CHGRPPROG-chgrp} -chmodprog=${CHMODPROG-chmod} -chownprog=${CHOWNPROG-chown} -cmpprog=${CMPPROG-cmp} -cpprog=${CPPROG-cp} -mkdirprog=${MKDIRPROG-mkdir} -mvprog=${MVPROG-mv} -rmprog=${RMPROG-rm} -stripprog=${STRIPPROG-strip} - -posix_glob='?' -initialize_posix_glob=' - test "$posix_glob" != "?" || { - if (set -f) 2>/dev/null; then - posix_glob= - else - posix_glob=: - fi - } -' - -posix_mkdir= - -# Desired mode of installed file. -mode=0755 - -chgrpcmd= -chmodcmd=$chmodprog -chowncmd= -mvcmd=$mvprog -rmcmd="$rmprog -f" -stripcmd= - -src= -dst= -dir_arg= -dst_arg= - -copy_on_change=false -no_target_directory= - -usage="\ -Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE - or: $0 [OPTION]... SRCFILES... DIRECTORY - or: $0 [OPTION]... -t DIRECTORY SRCFILES... - or: $0 [OPTION]... -d DIRECTORIES... - -In the 1st form, copy SRCFILE to DSTFILE. -In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. -In the 4th, create DIRECTORIES. - -Options: - --help display this help and exit. - --version display version info and exit. - - -c (ignored) - -C install only if different (preserve the last data modification time) - -d create directories instead of installing files. - -g GROUP $chgrpprog installed files to GROUP. - -m MODE $chmodprog installed files to MODE. - -o USER $chownprog installed files to USER. - -s $stripprog installed files. - -t DIRECTORY install into DIRECTORY. - -T report an error if DSTFILE is a directory. - -Environment variables override the default commands: - CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG - RMPROG STRIPPROG -" - -while test $# -ne 0; do - case $1 in - -c) ;; - - -C) copy_on_change=true;; - - -d) dir_arg=true;; - - -g) chgrpcmd="$chgrpprog $2" - shift;; - - --help) echo "$usage"; exit $?;; - - -m) mode=$2 - case $mode in - *' '* | *' '* | *' -'* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - shift;; - - -o) chowncmd="$chownprog $2" - shift;; - - -s) stripcmd=$stripprog;; - - -t) dst_arg=$2 - shift;; - - -T) no_target_directory=true;; - - --version) echo "$0 $scriptversion"; exit $?;; - - --) shift - break;; - - -*) echo "$0: invalid option: $1" >&2 - exit 1;; - - *) break;; - esac - shift -done - -if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then - # When -d is used, all remaining arguments are directories to create. - # When -t is used, the destination is already specified. - # Otherwise, the last argument is the destination. Remove it from $@. - for arg - do - if test -n "$dst_arg"; then - # $@ is not empty: it contains at least $arg. - set fnord "$@" "$dst_arg" - shift # fnord - fi - shift # arg - dst_arg=$arg - done -fi - -if test $# -eq 0; then - if test -z "$dir_arg"; then - echo "$0: no input file specified." >&2 - exit 1 - fi - # It's OK to call `install-sh -d' without argument. - # This can happen when creating conditional directories. - exit 0 -fi - -if test -z "$dir_arg"; then - trap '(exit $?); exit' 1 2 13 15 - - # Set umask so as not to create temps with too-generous modes. - # However, 'strip' requires both read and write access to temps. - case $mode in - # Optimize common cases. - *644) cp_umask=133;; - *755) cp_umask=22;; - - *[0-7]) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw='% 200' - fi - cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; - *) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw=,u+rw - fi - cp_umask=$mode$u_plus_rw;; - esac -fi - -for src -do - # Protect names starting with `-'. - case $src in - -*) src=./$src;; - esac - - if test -n "$dir_arg"; then - dst=$src - dstdir=$dst - test -d "$dstdir" - dstdir_status=$? - else - - # Waiting for this to be detected by the "$cpprog $src $dsttmp" command - # might cause directories to be created, which would be especially bad - # if $src (and thus $dsttmp) contains '*'. - if test ! -f "$src" && test ! -d "$src"; then - echo "$0: $src does not exist." >&2 - exit 1 - fi - - if test -z "$dst_arg"; then - echo "$0: no destination specified." >&2 - exit 1 - fi - - dst=$dst_arg - # Protect names starting with `-'. - case $dst in - -*) dst=./$dst;; - esac - - # If destination is a directory, append the input filename; won't work - # if double slashes aren't ignored. - if test -d "$dst"; then - if test -n "$no_target_directory"; then - echo "$0: $dst_arg: Is a directory" >&2 - exit 1 - fi - dstdir=$dst - dst=$dstdir/`basename "$src"` - dstdir_status=0 - else - # Prefer dirname, but fall back on a substitute if dirname fails. - dstdir=` - (dirname "$dst") 2>/dev/null || - expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$dst" : 'X\(//\)[^/]' \| \ - X"$dst" : 'X\(//\)$' \| \ - X"$dst" : 'X\(/\)' \| . 2>/dev/null || - echo X"$dst" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q' - ` - - test -d "$dstdir" - dstdir_status=$? - fi - fi - - obsolete_mkdir_used=false - - if test $dstdir_status != 0; then - case $posix_mkdir in - '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode - else - mkdir_mode= - fi - - posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - - if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writeable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/d" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null - fi - trap '' 0;; - esac;; - esac - - if - $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" - ) - then : - else - - # The umask is ridiculous, or mkdir does not conform to POSIX, - # or it failed possibly due to a race condition. Create the - # directory the slow way, step by step, checking for races as we go. - - case $dstdir in - /*) prefix='/';; - -*) prefix='./';; - *) prefix='';; - esac - - eval "$initialize_posix_glob" - - oIFS=$IFS - IFS=/ - $posix_glob set -f - set fnord $dstdir - shift - $posix_glob set +f - IFS=$oIFS - - prefixes= - - for d - do - test -z "$d" && continue - - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask=$mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ - done - - if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true - fi - fi - fi - - if test -n "$dir_arg"; then - { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && - { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || - test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 - else - - # Make a couple of temp file names in the proper directory. - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ - - # Trap to clean up those temp files at exit. - trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 - - # Copy the file name to the temp name. - (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && - - # and set any options; do chmod last to preserve setuid bits. - # - # If any of these fail, we abort the whole thing. If we want to - # ignore errors from any of these, just make sure not to ignore - # errors from the above "$doit $cpprog $src $dsttmp" command. - # - { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && - { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && - { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && - - # If -C, don't bother to copy if it wouldn't change the file. - if $copy_on_change && - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && - - eval "$initialize_posix_glob" && - $posix_glob set -f && - set X $old && old=:$2:$4:$5:$6 && - set X $new && new=:$2:$4:$5:$6 && - $posix_glob set +f && - - test "$old" = "$new" && - $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 - then - rm -f "$dsttmp" - else - # Rename the file to the real destination. - $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || - - # The rename failed, perhaps because mv can't rename something else - # to itself, or perhaps because mv is so ancient that it does not - # support -f. - { - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } - } || - { echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - } && - - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" - } - fi || exit 1 - - trap '' 0 - fi -done - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: diff --git a/contrib/cppunit-1.12.1/config/ltmain.sh b/contrib/cppunit-1.12.1/config/ltmain.sh deleted file mode 100644 index 5def35163..000000000 --- a/contrib/cppunit-1.12.1/config/ltmain.sh +++ /dev/null @@ -1,6964 +0,0 @@ -# ltmain.sh - Provide generalized library-building support services. -# NOTE: Changing this file will not affect anything until you rerun configure. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, -# 2007, 2008 Free Software Foundation, Inc. -# Originally by Gordon Matzigkeit , 1996 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 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, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -basename="s,^.*/,,g" - -# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh -# is ksh but when the shell is invoked as "sh" and the current value of -# the _XPG environment variable is not equal to 1 (one), the special -# positional parameter $0, within a function call, is the name of the -# function. -progpath="$0" - -# The name of this program: -progname=`echo "$progpath" | $SED $basename` -modename="$progname" - -# Global variables: -EXIT_SUCCESS=0 -EXIT_FAILURE=1 - -PROGRAM=ltmain.sh -PACKAGE=libtool -VERSION="1.5.26 Debian 1.5.26-1" -TIMESTAMP=" (1.1220.2.493 2008/02/01 16:58:18)" - -# Be Bourne compatible (taken from Autoconf:_AS_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 - -# Check that we have a working $echo. -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then - # Yippee, $echo works! - : -else - # Restart under the correct shell, and then maybe $echo will work. - exec $SHELL "$progpath" --no-reexec ${1+"$@"} -fi - -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat <&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit $EXIT_FAILURE -fi - -# Global variables. -mode=$default_mode -nonopt= -prev= -prevopt= -run= -show="$echo" -show_help= -execute_dlfiles= -duplicate_deps=no -preserve_args= -lo2o="s/\\.lo\$/.${objext}/" -o2lo="s/\\.${objext}\$/.lo/" -extracted_archives= -extracted_serial=0 - -##################################### -# Shell function definitions: -# This seems to be the best place for them - -# func_mktempdir [string] -# Make a temporary directory that won't clash with other running -# libtool processes, and avoids race conditions if possible. If -# given, STRING is the basename for that directory. -func_mktempdir () -{ - my_template="${TMPDIR-/tmp}/${1-$progname}" - - if test "$run" = ":"; then - # Return a directory name, but don't create it in dry-run mode - my_tmpdir="${my_template}-$$" - else - - # If mktemp works, use that first and foremost - my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` - - if test ! -d "$my_tmpdir"; then - # Failing that, at least try and use $RANDOM to avoid a race - my_tmpdir="${my_template}-${RANDOM-0}$$" - - save_mktempdir_umask=`umask` - umask 0077 - $mkdir "$my_tmpdir" - umask $save_mktempdir_umask - fi - - # If we're not in dry-run mode, bomb out on failure - test -d "$my_tmpdir" || { - $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 - exit $EXIT_FAILURE - } - fi - - $echo "X$my_tmpdir" | $Xsed -} - - -# func_win32_libid arg -# return the library type of file 'arg' -# -# Need a lot of goo to handle *both* DLLs and import libs -# Has to be a shell function in order to 'eat' the argument -# that is supplied when $file_magic_command is called. -func_win32_libid () -{ - win32_libid_type="unknown" - win32_fileres=`file -L $1 2>/dev/null` - case $win32_fileres in - *ar\ archive\ import\ library*) # definitely import - win32_libid_type="x86 archive import" - ;; - *ar\ archive*) # could be an import, or static - if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ - $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then - win32_nmres=`eval $NM -f posix -A $1 | \ - $SED -n -e '1,100{ - / I /{ - s,.*,import, - p - q - } - }'` - case $win32_nmres in - import*) win32_libid_type="x86 archive import";; - *) win32_libid_type="x86 archive static";; - esac - fi - ;; - *DLL*) - win32_libid_type="x86 DLL" - ;; - *executable*) # but shell scripts are "executable" too... - case $win32_fileres in - *MS\ Windows\ PE\ Intel*) - win32_libid_type="x86 DLL" - ;; - esac - ;; - esac - $echo $win32_libid_type -} - - -# func_infer_tag arg -# Infer tagged configuration to use if any are available and -# if one wasn't chosen via the "--tag" command line option. -# Only attempt this if the compiler in the base compile -# command doesn't match the default compiler. -# arg is usually of the form 'gcc ...' -func_infer_tag () -{ - if test -n "$available_tags" && test -z "$tagname"; then - CC_quoted= - for arg in $CC; do - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - CC_quoted="$CC_quoted $arg" - done - case $@ in - # Blanks in the command may have been stripped by the calling shell, - # but not from the CC environment variable when configure was run. - " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; - # Blanks at the start of $base_compile will cause this to fail - # if we don't check for them as well. - *) - for z in $available_tags; do - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then - # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" - CC_quoted= - for arg in $CC; do - # Double-quote args containing other shell metacharacters. - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - CC_quoted="$CC_quoted $arg" - done - case "$@ " in - " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) - # The compiler in the base compile command matches - # the one in the tagged configuration. - # Assume this is the tagged configuration we want. - tagname=$z - break - ;; - esac - fi - done - # If $tagname still isn't set, then no tagged configuration - # was found and let the user know that the "--tag" command - # line option must be used. - if test -z "$tagname"; then - $echo "$modename: unable to infer tagged configuration" - $echo "$modename: specify a tag with \`--tag'" 1>&2 - exit $EXIT_FAILURE -# else -# $echo "$modename: using $tagname tagged configuration" - fi - ;; - esac - fi -} - - -# func_extract_an_archive dir oldlib -func_extract_an_archive () -{ - f_ex_an_ar_dir="$1"; shift - f_ex_an_ar_oldlib="$1" - - $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" - $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? - if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 - exit $EXIT_FAILURE - fi -} - -# func_extract_archives gentop oldlib ... -func_extract_archives () -{ - my_gentop="$1"; shift - my_oldlibs=${1+"$@"} - my_oldobjs="" - my_xlib="" - my_xabs="" - my_xdir="" - my_status="" - - $show "${rm}r $my_gentop" - $run ${rm}r "$my_gentop" - $show "$mkdir $my_gentop" - $run $mkdir "$my_gentop" - my_status=$? - if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then - exit $my_status - fi - - for my_xlib in $my_oldlibs; do - # Extract the objects. - case $my_xlib in - [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; - *) my_xabs=`pwd`"/$my_xlib" ;; - esac - my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` - my_xlib_u=$my_xlib - while :; do - case " $extracted_archives " in - *" $my_xlib_u "*) - extracted_serial=`expr $extracted_serial + 1` - my_xlib_u=lt$extracted_serial-$my_xlib ;; - *) break ;; - esac - done - extracted_archives="$extracted_archives $my_xlib_u" - my_xdir="$my_gentop/$my_xlib_u" - - $show "${rm}r $my_xdir" - $run ${rm}r "$my_xdir" - $show "$mkdir $my_xdir" - $run $mkdir "$my_xdir" - exit_status=$? - if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then - exit $exit_status - fi - case $host in - *-darwin*) - $show "Extracting $my_xabs" - # Do not bother doing anything if just a dry run - if test -z "$run"; then - darwin_orig_dir=`pwd` - cd $my_xdir || exit $? - darwin_archive=$my_xabs - darwin_curdir=`pwd` - darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` - darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` - if test -n "$darwin_arches"; then - darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` - darwin_arch= - $show "$darwin_base_archive has multiple architectures $darwin_arches" - for darwin_arch in $darwin_arches ; do - mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" - lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" - cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" - func_extract_an_archive "`pwd`" "${darwin_base_archive}" - cd "$darwin_curdir" - $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" - done # $darwin_arches - ## Okay now we have a bunch of thin objects, gotta fatten them up :) - darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` - darwin_file= - darwin_files= - for darwin_file in $darwin_filelist; do - darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` - lipo -create -output "$darwin_file" $darwin_files - done # $darwin_filelist - ${rm}r unfat-$$ - cd "$darwin_orig_dir" - else - cd "$darwin_orig_dir" - func_extract_an_archive "$my_xdir" "$my_xabs" - fi # $darwin_arches - fi # $run - ;; - *) - func_extract_an_archive "$my_xdir" "$my_xabs" - ;; - esac - my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` - done - func_extract_archives_result="$my_oldobjs" -} -# End of Shell function definitions -##################################### - -# Darwin sucks -eval std_shrext=\"$shrext_cmds\" - -disable_libs=no - -# Parse our command line options once, thoroughly. -while test "$#" -gt 0 -do - arg="$1" - shift - - case $arg in - -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; - *) optarg= ;; - esac - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case $prev in - execute_dlfiles) - execute_dlfiles="$execute_dlfiles $arg" - ;; - tag) - tagname="$arg" - preserve_args="${preserve_args}=$arg" - - # Check whether tagname contains only valid characters - case $tagname in - *[!-_A-Za-z0-9,/]*) - $echo "$progname: invalid tag name: $tagname" 1>&2 - exit $EXIT_FAILURE - ;; - esac - - case $tagname in - CC) - # Don't test for the "default" C tag, as we know, it's there, but - # not specially marked. - ;; - *) - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then - taglist="$taglist $tagname" - # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" - else - $echo "$progname: ignoring unknown tag $tagname" 1>&2 - fi - ;; - esac - ;; - *) - eval "$prev=\$arg" - ;; - esac - - prev= - prevopt= - continue - fi - - # Have we seen a non-optional argument yet? - case $arg in - --help) - show_help=yes - ;; - - --version) - echo "\ -$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP - -Copyright (C) 2008 Free Software Foundation, Inc. -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - exit $? - ;; - - --config) - ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath - # Now print the configurations for the tags. - for tagname in $taglist; do - ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" - done - exit $? - ;; - - --debug) - $echo "$progname: enabling shell trace mode" - set -x - preserve_args="$preserve_args $arg" - ;; - - --dry-run | -n) - run=: - ;; - - --features) - $echo "host: $host" - if test "$build_libtool_libs" = yes; then - $echo "enable shared libraries" - else - $echo "disable shared libraries" - fi - if test "$build_old_libs" = yes; then - $echo "enable static libraries" - else - $echo "disable static libraries" - fi - exit $? - ;; - - --finish) mode="finish" ;; - - --mode) prevopt="--mode" prev=mode ;; - --mode=*) mode="$optarg" ;; - - --preserve-dup-deps) duplicate_deps="yes" ;; - - --quiet | --silent) - show=: - preserve_args="$preserve_args $arg" - ;; - - --tag) - prevopt="--tag" - prev=tag - preserve_args="$preserve_args --tag" - ;; - --tag=*) - set tag "$optarg" ${1+"$@"} - shift - prev=tag - preserve_args="$preserve_args --tag" - ;; - - -dlopen) - prevopt="-dlopen" - prev=execute_dlfiles - ;; - - -*) - $echo "$modename: unrecognized option \`$arg'" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - ;; - - *) - nonopt="$arg" - break - ;; - esac -done - -if test -n "$prevopt"; then - $echo "$modename: option \`$prevopt' requires an argument" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE -fi - -case $disable_libs in -no) - ;; -shared) - build_libtool_libs=no - build_old_libs=yes - ;; -static) - build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` - ;; -esac - -# If this variable is set in any of the actions, the command in it -# will be execed at the end. This prevents here-documents from being -# left over by shells. -exec_cmd= - -if test -z "$show_help"; then - - # Infer the operation mode. - if test -z "$mode"; then - $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 - $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 - case $nonopt in - *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) - mode=link - for arg - do - case $arg in - -c) - mode=compile - break - ;; - esac - done - ;; - *db | *dbx | *strace | *truss) - mode=execute - ;; - *install*|cp|mv) - mode=install - ;; - *rm) - mode=uninstall - ;; - *) - # If we have no mode, but dlfiles were specified, then do execute mode. - test -n "$execute_dlfiles" && mode=execute - - # Just use the default operation mode. - if test -z "$mode"; then - if test -n "$nonopt"; then - $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 - else - $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 - fi - fi - ;; - esac - fi - - # Only execute mode is allowed to have -dlopen flags. - if test -n "$execute_dlfiles" && test "$mode" != execute; then - $echo "$modename: unrecognized option \`-dlopen'" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Change the help message to a mode-specific one. - generic_help="$help" - help="Try \`$modename --help --mode=$mode' for more information." - - # These modes are in order of execution frequency so that they run quickly. - case $mode in - # libtool compile mode - compile) - modename="$modename: compile" - # Get the compilation command and the source file. - base_compile= - srcfile="$nonopt" # always keep a non-empty value in "srcfile" - suppress_opt=yes - suppress_output= - arg_mode=normal - libobj= - later= - - for arg - do - case $arg_mode in - arg ) - # do not "continue". Instead, add this to base_compile - lastarg="$arg" - arg_mode=normal - ;; - - target ) - libobj="$arg" - arg_mode=normal - continue - ;; - - normal ) - # Accept any command-line options. - case $arg in - -o) - if test -n "$libobj" ; then - $echo "$modename: you cannot specify \`-o' more than once" 1>&2 - exit $EXIT_FAILURE - fi - arg_mode=target - continue - ;; - - -static | -prefer-pic | -prefer-non-pic) - later="$later $arg" - continue - ;; - - -no-suppress) - suppress_opt=no - continue - ;; - - -Xcompiler) - arg_mode=arg # the next one goes into the "base_compile" arg list - continue # The current "srcfile" will either be retained or - ;; # replaced later. I would guess that would be a bug. - - -Wc,*) - args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` - lastarg= - save_ifs="$IFS"; IFS=',' - for arg in $args; do - IFS="$save_ifs" - - # Double-quote args containing other shell metacharacters. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - lastarg="$lastarg $arg" - done - IFS="$save_ifs" - lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` - - # Add the arguments to base_compile. - base_compile="$base_compile $lastarg" - continue - ;; - - * ) - # Accept the current argument as the source file. - # The previous "srcfile" becomes the current argument. - # - lastarg="$srcfile" - srcfile="$arg" - ;; - esac # case $arg - ;; - esac # case $arg_mode - - # Aesthetically quote the previous argument. - lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` - - case $lastarg in - # Double-quote args containing other shell metacharacters. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, and some SunOS ksh mistreat backslash-escaping - # in scan sets (worked around with variable expansion), - # and furthermore cannot handle '|' '&' '(' ')' in scan sets - # at all, so we specify them separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - lastarg="\"$lastarg\"" - ;; - esac - - base_compile="$base_compile $lastarg" - done # for arg - - case $arg_mode in - arg) - $echo "$modename: you must specify an argument for -Xcompile" - exit $EXIT_FAILURE - ;; - target) - $echo "$modename: you must specify a target with \`-o'" 1>&2 - exit $EXIT_FAILURE - ;; - *) - # Get the name of the library object. - [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` - ;; - esac - - # Recognize several different file suffixes. - # If the user specifies -o file.o, it is replaced with file.lo - xform='[cCFSifmso]' - case $libobj in - *.ada) xform=ada ;; - *.adb) xform=adb ;; - *.ads) xform=ads ;; - *.asm) xform=asm ;; - *.c++) xform=c++ ;; - *.cc) xform=cc ;; - *.ii) xform=ii ;; - *.class) xform=class ;; - *.cpp) xform=cpp ;; - *.cxx) xform=cxx ;; - *.[fF][09]?) xform=[fF][09]. ;; - *.for) xform=for ;; - *.java) xform=java ;; - *.obj) xform=obj ;; - *.sx) xform=sx ;; - esac - - libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` - - case $libobj in - *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; - *) - $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 - exit $EXIT_FAILURE - ;; - esac - - func_infer_tag $base_compile - - for arg in $later; do - case $arg in - -static) - build_old_libs=yes - continue - ;; - - -prefer-pic) - pic_mode=yes - continue - ;; - - -prefer-non-pic) - pic_mode=no - continue - ;; - esac - done - - qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` - case $qlibobj in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - qlibobj="\"$qlibobj\"" ;; - esac - test "X$libobj" != "X$qlibobj" \ - && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ - && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." - objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` - xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$obj"; then - xdir= - else - xdir=$xdir/ - fi - lobj=${xdir}$objdir/$objname - - if test -z "$base_compile"; then - $echo "$modename: you must specify a compilation command" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Delete any leftover library objects. - if test "$build_old_libs" = yes; then - removelist="$obj $lobj $libobj ${libobj}T" - else - removelist="$lobj $libobj ${libobj}T" - fi - - $run $rm $removelist - trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 - - # On Cygwin there's no "real" PIC flag so we must build both object types - case $host_os in - cygwin* | mingw* | pw32* | os2*) - pic_mode=default - ;; - esac - if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then - # non-PIC code in shared libraries is not supported - pic_mode=default - fi - - # Calculate the filename of the output object if compiler does - # not support -o with -c - if test "$compiler_c_o" = no; then - output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} - lockfile="$output_obj.lock" - removelist="$removelist $output_obj $lockfile" - trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 - else - output_obj= - need_locks=no - lockfile= - fi - - # Lock this critical section if it is needed - # We use this script file to make the link, it avoids creating a new file - if test "$need_locks" = yes; then - until $run ln "$progpath" "$lockfile" 2>/dev/null; do - $show "Waiting for $lockfile to be removed" - sleep 2 - done - elif test "$need_locks" = warn; then - if test -f "$lockfile"; then - $echo "\ -*** ERROR, $lockfile exists and contains: -`cat $lockfile 2>/dev/null` - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $run $rm $removelist - exit $EXIT_FAILURE - fi - $echo "$srcfile" > "$lockfile" - fi - - if test -n "$fix_srcfile_path"; then - eval srcfile=\"$fix_srcfile_path\" - fi - qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` - case $qsrcfile in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - qsrcfile="\"$qsrcfile\"" ;; - esac - - $run $rm "$libobj" "${libobj}T" - - # Create a libtool object file (analogous to a ".la" file), - # but don't create it if we're doing a dry run. - test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then - $echo "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $run $rm $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed, then go on to compile the next one - if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then - $show "$mv $output_obj $lobj" - if $run $mv $output_obj $lobj; then : - else - error=$? - $run $rm $removelist - exit $error - fi - fi - - # Append the name of the PIC object to the libtool object file. - test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then - $echo "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $run $rm $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed - if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then - $show "$mv $output_obj $obj" - if $run $mv $output_obj $obj; then : - else - error=$? - $run $rm $removelist - exit $error - fi - fi - - # Append the name of the non-PIC object the libtool object file. - # Only append if the libtool object file exists. - test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 - fi - if test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=yes - ;; - -static) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=built - ;; - -static-libtool-libs) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=yes - ;; - esac - build_libtool_libs=no - build_old_libs=yes - break - ;; - esac - done - - # See if our shared archives depend on static archives. - test -n "$old_archive_from_new_cmds" && build_old_libs=yes - - # Go through the arguments, transforming them on the way. - while test "$#" -gt 0; do - arg="$1" - shift - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test - ;; - *) qarg=$arg ;; - esac - libtool_args="$libtool_args $qarg" - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case $prev in - output) - compile_command="$compile_command @OUTPUT@" - finalize_command="$finalize_command @OUTPUT@" - ;; - esac - - case $prev in - dlfiles|dlprefiles) - if test "$preload" = no; then - # Add the symbol object into the linking commands. - compile_command="$compile_command @SYMFILE@" - finalize_command="$finalize_command @SYMFILE@" - preload=yes - fi - case $arg in - *.la | *.lo) ;; # We handle these cases below. - force) - if test "$dlself" = no; then - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - self) - if test "$prev" = dlprefiles; then - dlself=yes - elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then - dlself=yes - else - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - *) - if test "$prev" = dlfiles; then - dlfiles="$dlfiles $arg" - else - dlprefiles="$dlprefiles $arg" - fi - prev= - continue - ;; - esac - ;; - expsyms) - export_symbols="$arg" - if test ! -f "$arg"; then - $echo "$modename: symbol file \`$arg' does not exist" - exit $EXIT_FAILURE - fi - prev= - continue - ;; - expsyms_regex) - export_symbols_regex="$arg" - prev= - continue - ;; - inst_prefix) - inst_prefix_dir="$arg" - prev= - continue - ;; - precious_regex) - precious_files_regex="$arg" - prev= - continue - ;; - release) - release="-$arg" - prev= - continue - ;; - objectlist) - if test -f "$arg"; then - save_arg=$arg - moreargs= - for fil in `cat $save_arg` - do -# moreargs="$moreargs $fil" - arg=$fil - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - pic_object= - non_pic_object= - - # Read the .lo file - # If there is no directory component, then add one. - case $arg in - */* | *\\*) . $arg ;; - *) . ./$arg ;; - esac - - if test -z "$pic_object" || \ - test -z "$non_pic_object" || - test "$pic_object" = none && \ - test "$non_pic_object" = none; then - $echo "$modename: cannot find name of object for \`$arg'" 1>&2 - exit $EXIT_FAILURE - fi - - # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi - - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$dlfiles $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. - dlprefiles="$dlprefiles $pic_object" - prev= - fi - - # A PIC object. - libobjs="$libobjs $pic_object" - arg="$pic_object" - fi - - # Non-PIC object. - if test "$non_pic_object" != none; then - # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" - - # A standard non-PIC object - non_pic_objects="$non_pic_objects $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi - else - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" - non_pic_objects="$non_pic_objects $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if test -z "$run"; then - $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 - exit $EXIT_FAILURE - else - # Dry-run case. - - # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi - - pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` - non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` - libobjs="$libobjs $pic_object" - non_pic_objects="$non_pic_objects $non_pic_object" - fi - fi - done - else - $echo "$modename: link input file \`$save_arg' does not exist" - exit $EXIT_FAILURE - fi - arg=$save_arg - prev= - continue - ;; - rpath | xrpath) - # We need an absolute path. - case $arg in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - $echo "$modename: only absolute run-paths are allowed" 1>&2 - exit $EXIT_FAILURE - ;; - esac - if test "$prev" = rpath; then - case "$rpath " in - *" $arg "*) ;; - *) rpath="$rpath $arg" ;; - esac - else - case "$xrpath " in - *" $arg "*) ;; - *) xrpath="$xrpath $arg" ;; - esac - fi - prev= - continue - ;; - xcompiler) - compiler_flags="$compiler_flags $qarg" - prev= - compile_command="$compile_command $qarg" - finalize_command="$finalize_command $qarg" - continue - ;; - xlinker) - linker_flags="$linker_flags $qarg" - compiler_flags="$compiler_flags $wl$qarg" - prev= - compile_command="$compile_command $wl$qarg" - finalize_command="$finalize_command $wl$qarg" - continue - ;; - xcclinker) - linker_flags="$linker_flags $qarg" - compiler_flags="$compiler_flags $qarg" - prev= - compile_command="$compile_command $qarg" - finalize_command="$finalize_command $qarg" - continue - ;; - shrext) - shrext_cmds="$arg" - prev= - continue - ;; - darwin_framework|darwin_framework_skip) - test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - prev= - continue - ;; - *) - eval "$prev=\"\$arg\"" - prev= - continue - ;; - esac - fi # test -n "$prev" - - prevarg="$arg" - - case $arg in - -all-static) - if test -n "$link_static_flag"; then - compile_command="$compile_command $link_static_flag" - finalize_command="$finalize_command $link_static_flag" - fi - continue - ;; - - -allow-undefined) - # FIXME: remove this flag sometime in the future. - $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 - continue - ;; - - -avoid-version) - avoid_version=yes - continue - ;; - - -dlopen) - prev=dlfiles - continue - ;; - - -dlpreopen) - prev=dlprefiles - continue - ;; - - -export-dynamic) - export_dynamic=yes - continue - ;; - - -export-symbols | -export-symbols-regex) - if test -n "$export_symbols" || test -n "$export_symbols_regex"; then - $echo "$modename: more than one -exported-symbols argument is not allowed" - exit $EXIT_FAILURE - fi - if test "X$arg" = "X-export-symbols"; then - prev=expsyms - else - prev=expsyms_regex - fi - continue - ;; - - -framework|-arch|-isysroot) - case " $CC " in - *" ${arg} ${1} "* | *" ${arg} ${1} "*) - prev=darwin_framework_skip ;; - *) compiler_flags="$compiler_flags $arg" - prev=darwin_framework ;; - esac - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - continue - ;; - - -inst-prefix-dir) - prev=inst_prefix - continue - ;; - - # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* - # so, if we see these flags be careful not to treat them like -L - -L[A-Z][A-Z]*:*) - case $with_gcc/$host in - no/*-*-irix* | /*-*-irix*) - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - ;; - esac - continue - ;; - - -L*) - dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 - absdir="$dir" - notinst_path="$notinst_path $dir" - fi - dir="$absdir" - ;; - esac - case "$deplibs " in - *" -L$dir "*) ;; - *) - deplibs="$deplibs -L$dir" - lib_search_path="$lib_search_path $dir" - ;; - esac - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) - testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$dir:"*) ;; - *) dllsearchpath="$dllsearchpath:$dir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - *) dllsearchpath="$dllsearchpath:$testbindir";; - esac - ;; - esac - continue - ;; - - -l*) - if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) - # These systems don't actually have a C or math library (as such) - continue - ;; - *-*-os2*) - # These systems don't actually have a C library (as such) - test "X$arg" = "X-lc" && continue - ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc due to us having libc/libc_r. - test "X$arg" = "X-lc" && continue - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C and math libraries are in the System framework - deplibs="$deplibs -framework System" - continue - ;; - *-*-sco3.2v5* | *-*-sco5v6*) - # Causes problems with __ctype - test "X$arg" = "X-lc" && continue - ;; - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - test "X$arg" = "X-lc" && continue - ;; - esac - elif test "X$arg" = "X-lc_r"; then - case $host in - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc_r directly, use -pthread flag. - continue - ;; - esac - fi - deplibs="$deplibs $arg" - continue - ;; - - # Tru64 UNIX uses -model [arg] to determine the layout of C++ - # classes, name mangling, and exception handling. - -model) - compile_command="$compile_command $arg" - compiler_flags="$compiler_flags $arg" - finalize_command="$finalize_command $arg" - prev=xcompiler - continue - ;; - - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) - compiler_flags="$compiler_flags $arg" - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - continue - ;; - - -multi_module) - single_module="${wl}-multi_module" - continue - ;; - - -module) - module=yes - continue - ;; - - # -64, -mips[0-9] enable 64-bit mode on the SGI compiler - # -r[0-9][0-9]* specifies the processor on the SGI compiler - # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler - # +DA*, +DD* enable 64-bit mode on the HP compiler - # -q* pass through compiler args for the IBM compiler - # -m* pass through architecture-specific compiler args for GCC - # -m*, -t[45]*, -txscale* pass through architecture-specific - # compiler args for GCC - # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC - # -F/path gives path to uninstalled frameworks, gcc on darwin - # @file GCC response files - -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ - -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) - - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - compiler_flags="$compiler_flags $arg" - continue - ;; - - -shrext) - prev=shrext - continue - ;; - - -no-fast-install) - fast_install=no - continue - ;; - - -no-install) - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*) - # The PATH hackery in wrapper scripts is required on Windows - # and Darwin in order for the loader to find any dlls it needs. - $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 - $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 - fast_install=no - ;; - *) no_install=yes ;; - esac - continue - ;; - - -no-undefined) - allow_undefined=no - continue - ;; - - -objectlist) - prev=objectlist - continue - ;; - - -o) prev=output ;; - - -precious-files-regex) - prev=precious_regex - continue - ;; - - -release) - prev=release - continue - ;; - - -rpath) - prev=rpath - continue - ;; - - -R) - prev=xrpath - continue - ;; - - -R*) - dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - $echo "$modename: only absolute run-paths are allowed" 1>&2 - exit $EXIT_FAILURE - ;; - esac - case "$xrpath " in - *" $dir "*) ;; - *) xrpath="$xrpath $dir" ;; - esac - continue - ;; - - -static | -static-libtool-libs) - # The effects of -static are defined in a previous loop. - # We used to do the same as -all-static on platforms that - # didn't have a PIC flag, but the assumption that the effects - # would be equivalent was wrong. It would break on at least - # Digital Unix and AIX. - continue - ;; - - -thread-safe) - thread_safe=yes - continue - ;; - - -version-info) - prev=vinfo - continue - ;; - -version-number) - prev=vinfo - vinfo_number=yes - continue - ;; - - -Wc,*) - args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" - case $flag in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - flag="\"$flag\"" - ;; - esac - arg="$arg $wl$flag" - compiler_flags="$compiler_flags $flag" - done - IFS="$save_ifs" - arg=`$echo "X$arg" | $Xsed -e "s/^ //"` - ;; - - -Wl,*) - args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" - case $flag in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - flag="\"$flag\"" - ;; - esac - arg="$arg $wl$flag" - compiler_flags="$compiler_flags $wl$flag" - linker_flags="$linker_flags $flag" - done - IFS="$save_ifs" - arg=`$echo "X$arg" | $Xsed -e "s/^ //"` - ;; - - -Xcompiler) - prev=xcompiler - continue - ;; - - -Xlinker) - prev=xlinker - continue - ;; - - -XCClinker) - prev=xcclinker - continue - ;; - - # Some other compiler flag. - -* | +*) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - ;; - - *.$objext) - # A standard object. - objs="$objs $arg" - ;; - - *.lo) - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - pic_object= - non_pic_object= - - # Read the .lo file - # If there is no directory component, then add one. - case $arg in - */* | *\\*) . $arg ;; - *) . ./$arg ;; - esac - - if test -z "$pic_object" || \ - test -z "$non_pic_object" || - test "$pic_object" = none && \ - test "$non_pic_object" = none; then - $echo "$modename: cannot find name of object for \`$arg'" 1>&2 - exit $EXIT_FAILURE - fi - - # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi - - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$dlfiles $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. - dlprefiles="$dlprefiles $pic_object" - prev= - fi - - # A PIC object. - libobjs="$libobjs $pic_object" - arg="$pic_object" - fi - - # Non-PIC object. - if test "$non_pic_object" != none; then - # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" - - # A standard non-PIC object - non_pic_objects="$non_pic_objects $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi - else - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" - non_pic_objects="$non_pic_objects $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if test -z "$run"; then - $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 - exit $EXIT_FAILURE - else - # Dry-run case. - - # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi - - pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` - non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` - libobjs="$libobjs $pic_object" - non_pic_objects="$non_pic_objects $non_pic_object" - fi - fi - ;; - - *.$libext) - # An archive. - deplibs="$deplibs $arg" - old_deplibs="$old_deplibs $arg" - continue - ;; - - *.la) - # A libtool-controlled library. - - if test "$prev" = dlfiles; then - # This library was specified with -dlopen. - dlfiles="$dlfiles $arg" - prev= - elif test "$prev" = dlprefiles; then - # The library was specified with -dlpreopen. - dlprefiles="$dlprefiles $arg" - prev= - else - deplibs="$deplibs $arg" - fi - continue - ;; - - # Some other compiler argument. - *) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - ;; - esac # arg - - # Now actually substitute the argument into the commands. - if test -n "$arg"; then - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - fi - done # argument parsing loop - - if test -n "$prev"; then - $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then - eval arg=\"$export_dynamic_flag_spec\" - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - fi - - oldlibs= - # calculate the name of the file, without its directory - outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` - libobjs_save="$libobjs" - - if test -n "$shlibpath_var"; then - # get the directories listed in $shlibpath_var - eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` - else - shlib_search_path= - fi - eval sys_lib_search_path=\"$sys_lib_search_path_spec\" - eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" - - output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` - if test "X$output_objdir" = "X$output"; then - output_objdir="$objdir" - else - output_objdir="$output_objdir/$objdir" - fi - # Create the object directory. - if test ! -d "$output_objdir"; then - $show "$mkdir $output_objdir" - $run $mkdir $output_objdir - exit_status=$? - if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then - exit $exit_status - fi - fi - - # Determine the type of output - case $output in - "") - $echo "$modename: you must specify an output file" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - ;; - *.$libext) linkmode=oldlib ;; - *.lo | *.$objext) linkmode=obj ;; - *.la) linkmode=lib ;; - *) linkmode=prog ;; # Anything else should be a program. - esac - - case $host in - *cygwin* | *mingw* | *pw32*) - # don't eliminate duplications in $postdeps and $predeps - duplicate_compiler_generated_deps=yes - ;; - *) - duplicate_compiler_generated_deps=$duplicate_deps - ;; - esac - specialdeplibs= - - libs= - # Find all interdependent deplibs by searching for libraries - # that are linked more than once (e.g. -la -lb -la) - for deplib in $deplibs; do - if test "X$duplicate_deps" = "Xyes" ; then - case "$libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - libs="$libs $deplib" - done - - if test "$linkmode" = lib; then - libs="$predeps $libs $compiler_lib_search_path $postdeps" - - # Compute libraries that are listed more than once in $predeps - # $postdeps and mark them as special (i.e., whose duplicates are - # not to be eliminated). - pre_post_deps= - if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then - for pre_post_dep in $predeps $postdeps; do - case "$pre_post_deps " in - *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; - esac - pre_post_deps="$pre_post_deps $pre_post_dep" - done - fi - pre_post_deps= - fi - - deplibs= - newdependency_libs= - newlib_search_path= - need_relink=no # whether we're linking any uninstalled libtool libraries - notinst_deplibs= # not-installed libtool libraries - case $linkmode in - lib) - passes="conv link" - for file in $dlfiles $dlprefiles; do - case $file in - *.la) ;; - *) - $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 - exit $EXIT_FAILURE - ;; - esac - done - ;; - prog) - compile_deplibs= - finalize_deplibs= - alldeplibs=no - newdlfiles= - newdlprefiles= - passes="conv scan dlopen dlpreopen link" - ;; - *) passes="conv" - ;; - esac - for pass in $passes; do - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan"; then - libs="$deplibs" - deplibs= - fi - if test "$linkmode" = prog; then - case $pass in - dlopen) libs="$dlfiles" ;; - dlpreopen) libs="$dlprefiles" ;; - link) - libs="$deplibs %DEPLIBS%" - test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" - ;; - esac - fi - if test "$pass" = dlopen; then - # Collect dlpreopened libraries - save_deplibs="$deplibs" - deplibs= - fi - for deplib in $libs; do - lib= - found=no - case $deplib in - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - compiler_flags="$compiler_flags $deplib" - fi - continue - ;; - -l*) - if test "$linkmode" != lib && test "$linkmode" != prog; then - $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 - continue - fi - name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` - if test "$linkmode" = lib; then - searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" - else - searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" - fi - for searchdir in $searchdirs; do - for search_ext in .la $std_shrext .so .a; do - # Search the libtool library - lib="$searchdir/lib${name}${search_ext}" - if test -f "$lib"; then - if test "$search_ext" = ".la"; then - found=yes - else - found=no - fi - break 2 - fi - done - done - if test "$found" != yes; then - # deplib doesn't seem to be a libtool library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - else # deplib is a libtool library - # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, - # We need to do some special things here, and not later. - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $deplib "*) - if (${SED} -e '2q' $lib | - grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - library_names= - old_library= - case $lib in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - esac - for l in $old_library $library_names; do - ll="$l" - done - if test "X$ll" = "X$old_library" ; then # only static version available - found=no - ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` - test "X$ladir" = "X$lib" && ladir="." - lib=$ladir/$old_library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - fi - fi - ;; - *) ;; - esac - fi - fi - ;; # -l - -L*) - case $linkmode in - lib) - deplibs="$deplib $deplibs" - test "$pass" = conv && continue - newdependency_libs="$deplib $newdependency_libs" - newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` - ;; - prog) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - if test "$pass" = scan; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` - ;; - *) - $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 - ;; - esac # linkmode - continue - ;; # -L - -R*) - if test "$pass" = link; then - dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` - # Make sure the xrpath contains only unique directories. - case "$xrpath " in - *" $dir "*) ;; - *) xrpath="$xrpath $dir" ;; - esac - fi - deplibs="$deplib $deplibs" - continue - ;; - *.la) lib="$deplib" ;; - *.$libext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - case $linkmode in - lib) - valid_a_lib=no - case $deplibs_check_method in - match_pattern*) - set dummy $deplibs_check_method - match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` - if eval $echo \"$deplib\" 2>/dev/null \ - | $SED 10q \ - | $EGREP "$match_pattern_regex" > /dev/null; then - valid_a_lib=yes - fi - ;; - pass_all) - valid_a_lib=yes - ;; - esac - if test "$valid_a_lib" != yes; then - $echo - $echo "*** Warning: Trying to link with static lib archive $deplib." - $echo "*** I have the capability to make that library automatically link in when" - $echo "*** you link to this library. But I can only do this if you have a" - $echo "*** shared version of the library, which you do not appear to have" - $echo "*** because the file extensions .$libext of this argument makes me believe" - $echo "*** that it is just a static archive that I should not used here." - else - $echo - $echo "*** Warning: Linking the shared library $output against the" - $echo "*** static library $deplib is not portable!" - deplibs="$deplib $deplibs" - fi - continue - ;; - prog) - if test "$pass" != link; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - continue - ;; - esac # linkmode - ;; # *.$libext - *.lo | *.$objext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - elif test "$linkmode" = prog; then - if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then - # If there is no dlopen support or we're linking statically, - # we need to preload. - newdlprefiles="$newdlprefiles $deplib" - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - newdlfiles="$newdlfiles $deplib" - fi - fi - continue - ;; - %DEPLIBS%) - alldeplibs=yes - continue - ;; - esac # case $deplib - if test "$found" = yes || test -f "$lib"; then : - else - $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 - exit $EXIT_FAILURE - fi - - # Check to see that this really is a libtool archive. - if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit $EXIT_FAILURE - fi - - ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` - test "X$ladir" = "X$lib" && ladir="." - - dlname= - dlopen= - dlpreopen= - libdir= - library_names= - old_library= - # If the library was installed with an old release of libtool, - # it will not redefine variables installed, or shouldnotlink - installed=yes - shouldnotlink=no - avoidtemprpath= - - - # Read the .la file - case $lib in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - esac - - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan" || - { test "$linkmode" != prog && test "$linkmode" != lib; }; then - test -n "$dlopen" && dlfiles="$dlfiles $dlopen" - test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" - fi - - if test "$pass" = conv; then - # Only check for convenience libraries - deplibs="$lib $deplibs" - if test -z "$libdir"; then - if test -z "$old_library"; then - $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 - exit $EXIT_FAILURE - fi - # It is a libtool convenience library, so add in its objects. - convenience="$convenience $ladir/$objdir/$old_library" - old_convenience="$old_convenience $ladir/$objdir/$old_library" - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if test "X$duplicate_deps" = "Xyes" ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - tmp_libs="$tmp_libs $deplib" - done - elif test "$linkmode" != prog && test "$linkmode" != lib; then - $echo "$modename: \`$lib' is not a convenience library" 1>&2 - exit $EXIT_FAILURE - fi - continue - fi # $pass = conv - - - # Get the name of the library we link against. - linklib= - for l in $old_library $library_names; do - linklib="$l" - done - if test -z "$linklib"; then - $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 - exit $EXIT_FAILURE - fi - - # This library was specified with -dlopen. - if test "$pass" = dlopen; then - if test -z "$libdir"; then - $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 - exit $EXIT_FAILURE - fi - if test -z "$dlname" || - test "$dlopen_support" != yes || - test "$build_libtool_libs" = no; then - # If there is no dlname, no dlopen support or we're linking - # statically, we need to preload. We also need to preload any - # dependent libraries so libltdl's deplib preloader doesn't - # bomb out in the load deplibs phase. - dlprefiles="$dlprefiles $lib $dependency_libs" - else - newdlfiles="$newdlfiles $lib" - fi - continue - fi # $pass = dlopen - - # We need an absolute path. - case $ladir in - [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; - *) - abs_ladir=`cd "$ladir" && pwd` - if test -z "$abs_ladir"; then - $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 - $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 - abs_ladir="$ladir" - fi - ;; - esac - laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` - - # Find the relevant object directory and library name. - if test "X$installed" = Xyes; then - if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then - $echo "$modename: warning: library \`$lib' was moved." 1>&2 - dir="$ladir" - absdir="$abs_ladir" - libdir="$abs_ladir" - else - dir="$libdir" - absdir="$libdir" - fi - test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes - else - if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then - dir="$ladir" - absdir="$abs_ladir" - # Remove this search path later - notinst_path="$notinst_path $abs_ladir" - else - dir="$ladir/$objdir" - absdir="$abs_ladir/$objdir" - # Remove this search path later - notinst_path="$notinst_path $abs_ladir" - fi - fi # $installed = yes - name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` - - # This library was specified with -dlpreopen. - if test "$pass" = dlpreopen; then - if test -z "$libdir"; then - $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 - exit $EXIT_FAILURE - fi - # Prefer using a static library (so that no silly _DYNAMIC symbols - # are required to link). - if test -n "$old_library"; then - newdlprefiles="$newdlprefiles $dir/$old_library" - # Otherwise, use the dlname, so that lt_dlopen finds it. - elif test -n "$dlname"; then - newdlprefiles="$newdlprefiles $dir/$dlname" - else - newdlprefiles="$newdlprefiles $dir/$linklib" - fi - fi # $pass = dlpreopen - - if test -z "$libdir"; then - # Link the convenience library - if test "$linkmode" = lib; then - deplibs="$dir/$old_library $deplibs" - elif test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$dir/$old_library $compile_deplibs" - finalize_deplibs="$dir/$old_library $finalize_deplibs" - else - deplibs="$lib $deplibs" # used for prog,scan pass - fi - continue - fi - - - if test "$linkmode" = prog && test "$pass" != link; then - newlib_search_path="$newlib_search_path $ladir" - deplibs="$lib $deplibs" - - linkalldeplibs=no - if test "$link_all_deplibs" != no || test -z "$library_names" || - test "$build_libtool_libs" = no; then - linkalldeplibs=yes - fi - - tmp_libs= - for deplib in $dependency_libs; do - case $deplib in - -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test - esac - # Need to link against all dependency_libs? - if test "$linkalldeplibs" = yes; then - deplibs="$deplib $deplibs" - else - # Need to hardcode shared library paths - # or/and link against static libraries - newdependency_libs="$deplib $newdependency_libs" - fi - if test "X$duplicate_deps" = "Xyes" ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - tmp_libs="$tmp_libs $deplib" - done # for deplib - continue - fi # $linkmode = prog... - - if test "$linkmode,$pass" = "prog,link"; then - if test -n "$library_names" && - { { test "$prefer_static_libs" = no || - test "$prefer_static_libs,$installed" = "built,yes"; } || - test -z "$old_library"; }; then - # We need to hardcode the library path - if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then - # Make sure the rpath contains only unique directories. - case "$temp_rpath " in - *" $dir "*) ;; - *" $absdir "*) ;; - *) temp_rpath="$temp_rpath $absdir" ;; - esac - fi - - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) compile_rpath="$compile_rpath $absdir" - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" - esac - ;; - esac - fi # $linkmode,$pass = prog,link... - - if test "$alldeplibs" = yes && - { test "$deplibs_check_method" = pass_all || - { test "$build_libtool_libs" = yes && - test -n "$library_names"; }; }; then - # We only need to search for static libraries - continue - fi - fi - - link_static=no # Whether the deplib will be linked statically - use_static_libs=$prefer_static_libs - if test "$use_static_libs" = built && test "$installed" = yes ; then - use_static_libs=no - fi - if test -n "$library_names" && - { test "$use_static_libs" = no || test -z "$old_library"; }; then - if test "$installed" = no; then - notinst_deplibs="$notinst_deplibs $lib" - need_relink=yes - fi - # This is a shared library - - # Warn about portability, can't link against -module's on - # some systems (darwin) - if test "$shouldnotlink" = yes && test "$pass" = link ; then - $echo - if test "$linkmode" = prog; then - $echo "*** Warning: Linking the executable $output against the loadable module" - else - $echo "*** Warning: Linking the shared library $output against the loadable module" - fi - $echo "*** $linklib is not portable!" - fi - if test "$linkmode" = lib && - test "$hardcode_into_libs" = yes; then - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) compile_rpath="$compile_rpath $absdir" - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" - esac - ;; - esac - fi - - if test -n "$old_archive_from_expsyms_cmds"; then - # figure out the soname - set dummy $library_names - realname="$2" - shift; shift - libname=`eval \\$echo \"$libname_spec\"` - # use dlname if we got it. it's perfectly good, no? - if test -n "$dlname"; then - soname="$dlname" - elif test -n "$soname_spec"; then - # bleh windows - case $host in - *cygwin* | mingw*) - major=`expr $current - $age` - versuffix="-$major" - ;; - esac - eval soname=\"$soname_spec\" - else - soname="$realname" - fi - - # Make a new name for the extract_expsyms_cmds to use - soroot="$soname" - soname=`$echo $soroot | ${SED} -e 's/^.*\///'` - newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" - - # If the library has no export list, then create one now - if test -f "$output_objdir/$soname-def"; then : - else - $show "extracting exported symbol list from \`$soname'" - save_ifs="$IFS"; IFS='~' - cmds=$extract_expsyms_cmds - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - fi - - # Create $newlib - if test -f "$output_objdir/$newlib"; then :; else - $show "generating import library for \`$soname'" - save_ifs="$IFS"; IFS='~' - cmds=$old_archive_from_expsyms_cmds - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - fi - # make sure the library variables are pointing to the new library - dir=$output_objdir - linklib=$newlib - fi # test -n "$old_archive_from_expsyms_cmds" - - if test "$linkmode" = prog || test "$mode" != relink; then - add_shlibpath= - add_dir= - add= - lib_linked=yes - case $hardcode_action in - immediate | unsupported) - if test "$hardcode_direct" = no; then - add="$dir/$linklib" - case $host in - *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; - *-*-sysv4*uw2*) add_dir="-L$dir" ;; - *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ - *-*-unixware7*) add_dir="-L$dir" ;; - *-*-darwin* ) - # if the lib is a module then we can not link against - # it, someone is ignoring the new warnings I added - if /usr/bin/file -L $add 2> /dev/null | - $EGREP ": [^:]* bundle" >/dev/null ; then - $echo "** Warning, lib $linklib is a module, not a shared library" - if test -z "$old_library" ; then - $echo - $echo "** And there doesn't seem to be a static archive available" - $echo "** The link will probably fail, sorry" - else - add="$dir/$old_library" - fi - fi - esac - elif test "$hardcode_minus_L" = no; then - case $host in - *-*-sunos*) add_shlibpath="$dir" ;; - esac - add_dir="-L$dir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = no; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - relink) - if test "$hardcode_direct" = yes; then - add="$dir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$dir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) - add_dir="$add_dir -L$inst_prefix_dir$libdir" - ;; - esac - fi - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - *) lib_linked=no ;; - esac - - if test "$lib_linked" != yes; then - $echo "$modename: configuration error: unsupported hardcode properties" - exit $EXIT_FAILURE - fi - - if test -n "$add_shlibpath"; then - case :$compile_shlibpath: in - *":$add_shlibpath:"*) ;; - *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; - esac - fi - if test "$linkmode" = prog; then - test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" - test -n "$add" && compile_deplibs="$add $compile_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - if test "$hardcode_direct" != yes && \ - test "$hardcode_minus_L" != yes && \ - test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; - esac - fi - fi - fi - - if test "$linkmode" = prog || test "$mode" = relink; then - add_shlibpath= - add_dir= - add= - # Finalize command for both is simple: just hardcode it. - if test "$hardcode_direct" = yes; then - add="$libdir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$libdir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; - esac - add="-l$name" - elif test "$hardcode_automatic" = yes; then - if test -n "$inst_prefix_dir" && - test -f "$inst_prefix_dir$libdir/$linklib" ; then - add="$inst_prefix_dir$libdir/$linklib" - else - add="$libdir/$linklib" - fi - else - # We cannot seem to hardcode it, guess we'll fake it. - add_dir="-L$libdir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) - add_dir="$add_dir -L$inst_prefix_dir$libdir" - ;; - esac - fi - add="-l$name" - fi - - if test "$linkmode" = prog; then - test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" - test -n "$add" && finalize_deplibs="$add $finalize_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - fi - fi - elif test "$linkmode" = prog; then - # Here we assume that one of hardcode_direct or hardcode_minus_L - # is not unsupported. This is valid on all known static and - # shared platforms. - if test "$hardcode_direct" != unsupported; then - test -n "$old_library" && linklib="$old_library" - compile_deplibs="$dir/$linklib $compile_deplibs" - finalize_deplibs="$dir/$linklib $finalize_deplibs" - else - compile_deplibs="-l$name -L$dir $compile_deplibs" - finalize_deplibs="-l$name -L$dir $finalize_deplibs" - fi - elif test "$build_libtool_libs" = yes; then - # Not a shared library - if test "$deplibs_check_method" != pass_all; then - # We're trying link a shared library against a static one - # but the system doesn't support it. - - # Just print a warning and add the library to dependency_libs so - # that the program can be linked against the static library. - $echo - $echo "*** Warning: This system can not link to static lib archive $lib." - $echo "*** I have the capability to make that library automatically link in when" - $echo "*** you link to this library. But I can only do this if you have a" - $echo "*** shared version of the library, which you do not appear to have." - if test "$module" = yes; then - $echo "*** But as you try to build a module library, libtool will still create " - $echo "*** a static module, that should work as long as the dlopening application" - $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." - if test -z "$global_symbol_pipe"; then - $echo - $echo "*** However, this would only work if libtool was able to extract symbol" - $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" - $echo "*** not find such a program. So, this module is probably useless." - $echo "*** \`nm' from GNU binutils and a full rebuild may help." - fi - if test "$build_old_libs" = no; then - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - else - deplibs="$dir/$old_library $deplibs" - link_static=yes - fi - fi # link shared/static library? - - if test "$linkmode" = lib; then - if test -n "$dependency_libs" && - { test "$hardcode_into_libs" != yes || - test "$build_old_libs" = yes || - test "$link_static" = yes; }; then - # Extract -R from dependency_libs - temp_deplibs= - for libdir in $dependency_libs; do - case $libdir in - -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` - case " $xrpath " in - *" $temp_xrpath "*) ;; - *) xrpath="$xrpath $temp_xrpath";; - esac;; - *) temp_deplibs="$temp_deplibs $libdir";; - esac - done - dependency_libs="$temp_deplibs" - fi - - newlib_search_path="$newlib_search_path $absdir" - # Link against this library - test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" - # ... and its dependency_libs - tmp_libs= - for deplib in $dependency_libs; do - newdependency_libs="$deplib $newdependency_libs" - if test "X$duplicate_deps" = "Xyes" ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - tmp_libs="$tmp_libs $deplib" - done - - if test "$link_all_deplibs" != no; then - # Add the search paths of all dependency libraries - for deplib in $dependency_libs; do - case $deplib in - -L*) path="$deplib" ;; - *.la) - dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$deplib" && dir="." - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; - *) - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 - absdir="$dir" - fi - ;; - esac - if grep "^installed=no" $deplib > /dev/null; then - path="$absdir/$objdir" - else - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - if test -z "$libdir"; then - $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 - exit $EXIT_FAILURE - fi - if test "$absdir" != "$libdir"; then - $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 - fi - path="$absdir" - fi - depdepl= - case $host in - *-*-darwin*) - # we do not want to link against static libs, - # but need to link against shared - eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` - eval deplibdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - if test -n "$deplibrary_names" ; then - for tmp in $deplibrary_names ; do - depdepl=$tmp - done - if test -f "$deplibdir/$depdepl" ; then - depdepl="$deplibdir/$depdepl" - elif test -f "$path/$depdepl" ; then - depdepl="$path/$depdepl" - else - # Can't find it, oh well... - depdepl= - fi - # do not add paths which are already there - case " $newlib_search_path " in - *" $path "*) ;; - *) newlib_search_path="$newlib_search_path $path";; - esac - fi - path="" - ;; - *) - path="-L$path" - ;; - esac - ;; - -l*) - case $host in - *-*-darwin*) - # Again, we only want to link against shared libraries - eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` - for tmp in $newlib_search_path ; do - if test -f "$tmp/lib$tmp_libs.dylib" ; then - eval depdepl="$tmp/lib$tmp_libs.dylib" - break - fi - done - path="" - ;; - *) continue ;; - esac - ;; - *) continue ;; - esac - case " $deplibs " in - *" $path "*) ;; - *) deplibs="$path $deplibs" ;; - esac - case " $deplibs " in - *" $depdepl "*) ;; - *) deplibs="$depdepl $deplibs" ;; - esac - done - fi # link_all_deplibs != no - fi # linkmode = lib - done # for deplib in $libs - dependency_libs="$newdependency_libs" - if test "$pass" = dlpreopen; then - # Link the dlpreopened libraries before other libraries - for deplib in $save_deplibs; do - deplibs="$deplib $deplibs" - done - fi - if test "$pass" != dlopen; then - if test "$pass" != conv; then - # Make sure lib_search_path contains only unique directories. - lib_search_path= - for dir in $newlib_search_path; do - case "$lib_search_path " in - *" $dir "*) ;; - *) lib_search_path="$lib_search_path $dir" ;; - esac - done - newlib_search_path= - fi - - if test "$linkmode,$pass" != "prog,link"; then - vars="deplibs" - else - vars="compile_deplibs finalize_deplibs" - fi - for var in $vars dependency_libs; do - # Add libraries to $var in reverse order - eval tmp_libs=\"\$$var\" - new_libs= - for deplib in $tmp_libs; do - # FIXME: Pedantically, this is the right thing to do, so - # that some nasty dependency loop isn't accidentally - # broken: - #new_libs="$deplib $new_libs" - # Pragmatically, this seems to cause very few problems in - # practice: - case $deplib in - -L*) new_libs="$deplib $new_libs" ;; - -R*) ;; - *) - # And here is the reason: when a library appears more - # than once as an explicit dependence of a library, or - # is implicitly linked in more than once by the - # compiler, it is considered special, and multiple - # occurrences thereof are not removed. Compare this - # with having the same library being listed as a - # dependency of multiple other libraries: in this case, - # we know (pedantically, we assume) the library does not - # need to be listed more than once, so we keep only the - # last copy. This is not always right, but it is rare - # enough that we require users that really mean to play - # such unportable linking tricks to link the library - # using -Wl,-lname, so that libtool does not consider it - # for duplicate removal. - case " $specialdeplibs " in - *" $deplib "*) new_libs="$deplib $new_libs" ;; - *) - case " $new_libs " in - *" $deplib "*) ;; - *) new_libs="$deplib $new_libs" ;; - esac - ;; - esac - ;; - esac - done - tmp_libs= - for deplib in $new_libs; do - case $deplib in - -L*) - case " $tmp_libs " in - *" $deplib "*) ;; - *) tmp_libs="$tmp_libs $deplib" ;; - esac - ;; - *) tmp_libs="$tmp_libs $deplib" ;; - esac - done - eval $var=\"$tmp_libs\" - done # for var - fi - # Last step: remove runtime libs from dependency_libs - # (they stay in deplibs) - tmp_libs= - for i in $dependency_libs ; do - case " $predeps $postdeps $compiler_lib_search_path " in - *" $i "*) - i="" - ;; - esac - if test -n "$i" ; then - tmp_libs="$tmp_libs $i" - fi - done - dependency_libs=$tmp_libs - done # for pass - if test "$linkmode" = prog; then - dlfiles="$newdlfiles" - dlprefiles="$newdlprefiles" - fi - - case $linkmode in - oldlib) - case " $deplibs" in - *\ -l* | *\ -L*) - $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ;; - esac - - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 - fi - - if test -n "$rpath"; then - $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 - fi - - if test -n "$xrpath"; then - $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 - fi - - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 - fi - - if test -n "$export_symbols" || test -n "$export_symbols_regex"; then - $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 - fi - - # Now set the variables for building old libraries. - build_libtool_libs=no - oldlibs="$output" - objs="$objs$old_deplibs" - ;; - - lib) - # Make sure we only generate libraries of the form `libNAME.la'. - case $outputname in - lib*) - name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - ;; - *) - if test "$module" = no; then - $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - if test "$need_lib_prefix" != no; then - # Add the "lib" prefix for modules if required - name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - else - libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` - fi - ;; - esac - - if test -n "$objs"; then - if test "$deplibs_check_method" != pass_all; then - $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 - exit $EXIT_FAILURE - else - $echo - $echo "*** Warning: Linking the shared library $output against the non-libtool" - $echo "*** objects $objs is not portable!" - libobjs="$libobjs $objs" - fi - fi - - if test "$dlself" != no; then - $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 - fi - - set dummy $rpath - if test "$#" -gt 2; then - $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 - fi - install_libdir="$2" - - oldlibs= - if test -z "$rpath"; then - if test "$build_libtool_libs" = yes; then - # Building a libtool convenience library. - # Some compilers have problems with a `.al' extension so - # convenience libraries should have the same extension an - # archive normally would. - oldlibs="$output_objdir/$libname.$libext $oldlibs" - build_libtool_libs=convenience - build_old_libs=yes - fi - - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 - fi - else - - # Parse the version information argument. - save_ifs="$IFS"; IFS=':' - set dummy $vinfo 0 0 0 - IFS="$save_ifs" - - if test -n "$8"; then - $echo "$modename: too many parameters to \`-version-info'" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # convert absolute version numbers to libtool ages - # this retains compatibility with .la files and attempts - # to make the code below a bit more comprehensible - - case $vinfo_number in - yes) - number_major="$2" - number_minor="$3" - number_revision="$4" - # - # There are really only two kinds -- those that - # use the current revision as the major version - # and those that subtract age and use age as - # a minor version. But, then there is irix - # which has an extra 1 added just for fun - # - case $version_type in - darwin|linux|osf|windows|none) - current=`expr $number_major + $number_minor` - age="$number_minor" - revision="$number_revision" - ;; - freebsd-aout|freebsd-elf|sunos) - current="$number_major" - revision="$number_minor" - age="0" - ;; - irix|nonstopux) - current=`expr $number_major + $number_minor` - age="$number_minor" - revision="$number_minor" - lt_irix_increment=no - ;; - *) - $echo "$modename: unknown library version type \`$version_type'" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit $EXIT_FAILURE - ;; - esac - ;; - no) - current="$2" - revision="$3" - age="$4" - ;; - esac - - # Check that each of the things are valid numbers. - case $current in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit $EXIT_FAILURE - ;; - esac - - case $revision in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit $EXIT_FAILURE - ;; - esac - - case $age in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit $EXIT_FAILURE - ;; - esac - - if test "$age" -gt "$current"; then - $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit $EXIT_FAILURE - fi - - # Calculate the version variables. - major= - versuffix= - verstring= - case $version_type in - none) ;; - - darwin) - # Like Linux, but with the current version available in - # verstring for coding it into the library header - major=.`expr $current - $age` - versuffix="$major.$age.$revision" - # Darwin ld doesn't like 0 for these options... - minor_current=`expr $current + 1` - xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" - verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" - ;; - - freebsd-aout) - major=".$current" - versuffix=".$current.$revision"; - ;; - - freebsd-elf) - major=".$current" - versuffix=".$current"; - ;; - - irix | nonstopux) - if test "X$lt_irix_increment" = "Xno"; then - major=`expr $current - $age` - else - major=`expr $current - $age + 1` - fi - case $version_type in - nonstopux) verstring_prefix=nonstopux ;; - *) verstring_prefix=sgi ;; - esac - verstring="$verstring_prefix$major.$revision" - - # Add in all the interfaces that we are compatible with. - loop=$revision - while test "$loop" -ne 0; do - iface=`expr $revision - $loop` - loop=`expr $loop - 1` - verstring="$verstring_prefix$major.$iface:$verstring" - done - - # Before this point, $major must not contain `.'. - major=.$major - versuffix="$major.$revision" - ;; - - linux) - major=.`expr $current - $age` - versuffix="$major.$age.$revision" - ;; - - osf) - major=.`expr $current - $age` - versuffix=".$current.$age.$revision" - verstring="$current.$age.$revision" - - # Add in all the interfaces that we are compatible with. - loop=$age - while test "$loop" -ne 0; do - iface=`expr $current - $loop` - loop=`expr $loop - 1` - verstring="$verstring:${iface}.0" - done - - # Make executables depend on our current version. - verstring="$verstring:${current}.0" - ;; - - sunos) - major=".$current" - versuffix=".$current.$revision" - ;; - - windows) - # Use '-' rather than '.', since we only want one - # extension on DOS 8.3 filesystems. - major=`expr $current - $age` - versuffix="-$major" - ;; - - *) - $echo "$modename: unknown library version type \`$version_type'" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit $EXIT_FAILURE - ;; - esac - - # Clear the version info if we defaulted, and they specified a release. - if test -z "$vinfo" && test -n "$release"; then - major= - case $version_type in - darwin) - # we can't check for "0.0" in archive_cmds due to quoting - # problems, so we reset it completely - verstring= - ;; - *) - verstring="0.0" - ;; - esac - if test "$need_version" = no; then - versuffix= - else - versuffix=".0.0" - fi - fi - - # Remove version info from name if versioning should be avoided - if test "$avoid_version" = yes && test "$need_version" = no; then - major= - versuffix= - verstring="" - fi - - # Check to see if the archive will have undefined symbols. - if test "$allow_undefined" = yes; then - if test "$allow_undefined_flag" = unsupported; then - $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 - build_libtool_libs=no - build_old_libs=yes - fi - else - # Don't allow undefined symbols. - allow_undefined_flag="$no_undefined_flag" - fi - fi - - if test "$mode" != relink; then - # Remove our outputs, but don't remove object files since they - # may have been created when compiling PIC objects. - removelist= - tempremovelist=`$echo "$output_objdir/*"` - for p in $tempremovelist; do - case $p in - *.$objext) - ;; - $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) - if test "X$precious_files_regex" != "X"; then - if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 - then - continue - fi - fi - removelist="$removelist $p" - ;; - *) ;; - esac - done - if test -n "$removelist"; then - $show "${rm}r $removelist" - $run ${rm}r $removelist - fi - fi - - # Now set the variables for building old libraries. - if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then - oldlibs="$oldlibs $output_objdir/$libname.$libext" - - # Transform .lo files to .o files. - oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` - fi - - # Eliminate all temporary directories. - #for path in $notinst_path; do - # lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` - # deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` - # dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` - #done - - if test -n "$xrpath"; then - # If the user specified any rpath flags, then add them. - temp_xrpath= - for libdir in $xrpath; do - temp_xrpath="$temp_xrpath -R$libdir" - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" ;; - esac - done - if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then - dependency_libs="$temp_xrpath $dependency_libs" - fi - fi - - # Make sure dlfiles contains only unique files that won't be dlpreopened - old_dlfiles="$dlfiles" - dlfiles= - for lib in $old_dlfiles; do - case " $dlprefiles $dlfiles " in - *" $lib "*) ;; - *) dlfiles="$dlfiles $lib" ;; - esac - done - - # Make sure dlprefiles contains only unique files - old_dlprefiles="$dlprefiles" - dlprefiles= - for lib in $old_dlprefiles; do - case "$dlprefiles " in - *" $lib "*) ;; - *) dlprefiles="$dlprefiles $lib" ;; - esac - done - - if test "$build_libtool_libs" = yes; then - if test -n "$rpath"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) - # these systems don't actually have a c library (as such)! - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C library is in the System framework - deplibs="$deplibs -framework System" - ;; - *-*-netbsd*) - # Don't link with libc until the a.out ld.so is fixed. - ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc due to us having libc/libc_r. - ;; - *-*-sco3.2v5* | *-*-sco5v6*) - # Causes problems with __ctype - ;; - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - ;; - *) - # Add libc to deplibs on all other systems if necessary. - if test "$build_libtool_need_lc" = "yes"; then - deplibs="$deplibs -lc" - fi - ;; - esac - fi - - # Transform deplibs into only deplibs that can be linked in shared. - name_save=$name - libname_save=$libname - release_save=$release - versuffix_save=$versuffix - major_save=$major - # I'm not sure if I'm treating the release correctly. I think - # release should show up in the -l (ie -lgmp5) so we don't want to - # add it in twice. Is that correct? - release="" - versuffix="" - major="" - newdeplibs= - droppeddeps=no - case $deplibs_check_method in - pass_all) - # Don't check for shared/static. Everything works. - # This might be a little naive. We might want to check - # whether the library exists or not. But this is on - # osf3 & osf4 and I'm not really sure... Just - # implementing what was already the behavior. - newdeplibs=$deplibs - ;; - test_compile) - # This code stresses the "libraries are programs" paradigm to its - # limits. Maybe even breaks it. We compile a program, linking it - # against the deplibs as a proxy for the library. Then we can check - # whether they linked in statically or dynamically with ldd. - $rm conftest.c - cat > conftest.c </dev/null` - for potent_lib in $potential_libs; do - # Follow soft links. - if ls -lLd "$potent_lib" 2>/dev/null \ - | grep " -> " >/dev/null; then - continue - fi - # The statement above tries to avoid entering an - # endless loop below, in case of cyclic links. - # We might still enter an endless loop, since a link - # loop can be closed while we follow links, - # but so what? - potlib="$potent_lib" - while test -h "$potlib" 2>/dev/null; do - potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` - case $potliblink in - [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; - *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; - esac - done - if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ - | ${SED} 10q \ - | $EGREP "$file_magic_regex" > /dev/null; then - newdeplibs="$newdeplibs $a_deplib" - a_deplib="" - break 2 - fi - done - done - fi - if test -n "$a_deplib" ; then - droppeddeps=yes - $echo - $echo "*** Warning: linker path does not have real file for library $a_deplib." - $echo "*** I have the capability to make that library automatically link in when" - $echo "*** you link to this library. But I can only do this if you have a" - $echo "*** shared version of the library, which you do not appear to have" - $echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then - $echo "*** with $libname but no candidates were found. (...for file magic test)" - else - $echo "*** with $libname and none of the candidates passed a file format test" - $echo "*** using a file magic. Last file checked: $potlib" - fi - fi - else - # Add a -L argument. - newdeplibs="$newdeplibs $a_deplib" - fi - done # Gone through all deplibs. - ;; - match_pattern*) - set dummy $deplibs_check_method - match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` - for a_deplib in $deplibs; do - name=`expr $a_deplib : '-l\(.*\)'` - # If $name is empty we are operating on a -L argument. - if test -n "$name" && test "$name" != "0"; then - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $a_deplib "*) - newdeplibs="$newdeplibs $a_deplib" - a_deplib="" - ;; - esac - fi - if test -n "$a_deplib" ; then - libname=`eval \\$echo \"$libname_spec\"` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` - for potent_lib in $potential_libs; do - potlib="$potent_lib" # see symlink-check above in file_magic test - if eval $echo \"$potent_lib\" 2>/dev/null \ - | ${SED} 10q \ - | $EGREP "$match_pattern_regex" > /dev/null; then - newdeplibs="$newdeplibs $a_deplib" - a_deplib="" - break 2 - fi - done - done - fi - if test -n "$a_deplib" ; then - droppeddeps=yes - $echo - $echo "*** Warning: linker path does not have real file for library $a_deplib." - $echo "*** I have the capability to make that library automatically link in when" - $echo "*** you link to this library. But I can only do this if you have a" - $echo "*** shared version of the library, which you do not appear to have" - $echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then - $echo "*** with $libname but no candidates were found. (...for regex pattern test)" - else - $echo "*** with $libname and none of the candidates passed a file format test" - $echo "*** using a regex pattern. Last file checked: $potlib" - fi - fi - else - # Add a -L argument. - newdeplibs="$newdeplibs $a_deplib" - fi - done # Gone through all deplibs. - ;; - none | unknown | *) - newdeplibs="" - tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ - -e 's/ -[LR][^ ]*//g'` - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - for i in $predeps $postdeps ; do - # can't use Xsed below, because $i might contain '/' - tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` - done - fi - if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ - | grep . >/dev/null; then - $echo - if test "X$deplibs_check_method" = "Xnone"; then - $echo "*** Warning: inter-library dependencies are not supported in this platform." - else - $echo "*** Warning: inter-library dependencies are not known to be supported." - fi - $echo "*** All declared inter-library dependencies are being dropped." - droppeddeps=yes - fi - ;; - esac - versuffix=$versuffix_save - major=$major_save - release=$release_save - libname=$libname_save - name=$name_save - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library is the System framework - newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` - ;; - esac - - if test "$droppeddeps" = yes; then - if test "$module" = yes; then - $echo - $echo "*** Warning: libtool could not satisfy all declared inter-library" - $echo "*** dependencies of module $libname. Therefore, libtool will create" - $echo "*** a static module, that should work as long as the dlopening" - $echo "*** application is linked with the -dlopen flag." - if test -z "$global_symbol_pipe"; then - $echo - $echo "*** However, this would only work if libtool was able to extract symbol" - $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" - $echo "*** not find such a program. So, this module is probably useless." - $echo "*** \`nm' from GNU binutils and a full rebuild may help." - fi - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - else - $echo "*** The inter-library dependencies that have been dropped here will be" - $echo "*** automatically added whenever a program is linked with this library" - $echo "*** or is declared to -dlopen it." - - if test "$allow_undefined" = no; then - $echo - $echo "*** Since this library must not contain undefined symbols," - $echo "*** because either the platform does not support them or" - $echo "*** it was explicitly requested with -no-undefined," - $echo "*** libtool will only create a static version of it." - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - fi - fi - # Done checking deplibs! - deplibs=$newdeplibs - fi - - - # move library search paths that coincide with paths to not yet - # installed libraries to the beginning of the library search list - new_libs= - for path in $notinst_path; do - case " $new_libs " in - *" -L$path/$objdir "*) ;; - *) - case " $deplibs " in - *" -L$path/$objdir "*) - new_libs="$new_libs -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) new_libs="$new_libs $deplib" ;; - esac - ;; - *) new_libs="$new_libs $deplib" ;; - esac - done - deplibs="$new_libs" - - - # All the library-specific variables (install_libdir is set above). - library_names= - old_library= - dlname= - - # Test again, we may have decided not to build it any more - if test "$build_libtool_libs" = yes; then - if test "$hardcode_into_libs" = yes; then - # Hardcode the library paths - hardcode_libdirs= - dep_rpath= - rpath="$finalize_rpath" - test "$mode" != relink && rpath="$compile_rpath$rpath" - for libdir in $rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - dep_rpath="$dep_rpath $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) perm_rpath="$perm_rpath $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - if test -n "$hardcode_libdir_flag_spec_ld"; then - case $archive_cmds in - *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;; - *) eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;; - esac - else - eval dep_rpath=\"$hardcode_libdir_flag_spec\" - fi - fi - if test -n "$runpath_var" && test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - rpath="$rpath$dir:" - done - eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" - fi - test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" - fi - - shlibpath="$finalize_shlibpath" - test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" - if test -n "$shlibpath"; then - eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" - fi - - # Get the real and link names of the library. - eval shared_ext=\"$shrext_cmds\" - eval library_names=\"$library_names_spec\" - set dummy $library_names - realname="$2" - shift; shift - - if test -n "$soname_spec"; then - eval soname=\"$soname_spec\" - else - soname="$realname" - fi - if test -z "$dlname"; then - dlname=$soname - fi - - lib="$output_objdir/$realname" - linknames= - for link - do - linknames="$linknames $link" - done - - # Use standard objects if they are pic - test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then - $show "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" - $run $rm $export_symbols - cmds=$export_symbols_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - if len=`expr "X$cmd" : ".*"` && - test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then - $show "$cmd" - $run eval "$cmd" || exit $? - skipped_export=false - else - # The command line is too long to execute in one step. - $show "using reloadable object file for export list..." - skipped_export=: - # Break out early, otherwise skipped_export may be - # set to false by a later but shorter cmd. - break - fi - done - IFS="$save_ifs" - if test -n "$export_symbols_regex"; then - $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" - $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' - $show "$mv \"${export_symbols}T\" \"$export_symbols\"" - $run eval '$mv "${export_symbols}T" "$export_symbols"' - fi - fi - fi - - if test -n "$export_symbols" && test -n "$include_expsyms"; then - $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' - fi - - tmp_deplibs= - for test_deplib in $deplibs; do - case " $convenience " in - *" $test_deplib "*) ;; - *) - tmp_deplibs="$tmp_deplibs $test_deplib" - ;; - esac - done - deplibs="$tmp_deplibs" - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - else - gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" - - func_extract_archives $gentop $convenience - libobjs="$libobjs $func_extract_archives_result" - fi - fi - - if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then - eval flag=\"$thread_safe_flag_spec\" - linker_flags="$linker_flags $flag" - fi - - # Make a backup of the uninstalled library when relinking - if test "$mode" = relink; then - $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? - fi - - # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - eval test_cmds=\"$module_expsym_cmds\" - cmds=$module_expsym_cmds - else - eval test_cmds=\"$module_cmds\" - cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - eval test_cmds=\"$archive_expsym_cmds\" - cmds=$archive_expsym_cmds - else - eval test_cmds=\"$archive_cmds\" - cmds=$archive_cmds - fi - fi - - if test "X$skipped_export" != "X:" && - len=`expr "X$test_cmds" : ".*" 2>/dev/null` && - test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then - : - else - # The command line is too long to link in one step, link piecewise. - $echo "creating reloadable object files..." - - # Save the value of $output and $libobjs because we want to - # use them later. If we have whole_archive_flag_spec, we - # want to use save_libobjs as it was before - # whole_archive_flag_spec was expanded, because we can't - # assume the linker understands whole_archive_flag_spec. - # This may have to be revisited, in case too many - # convenience libraries get linked in and end up exceeding - # the spec. - if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - fi - save_output=$output - output_la=`$echo "X$output" | $Xsed -e "$basename"` - - # Clear the reloadable object creation command queue and - # initialize k to one. - test_cmds= - concat_cmds= - objlist= - delfiles= - last_robj= - k=1 - output=$output_objdir/$output_la-${k}.$objext - # Loop over the list of objects to be linked. - for obj in $save_libobjs - do - eval test_cmds=\"$reload_cmds $objlist $last_robj\" - if test "X$objlist" = X || - { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && - test "$len" -le "$max_cmd_len"; }; then - objlist="$objlist $obj" - else - # The command $test_cmds is almost too long, add a - # command to the queue. - if test "$k" -eq 1 ; then - # The first file doesn't have a previous command to add. - eval concat_cmds=\"$reload_cmds $objlist $last_robj\" - else - # All subsequent reloadable object files will link in - # the last one created. - eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" - fi - last_robj=$output_objdir/$output_la-${k}.$objext - k=`expr $k + 1` - output=$output_objdir/$output_la-${k}.$objext - objlist=$obj - len=1 - fi - done - # Handle the remaining objects by creating one last - # reloadable object file. All subsequent reloadable object - # files will link in the last one created. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" - - if ${skipped_export-false}; then - $show "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" - $run $rm $export_symbols - libobjs=$output - # Append the command to create the export file. - eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" - fi - - # Set up a command to remove the reloadable object files - # after they are used. - i=0 - while test "$i" -lt "$k" - do - i=`expr $i + 1` - delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" - done - - $echo "creating a temporary reloadable object file: $output" - - # Loop through the commands generated above and execute them. - save_ifs="$IFS"; IFS='~' - for cmd in $concat_cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - - libobjs=$output - # Restore the value of output. - output=$save_output - - if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - fi - # Expand the library linking commands again to reset the - # value of $libobjs for piecewise linking. - - # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - cmds=$module_expsym_cmds - else - cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - cmds=$archive_expsym_cmds - else - cmds=$archive_cmds - fi - fi - - # Append the command to remove the reloadable object files - # to the just-reset $cmds. - eval cmds=\"\$cmds~\$rm $delfiles\" - fi - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || { - lt_exit=$? - - # Restore the uninstalled library and exit - if test "$mode" = relink; then - $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' - fi - - exit $lt_exit - } - done - IFS="$save_ifs" - - # Restore the uninstalled library and exit - if test "$mode" = relink; then - $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? - - if test -n "$convenience"; then - if test -z "$whole_archive_flag_spec"; then - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - fi - fi - - exit $EXIT_SUCCESS - fi - - # Create links to the real library. - for linkname in $linknames; do - if test "$realname" != "$linkname"; then - $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" - $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? - fi - done - - # If -module or -export-dynamic was specified, set the dlname. - if test "$module" = yes || test "$export_dynamic" = yes; then - # On all known operating systems, these are identical. - dlname="$soname" - fi - fi - ;; - - obj) - case " $deplibs" in - *\ -l* | *\ -L*) - $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ;; - esac - - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 - fi - - if test -n "$rpath"; then - $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 - fi - - if test -n "$xrpath"; then - $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 - fi - - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 - fi - - case $output in - *.lo) - if test -n "$objs$old_deplibs"; then - $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 - exit $EXIT_FAILURE - fi - libobj="$output" - obj=`$echo "X$output" | $Xsed -e "$lo2o"` - ;; - *) - libobj= - obj="$output" - ;; - esac - - # Delete the old objects. - $run $rm $obj $libobj - - # Objects from convenience libraries. This assumes - # single-version convenience libraries. Whenever we create - # different ones for PIC/non-PIC, this we'll have to duplicate - # the extraction. - reload_conv_objs= - gentop= - # reload_cmds runs $LD directly, so let us get rid of - # -Wl from whole_archive_flag_spec and hope we can get by with - # turning comma into space.. - wl= - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then - eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" - reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` - else - gentop="$output_objdir/${obj}x" - generated="$generated $gentop" - - func_extract_archives $gentop $convenience - reload_conv_objs="$reload_objs $func_extract_archives_result" - fi - fi - - # Create the old-style object. - reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test - - output="$obj" - cmds=$reload_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - - # Exit if we aren't doing a library object file. - if test -z "$libobj"; then - if test -n "$gentop"; then - $show "${rm}r $gentop" - $run ${rm}r $gentop - fi - - exit $EXIT_SUCCESS - fi - - if test "$build_libtool_libs" != yes; then - if test -n "$gentop"; then - $show "${rm}r $gentop" - $run ${rm}r $gentop - fi - - # Create an invalid libtool object if no PIC, so that we don't - # accidentally link it into a program. - # $show "echo timestamp > $libobj" - # $run eval "echo timestamp > $libobj" || exit $? - exit $EXIT_SUCCESS - fi - - if test -n "$pic_flag" || test "$pic_mode" != default; then - # Only do commands if we really have different PIC objects. - reload_objs="$libobjs $reload_conv_objs" - output="$libobj" - cmds=$reload_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - fi - - if test -n "$gentop"; then - $show "${rm}r $gentop" - $run ${rm}r $gentop - fi - - exit $EXIT_SUCCESS - ;; - - prog) - case $host in - *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; - esac - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 - fi - - if test "$preload" = yes; then - if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && - test "$dlopen_self_static" = unknown; then - $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." - fi - fi - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library is the System framework - compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` - finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` - ;; - esac - - case $host in - *darwin*) - # Don't allow lazy linking, it breaks C++ global constructors - if test "$tagname" = CXX ; then - compile_command="$compile_command ${wl}-bind_at_load" - finalize_command="$finalize_command ${wl}-bind_at_load" - fi - ;; - esac - - - # move library search paths that coincide with paths to not yet - # installed libraries to the beginning of the library search list - new_libs= - for path in $notinst_path; do - case " $new_libs " in - *" -L$path/$objdir "*) ;; - *) - case " $compile_deplibs " in - *" -L$path/$objdir "*) - new_libs="$new_libs -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $compile_deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) new_libs="$new_libs $deplib" ;; - esac - ;; - *) new_libs="$new_libs $deplib" ;; - esac - done - compile_deplibs="$new_libs" - - - compile_command="$compile_command $compile_deplibs" - finalize_command="$finalize_command $finalize_deplibs" - - if test -n "$rpath$xrpath"; then - # If the user specified any rpath flags, then add them. - for libdir in $rpath $xrpath; do - # This is the magic to use -rpath. - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" ;; - esac - done - fi - - # Now hardcode the library paths - rpath= - hardcode_libdirs= - for libdir in $compile_rpath $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - rpath="$rpath $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) perm_rpath="$perm_rpath $libdir" ;; - esac - fi - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) - testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$libdir:"*) ;; - *) dllsearchpath="$dllsearchpath:$libdir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - *) dllsearchpath="$dllsearchpath:$testbindir";; - esac - ;; - esac - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - compile_rpath="$rpath" - - rpath= - hardcode_libdirs= - for libdir in $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - rpath="$rpath $flag" - fi - elif test -n "$runpath_var"; then - case "$finalize_perm_rpath " in - *" $libdir "*) ;; - *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - finalize_rpath="$rpath" - - if test -n "$libobjs" && test "$build_old_libs" = yes; then - # Transform all the library objects into standard objects. - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - fi - - dlsyms= - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - if test -n "$NM" && test -n "$global_symbol_pipe"; then - dlsyms="${outputname}S.c" - else - $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 - fi - fi - - if test -n "$dlsyms"; then - case $dlsyms in - "") ;; - *.c) - # Discover the nlist of each of the dlfiles. - nlist="$output_objdir/${outputname}.nm" - - $show "$rm $nlist ${nlist}S ${nlist}T" - $run $rm "$nlist" "${nlist}S" "${nlist}T" - - # Parse the name list into a source file. - $show "creating $output_objdir/$dlsyms" - - test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ -/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ -/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ - -#ifdef __cplusplus -extern \"C\" { -#endif - -/* Prevent the only kind of declaration conflicts we can make. */ -#define lt_preloaded_symbols some_other_symbol - -/* External symbol declarations for the compiler. */\ -" - - if test "$dlself" = yes; then - $show "generating symbol list for \`$output'" - - test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" - - # Add our own program objects to the symbol list. - progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - for arg in $progfiles; do - $show "extracting global C symbols from \`$arg'" - $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" - done - - if test -n "$exclude_expsyms"; then - $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' - $run eval '$mv "$nlist"T "$nlist"' - fi - - if test -n "$export_symbols_regex"; then - $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' - $run eval '$mv "$nlist"T "$nlist"' - fi - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - export_symbols="$output_objdir/$outputname.exp" - $run $rm $export_symbols - $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' - case $host in - *cygwin* | *mingw* ) - $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' - ;; - esac - else - $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' - $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' - $run eval 'mv "$nlist"T "$nlist"' - case $host in - *cygwin* | *mingw* ) - $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' - ;; - esac - fi - fi - - for arg in $dlprefiles; do - $show "extracting global C symbols from \`$arg'" - name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` - $run eval '$echo ": $name " >> "$nlist"' - $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" - done - - if test -z "$run"; then - # Make sure we have at least an empty file. - test -f "$nlist" || : > "$nlist" - - if test -n "$exclude_expsyms"; then - $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T - $mv "$nlist"T "$nlist" - fi - - # Try sorting and uniquifying the output. - if grep -v "^: " < "$nlist" | - if sort -k 3 /dev/null 2>&1; then - sort -k 3 - else - sort +2 - fi | - uniq > "$nlist"S; then - : - else - grep -v "^: " < "$nlist" > "$nlist"S - fi - - if test -f "$nlist"S; then - eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' - else - $echo '/* NONE */' >> "$output_objdir/$dlsyms" - fi - - $echo >> "$output_objdir/$dlsyms" "\ - -#undef lt_preloaded_symbols - -#if defined (__STDC__) && __STDC__ -# define lt_ptr void * -#else -# define lt_ptr char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -" - - case $host in - *cygwin* | *mingw* ) - $echo >> "$output_objdir/$dlsyms" "\ -/* DATA imports from DLLs on WIN32 can't be const, because - runtime relocations are performed -- see ld's documentation - on pseudo-relocs */ -struct { -" - ;; - * ) - $echo >> "$output_objdir/$dlsyms" "\ -const struct { -" - ;; - esac - - - $echo >> "$output_objdir/$dlsyms" "\ - const char *name; - lt_ptr address; -} -lt_preloaded_symbols[] = -{\ -" - - eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" - - $echo >> "$output_objdir/$dlsyms" "\ - {0, (lt_ptr) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif\ -" - fi - - pic_flag_for_symtable= - case $host in - # compiling the symbol table file with pic_flag works around - # a FreeBSD bug that causes programs to crash when -lm is - # linked before any other PIC object. But we must not use - # pic_flag when linking with -static. The problem exists in - # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. - *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) - case "$compile_command " in - *" -static "*) ;; - *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; - esac;; - *-*-hpux*) - case "$compile_command " in - *" -static "*) ;; - *) pic_flag_for_symtable=" $pic_flag";; - esac - esac - - # Now compile the dynamic symbol file. - $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" - $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? - - # Clean up the generated files. - $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" - $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" - - # Transform the symbol file into the correct name. - case $host in - *cygwin* | *mingw* ) - if test -f "$output_objdir/${outputname}.def" ; then - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` - finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` - else - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` - finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` - fi - ;; - * ) - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` - finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` - ;; - esac - ;; - *) - $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 - exit $EXIT_FAILURE - ;; - esac - else - # We keep going just in case the user didn't refer to - # lt_preloaded_symbols. The linker will fail if global_symbol_pipe - # really was required. - - # Nullify the symbol file. - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` - finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` - fi - - if test "$need_relink" = no || test "$build_libtool_libs" != yes; then - # Replace the output file specification. - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP` - link_command="$compile_command$compile_rpath" - - # We have no uninstalled library dependencies, so finalize right now. - $show "$link_command" - $run eval "$link_command" - exit_status=$? - - # Delete the generated files. - if test -n "$dlsyms"; then - $show "$rm $output_objdir/${outputname}S.${objext}" - $run $rm "$output_objdir/${outputname}S.${objext}" - fi - - exit $exit_status - fi - - if test -n "$shlibpath_var"; then - # We should set the shlibpath_var - rpath= - for dir in $temp_rpath; do - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) - # Absolute path. - rpath="$rpath$dir:" - ;; - *) - # Relative path: add a thisdir entry. - rpath="$rpath\$thisdir/$dir:" - ;; - esac - done - temp_rpath="$rpath" - fi - - if test -n "$compile_shlibpath$finalize_shlibpath"; then - compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" - fi - if test -n "$finalize_shlibpath"; then - finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" - fi - - compile_var= - finalize_var= - if test -n "$runpath_var"; then - if test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - rpath="$rpath$dir:" - done - compile_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - if test -n "$finalize_perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $finalize_perm_rpath; do - rpath="$rpath$dir:" - done - finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - fi - - if test "$no_install" = yes; then - # We don't need to create a wrapper script. - link_command="$compile_var$compile_command$compile_rpath" - # Replace the output file specification. - link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` - # Delete the old output file. - $run $rm $output - # Link the executable and exit - $show "$link_command" - $run eval "$link_command" || exit $? - exit $EXIT_SUCCESS - fi - - if test "$hardcode_action" = relink; then - # Fast installation is not supported - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - - $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 - $echo "$modename: \`$output' will be relinked during installation" 1>&2 - else - if test "$fast_install" != no; then - link_command="$finalize_var$compile_command$finalize_rpath" - if test "$fast_install" = yes; then - relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP` - else - # fast_install is set to needless - relink_command= - fi - else - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - fi - fi - - # Replace the output file specification. - link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` - - # Delete the old output files. - $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname - - $show "$link_command" - $run eval "$link_command" || exit $? - - # Now create the wrapper script. - $show "creating $output" - - # Quote the relink command for shipping. - if test -n "$relink_command"; then - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` - relink_command="$var=\"$var_value\"; export $var; $relink_command" - fi - done - relink_command="(cd `pwd`; $relink_command)" - relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` - fi - - # Quote $echo for shipping. - if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then - case $progpath in - [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; - *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; - esac - qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` - else - qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` - fi - - # Only actually do things if our run command is non-null. - if test -z "$run"; then - # win32 will think the script is a binary if it has - # a .exe suffix, so we strip it off here. - case $output in - *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; - esac - # test for cygwin because mv fails w/o .exe extensions - case $host in - *cygwin*) - exeext=.exe - outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; - *) exeext= ;; - esac - case $host in - *cygwin* | *mingw* ) - output_name=`basename $output` - output_path=`dirname $output` - cwrappersource="$output_path/$objdir/lt-$output_name.c" - cwrapper="$output_path/$output_name.exe" - $rm $cwrappersource $cwrapper - trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 - - cat > $cwrappersource <> $cwrappersource<<"EOF" -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if defined(PATH_MAX) -# define LT_PATHMAX PATH_MAX -#elif defined(MAXPATHLEN) -# define LT_PATHMAX MAXPATHLEN -#else -# define LT_PATHMAX 1024 -#endif - -#ifndef DIR_SEPARATOR -# define DIR_SEPARATOR '/' -# define PATH_SEPARATOR ':' -#endif - -#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ - defined (__OS2__) -# define HAVE_DOS_BASED_FILE_SYSTEM -# ifndef DIR_SEPARATOR_2 -# define DIR_SEPARATOR_2 '\\' -# endif -# ifndef PATH_SEPARATOR_2 -# define PATH_SEPARATOR_2 ';' -# endif -#endif - -#ifndef DIR_SEPARATOR_2 -# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) -#else /* DIR_SEPARATOR_2 */ -# define IS_DIR_SEPARATOR(ch) \ - (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) -#endif /* DIR_SEPARATOR_2 */ - -#ifndef PATH_SEPARATOR_2 -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) -#else /* PATH_SEPARATOR_2 */ -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) -#endif /* PATH_SEPARATOR_2 */ - -#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) -#define XFREE(stale) do { \ - if (stale) { free ((void *) stale); stale = 0; } \ -} while (0) - -/* -DDEBUG is fairly common in CFLAGS. */ -#undef DEBUG -#if defined DEBUGWRAPPER -# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) -#else -# define DEBUG(format, ...) -#endif - -const char *program_name = NULL; - -void * xmalloc (size_t num); -char * xstrdup (const char *string); -const char * base_name (const char *name); -char * find_executable(const char *wrapper); -int check_executable(const char *path); -char * strendzap(char *str, const char *pat); -void lt_fatal (const char *message, ...); - -int -main (int argc, char *argv[]) -{ - char **newargz; - int i; - - program_name = (char *) xstrdup (base_name (argv[0])); - DEBUG("(main) argv[0] : %s\n",argv[0]); - DEBUG("(main) program_name : %s\n",program_name); - newargz = XMALLOC(char *, argc+2); -EOF - - cat >> $cwrappersource <> $cwrappersource <<"EOF" - newargz[1] = find_executable(argv[0]); - if (newargz[1] == NULL) - lt_fatal("Couldn't find %s", argv[0]); - DEBUG("(main) found exe at : %s\n",newargz[1]); - /* we know the script has the same name, without the .exe */ - /* so make sure newargz[1] doesn't end in .exe */ - strendzap(newargz[1],".exe"); - for (i = 1; i < argc; i++) - newargz[i+1] = xstrdup(argv[i]); - newargz[argc+1] = NULL; - - for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" - return 127; -} - -void * -xmalloc (size_t num) -{ - void * p = (void *) malloc (num); - if (!p) - lt_fatal ("Memory exhausted"); - - return p; -} - -char * -xstrdup (const char *string) -{ - return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL -; -} - -const char * -base_name (const char *name) -{ - const char *base; - -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - /* Skip over the disk name in MSDOS pathnames. */ - if (isalpha ((unsigned char)name[0]) && name[1] == ':') - name += 2; -#endif - - for (base = name; *name; name++) - if (IS_DIR_SEPARATOR (*name)) - base = name + 1; - return base; -} - -int -check_executable(const char * path) -{ - struct stat st; - - DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); - if ((!path) || (!*path)) - return 0; - - if ((stat (path, &st) >= 0) && - ( - /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ -#if defined (S_IXOTH) - ((st.st_mode & S_IXOTH) == S_IXOTH) || -#endif -#if defined (S_IXGRP) - ((st.st_mode & S_IXGRP) == S_IXGRP) || -#endif - ((st.st_mode & S_IXUSR) == S_IXUSR)) - ) - return 1; - else - return 0; -} - -/* Searches for the full path of the wrapper. Returns - newly allocated full path name if found, NULL otherwise */ -char * -find_executable (const char* wrapper) -{ - int has_slash = 0; - const char* p; - const char* p_next; - /* static buffer for getcwd */ - char tmp[LT_PATHMAX + 1]; - int tmp_len; - char* concat_name; - - DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); - - if ((wrapper == NULL) || (*wrapper == '\0')) - return NULL; - - /* Absolute path? */ -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') - { - concat_name = xstrdup (wrapper); - if (check_executable(concat_name)) - return concat_name; - XFREE(concat_name); - } - else - { -#endif - if (IS_DIR_SEPARATOR (wrapper[0])) - { - concat_name = xstrdup (wrapper); - if (check_executable(concat_name)) - return concat_name; - XFREE(concat_name); - } -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - } -#endif - - for (p = wrapper; *p; p++) - if (*p == '/') - { - has_slash = 1; - break; - } - if (!has_slash) - { - /* no slashes; search PATH */ - const char* path = getenv ("PATH"); - if (path != NULL) - { - for (p = path; *p; p = p_next) - { - const char* q; - size_t p_len; - for (q = p; *q; q++) - if (IS_PATH_SEPARATOR(*q)) - break; - p_len = q - p; - p_next = (*q == '\0' ? q : q + 1); - if (p_len == 0) - { - /* empty path: current directory */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal ("getcwd failed"); - tmp_len = strlen(tmp); - concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); - concat_name[tmp_len] = '/'; - strcpy (concat_name + tmp_len + 1, wrapper); - } - else - { - concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); - memcpy (concat_name, p, p_len); - concat_name[p_len] = '/'; - strcpy (concat_name + p_len + 1, wrapper); - } - if (check_executable(concat_name)) - return concat_name; - XFREE(concat_name); - } - } - /* not found in PATH; assume curdir */ - } - /* Relative path | not found in path: prepend cwd */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal ("getcwd failed"); - tmp_len = strlen(tmp); - concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); - concat_name[tmp_len] = '/'; - strcpy (concat_name + tmp_len + 1, wrapper); - - if (check_executable(concat_name)) - return concat_name; - XFREE(concat_name); - return NULL; -} - -char * -strendzap(char *str, const char *pat) -{ - size_t len, patlen; - - assert(str != NULL); - assert(pat != NULL); - - len = strlen(str); - patlen = strlen(pat); - - if (patlen <= len) - { - str += len - patlen; - if (strcmp(str, pat) == 0) - *str = '\0'; - } - return str; -} - -static void -lt_error_core (int exit_status, const char * mode, - const char * message, va_list ap) -{ - fprintf (stderr, "%s: %s: ", program_name, mode); - vfprintf (stderr, message, ap); - fprintf (stderr, ".\n"); - - if (exit_status >= 0) - exit (exit_status); -} - -void -lt_fatal (const char *message, ...) -{ - va_list ap; - va_start (ap, message); - lt_error_core (EXIT_FAILURE, "FATAL", message, ap); - va_end (ap); -} -EOF - # we should really use a build-platform specific compiler - # here, but OTOH, the wrappers (shell script and this C one) - # are only useful if you want to execute the "real" binary. - # Since the "real" binary is built for $host, then this - # wrapper might as well be built for $host, too. - $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource - ;; - esac - $rm $output - trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 - - $echo > $output "\ -#! $SHELL - -# $output - temporary wrapper script for $objdir/$outputname -# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP -# -# The $output program cannot be directly executed until all the libtool -# libraries that it depends on are installed. -# -# This wrapper script should never be moved out of the build directory. -# If it is, it will not operate correctly. - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='${SED} -e 1s/^X//' -sed_quote_subst='$sed_quote_subst' - -# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). -if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -relink_command=\"$relink_command\" - -# This environment variable determines our operation mode. -if test \"\$libtool_install_magic\" = \"$magic\"; then - # install mode needs the following variable: - notinst_deplibs='$notinst_deplibs' -else - # When we are sourced in execute mode, \$file and \$echo are already set. - if test \"\$libtool_execute_magic\" != \"$magic\"; then - echo=\"$qecho\" - file=\"\$0\" - # Make sure echo works. - if test \"X\$1\" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift - elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then - # Yippee, \$echo works! - : - else - # Restart under the correct shell, and then maybe \$echo will work. - exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} - fi - fi\ -" - $echo >> $output "\ - - # Find the directory that this script lives in. - thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` - test \"x\$thisdir\" = \"x\$file\" && thisdir=. - - # Follow symbolic links until we get to the real thisdir. - file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` - while test -n \"\$file\"; do - destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` - - # If there was a directory component, then change thisdir. - if test \"x\$destdir\" != \"x\$file\"; then - case \"\$destdir\" in - [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; - *) thisdir=\"\$thisdir/\$destdir\" ;; - esac - fi - - file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` - done - - # Try to get the absolute directory name. - absdir=\`cd \"\$thisdir\" && pwd\` - test -n \"\$absdir\" && thisdir=\"\$absdir\" -" - - if test "$fast_install" = yes; then - $echo >> $output "\ - program=lt-'$outputname'$exeext - progdir=\"\$thisdir/$objdir\" - - if test ! -f \"\$progdir/\$program\" || \\ - { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ - test \"X\$file\" != \"X\$progdir/\$program\"; }; then - - file=\"\$\$-\$program\" - - if test ! -d \"\$progdir\"; then - $mkdir \"\$progdir\" - else - $rm \"\$progdir/\$file\" - fi" - - $echo >> $output "\ - - # relink executable if necessary - if test -n \"\$relink_command\"; then - if relink_command_output=\`eval \$relink_command 2>&1\`; then : - else - $echo \"\$relink_command_output\" >&2 - $rm \"\$progdir/\$file\" - exit $EXIT_FAILURE - fi - fi - - $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || - { $rm \"\$progdir/\$program\"; - $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } - $rm \"\$progdir/\$file\" - fi" - else - $echo >> $output "\ - program='$outputname' - progdir=\"\$thisdir/$objdir\" -" - fi - - $echo >> $output "\ - - if test -f \"\$progdir/\$program\"; then" - - # Export our shlibpath_var if we have one. - if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then - $echo >> $output "\ - # Add our own library path to $shlibpath_var - $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" - - # Some systems cannot cope with colon-terminated $shlibpath_var - # The second colon is a workaround for a bug in BeOS R4 sed - $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` - - export $shlibpath_var -" - fi - - # fixup the dll searchpath if we need to. - if test -n "$dllsearchpath"; then - $echo >> $output "\ - # Add the dll search path components to the executable PATH - PATH=$dllsearchpath:\$PATH -" - fi - - $echo >> $output "\ - if test \"\$libtool_execute_magic\" != \"$magic\"; then - # Run the actual program with our arguments. -" - case $host in - # Backslashes separate directories on plain windows - *-*-mingw | *-*-os2*) - $echo >> $output "\ - exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} -" - ;; - - *) - $echo >> $output "\ - exec \"\$progdir/\$program\" \${1+\"\$@\"} -" - ;; - esac - $echo >> $output "\ - \$echo \"\$0: cannot exec \$program \$*\" - exit $EXIT_FAILURE - fi - else - # The program doesn't exist. - \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 - \$echo \"This script is just a wrapper for \$program.\" 1>&2 - $echo \"See the $PACKAGE documentation for more information.\" 1>&2 - exit $EXIT_FAILURE - fi -fi\ -" - chmod +x $output - fi - exit $EXIT_SUCCESS - ;; - esac - - # See if we need to build an old-fashioned archive. - for oldlib in $oldlibs; do - - if test "$build_libtool_libs" = convenience; then - oldobjs="$libobjs_save" - addlibs="$convenience" - build_libtool_libs=no - else - if test "$build_libtool_libs" = module; then - oldobjs="$libobjs_save" - build_libtool_libs=no - else - oldobjs="$old_deplibs $non_pic_objects" - fi - addlibs="$old_convenience" - fi - - if test -n "$addlibs"; then - gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" - - func_extract_archives $gentop $addlibs - oldobjs="$oldobjs $func_extract_archives_result" - fi - - # Do each command in the archive commands. - if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then - cmds=$old_archive_from_new_cmds - else - # POSIX demands no paths to be encoded in archives. We have - # to avoid creating archives with duplicate basenames if we - # might have to extract them afterwards, e.g., when creating a - # static archive out of a convenience library, or when linking - # the entirety of a libtool archive into another (currently - # not supported by libtool). - if (for obj in $oldobjs - do - $echo "X$obj" | $Xsed -e 's%^.*/%%' - done | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "copying selected object files to avoid basename conflicts..." - - if test -z "$gentop"; then - gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" - - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "$mkdir $gentop" - $run $mkdir "$gentop" - exit_status=$? - if test "$exit_status" -ne 0 && test ! -d "$gentop"; then - exit $exit_status - fi - fi - - save_oldobjs=$oldobjs - oldobjs= - counter=1 - for obj in $save_oldobjs - do - objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` - case " $oldobjs " in - " ") oldobjs=$obj ;; - *[\ /]"$objbase "*) - while :; do - # Make sure we don't pick an alternate name that also - # overlaps. - newobj=lt$counter-$objbase - counter=`expr $counter + 1` - case " $oldobjs " in - *[\ /]"$newobj "*) ;; - *) if test ! -f "$gentop/$newobj"; then break; fi ;; - esac - done - $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" - $run ln "$obj" "$gentop/$newobj" || - $run cp "$obj" "$gentop/$newobj" - oldobjs="$oldobjs $gentop/$newobj" - ;; - *) oldobjs="$oldobjs $obj" ;; - esac - done - fi - - eval cmds=\"$old_archive_cmds\" - - if len=`expr "X$cmds" : ".*"` && - test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then - cmds=$old_archive_cmds - else - # the command line is too long to link in one step, link in parts - $echo "using piecewise archive linking..." - save_RANLIB=$RANLIB - RANLIB=: - objlist= - concat_cmds= - save_oldobjs=$oldobjs - - # Is there a better way of finding the last object in the list? - for obj in $save_oldobjs - do - last_oldobj=$obj - done - for obj in $save_oldobjs - do - oldobjs="$objlist $obj" - objlist="$objlist $obj" - eval test_cmds=\"$old_archive_cmds\" - if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && - test "$len" -le "$max_cmd_len"; then - : - else - # the above command should be used before it gets too long - oldobjs=$objlist - if test "$obj" = "$last_oldobj" ; then - RANLIB=$save_RANLIB - fi - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" - objlist= - fi - done - RANLIB=$save_RANLIB - oldobjs=$objlist - if test "X$oldobjs" = "X" ; then - eval cmds=\"\$concat_cmds\" - else - eval cmds=\"\$concat_cmds~\$old_archive_cmds\" - fi - fi - fi - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - eval cmd=\"$cmd\" - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - done - - if test -n "$generated"; then - $show "${rm}r$generated" - $run ${rm}r$generated - fi - - # Now create the libtool archive. - case $output in - *.la) - old_library= - test "$build_old_libs" = yes && old_library="$libname.$libext" - $show "creating $output" - - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` - relink_command="$var=\"$var_value\"; export $var; $relink_command" - fi - done - # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` - if test "$hardcode_automatic" = yes ; then - relink_command= - fi - - - # Only create the output if not a dry run. - if test -z "$run"; then - for installed in no yes; do - if test "$installed" = yes; then - if test -z "$install_libdir"; then - break - fi - output="$output_objdir/$outputname"i - # Replace all uninstalled libtool libraries with the installed ones - newdependency_libs= - for deplib in $dependency_libs; do - case $deplib in - *.la) - name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - if test -z "$libdir"; then - $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 - exit $EXIT_FAILURE - fi - newdependency_libs="$newdependency_libs $libdir/$name" - ;; - *) newdependency_libs="$newdependency_libs $deplib" ;; - esac - done - dependency_libs="$newdependency_libs" - newdlfiles= - for lib in $dlfiles; do - name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - if test -z "$libdir"; then - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit $EXIT_FAILURE - fi - newdlfiles="$newdlfiles $libdir/$name" - done - dlfiles="$newdlfiles" - newdlprefiles= - for lib in $dlprefiles; do - name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - if test -z "$libdir"; then - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit $EXIT_FAILURE - fi - newdlprefiles="$newdlprefiles $libdir/$name" - done - dlprefiles="$newdlprefiles" - else - newdlfiles= - for lib in $dlfiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac - newdlfiles="$newdlfiles $abs" - done - dlfiles="$newdlfiles" - newdlprefiles= - for lib in $dlprefiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac - newdlprefiles="$newdlprefiles $abs" - done - dlprefiles="$newdlprefiles" - fi - $rm $output - # place dlname in correct position for cygwin - tdlname=$dlname - case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; - esac - $echo > $output "\ -# $outputname - a libtool library file -# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# The name that we can dlopen(3). -dlname='$tdlname' - -# Names of this library. -library_names='$library_names' - -# The name of the static archive. -old_library='$old_library' - -# Libraries that this one depends upon. -dependency_libs='$dependency_libs' - -# Version information for $libname. -current=$current -age=$age -revision=$revision - -# Is this an already installed library? -installed=$installed - -# Should we warn about portability when linking against -modules? -shouldnotlink=$module - -# Files to dlopen/dlpreopen -dlopen='$dlfiles' -dlpreopen='$dlprefiles' - -# Directory that this library needs to be installed in: -libdir='$install_libdir'" - if test "$installed" = no && test "$need_relink" = yes; then - $echo >> $output "\ -relink_command=\"$relink_command\"" - fi - done - fi - - # Do a symbolic link so that the libtool archive can be found in - # LD_LIBRARY_PATH before the program is installed. - $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" - $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? - ;; - esac - exit $EXIT_SUCCESS - ;; - - # libtool install mode - install) - modename="$modename: install" - - # There may be an optional sh(1) argument at the beginning of - # install_prog (especially on Windows NT). - if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || - # Allow the use of GNU shtool's install command. - $echo "X$nonopt" | grep shtool > /dev/null; then - # Aesthetically quote it. - arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - install_prog="$arg " - arg="$1" - shift - else - install_prog= - arg=$nonopt - fi - - # The real first argument should be the name of the installation program. - # Aesthetically quote it. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - install_prog="$install_prog$arg" - - # We need to accept at least all the BSD install flags. - dest= - files= - opts= - prev= - install_type= - isdir=no - stripme= - for arg - do - if test -n "$dest"; then - files="$files $dest" - dest=$arg - continue - fi - - case $arg in - -d) isdir=yes ;; - -f) - case " $install_prog " in - *[\\\ /]cp\ *) ;; - *) prev=$arg ;; - esac - ;; - -g | -m | -o) prev=$arg ;; - -s) - stripme=" -s" - continue - ;; - -*) - ;; - *) - # If the previous option needed an argument, then skip it. - if test -n "$prev"; then - prev= - else - dest=$arg - continue - fi - ;; - esac - - # Aesthetically quote the argument. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - install_prog="$install_prog $arg" - done - - if test -z "$install_prog"; then - $echo "$modename: you must specify an install program" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - if test -n "$prev"; then - $echo "$modename: the \`$prev' option requires an argument" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - if test -z "$files"; then - if test -z "$dest"; then - $echo "$modename: no file or destination specified" 1>&2 - else - $echo "$modename: you must specify a destination" 1>&2 - fi - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Strip any trailing slash from the destination. - dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` - - # Check to see that the destination is a directory. - test -d "$dest" && isdir=yes - if test "$isdir" = yes; then - destdir="$dest" - destname= - else - destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` - test "X$destdir" = "X$dest" && destdir=. - destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` - - # Not a directory, so check to see that there is only one file specified. - set dummy $files - if test "$#" -gt 2; then - $echo "$modename: \`$dest' is not a directory" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - fi - case $destdir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - for file in $files; do - case $file in - *.lo) ;; - *) - $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - ;; - esac - done - ;; - esac - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic="$magic" - - staticlibs= - future_libdirs= - current_libdirs= - for file in $files; do - - # Do each installation. - case $file in - *.$libext) - # Do the static libraries later. - staticlibs="$staticlibs $file" - ;; - - *.la) - # Check to see that this really is a libtool archive. - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - library_names= - old_library= - relink_command= - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Add the libdir to current_libdirs if it is the destination. - if test "X$destdir" = "X$libdir"; then - case "$current_libdirs " in - *" $libdir "*) ;; - *) current_libdirs="$current_libdirs $libdir" ;; - esac - else - # Note the libdir as a future libdir. - case "$future_libdirs " in - *" $libdir "*) ;; - *) future_libdirs="$future_libdirs $libdir" ;; - esac - fi - - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ - test "X$dir" = "X$file/" && dir= - dir="$dir$objdir" - - if test -n "$relink_command"; then - # Determine the prefix the user has applied to our future dir. - inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` - - # Don't allow the user to place us outside of our expected - # location b/c this prevents finding dependent libraries that - # are installed to the same prefix. - # At present, this check doesn't affect windows .dll's that - # are installed into $libdir/../bin (currently, that works fine) - # but it's something to keep an eye on. - if test "$inst_prefix_dir" = "$destdir"; then - $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 - exit $EXIT_FAILURE - fi - - if test -n "$inst_prefix_dir"; then - # Stick the inst_prefix_dir data into the link command. - relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP` - else - relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP` - fi - - $echo "$modename: warning: relinking \`$file'" 1>&2 - $show "$relink_command" - if $run eval "$relink_command"; then : - else - $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 - exit $EXIT_FAILURE - fi - fi - - # See the names of the shared library. - set dummy $library_names - if test -n "$2"; then - realname="$2" - shift - shift - - srcname="$realname" - test -n "$relink_command" && srcname="$realname"T - - # Install the shared library and build the symlinks. - $show "$install_prog $dir/$srcname $destdir/$realname" - $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? - if test -n "$stripme" && test -n "$striplib"; then - $show "$striplib $destdir/$realname" - $run eval "$striplib $destdir/$realname" || exit $? - fi - - if test "$#" -gt 0; then - # Delete the old symlinks, and create new ones. - # Try `ln -sf' first, because the `ln' binary might depend on - # the symlink we replace! Solaris /bin/ln does not understand -f, - # so we also need to try rm && ln -s. - for linkname - do - if test "$linkname" != "$realname"; then - $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" - $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" - fi - done - fi - - # Do each command in the postinstall commands. - lib="$destdir/$realname" - cmds=$postinstall_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || { - lt_exit=$? - - # Restore the uninstalled library and exit - if test "$mode" = relink; then - $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' - fi - - exit $lt_exit - } - done - IFS="$save_ifs" - fi - - # Install the pseudo-library for information purposes. - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - instname="$dir/$name"i - $show "$install_prog $instname $destdir/$name" - $run eval "$install_prog $instname $destdir/$name" || exit $? - - # Maybe install the static library, too. - test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" - ;; - - *.lo) - # Install (i.e. copy) a libtool object. - - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile="$destdir/$destname" - else - destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - destfile="$destdir/$destfile" - fi - - # Deduce the name of the destination old-style object file. - case $destfile in - *.lo) - staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` - ;; - *.$objext) - staticdest="$destfile" - destfile= - ;; - *) - $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - ;; - esac - - # Install the libtool object if requested. - if test -n "$destfile"; then - $show "$install_prog $file $destfile" - $run eval "$install_prog $file $destfile" || exit $? - fi - - # Install the old object if enabled. - if test "$build_old_libs" = yes; then - # Deduce the name of the old-style object file. - staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` - - $show "$install_prog $staticobj $staticdest" - $run eval "$install_prog \$staticobj \$staticdest" || exit $? - fi - exit $EXIT_SUCCESS - ;; - - *) - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile="$destdir/$destname" - else - destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - destfile="$destdir/$destfile" - fi - - # If the file is missing, and there is a .exe on the end, strip it - # because it is most likely a libtool script we actually want to - # install - stripped_ext="" - case $file in - *.exe) - if test ! -f "$file"; then - file=`$echo $file|${SED} 's,.exe$,,'` - stripped_ext=".exe" - fi - ;; - esac - - # Do a test to see if this is really a libtool program. - case $host in - *cygwin*|*mingw*) - wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` - ;; - *) - wrapper=$file - ;; - esac - if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then - notinst_deplibs= - relink_command= - - # Note that it is not necessary on cygwin/mingw to append a dot to - # foo even if both foo and FILE.exe exist: automatic-append-.exe - # behavior happens only for exec(3), not for open(2)! Also, sourcing - # `FILE.' does not work on cygwin managed mounts. - # - # If there is no directory component, then add one. - case $wrapper in - */* | *\\*) . ${wrapper} ;; - *) . ./${wrapper} ;; - esac - - # Check the variables that should have been set. - if test -z "$notinst_deplibs"; then - $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 - exit $EXIT_FAILURE - fi - - finalize=yes - for lib in $notinst_deplibs; do - # Check to see that each library is installed. - libdir= - if test -f "$lib"; then - # If there is no directory component, then add one. - case $lib in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - esac - fi - libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test - if test -n "$libdir" && test ! -f "$libfile"; then - $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 - finalize=no - fi - done - - relink_command= - # Note that it is not necessary on cygwin/mingw to append a dot to - # foo even if both foo and FILE.exe exist: automatic-append-.exe - # behavior happens only for exec(3), not for open(2)! Also, sourcing - # `FILE.' does not work on cygwin managed mounts. - # - # If there is no directory component, then add one. - case $wrapper in - */* | *\\*) . ${wrapper} ;; - *) . ./${wrapper} ;; - esac - - outputname= - if test "$fast_install" = no && test -n "$relink_command"; then - if test "$finalize" = yes && test -z "$run"; then - tmpdir=`func_mktempdir` - file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` - outputname="$tmpdir/$file" - # Replace the output file specification. - relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP` - - $show "$relink_command" - if $run eval "$relink_command"; then : - else - $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 - ${rm}r "$tmpdir" - continue - fi - file="$outputname" - else - $echo "$modename: warning: cannot relink \`$file'" 1>&2 - fi - else - # Install the binary that we compiled earlier. - file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` - fi - fi - - # remove .exe since cygwin /usr/bin/install will append another - # one anyway - case $install_prog,$host in - */usr/bin/install*,*cygwin*) - case $file:$destfile in - *.exe:*.exe) - # this is ok - ;; - *.exe:*) - destfile=$destfile.exe - ;; - *:*.exe) - destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` - ;; - esac - ;; - esac - $show "$install_prog$stripme $file $destfile" - $run eval "$install_prog\$stripme \$file \$destfile" || exit $? - test -n "$outputname" && ${rm}r "$tmpdir" - ;; - esac - done - - for file in $staticlibs; do - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - - # Set up the ranlib parameters. - oldlib="$destdir/$name" - - $show "$install_prog $file $oldlib" - $run eval "$install_prog \$file \$oldlib" || exit $? - - if test -n "$stripme" && test -n "$old_striplib"; then - $show "$old_striplib $oldlib" - $run eval "$old_striplib $oldlib" || exit $? - fi - - # Do each command in the postinstall commands. - cmds=$old_postinstall_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - done - - if test -n "$future_libdirs"; then - $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 - fi - - if test -n "$current_libdirs"; then - # Maybe just do a dry run. - test -n "$run" && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' - else - exit $EXIT_SUCCESS - fi - ;; - - # libtool finish mode - finish) - modename="$modename: finish" - libdirs="$nonopt" - admincmds= - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for dir - do - libdirs="$libdirs $dir" - done - - for libdir in $libdirs; do - if test -n "$finish_cmds"; then - # Do each command in the finish commands. - cmds=$finish_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || admincmds="$admincmds - $cmd" - done - IFS="$save_ifs" - fi - if test -n "$finish_eval"; then - # Do the single finish_eval. - eval cmds=\"$finish_eval\" - $run eval "$cmds" || admincmds="$admincmds - $cmds" - fi - done - fi - - # Exit here if they wanted silent mode. - test "$show" = : && exit $EXIT_SUCCESS - - $echo "X----------------------------------------------------------------------" | $Xsed - $echo "Libraries have been installed in:" - for libdir in $libdirs; do - $echo " $libdir" - done - $echo - $echo "If you ever happen to want to link against installed libraries" - $echo "in a given directory, LIBDIR, you must either use libtool, and" - $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" - $echo "flag during linking and do at least one of the following:" - if test -n "$shlibpath_var"; then - $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" - $echo " during execution" - fi - if test -n "$runpath_var"; then - $echo " - add LIBDIR to the \`$runpath_var' environment variable" - $echo " during linking" - fi - if test -n "$hardcode_libdir_flag_spec"; then - libdir=LIBDIR - eval flag=\"$hardcode_libdir_flag_spec\" - - $echo " - use the \`$flag' linker flag" - fi - if test -n "$admincmds"; then - $echo " - have your system administrator run these commands:$admincmds" - fi - if test -f /etc/ld.so.conf; then - $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" - fi - $echo - $echo "See any operating system documentation about shared libraries for" - $echo "more information, such as the ld(1) and ld.so(8) manual pages." - $echo "X----------------------------------------------------------------------" | $Xsed - exit $EXIT_SUCCESS - ;; - - # libtool execute mode - execute) - modename="$modename: execute" - - # The first argument is the command name. - cmd="$nonopt" - if test -z "$cmd"; then - $echo "$modename: you must specify a COMMAND" 1>&2 - $echo "$help" - exit $EXIT_FAILURE - fi - - # Handle -dlopen flags immediately. - for file in $execute_dlfiles; do - if test ! -f "$file"; then - $echo "$modename: \`$file' is not a file" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - dir= - case $file in - *.la) - # Check to see that this really is a libtool archive. - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Read the libtool library. - dlname= - library_names= - - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Skip this library if it cannot be dlopened. - if test -z "$dlname"; then - # Warn if it was a shared library. - test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" - continue - fi - - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$file" && dir=. - - if test -f "$dir/$objdir/$dlname"; then - dir="$dir/$objdir" - else - if test ! -f "$dir/$dlname"; then - $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 - exit $EXIT_FAILURE - fi - fi - ;; - - *.lo) - # Just add the directory containing the .lo file. - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$file" && dir=. - ;; - - *) - $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 - continue - ;; - esac - - # Get the absolute pathname. - absdir=`cd "$dir" && pwd` - test -n "$absdir" && dir="$absdir" - - # Now add the directory to shlibpath_var. - if eval "test -z \"\$$shlibpath_var\""; then - eval "$shlibpath_var=\"\$dir\"" - else - eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" - fi - done - - # This variable tells wrapper scripts just to set shlibpath_var - # rather than running their programs. - libtool_execute_magic="$magic" - - # Check if any of the arguments is a wrapper script. - args= - for file - do - case $file in - -*) ;; - *) - # Do a test to see if this is really a libtool program. - if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Transform arg to wrapped name. - file="$progdir/$program" - fi - ;; - esac - # Quote arguments (to preserve shell metacharacters). - file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` - args="$args \"$file\"" - done - - if test -z "$run"; then - if test -n "$shlibpath_var"; then - # Export the shlibpath_var. - eval "export $shlibpath_var" - fi - - # Restore saved environment variables - for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES - do - eval "if test \"\${save_$lt_var+set}\" = set; then - $lt_var=\$save_$lt_var; export $lt_var - fi" - done - - # Now prepare to actually exec the command. - exec_cmd="\$cmd$args" - else - # Display what would be done. - if test -n "$shlibpath_var"; then - eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" - $echo "export $shlibpath_var" - fi - $echo "$cmd$args" - exit $EXIT_SUCCESS - fi - ;; - - # libtool clean and uninstall mode - clean | uninstall) - modename="$modename: $mode" - rm="$nonopt" - files= - rmforce= - exit_status=0 - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic="$magic" - - for arg - do - case $arg in - -f) rm="$rm $arg"; rmforce=yes ;; - -*) rm="$rm $arg" ;; - *) files="$files $arg" ;; - esac - done - - if test -z "$rm"; then - $echo "$modename: you must specify an RM program" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - rmdirs= - - origobjdir="$objdir" - for file in $files; do - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - if test "X$dir" = "X$file"; then - dir=. - objdir="$origobjdir" - else - objdir="$dir/$origobjdir" - fi - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - test "$mode" = uninstall && objdir="$dir" - - # Remember objdir for removal later, being careful to avoid duplicates - if test "$mode" = clean; then - case " $rmdirs " in - *" $objdir "*) ;; - *) rmdirs="$rmdirs $objdir" ;; - esac - fi - - # Don't error if the file doesn't exist and rm -f was used. - if (test -L "$file") >/dev/null 2>&1 \ - || (test -h "$file") >/dev/null 2>&1 \ - || test -f "$file"; then - : - elif test -d "$file"; then - exit_status=1 - continue - elif test "$rmforce" = yes; then - continue - fi - - rmfiles="$file" - - case $name in - *.la) - # Possibly a libtool archive, so verify it. - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - . $dir/$name - - # Delete the libtool libraries and symlinks. - for n in $library_names; do - rmfiles="$rmfiles $objdir/$n" - done - test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" - - case "$mode" in - clean) - case " $library_names " in - # " " in the beginning catches empty $dlname - *" $dlname "*) ;; - *) rmfiles="$rmfiles $objdir/$dlname" ;; - esac - test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" - ;; - uninstall) - if test -n "$library_names"; then - # Do each command in the postuninstall commands. - cmds=$postuninstall_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" - if test "$?" -ne 0 && test "$rmforce" != yes; then - exit_status=1 - fi - done - IFS="$save_ifs" - fi - - if test -n "$old_library"; then - # Do each command in the old_postuninstall commands. - cmds=$old_postuninstall_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" - if test "$?" -ne 0 && test "$rmforce" != yes; then - exit_status=1 - fi - done - IFS="$save_ifs" - fi - # FIXME: should reinstall the best remaining shared library. - ;; - esac - fi - ;; - - *.lo) - # Possibly a libtool object, so verify it. - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - - # Read the .lo file - . $dir/$name - - # Add PIC object to the list of files to remove. - if test -n "$pic_object" \ - && test "$pic_object" != none; then - rmfiles="$rmfiles $dir/$pic_object" - fi - - # Add non-PIC object to the list of files to remove. - if test -n "$non_pic_object" \ - && test "$non_pic_object" != none; then - rmfiles="$rmfiles $dir/$non_pic_object" - fi - fi - ;; - - *) - if test "$mode" = clean ; then - noexename=$name - case $file in - *.exe) - file=`$echo $file|${SED} 's,.exe$,,'` - noexename=`$echo $name|${SED} 's,.exe$,,'` - # $file with .exe has already been added to rmfiles, - # add $file without .exe - rmfiles="$rmfiles $file" - ;; - esac - # Do a test to see if this is a libtool program. - if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - relink_command= - . $dir/$noexename - - # note $name still contains .exe if it was in $file originally - # as does the version of $file that was added into $rmfiles - rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" - if test "$fast_install" = yes && test -n "$relink_command"; then - rmfiles="$rmfiles $objdir/lt-$name" - fi - if test "X$noexename" != "X$name" ; then - rmfiles="$rmfiles $objdir/lt-${noexename}.c" - fi - fi - fi - ;; - esac - $show "$rm $rmfiles" - $run $rm $rmfiles || exit_status=1 - done - objdir="$origobjdir" - - # Try to remove the ${objdir}s in the directories where we deleted files - for dir in $rmdirs; do - if test -d "$dir"; then - $show "rmdir $dir" - $run rmdir $dir >/dev/null 2>&1 - fi - done - - exit $exit_status - ;; - - "") - $echo "$modename: you must specify a MODE" 1>&2 - $echo "$generic_help" 1>&2 - exit $EXIT_FAILURE - ;; - esac - - if test -z "$exec_cmd"; then - $echo "$modename: invalid operation mode \`$mode'" 1>&2 - $echo "$generic_help" 1>&2 - exit $EXIT_FAILURE - fi -fi # test -z "$show_help" - -if test -n "$exec_cmd"; then - eval exec $exec_cmd - exit $EXIT_FAILURE -fi - -# We need to display help for each of the modes. -case $mode in -"") $echo \ -"Usage: $modename [OPTION]... [MODE-ARG]... - -Provide generalized library-building support services. - - --config show all configuration variables - --debug enable verbose shell tracing --n, --dry-run display commands without modifying any files - --features display basic configuration information and exit - --finish same as \`--mode=finish' - --help display this help message and exit - --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] - --quiet same as \`--silent' - --silent don't print informational messages - --tag=TAG use configuration variables from tag TAG - --version print version information - -MODE must be one of the following: - - clean remove files from the build directory - compile compile a source file into a libtool object - execute automatically set library path, then run a program - finish complete the installation of libtool libraries - install install libraries or executables - link create a library or an executable - uninstall remove libraries from an installed directory - -MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for -a more detailed description of MODE. - -Report bugs to ." - exit $EXIT_SUCCESS - ;; - -clean) - $echo \ -"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... - -Remove files from the build directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -to RM. - -If FILE is a libtool library, object or program, all the files associated -with it are deleted. Otherwise, only FILE itself is deleted using RM." - ;; - -compile) - $echo \ -"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE - -Compile a source file into a libtool library object. - -This mode accepts the following additional options: - - -o OUTPUT-FILE set the output file name to OUTPUT-FILE - -prefer-pic try to building PIC objects only - -prefer-non-pic try to building non-PIC objects only - -static always build a \`.o' file suitable for static linking - -COMPILE-COMMAND is a command to be used in creating a \`standard' object file -from the given SOURCEFILE. - -The output file name is determined by removing the directory component from -SOURCEFILE, then substituting the C source code suffix \`.c' with the -library object suffix, \`.lo'." - ;; - -execute) - $echo \ -"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... - -Automatically set library path, then run a program. - -This mode accepts the following additional options: - - -dlopen FILE add the directory containing FILE to the library path - -This mode sets the library path environment variable according to \`-dlopen' -flags. - -If any of the ARGS are libtool executable wrappers, then they are translated -into their corresponding uninstalled binary, and any of their required library -directories are added to the library path. - -Then, COMMAND is executed, with ARGS as arguments." - ;; - -finish) - $echo \ -"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... - -Complete the installation of libtool libraries. - -Each LIBDIR is a directory that contains libtool libraries. - -The commands that this mode executes may require superuser privileges. Use -the \`--dry-run' option if you just want to see what would be executed." - ;; - -install) - $echo \ -"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... - -Install executables or libraries. - -INSTALL-COMMAND is the installation command. The first component should be -either the \`install' or \`cp' program. - -The rest of the components are interpreted as arguments to that command (only -BSD-compatible install options are recognized)." - ;; - -link) - $echo \ -"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... - -Link object files or libraries together to form another library, or to -create an executable program. - -LINK-COMMAND is a command using the C compiler that you would use to create -a program from several object files. - -The following components of LINK-COMMAND are treated specially: - - -all-static do not do any dynamic linking at all - -avoid-version do not add a version suffix if possible - -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime - -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols - -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) - -export-symbols SYMFILE - try to export only the symbols listed in SYMFILE - -export-symbols-regex REGEX - try to export only the symbols matching REGEX - -LLIBDIR search LIBDIR for required installed libraries - -lNAME OUTPUT-FILE requires the installed library libNAME - -module build a library that can dlopened - -no-fast-install disable the fast-install mode - -no-install link a not-installable executable - -no-undefined declare that a library does not refer to external symbols - -o OUTPUT-FILE create OUTPUT-FILE from the specified objects - -objectlist FILE Use a list of object files found in FILE to specify objects - -precious-files-regex REGEX - don't remove output files matching REGEX - -release RELEASE specify package release information - -rpath LIBDIR the created library will eventually be installed in LIBDIR - -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries - -static do not do any dynamic linking of uninstalled libtool libraries - -static-libtool-libs - do not do any dynamic linking of libtool libraries - -version-info CURRENT[:REVISION[:AGE]] - specify library version info [each variable defaults to 0] - -All other options (arguments beginning with \`-') are ignored. - -Every other argument is treated as a filename. Files ending in \`.la' are -treated as uninstalled libtool libraries, other files are standard or library -object files. - -If the OUTPUT-FILE ends in \`.la', then a libtool library is created, -only library objects (\`.lo' files) may be specified, and \`-rpath' is -required, except when creating a convenience library. - -If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created -using \`ar' and \`ranlib', or on Windows using \`lib'. - -If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file -is created, otherwise an executable program is created." - ;; - -uninstall) - $echo \ -"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... - -Remove libraries from an installation directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -to RM. - -If FILE is a libtool library, all the files associated with it are deleted. -Otherwise, only FILE itself is deleted using RM." - ;; - -*) - $echo "$modename: invalid operation mode \`$mode'" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - ;; -esac - -$echo -$echo "Try \`$modename --help' for more information about other modes." - -exit $? - -# The TAGs below are defined such that we never get into a situation -# in which we disable both kinds of libraries. Given conflicting -# choices, we go for a static library, that is the most portable, -# since we can't tell whether shared libraries were disabled because -# the user asked for that or because the platform doesn't support -# them. This is particularly important on AIX, because we don't -# support having both static and shared libraries enabled at the same -# time on that platform, so we default to a shared-only configuration. -# If a disable-shared tag is given, we'll fallback to a static-only -# configuration. But we'll never go from static-only to shared-only. - -# ### BEGIN LIBTOOL TAG CONFIG: disable-shared -disable_libs=shared -# ### END LIBTOOL TAG CONFIG: disable-shared - -# ### BEGIN LIBTOOL TAG CONFIG: disable-static -disable_libs=static -# ### END LIBTOOL TAG CONFIG: disable-static - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: diff --git a/contrib/cppunit-1.12.1/config/missing b/contrib/cppunit-1.12.1/config/missing deleted file mode 100644 index 1c8ff7049..000000000 --- a/contrib/cppunit-1.12.1/config/missing +++ /dev/null @@ -1,367 +0,0 @@ -#! /bin/sh -# Common stub for a few missing GNU programs while installing. - -scriptversion=2006-05-10.23 - -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 -# Free Software Foundation, Inc. -# Originally by Fran,cois Pinard , 1996. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 -fi - -run=: -sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' -sed_minuso='s/.* -o \([^ ]*\).*/\1/p' - -# In the cases where this matters, `missing' is being run in the -# srcdir already. -if test -f configure.ac; then - configure_ac=configure.ac -else - configure_ac=configure.in -fi - -msg="missing on your system" - -case $1 in ---run) - # Try to run requested program, and just exit if it succeeds. - run= - shift - "$@" && exit 0 - # Exit code 63 means version mismatch. This often happens - # when the user try to use an ancient version of a tool on - # a file that requires a minimum version. In this case we - # we should proceed has if the program had been absent, or - # if --run hadn't been passed. - if test $? = 63; then - run=: - msg="probably too old" - fi - ;; - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - --run try to run the given command, and emulate it if it fails - -Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - autom4te touch the output file, or create a stub one - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - help2man touch the output file - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags - yacc create \`y.tab.[ch]', if possible, from existing .[ch] - -Send bug reports to ." - exit $? - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing $scriptversion (GNU Automake)" - exit $? - ;; - - -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - ;; - -esac - -# Now exit if we have it, but it failed. Also exit now if we -# don't have it and --version was passed (most likely to detect -# the program). -case $1 in - lex|yacc) - # Not GNU programs, they don't have --version. - ;; - - tar) - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - exit 1 - fi - ;; - - *) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - # Could not run --version or --help. This is probably someone - # running `$TOOL --version' or `$TOOL --help' to check whether - # $TOOL exists and not knowing $TOOL uses missing. - exit 1 - fi - ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case $1 in - aclocal*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acinclude.m4' or \`${configure_ac}'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`${configure_ac}'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acconfig.h' or \`${configure_ac}'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case $f in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; - - automake*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - autom4te) - echo 1>&2 "\ -WARNING: \`$1' is needed, but is $msg. - You might have modified some files without having the - proper tools for further handling them. - You can get \`$1' as part of \`Autoconf' from any GNU - archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo "#! /bin/sh" - echo "# Created by GNU Automake missing as a replacement of" - echo "# $ $@" - echo "exit 0" - chmod +x $file - exit 1 - fi - ;; - - bison|yacc) - echo 1>&2 "\ -WARNING: \`$1' $msg. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if test $# -ne 1; then - eval LASTARG="\${$#}" - case $LASTARG in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if test ! -f y.tab.h; then - echo >y.tab.h - fi - if test ! -f y.tab.c; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex|flex) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if test $# -ne 1; then - eval LASTARG="\${$#}" - case $LASTARG in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if test ! -f lex.yy.c; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - help2man) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a dependency of a manual page. You may need the - \`Help2man' package in order for those modifications to take - effect. You can get \`Help2man' from any GNU archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo ".ab help2man is required to generate this page" - exit 1 - fi - ;; - - makeinfo) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - # The file to touch is that specified with -o ... - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -z "$file"; then - # ... or it is the one specified with @setfilename ... - infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n ' - /^@setfilename/{ - s/.* \([^ ]*\) *$/\1/ - p - q - }' $infile` - # ... or it is derived from the source name (dir/f.texi becomes f.info) - test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info - fi - # If the file does not exist, the user really needs makeinfo; - # let's fail without touching anything. - test -f $file || exit 1 - touch $file - ;; - - tar) - shift - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case $firstarg in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case $firstarg in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and is $msg. - You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequisites for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac - -exit 0 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: diff --git a/contrib/cppunit-1.12.1/configure b/contrib/cppunit-1.12.1/configure deleted file mode 100644 index 424eea621..000000000 --- a/contrib/cppunit-1.12.1/configure +++ /dev/null @@ -1,23322 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61. -# -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # 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 - - - - -# 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 - -# 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 -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -as_nl=' -' -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); 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 -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 - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# 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" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# CDPATH. -$as_unset CDPATH - - -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 /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 -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 - - -: -_ASEOF -}; then - CONFIG_SHELL=$as_shell - as_have_required=yes - if { "$as_shell" 2> /dev/null <<\_ASEOF -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 - - -: -(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. :-) - 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 - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in --n*) - case `echo 'x\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; - 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 -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 || - as_ln_s='cp -p' -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -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=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - - - -# Check that we are running under the correct shell. -SHELL=${CONFIG_SHELL-/bin/sh} - -case X$ECHO in -X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` - ;; -esac - -echo=${ECHO-echo} -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then - # Yippee, $echo works! - : -else - # Restart under the correct shell. - exec $SHELL "$0" --no-reexec ${1+"$@"} -fi - -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat </dev/null 2>&1 && unset CDPATH - -if test -z "$ECHO"; then -if test "X${echo_test_string+set}" != Xset; then -# find a string as large as possible, as long as the shell can cope with it - for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... - if (echo_test_string=`eval $cmd`) 2>/dev/null && - echo_test_string=`eval $cmd` && - (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null - then - break - fi - done -fi - -if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - : -else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - IFS="$lt_save_ifs" - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$dir/echo" - break - fi - done - IFS="$lt_save_ifs" - - if test "X$echo" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - echo='print -r' - elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} - else - # Try using printf. - echo='printf %s\n' - if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # Cool, printf works - : - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - echo="$CONFIG_SHELL $0 --fallback-echo" - elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$CONFIG_SHELL $0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do - if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null - then - break - fi - prev="$cmd" - done - - if test "$prev" != 'sed 50q "$0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} - else - # Oops. We lost completely, so just stick with echo. - echo=echo - fi - fi - fi - fi -fi -fi - -# Copy echo and quote the copy suitably for passing to libtool from -# the Makefile, instead of quoting the original, which is used later. -ECHO=$echo -if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then - ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" -fi - - - - -tagnames=${tagnames+${tagnames},}CXX - -tagnames=${tagnames+${tagnames},}F77 - -exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Identity of this package. -PACKAGE_NAME= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= - -ac_unique_file="Makefile.am" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -ac_subst_vars='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 -CPPUNIT_MAJOR_VERSION -CPPUNIT_MINOR_VERSION -CPPUNIT_MICRO_VERSION -CPPUNIT_INTERFACE_AGE -CPPUNIT_BINARY_AGE -CPPUNIT_VERSION -LT_RELEASE -LT_CURRENT -LT_REVISION -LT_AGE -INSTALL_PROGRAM -INSTALL_SCRIPT -INSTALL_DATA -am__isrc -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 -CXX -CXXFLAGS -ac_ct_CXX -CXXDEPMODE -am__fastdepCXX_TRUE -am__fastdepCXX_FALSE -build -build_cpu -build_vendor -build_os -host -host_cpu -host_vendor -host_os -SED -GREP -EGREP -LN_S -ECHO -AR -RANLIB -DSYMUTIL -NMEDIT -DLLTOOL -AS -OBJDUMP -CPP -CXXCPP -F77 -FFLAGS -ac_ct_F77 -LIBTOOL -LIBADD_DL -DOXYGEN -DOT -DOC_TRUE -DOC_FALSE -enable_dot -enable_html_docs -enable_latex_docs -LIBOBJS -LTLIBOBJS' -ac_subst_files='' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CXX -CXXFLAGS -CCC -CPP -CXXCPP -F77 -FFLAGS' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_feature=`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 ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_feature=`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 ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_package=`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 ;; - - -without-* | --without-*) - ac_package=`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 ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) { echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } - ;; - - *=*) - 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; }; } - 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 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -# Be sure to have absolute directory names. -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 - 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; }; } -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - { echo "$as_me: error: Working directory cannot be determined" >&2 - { (exit 1); exit 1; }; } -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; }; } - - -# 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" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } -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; }; } - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures this package to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] -_ACEOF -fi - -if test -n "$ac_init_help"; then - - cat <<\_ACEOF - -Optional Features: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors - --enable-shared[=PKGS] build shared libraries [default=yes] - --enable-static[=PKGS] build static libraries [default=yes] - --enable-fast-install[=PKGS] - optimize for fast installation [default=yes] - --disable-libtool-lock avoid locking (might break parallel builds) - --enable-doxygen enable documentation generation with doxygen (auto) - --enable-dot use 'dot' to generate graphs in doxygen (auto) - --enable-html-docs enable HTML generation with doxygen (yes) - --enable-latex-docs enable LaTeX documentation generation with doxygen (no) - --disable-typeinfo-name disable use of RTTI for class names - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-gnu-ld assume the C compiler uses GNU ld [default=no] - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-tags[=TAGS] include additional configurations [automatic] - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - CXX C++ compiler command - CXXFLAGS C++ compiler flags - CPP C preprocessor - CXXCPP C++ preprocessor - F77 Fortran 77 compiler command - FFLAGS Fortran 77 compiler flags - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || 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,^\.[\\/],,'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -configure -generated by GNU Autoconf 2.61 - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006 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 -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 $as_me, which was -generated by GNU Autoconf 2.61. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - echo "PATH: $as_dir" -done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; - 2) - ac_configure_args1="$ac_configure_args1 '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - ac_configure_args="$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; } - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - cat <<\_ASBOX -## ---------------- ## -## Cache variables. ## -## ---------------- ## -_ASBOX - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { 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;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - *) $as_unset $ac_var ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - cat <<\_ASBOX -## ----------------- ## -## Output variables. ## -## ----------------- ## -_ASBOX - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------------- ## -## File substitutions. ## -## ------------------- ## -_ASBOX - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## -## confdefs.h. ## -## ----------- ## -_ASBOX - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - 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 -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* 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 - - -# Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. -if test -n "$CONFIG_SITE"; then - set x "$CONFIG_SITE" -elif test "x$prefix" != xNONE; then - set x "$prefix/share/config.site" "$prefix/etc/config.site" -else - set x "$ac_default_prefix/share/config.site" \ - "$ac_default_prefix/etc/config.site" -fi -shift -for ac_site_file -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;} - 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;} - 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;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { 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;} - 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;} - 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=: - 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=$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'" ;; - 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; }; } -fi - - - - - - - - - - - - - - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -# autoconf 2.50 or higher to rebuild aclocal.m4, because the -# AC_CREATE_PREFIX_CONFIG_H macro needs the AS_DIRNAME macro. - - -# Making releases: -# CPPUNIT_MICRO_VERSION += 1; -# CPPUNIT_INTERFACE_AGE += 1; -# CPPUNIT_BINARY_AGE += 1; -# if any functions have been added, set CPPUNIT_INTERFACE_AGE to 0. -# if backwards compatibility has been broken, -# set CPPUNIT_BINARY_AGE and CPPUNIT_INTERFACE_AGE to 0. -# -CPPUNIT_MAJOR_VERSION=1 -CPPUNIT_MINOR_VERSION=12 -CPPUNIT_MICRO_VERSION=1 -CPPUNIT_INTERFACE_AGE=0 -CPPUNIT_BINARY_AGE=0 -CPPUNIT_VERSION=$CPPUNIT_MAJOR_VERSION.$CPPUNIT_MINOR_VERSION.$CPPUNIT_MICRO_VERSION - - - - - - - -# libtool versioning -LT_RELEASE=$CPPUNIT_MAJOR_VERSION.$CPPUNIT_MINOR_VERSION -LT_CURRENT=`expr $CPPUNIT_MICRO_VERSION - $CPPUNIT_INTERFACE_AGE` -LT_REVISION=$CPPUNIT_INTERFACE_AGE -LT_AGE=`expr $CPPUNIT_BINARY_AGE - $CPPUNIT_INTERFACE_AGE` - - - - - -ac_aux_dir= -for ac_dir in config "$srcdir"/config; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in config \"$srcdir\"/config" >&5 -echo "$as_me: error: cannot find install-sh or install.sh in config \"$srcdir\"/config" >&2;} - { (exit 1); exit 1; }; } -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -ac_config_headers="$ac_config_headers config/config.h" - -am__api_version='1.10' - -# 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_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - 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' - -{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5 -echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } -# Just in case -sleep 1 -echo timestamp > conftest.file -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftest.file` - fi - rm -f conftest.file - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - { { 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; }; } - fi - - test "$2" = conftest.file - ) -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; }; } -fi -{ echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}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. -# 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 - -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" -# Use eval to expand $SHELL -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;} -fi - -{ echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 -echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; } -if test -z "$MKDIR_P"; then - if test "${ac_cv_path_mkdir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in mkdir gmkdir; do - for ac_exec_ext in '' $ac_executable_extensions; do - { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( - 'mkdir (GNU coreutils) '* | \ - 'mkdir (coreutils) '* | \ - 'mkdir (fileutils) '4.1*) - ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext - break 3;; - esac - done - done -done -IFS=$as_save_IFS - -fi - - if test "${ac_cv_path_mkdir+set}" = set; then - MKDIR_P="$ac_cv_path_mkdir -p" - else - # As a last resort, use the slow shell script. Don't cache a - # value for MKDIR_P within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - test -d ./--version && rmdir ./--version - MKDIR_P="$ac_install_sh -d" - fi -fi -{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5 -echo "${ECHO_T}$MKDIR_P" >&6; } - -mkdir_p="$MKDIR_P" -case $mkdir_p in - [\\/$]* | ?:[\\/]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ 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 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AWK="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - { echo "$as_me:$LINENO: result: $AWK" >&5 -echo "${ECHO_T}$AWK" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}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 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } - SET_MAKE= -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null - -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - am__isrc=' -I$(srcdir)' - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - { { 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; }; } - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi - - -# Define the identity of the package. - PACKAGE=cppunit - VERSION=$CPPUNIT_VERSION - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} - -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ 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 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ 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 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_STRIP="strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - 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;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" - -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -# Always define AMTAR for backward compatibility. - -AMTAR=${AMTAR-"${am_missing_run}tar"} - -am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' - - - - - - -# General "with" options -# ---------------------------------------------------------------------------- - - -{ 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 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } - SET_MAKE= -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}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_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - 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' - - -# The libtool macro AC_PROG_LIBTOOL checks for the C preprocessor. -# Configure gets confused if we try to check for a C preprocessor -# without first checking for the C compiler -# (see http://sources.redhat.com/ml/autoconf/2001-07/msg00036.html), -# so we invoke AC_PROG_CC explicitly. -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ 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 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ 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 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - 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;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ 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 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ 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 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ 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 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ 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 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ 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;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -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; }; } - -# 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" -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 - 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); } - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out 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. -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_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { (ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi - -{ echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6; } -if test -z "$ac_file"; then - 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; }; } -fi - -ac_exeext=$ac_cv_exeext - -# 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 -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" -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); }; then - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.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; }; } -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.$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. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; 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_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - 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; }; } -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; } -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 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#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); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - 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` -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 -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 -/* end confdefs.h. */ - -int -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); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; 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 -/* end confdefs.h. */ - -int -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); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - 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 -/* end confdefs.h. */ - -int -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); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; 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; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ 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 -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 -/* end confdefs.h. */ -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - 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); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; 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 -rm -f conftest.$ac_ext -CC=$ac_save_CC - -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; } ;; - xno) - { echo "$as_me:$LINENO: result: unsupported" >&5 -echo "${ECHO_T}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; } ;; -esac - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -DEPDIR="${am__leading_dot}deps" - -ac_config_commands="$ac_config_commands depfiles" - - -am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo done -.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; } -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi -fi - - -{ echo "$as_me:$LINENO: result: $_am_result" >&5 -echo "${ECHO_T}$_am_result" >&6; } -rm -f confinc confmf - -# Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then - enableval=$enable_dependency_tracking; -fi - -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi - if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - - -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 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - case $depmode in - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - none) break ;; - esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. - if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 -echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -if test -z "$CXX"; then - if test -n "$CCC"; then - CXX=$CCC - else - if test -n "$ac_tool_prefix"; then - for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ 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 -else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CXX=$ac_cv_prog_CXX -if test -n "$CXX"; then - { echo "$as_me:$LINENO: result: $CXX" >&5 -echo "${ECHO_T}$CXX" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - - test -n "$CXX" && break - done -fi -if test -z "$CXX"; then - ac_ct_CXX=$CXX - for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ 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 -else - if test -n "$ac_ct_CXX"; then - ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CXX="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CXX=$ac_cv_prog_ac_ct_CXX -if test -n "$ac_ct_CXX"; then - { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 -echo "${ECHO_T}$ac_ct_CXX" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - - test -n "$ac_ct_CXX" && break -done - - if test "x$ac_ct_CXX" = x; then - CXX="g++" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ 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;} -ac_tool_warned=yes ;; -esac - CXX=$ac_ct_CXX - fi -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" -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 - 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); } - -{ 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 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - 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` -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 -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 -/* end confdefs.h. */ - -int -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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; 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 -/* end confdefs.h. */ - -int -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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - 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 -/* end confdefs.h. */ - -int -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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; 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; } -if test "$ac_test_CXXFLAGS" = set; then - CXXFLAGS=$ac_save_CXXFLAGS -elif test $ac_cv_prog_cxx_g = yes; then - if test "$GXX" = yes; then - CXXFLAGS="-g -O2" - else - CXXFLAGS="-g" - fi -else - if test "$GXX" = yes; then - CXXFLAGS="-O2" - else - CXXFLAGS= - fi -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -depcc="$CXX" am_compiler_list= - -{ 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 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CXX_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - case $depmode in - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - none) break ;; - esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. - if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CXX_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CXX_dependencies_compiler_type=none -fi - -fi -{ echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 -echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; } -CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then - am__fastdepCXX_TRUE= - am__fastdepCXX_FALSE='#' -else - am__fastdepCXX_TRUE='#' - am__fastdepCXX_FALSE= -fi - - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - - - -# Check whether --enable-shared was given. -if test "${enable_shared+set}" = set; then - enableval=$enable_shared; p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_shared=yes -fi - - -# Check whether --enable-static was given. -if test "${enable_static+set}" = set; then - enableval=$enable_static; p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_static=yes -fi - - -# Check whether --enable-fast-install was given. -if test "${enable_fast_install+set}" = set; then - enableval=$enable_fast_install; p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_fast_install=yes -fi - - -# 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; }; } - -{ 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 -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; }; } -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; }; } - -fi -{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5 -echo "${ECHO_T}$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; }; };; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ 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 -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; }; } -fi - -fi -{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5 -echo "${ECHO_T}$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; }; };; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - -{ 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 -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. -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for lt_ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$lt_ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$lt_ac_prog$ac_exec_ext"; }; then - lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" - fi - done - done -done -IFS=$as_save_IFS -lt_ac_max=0 -lt_ac_count=0 -# Add /usr/xpg4/bin/sed as it is typically found on Solaris -# along with /bin/sed that truncates output. -for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do - test ! -f $lt_ac_sed && continue - cat /dev/null > conftest.in - lt_ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >conftest.in - # Check for GNU sed and select it if it is found. - if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then - lt_cv_path_SED=$lt_ac_sed - break - fi - while true; do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo >>conftest.nl - $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break - cmp -s conftest.out conftest.nl || break - # 10000 chars as input seems more than enough - test $lt_ac_count -gt 10 && break - lt_ac_count=`expr $lt_ac_count + 1` - if test $lt_ac_count -gt $lt_ac_max; then - lt_ac_max=$lt_ac_count - lt_cv_path_SED=$lt_ac_sed - fi - done -done - -fi - -SED=$lt_cv_path_SED - -{ echo "$as_me:$LINENO: result: $SED" >&5 -echo "${ECHO_T}$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 -else - ac_path_GREP_found=false -# Loop through the user's path and test for each of PROGNAME-LIST -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue - # Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >"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" - "$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` - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - - $ac_path_GREP_found && break 3 - done -done - -done -IFS=$as_save_IFS - - -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 - -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; } - 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 -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 - ac_path_EGREP_found=false -# Loop through the user's path and test for each of PROGNAME-LIST -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue - # Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >"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" - "$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` - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - - $ac_path_EGREP_found && break 3 - done -done - -done -IFS=$as_save_IFS - - -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 - -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; } - EGREP="$ac_cv_path_EGREP" - - - -# Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then - withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi - -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 -echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; } - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - { echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } -else - { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } -fi -if test "${lt_cv_path_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &5 -echo "${ECHO_T}$LD" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}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 -else - # I'd rather use --version here, but apparently some GNU lds only accept -v. -case `$LD -v 2>&1 &5 -echo "${ECHO_T}$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 -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; } -reload_flag=$lt_cv_ld_reload_flag -case $reload_flag in -"" | " "*) ;; -*) reload_flag=" $reload_flag" ;; -esac -reload_cmds='$LD$reload_flag -o $output$reload_objs' -case $host_os in - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' - else - reload_cmds='$LD$reload_flag -o $output$reload_objs' - fi - ;; -esac - -{ 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 -else - if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_nm_to_check="${ac_tool_prefix}nm" - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - ;; - esac - fi - done - IFS="$lt_save_ifs" - done - 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; } -NM="$lt_cv_path_NM" - -{ echo "$as_me:$LINENO: checking whether ln -s works" >&5 -echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&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; } -else - { echo "$as_me:$LINENO: result: no, using $LN_S" >&5 -echo "${ECHO_T}no, using $LN_S" >&6; } -fi - -{ echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5 -echo $ECHO_N "checking how to recognize dependent libraries... $ECHO_C" >&6; } -if test "${lt_cv_deplibs_check_method+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_file_magic_cmd='$MAGIC_CMD' -lt_cv_file_magic_test_file= -lt_cv_deplibs_check_method='unknown' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# `unknown' -- same as none, but documents that we really don't know. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_magic [[regex]]' -- check by looking for files in library path -# which responds to the $file_magic_cmd with a given extended regex. -# If you have `file' or equivalent on your system and you're not sure -# whether `pass_all' will *always* work, you probably want this one. - -case $host_os in -aix[4-9]*) - lt_cv_deplibs_check_method=pass_all - ;; - -beos*) - lt_cv_deplibs_check_method=pass_all - ;; - -bsdi[45]*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' - lt_cv_file_magic_test_file=/shlib/libc.so - ;; - -cygwin*) - # func_win32_libid is a shell function defined in ltmain.sh - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - ;; - -mingw* | pw32*) - # Base MSYS/MinGW do not provide the 'file' command needed by - # func_win32_libid shell function, so use a weaker test based on 'objdump', - # unless we find 'file', for example because we are cross-compiling. - if ( file / ) >/dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | dragonfly*) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; - -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case $host_cpu in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; - -interix[3-9]*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be Linux ELF. -linux* | k*bsd*-gnu) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -nto-qnx*) - lt_cv_deplibs_check_method=unknown - ;; - -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; -esac - -fi -{ echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 -echo "${ECHO_T}$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 - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - - -# Check whether --enable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then - enableval=$enable_libtool_lock; -fi - -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '#line 4969 "configure"' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - if test "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -s390*-*linux*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - { 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 -else - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -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); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; 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 -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -fi -{ echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 -echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; } - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; -sparc*-*solaris*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - case `/usr/bin/file conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; - *) - if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then - LD="${LD-ld} -64" - fi - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-cygwin* | *-*-mingw* | *-*-pw32*) - 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 -else - if test -n "$DLLTOOL"; then - ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -DLLTOOL=$ac_cv_prog_DLLTOOL -if test -n "$DLLTOOL"; then - { echo "$as_me:$LINENO: result: $DLLTOOL" >&5 -echo "${ECHO_T}$DLLTOOL" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DLLTOOL"; then - ac_ct_DLLTOOL=$DLLTOOL - # Extract the first word of "dlltool", so it can be a program name with args. -set dummy dlltool; ac_word=$2 -{ 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 -else - if test -n "$ac_ct_DLLTOOL"; then - ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_DLLTOOL="dlltool" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -if test -n "$ac_ct_DLLTOOL"; then - { echo "$as_me:$LINENO: result: $ac_ct_DLLTOOL" >&5 -echo "${ECHO_T}$ac_ct_DLLTOOL" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - if test "x$ac_ct_DLLTOOL" = x; then - DLLTOOL="false" - 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;} -ac_tool_warned=yes ;; -esac - DLLTOOL=$ac_ct_DLLTOOL - fi -else - DLLTOOL="$ac_cv_prog_DLLTOOL" -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 -else - if test -n "$AS"; then - ac_cv_prog_AS="$AS" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AS="${ac_tool_prefix}as" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -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; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - -fi -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 -else - if test -n "$ac_ct_AS"; then - ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_AS="as" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -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; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - if test "x$ac_ct_AS" = x; then - AS="false" - 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;} -ac_tool_warned=yes ;; -esac - AS=$ac_ct_AS - fi -else - AS="$ac_cv_prog_AS" -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 -else - if test -n "$OBJDUMP"; then - ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -OBJDUMP=$ac_cv_prog_OBJDUMP -if test -n "$OBJDUMP"; then - { echo "$as_me:$LINENO: result: $OBJDUMP" >&5 -echo "${ECHO_T}$OBJDUMP" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OBJDUMP"; then - ac_ct_OBJDUMP=$OBJDUMP - # Extract the first word of "objdump", so it can be a program name with args. -set dummy objdump; ac_word=$2 -{ 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 -else - if test -n "$ac_ct_OBJDUMP"; then - ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_OBJDUMP="objdump" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP -if test -n "$ac_ct_OBJDUMP"; then - { echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 -echo "${ECHO_T}$ac_ct_OBJDUMP" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - if test "x$ac_ct_OBJDUMP" = x; then - OBJDUMP="false" - 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;} -ac_tool_warned=yes ;; -esac - OBJDUMP=$ac_ct_OBJDUMP - fi -else - OBJDUMP="$ac_cv_prog_OBJDUMP" -fi - - ;; - -esac - -need_locks="$enable_libtool_lock" - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ 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; } -# 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 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#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 && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # 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 -/* 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 && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; 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 - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#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 && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # 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 -/* 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 && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; 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 - : -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; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ 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 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include - -int -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); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; 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 -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 -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -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 - : -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 -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - - -fi -fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - -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); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; 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 - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -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); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; 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 && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.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 - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - -if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -{ 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; } -if test -z "$CXXCPP"; then - if test "${ac_cv_prog_CXXCPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Double quotes because CXXCPP needs to be expanded - for CXXCPP in "$CXX -E" "/lib/cpp" - do - ac_preproc_ok=false -for ac_cxx_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#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 && { - test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || - test ! -s conftest.err - }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # 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 -/* 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 && { - test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || - test ! -s conftest.err - }; 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 - break -fi - - done - ac_cv_prog_CXXCPP=$CXXCPP - -fi - CXXCPP=$ac_cv_prog_CXXCPP -else - ac_cv_prog_CXXCPP=$CXXCPP -fi -{ echo "$as_me:$LINENO: result: $CXXCPP" >&5 -echo "${ECHO_T}$CXXCPP" >&6; } -ac_preproc_ok=false -for ac_cxx_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#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 && { - test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || - test ! -s conftest.err - }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # 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 -/* 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 && { - test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || - test ! -s conftest.err - }; 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 - : -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; }; } -fi - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - -fi - -ac_ext=f -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 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 -else - if test -n "$F77"; then - ac_cv_prog_F77="$F77" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_F77="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -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; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - - test -n "$F77" && break - done -fi -if test -z "$F77"; then - ac_ct_F77=$F77 - 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 -else - if test -n "$ac_ct_F77"; then - ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_F77="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -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; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - - test -n "$ac_ct_F77" && break -done - - if test "x$ac_ct_F77" = x; then - F77="" - 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;} -ac_tool_warned=yes ;; -esac - F77=$ac_ct_F77 - fi -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" -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 - 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); } -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 -else - cat >conftest.$ac_ext <<_ACEOF - program main -#ifndef __GNUC__ - choke me -#endif - - 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); } && { - test -z "$ac_f77_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - 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; } -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 -else - FFLAGS=-g -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); } && { - test -z "$ac_f77_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; 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 -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; } -if test "$ac_test_FFLAGS" = set; then - FFLAGS=$ac_save_FFLAGS -elif test $ac_cv_prog_f77_g = yes; then - if test "x$ac_cv_f77_compiler_gnu" = xyes; then - FFLAGS="-g -O2" - else - FFLAGS="-g" - fi -else - if test "x$ac_cv_f77_compiler_gnu" = xyes; then - FFLAGS="-O2" - else - FFLAGS= - fi -fi - -G77=`test $ac_compiler_gnu = yes && echo yes` -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - - -# 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 -else - i=0 - teststring="ABCD" - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; - - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; - - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=102400 - ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` - else - lt_cv_sys_max_cmd_len=32768 - fi - ;; - *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len"; then - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - else - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ - = "XX$teststring") >/dev/null 2>&1 && - new_result=`expr "X$teststring" : ".*" 2>&1` && - lt_cv_sys_max_cmd_len=$new_result && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - teststring= - # Add a significant safety factor because C++ compilers can tack on massive - # amounts of additional arguments before passing them to the linker. - # It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - fi - ;; - esac - -fi - -if test -n $lt_cv_sys_max_cmd_len ; then - { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 -echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; } -else - { echo "$as_me:$LINENO: result: none" >&5 -echo "${ECHO_T}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 -else - -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[BCDEGRST]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - -# Transform an extracted symbol line into a proper C declaration -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[BCDT]' - ;; -cygwin* | mingw* | pw32*) - symcode='[ABCDGISTW]' - ;; -hpux*) # Its linker distinguishes data from code symbols - if test "$host_cpu" = ia64; then - symcode='[ABCDEGRST]' - fi - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - ;; -linux* | k*bsd*-gnu) - if test "$host_cpu" = ia64; then - symcode='[ABCDGIRSTW]' - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - fi - ;; -irix* | nonstopux*) - symcode='[BCDEGRST]' - ;; -osf*) - symcode='[BCDEGQRST]' - ;; -solaris*) - symcode='[BDRT]' - ;; -sco3.2v5*) - symcode='[DT]' - ;; -sysv4.2uw2*) - symcode='[DT]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[ABDT]' - ;; -sysv4) - symcode='[DFNSTU]' - ;; -esac - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[ABCDGIRSTW]' ;; -esac - -# Try without a prefix undercore, then with it. -for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # Write the raw and C identifiers. - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext <&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; 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 - (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 - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if grep ' nm_test_var$' "$nlist" >/dev/null; then - if grep ' nm_test_func$' "$nlist" >/dev/null; then - cat < conftest.$ac_ext -#ifdef __cplusplus -extern "C" { -#endif - -EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' - - cat <> conftest.$ac_ext -#if defined (__STDC__) && __STDC__ -# define lt_ptr_t void * -#else -# define lt_ptr_t char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr_t address; -} -lt_preloaded_symbols[] = -{ -EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext - cat <<\EOF >> conftest.$ac_ext - {0, (lt_ptr_t) 0} -}; - -#ifdef __cplusplus -} -#endif -EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_save_LIBS="$LIBS" - 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 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi - LIBS="$lt_save_LIBS" - CFLAGS="$lt_save_CFLAGS" - else - echo "cannot find nm_test_func in $nlist" >&5 - fi - else - echo "cannot find nm_test_var in $nlist" >&5 - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 - fi - else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - fi - rm -rf conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done - -fi - -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - { echo "$as_me:$LINENO: result: failed" >&5 -echo "${ECHO_T}failed" >&6; } -else - { echo "$as_me:$LINENO: result: ok" >&5 -echo "${ECHO_T}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 -else - rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null -fi -{ echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 -echo "${ECHO_T}$lt_cv_objdir" >&6; } -objdir=$lt_cv_objdir - - - - - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='sed -e 1s/^X//' -sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - -# Constants: -rm="rm -f" - -# Global variables: -default_ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a -ltmain="$ac_aux_dir/ltmain.sh" -ofile="$default_ofile" -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 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AR="${ac_tool_prefix}ar" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { echo "$as_me:$LINENO: result: $AR" >&5 -echo "${ECHO_T}$AR" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - -fi -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 -else - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_AR="ar" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 -echo "${ECHO_T}$ac_ct_AR" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - if test "x$ac_ct_AR" = x; then - AR="false" - 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;} -ac_tool_warned=yes ;; -esac - AR=$ac_ct_AR - fi -else - AR="$ac_cv_prog_AR" -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 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { echo "$as_me:$LINENO: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ 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 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -echo "${ECHO_T}$ac_ct_RANLIB" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - 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;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -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 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ 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 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_STRIP="strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - 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;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$AR" && AR=ar -test -z "$AR_FLAGS" && AR_FLAGS=cru -test -z "$AS" && AS=as -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$DLLTOOL" && DLLTOOL=dlltool -test -z "$LD" && LD=ld -test -z "$LN_S" && LN_S="ln -s" -test -z "$MAGIC_CMD" && MAGIC_CMD=file -test -z "$NM" && NM=nm -test -z "$SED" && SED=sed -test -z "$OBJDUMP" && OBJDUMP=objdump -test -z "$RANLIB" && RANLIB=: -test -z "$STRIP" && STRIP=: -test -z "$ac_objext" && ac_objext=o - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" -fi - -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - -# Only perform the check for file, if the check method requires it -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 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/${ac_tool_prefix}file; then - lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -echo "${ECHO_T}$MAGIC_CMD" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}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 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/file; then - lt_cv_path_MAGIC_CMD="$ac_dir/file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -echo "${ECHO_T}$MAGIC_CMD" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - else - MAGIC_CMD=: - fi -fi - - fi - ;; -esac - - - case $host_os in - rhapsody* | darwin*) - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. -set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_DSYMUTIL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$DSYMUTIL"; then - ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -DSYMUTIL=$ac_cv_prog_DSYMUTIL -if test -n "$DSYMUTIL"; then - { echo "$as_me:$LINENO: result: $DSYMUTIL" >&5 -echo "${ECHO_T}$DSYMUTIL" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DSYMUTIL"; then - ac_ct_DSYMUTIL=$DSYMUTIL - # Extract the first word of "dsymutil", so it can be a program name with args. -set dummy dsymutil; ac_word=$2 -{ 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_DSYMUTIL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_DSYMUTIL"; then - ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL -if test -n "$ac_ct_DSYMUTIL"; then - { echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5 -echo "${ECHO_T}$ac_ct_DSYMUTIL" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - if test "x$ac_ct_DSYMUTIL" = x; then - DSYMUTIL=":" - 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;} -ac_tool_warned=yes ;; -esac - DSYMUTIL=$ac_ct_DSYMUTIL - fi -else - DSYMUTIL="$ac_cv_prog_DSYMUTIL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. -set dummy ${ac_tool_prefix}nmedit; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_NMEDIT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$NMEDIT"; then - ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -NMEDIT=$ac_cv_prog_NMEDIT -if test -n "$NMEDIT"; then - { echo "$as_me:$LINENO: result: $NMEDIT" >&5 -echo "${ECHO_T}$NMEDIT" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_NMEDIT"; then - ac_ct_NMEDIT=$NMEDIT - # Extract the first word of "nmedit", so it can be a program name with args. -set dummy nmedit; ac_word=$2 -{ 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_NMEDIT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_NMEDIT"; then - ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_NMEDIT="nmedit" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT -if test -n "$ac_ct_NMEDIT"; then - { echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5 -echo "${ECHO_T}$ac_ct_NMEDIT" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - if test "x$ac_ct_NMEDIT" = x; then - NMEDIT=":" - 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;} -ac_tool_warned=yes ;; -esac - NMEDIT=$ac_ct_NMEDIT - fi -else - NMEDIT="$ac_cv_prog_NMEDIT" -fi - - - { echo "$as_me:$LINENO: checking for -single_module linker flag" >&5 -echo $ECHO_N "checking for -single_module linker flag... $ECHO_C" >&6; } -if test "${lt_cv_apple_cc_single_mod+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_apple_cc_single_mod=no - if test -z "${LT_MULTI_MODULE}"; then - # By default we will add the -single_module flag. You can override - # by either setting the environment variable LT_MULTI_MODULE - # non-empty at configure time, or by adding -multi_module to the - # link flags. - echo "int foo(void){return 1;}" > conftest.c - $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ - -dynamiclib ${wl}-single_module conftest.c - if test -f libconftest.dylib; then - lt_cv_apple_cc_single_mod=yes - rm -rf libconftest.dylib* - fi - rm conftest.c - fi -fi -{ echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5 -echo "${ECHO_T}$lt_cv_apple_cc_single_mod" >&6; } - { echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5 -echo $ECHO_N "checking for -exported_symbols_list linker flag... $ECHO_C" >&6; } -if test "${lt_cv_ld_exported_symbols_list+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_ld_exported_symbols_list=no - save_LDFLAGS=$LDFLAGS - echo "_main" > conftest.sym - LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - lt_cv_ld_exported_symbols_list=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - lt_cv_ld_exported_symbols_list=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" - -fi -{ echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5 -echo "${ECHO_T}$lt_cv_ld_exported_symbols_list" >&6; } - case $host_os in - rhapsody* | darwin1.[0123]) - _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; - darwin1.*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - darwin*) - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[91]*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - 10.[012]*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - 10.*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - esac - ;; - esac - if test "$lt_cv_apple_cc_single_mod" = "yes"; then - _lt_dar_single_mod='$single_module' - fi - if test "$lt_cv_ld_exported_symbols_list" = "yes"; then - _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' - else - _lt_dar_export_syms="~$NMEDIT -s \$output_objdir/\${libname}-symbols.expsym \${lib}" - fi - if test "$DSYMUTIL" != ":"; then - _lt_dsymutil="~$DSYMUTIL \$lib || :" - else - _lt_dsymutil= - fi - ;; - esac - - -enable_dlopen=no -enable_win32_dll=yes - -# Check whether --enable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then - enableval=$enable_libtool_lock; -fi - -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - - -# Check whether --with-pic was given. -if test "${with_pic+set}" = set; then - withval=$with_pic; pic_mode="$withval" -else - pic_mode=default -fi - -test -z "$pic_mode" && pic_mode=default - -# Use C for the default configuration in the libtool script -tagname= -lt_save_CC="$CC" -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -# Source file extension for C test sources. -ac_ext=c - -# Object file extension for compiled C test sources. -objext=o -objext=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$rm conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$rm -r conftest* - - - -lt_prog_compiler_no_builtin_flag= - -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 -else - lt_cv_prog_compiler_rtti_exceptions=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="-fno-rtti -fno-exceptions" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7838: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:7842: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_rtti_exceptions=yes - fi - fi - $rm conftest* - -fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } - -if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then - lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" -else - : -fi - -fi - -lt_prog_compiler_wl= -lt_prog_compiler_pic= -lt_prog_compiler_static= - -{ 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; } - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_static='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - fi - ;; - - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic='-fno-common' - ;; - - interix[3-9]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - lt_prog_compiler_can_build_shared=no - enable_shared=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic=-Kconform_pic - fi - ;; - - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - ;; - - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - else - lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' - fi - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case $cc_basename in - xlc*) - lt_prog_compiler_pic='-qnocommon' - lt_prog_compiler_wl='-Wl,' - ;; - esac - ;; - - mingw* | cygwin* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static='-non_shared' - ;; - - newsos6) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - linux* | k*bsd*-gnu) - case $cc_basename in - icc* | ecc*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-static' - ;; - pgcc* | pgf77* | pgf90* | pgf95*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fpic' - lt_prog_compiler_static='-Bstatic' - ;; - ccc*) - lt_prog_compiler_wl='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C 5.9 - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='-Wl,' - ;; - *Sun\ F*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='' - ;; - esac - ;; - esac - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - - rdos*) - lt_prog_compiler_static='-non_shared' - ;; - - solaris*) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in - f77* | f90* | f95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; - esac - ;; - - sunos4*) - lt_prog_compiler_wl='-Qoption ld ' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - lt_prog_compiler_pic='-Kconform_pic' - lt_prog_compiler_static='-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - unicos*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_can_build_shared=no - ;; - - uts4*) - lt_prog_compiler_pic='-pic' - lt_prog_compiler_static='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared=no - ;; - esac - fi - -{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 -echo "${ECHO_T}$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_cv_prog_compiler_pic_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_pic_works=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic -DPIC" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8128: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:8132: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_pic_works=yes - fi - fi - $rm conftest* - -fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_pic_works" >&6; } - -if test x"$lt_cv_prog_compiler_pic_works" = xyes; then - case $lt_prog_compiler_pic in - "" | " "*) ;; - *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; - esac -else - lt_prog_compiler_pic= - lt_prog_compiler_can_build_shared=no -fi - -fi -case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic= - ;; - *) - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; -esac - -# -# Check to make sure the static flag actually works. -# -wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" -{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } -if test "${lt_cv_prog_compiler_static_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_static_works=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_tmp_static_flag" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_static_works=yes - fi - else - lt_cv_prog_compiler_static_works=yes - fi - fi - $rm -r conftest* - LDFLAGS="$save_LDFLAGS" - -fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_static_works" >&6; } - -if test x"$lt_cv_prog_compiler_static_works" = xyes; then - : -else - lt_prog_compiler_static= -fi - - -{ 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 -else - lt_cv_prog_compiler_c_o=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8232: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:8236: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . 2>&5 - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $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; } - - -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; } - 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; } - 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;} - 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; } - - runpath_var= - allow_undefined_flag= - enable_shared_with_static_runtimes=no - archive_cmds= - archive_expsym_cmds= - old_archive_From_new_cmds= - old_archive_from_expsyms_cmds= - export_dynamic_flag_spec= - whole_archive_flag_spec= - thread_safe_flag_spec= - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld= - hardcode_libdir_separator= - hardcode_direct=no - hardcode_minus_L=no - hardcode_shlibpath_var=unsupported - link_all_deplibs=unknown - hardcode_automatic=no - module_cmds= - module_expsym_cmds= - always_export_symbols=no - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - # Exclude shared library initialization/finalization symbols. - extract_expsyms_cmds= - # Just being paranoid about ensuring that cc_basename is set. - for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - case $host_os in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - ld_shlibs=yes - if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec= - fi - supports_anon_versioning=no - case `$LD -v 2>/dev/null` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - - # See if GNU ld supports shared libraries. - case $host_os in - aix[3-9]*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs=no - cat <&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - fi - ;; - - amigaos*) - archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - ld_shlibs=no - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs=no - fi - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs=no - fi - ;; - - interix[3-9]*) - hardcode_direct=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | k*bsd*-gnu) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - tmp_addflag= - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - *) - tmp_sharedflag='-shared' ;; - esac - archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - - if test $supports_anon_versioning = yes; then - archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - $echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - link_all_deplibs=no - else - ld_shlibs=no - fi - ;; - - netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - cat <&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - ;; - - sunos4*) - archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - - if test "$ld_shlibs" = no; then - runpath_var= - hardcode_libdir_flag_spec= - export_dynamic_flag_spec= - whole_archive_flag_spec= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag=unsupported - always_export_symbols=yes - archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - - aix[4-9]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds='' - hardcode_direct=yes - hardcode_libdir_separator=':' - link_all_deplibs=yes - - if test "$GCC" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - hardcode_direct=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L=yes - hardcode_libdir_flag_spec='-L$libdir' - hardcode_libdir_separator= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -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); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -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_ipa8_conftest.oo \ - 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" - archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag="-z nodefs" - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -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); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -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_ipa8_conftest.oo \ - 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" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag=' ${wl}-bernotok' - allow_undefined_flag=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec='$convenience' - archive_cmds_need_lc=yes - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - # see comment about different semantics on the GNU ld section - ld_shlibs=no - ;; - - bsdi[45]*) - export_dynamic_flag_spec=-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_From_new_cmds='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path='`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes=yes - ;; - - darwin* | rhapsody*) - case $host_os in - rhapsody* | darwin1.[012]) - allow_undefined_flag='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - archive_cmds_need_lc=no - hardcode_direct=no - hardcode_automatic=yes - hardcode_shlibpath_var=unsupported - whole_archive_flag_spec='' - link_all_deplibs=yes - if test "$GCC" = yes ; then - output_verbose_link_cmd='echo' - archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" - else - case $cc_basename in - xlc*) - output_verbose_link_cmd='echo' - archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' - module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds - archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - ;; - *) - ld_shlibs=no - ;; - esac - fi - ;; - - dgux*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - freebsd1*) - ld_shlibs=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) - archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - hpux9*) - if test "$GCC" = yes; then - archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - export_dynamic_flag_spec='${wl}-E' - ;; - - hpux10*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - - hardcode_direct=yes - export_dynamic_flag_spec='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - fi - ;; - - hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - - case $host_cpu in - hppa*64*|ia64*) - hardcode_libdir_flag_spec_ld='+b $libdir' - hardcode_direct=no - hardcode_shlibpath_var=no - ;; - *) - hardcode_direct=yes - export_dynamic_flag_spec='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_ld='-rpath $libdir' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - link_all_deplibs=yes - ;; - - netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - newsos6) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_shlibpath_var=no - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - hardcode_direct=yes - hardcode_shlibpath_var=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' - else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac - fi - else - ld_shlibs=no - fi - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' - - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' - fi - hardcode_libdir_separator=: - ;; - - solaris*) - no_undefined_flag=' -z text' - if test "$GCC" = yes; then - wlarc='${wl}' - archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' - else - wlarc='' - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_shlibpath_var=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' - fi - ;; - esac - link_all_deplibs=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds='$CC -r -o $output$reload_objs' - hardcode_direct=no - ;; - motorola) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - sysv4.3*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag='${wl}-z,text' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - no_undefined_flag='${wl}-z,text' - allow_undefined_flag='${wl}-z,nodefs' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' - hardcode_libdir_separator=':' - link_all_deplibs=yes - export_dynamic_flag_spec='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - *) - ld_shlibs=no - ;; - esac - fi - -{ echo "$as_me:$LINENO: result: $ld_shlibs" >&5 -echo "${ECHO_T}$ld_shlibs" >&6; } -test "$ld_shlibs" = no && can_build_shared=no - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - { 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; } - $rm conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$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 - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl - pic_flag=$lt_prog_compiler_pic - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag - allow_undefined_flag= - if { (eval echo "$as_me:$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); } - then - archive_cmds_need_lc=no - else - archive_cmds_need_lc=yes - fi - allow_undefined_flag=$lt_save_allow_undefined_flag - else - 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; } - ;; - esac - fi - ;; -esac - -{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" - -if test "$GCC" = yes; then - case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'` - else - lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary. - lt_tmp_lt_search_path_spec= - lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[lt_foo]++; } - if (lt_freq[lt_foo] == 1) { print lt_foo; } -}'` - sys_lib_search_path_spec=`echo $lt_search_path_spec` -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix[4-9]*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[45]*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' - - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[123]*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ - freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -interix[3-9]*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux* | k*bsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -netbsdelf*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='NetBSD ld.elf_so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -nto-qnx*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -openbsd*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - export_dynamic_flag_spec='${wl}-Blargedynsym' - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - shlibpath_overrides_runpath=no - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - shlibpath_overrides_runpath=yes - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6; } -test "$dynamic_linker" = no && can_build_shared=no - -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec" -fi - -sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec" -fi - -sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -{ 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; } -hardcode_action= -if test -n "$hardcode_libdir_flag_spec" || \ - test -n "$runpath_var" || \ - test "X$hardcode_automatic" = "Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && - test "$hardcode_minus_L" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action=unsupported -fi -{ echo "$as_me:$LINENO: result: $hardcode_action" >&5 -echo "${ECHO_T}$hardcode_action" >&6; } - -if test "$hardcode_action" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - -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; } -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; } -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - old_striplib="$STRIP -S" - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } - else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - ;; - *) - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } - ;; - esac -fi - -if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - { 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 -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 -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -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); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; 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 -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - 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 - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - -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); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; 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_ipa8_conftest.oo \ - 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 - 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 -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 -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shl_load (); -int -main () -{ -return shl_load (); - ; - return 0; -} -_ACEOF -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); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; 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 -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - 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 - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" -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); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; 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_ipa8_conftest.oo \ - 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 - 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 -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 -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -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); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; 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 -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - 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 - 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 -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 -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -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); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; 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 -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - 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 - 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 -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 -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dld_link (); -int -main () -{ -return dld_link (); - ; - return 0; -} -_ACEOF -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); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; 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 -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - 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 - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - { 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 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } - else - puts (dlerror ()); - - exit (status); -} -EOF - if { (eval echo "$as_me:$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 - (./conftest; exit; ) >&5 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no - fi -fi -rm -fr conftest* - - -fi -{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6; } - - if test "x$lt_cv_dlopen_self" = xyes; then - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - { 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 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self_static=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } - else - puts (dlerror ()); - - exit (status); -} -EOF - if { (eval echo "$as_me:$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 - (./conftest; exit; ) >&5 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* - - -fi -{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; } - fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi - - -# Report which library types will 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; } - -{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 -echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } -test "$can_build_shared" = "no" && enable_shared=no - -# On AIX, shared libraries and static libraries use the same namespace, and -# are all built from PIC. -case $host_os in -aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - -aix[4-9]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; -esac -{ echo "$as_me:$LINENO: result: $enable_shared" >&5 -echo "${ECHO_T}$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; } -# 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; } - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler \ - CC \ - LD \ - lt_prog_compiler_wl \ - lt_prog_compiler_pic \ - lt_prog_compiler_static \ - lt_prog_compiler_no_builtin_flag \ - export_dynamic_flag_spec \ - thread_safe_flag_spec \ - whole_archive_flag_spec \ - enable_shared_with_static_runtimes \ - old_archive_cmds \ - old_archive_from_new_cmds \ - predep_objects \ - postdep_objects \ - predeps \ - postdeps \ - compiler_lib_search_path \ - compiler_lib_search_dirs \ - archive_cmds \ - archive_expsym_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - old_archive_from_expsyms_cmds \ - allow_undefined_flag \ - no_undefined_flag \ - export_symbols_cmds \ - hardcode_libdir_flag_spec \ - hardcode_libdir_flag_spec_ld \ - hardcode_libdir_separator \ - hardcode_automatic \ - module_cmds \ - module_expsym_cmds \ - lt_cv_prog_compiler_c_o \ - fix_srcfile_path \ - exclude_expsyms \ - include_expsyms; do - - case $var in - old_archive_cmds | \ - old_archive_from_new_cmds | \ - archive_cmds | \ - archive_expsym_cmds | \ - module_cmds | \ - module_expsym_cmds | \ - old_archive_from_expsyms_cmds | \ - export_symbols_cmds | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -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;} - - cat <<__EOF__ >> "$cfgfile" -#! $SHELL - -# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -# Free Software Foundation, Inc. -# -# This file is part of GNU Libtool: -# Originally by Gordon Matzigkeit , 1996 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 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, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# A sed program that does not truncate output. -SED=$lt_SED - -# Sed that helps us avoid accidentally triggering echo(1) options like -n. -Xsed="$SED -e 1s/^X//" - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# The names of the tagged configurations supported by this script. -available_tags= - -# ### BEGIN LIBTOOL CONFIG - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# LTCC compiler flags. -LTCFLAGS=$lt_LTCFLAGS - -# A language-specific compiler. -CC=$lt_compiler - -# Is the compiler the GNU C compiler? -with_gcc=$GCC - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o - -# Must we lock files when doing compilation? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds -archive_expsym_cmds=$lt_archive_expsym_cmds -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds -module_expsym_cmds=$lt_module_expsym_cmds - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps - -# The directories searched by this compiler when creating a shared -# library -compiler_lib_search_dirs=$lt_compiler_lib_search_dirs - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$hardcode_automatic - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=$lt_fix_srcfile_path - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms - -# ### END LIBTOOL CONFIG - -__EOF__ - - - case $host_os in - aix3*) - cat <<\EOF >> "$cfgfile" - -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -EOF - ;; - esac - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) - - mv -f "$cfgfile" "$ofile" || \ - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - -CC="$lt_save_CC" - - -# Check whether --with-tags was given. -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;} - 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;} - else - { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 -echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} - fi - fi - if test -z "$LTCFLAGS"; then - eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" - fi - - # Extract list of available tagged configurations in $ofile. - # Note that this assumes the entire list is on one line. - available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` - - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for tagname in $tagnames; do - IFS="$lt_save_ifs" - # 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; }; } - ;; - 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; }; } - fi - - # Update the list of available tags. - if test -n "$tagname"; then - echo appending configuration tag \"$tagname\" to $ofile - - case $tagname in - CXX) - if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - - - -archive_cmds_need_lc_CXX=no -allow_undefined_flag_CXX= -always_export_symbols_CXX=no -archive_expsym_cmds_CXX= -export_dynamic_flag_spec_CXX= -hardcode_direct_CXX=no -hardcode_libdir_flag_spec_CXX= -hardcode_libdir_flag_spec_ld_CXX= -hardcode_libdir_separator_CXX= -hardcode_minus_L_CXX=no -hardcode_shlibpath_var_CXX=unsupported -hardcode_automatic_CXX=no -module_cmds_CXX= -module_expsym_cmds_CXX= -link_all_deplibs_CXX=unknown -old_archive_cmds_CXX=$old_archive_cmds -no_undefined_flag_CXX= -whole_archive_flag_spec_CXX= -enable_shared_with_static_runtimes_CXX=no - -# Dependencies to place before and after the object being linked: -predep_objects_CXX= -postdep_objects_CXX= -predeps_CXX= -postdeps_CXX= -compiler_lib_search_path_CXX= -compiler_lib_search_dirs_CXX= - -# Source file extension for C++ test sources. -ac_ext=cpp - -# Object file extension for compiled C++ test sources. -objext=o -objext_CXX=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(int, char *[]) { return(0); }' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$rm conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$rm -r conftest* - - -# Allow CC to be a program name with arguments. -lt_save_CC=$CC -lt_save_LD=$LD -lt_save_GCC=$GCC -GCC=$GXX -lt_save_with_gnu_ld=$with_gnu_ld -lt_save_path_LD=$lt_cv_path_LD -if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then - lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx -else - $as_unset lt_cv_prog_gnu_ld -fi -if test -n "${lt_cv_path_LDCXX+set}"; then - lt_cv_path_LD=$lt_cv_path_LDCXX -else - $as_unset lt_cv_path_LD -fi -test -z "${LDCXX+set}" || LD=$LDCXX -CC=${CXX-"c++"} -compiler=$CC -compiler_CXX=$CC -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - -# We don't want -fno-exception wen compiling C++ code, so set the -# no_builtin_flag separately -if test "$GXX" = yes; then - lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' -else - lt_prog_compiler_no_builtin_flag_CXX= -fi - -if test "$GXX" = yes; then - # Set up default GNU C++ configuration - - -# Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then - withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi - -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 -echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; } - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - { echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } -else - { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } -fi -if test "${lt_cv_path_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &5 -echo "${ECHO_T}$LD" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}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 -else - # I'd rather use --version here, but apparently some GNU lds only accept -v. -case `$LD -v 2>&1 &5 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } -with_gnu_ld=$lt_cv_prog_gnu_ld - - - - # Check if GNU C++ uses GNU ld as the underlying linker, since the - # archiving commands below assume that GNU ld is being used. - if test "$with_gnu_ld" = yes; then - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - - hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec_CXX='${wl}--export-dynamic' - - # If archive_cmds runs LD, not CC, wlarc should be empty - # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to - # investigate it a little bit more. (MM) - wlarc='${wl}' - - # ancient GNU ld didn't support --whole-archive et. al. - if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ - grep 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec_CXX= - fi - else - with_gnu_ld=no - wlarc= - - # A generic and very simple default shared library creation - # command for GNU C++ for the case where it uses the native - # linker, instead of GNU ld. If possible, this setting should - # overridden to take advantage of the native linker features on - # the platform it is being used on. - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - fi - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' - -else - GXX=no - with_gnu_ld=no - wlarc= -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; } -ld_shlibs_CXX=yes -case $host_os in - aix3*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - aix[4-9]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) - for ld_flag in $LDFLAGS; do - case $ld_flag in - *-brtl*) - aix_use_runtimelinking=yes - break - ;; - esac - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds_CXX='' - hardcode_direct_CXX=yes - hardcode_libdir_separator_CXX=':' - link_all_deplibs_CXX=yes - - if test "$GXX" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - hardcode_direct_CXX=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L_CXX=yes - hardcode_libdir_flag_spec_CXX='-L$libdir' - hardcode_libdir_separator_CXX= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols_CXX=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag_CXX='-berok' - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -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_ipa8_conftest.oo \ - 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" - - archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag_CXX="-z nodefs" - archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -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_ipa8_conftest.oo \ - 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" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag_CXX=' ${wl}-bernotok' - allow_undefined_flag_CXX=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec_CXX='$convenience' - archive_cmds_need_lc_CXX=yes - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag_CXX=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs_CXX=no - fi - ;; - - chorus*) - case $cc_basename in - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec_CXX='-L$libdir' - allow_undefined_flag_CXX=unsupported - always_export_symbols_CXX=no - enable_shared_with_static_runtimes_CXX=yes - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs_CXX=no - fi - ;; - darwin* | rhapsody*) - archive_cmds_need_lc_CXX=no - hardcode_direct_CXX=no - hardcode_automatic_CXX=yes - hardcode_shlibpath_var_CXX=unsupported - whole_archive_flag_spec_CXX='' - link_all_deplibs_CXX=yes - allow_undefined_flag_CXX="$_lt_dar_allow_undefined" - if test "$GXX" = yes ; then - output_verbose_link_cmd='echo' - archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" - if test "$lt_cv_apple_cc_single_mod" != "yes"; then - archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" - archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" - fi - else - case $cc_basename in - xlc*) - output_verbose_link_cmd='echo' - archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' - module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds - archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - ;; - *) - ld_shlibs_CXX=no - ;; - esac - fi - ;; - - dgux*) - case $cc_basename in - ec++*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - ghcx*) - # Green Hills C++ Compiler - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - freebsd[12]*) - # C++ shared libraries reported to be fairly broken before switch to ELF - ld_shlibs_CXX=no - ;; - freebsd-elf*) - archive_cmds_need_lc_CXX=no - ;; - freebsd* | dragonfly*) - # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF - # conventions - ld_shlibs_CXX=yes - ;; - gnu*) - ;; - hpux9*) - hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_CXX=: - export_dynamic_flag_spec_CXX='${wl}-E' - hardcode_direct_CXX=yes - hardcode_minus_L_CXX=yes # Not in the search PATH, - # but as the default - # location of the library. - - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - aCC*) - archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes; then - archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - fi - ;; - esac - ;; - hpux10*|hpux11*) - if test $with_gnu_ld = no; then - hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_CXX=: - - case $host_cpu in - hppa*64*|ia64*) ;; - *) - export_dynamic_flag_spec_CXX='${wl}-E' - ;; - esac - fi - case $host_cpu in - hppa*64*|ia64*) - hardcode_direct_CXX=no - hardcode_shlibpath_var_CXX=no - ;; - *) - hardcode_direct_CXX=yes - hardcode_minus_L_CXX=yes # Not in the search PATH, - # but as the default - # location of the library. - ;; - esac - - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - aCC*) - case $host_cpu in - hppa*64*) - archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes; then - if test $with_gnu_ld = no; then - case $host_cpu in - hppa*64*) - archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - fi - else - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - fi - ;; - esac - ;; - interix[3-9]*) - hardcode_direct_CXX=no - hardcode_shlibpath_var_CXX=no - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - export_dynamic_flag_spec_CXX='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - irix5* | irix6*) - case $cc_basename in - CC*) - # SGI C++ - archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - - # Archives containing C++ object files must be created using - # "CC -ar", where "CC" is the IRIX C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' - ;; - *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' - fi - fi - link_all_deplibs_CXX=yes - ;; - esac - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_CXX=: - ;; - linux* | k*bsd*-gnu) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - - hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' - export_dynamic_flag_spec_CXX='${wl}--export-dynamic' - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' - ;; - icpc*) - # Intel C++ - with_gnu_ld=yes - # version 8.0 and above of icpc choke on multiply defined symbols - # if we add $predep_objects and $postdep_objects, however 7.1 and - # earlier do not add the objects themselves. - case `$CC -V 2>&1` in - *"Version 7."*) - archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - *) # Version 8.0 or newer - tmp_idyn= - case $host_cpu in - ia64*) tmp_idyn=' -i_dynamic';; - esac - archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - esac - archive_cmds_need_lc_CXX=no - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - export_dynamic_flag_spec_CXX='${wl}--export-dynamic' - whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - ;; - pgCC* | pgcpp*) - # Portland Group C++ compiler - archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' - - hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec_CXX='${wl}--export-dynamic' - whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - ;; - cxx*) - # Compaq C++ - archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' - - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec_CXX='-rpath $libdir' - hardcode_libdir_separator_CXX=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - no_undefined_flag_CXX=' -zdefs' - archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' - hardcode_libdir_flag_spec_CXX='-R$libdir' - whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - - # Not sure whether something based on - # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 - # would be better. - output_verbose_link_cmd='echo' - - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' - ;; - esac - ;; - esac - ;; - lynxos*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - m88k*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - mvs*) - case $cc_basename in - cxx*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' - wlarc= - hardcode_libdir_flag_spec_CXX='-R$libdir' - hardcode_direct_CXX=yes - hardcode_shlibpath_var_CXX=no - fi - # Workaround some broken pre-1.5 toolchains - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' - ;; - openbsd2*) - # C++ shared libraries are fairly broken - ld_shlibs_CXX=no - ;; - openbsd*) - if test -f /usr/libexec/ld.so; then - hardcode_direct_CXX=yes - hardcode_shlibpath_var_CXX=no - archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' - export_dynamic_flag_spec_CXX='${wl}-E' - whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - fi - output_verbose_link_cmd='echo' - else - ld_shlibs_CXX=no - fi - ;; - osf3*) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - hardcode_libdir_separator_CXX=: - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' - - ;; - RCC*) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - cxx*) - allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_CXX=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_CXX=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' - - else - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - fi - ;; - esac - ;; - osf4* | osf5*) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - hardcode_libdir_separator_CXX=: - - # Archives containing C++ object files must be created using - # the KAI C++ compiler. - old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' - ;; - RCC*) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - cxx*) - allow_undefined_flag_CXX=' -expect_unresolved \*' - archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ - echo "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ - $rm $lib.exp' - - hardcode_libdir_flag_spec_CXX='-rpath $libdir' - hardcode_libdir_separator_CXX=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_CXX=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' - - else - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - fi - ;; - esac - ;; - psos*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - sunos4*) - case $cc_basename in - CC*) - # Sun C++ 4.x - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - lcc*) - # Lucid - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - solaris*) - case $cc_basename in - CC*) - # Sun C++ 4.2, 5.x and Centerline C++ - archive_cmds_need_lc_CXX=yes - no_undefined_flag_CXX=' -zdefs' - archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - hardcode_libdir_flag_spec_CXX='-R$libdir' - hardcode_shlibpath_var_CXX=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. - # Supported since Solaris 2.6 (maybe 2.5.1?) - whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' - ;; - esac - link_all_deplibs_CXX=yes - - output_verbose_link_cmd='echo' - - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' - ;; - gcx*) - # Green Hills C++ Compiler - archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - - # The C++ compiler must be used to create the archive. - old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' - ;; - *) - # GNU C++ compiler with Solaris linker - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - no_undefined_flag_CXX=' ${wl}-z ${wl}defs' - if $CC --version | grep -v '^2\.7' > /dev/null; then - archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" - else - # g++ 2.7 appears to require `-G' NOT `-shared' on this - # platform. - archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" - fi - - hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - ;; - esac - fi - ;; - esac - ;; - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag_CXX='${wl}-z,text' - archive_cmds_need_lc_CXX=no - hardcode_shlibpath_var_CXX=no - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - # So that behaviour is only enabled if SCOABSPATH is set to a - # non-empty value in the environment. Most likely only useful for - # creating official distributions of packages. - # This is a hack until libtool officially supports absolute path - # names for shared libraries. - no_undefined_flag_CXX='${wl}-z,text' - allow_undefined_flag_CXX='${wl}-z,nodefs' - archive_cmds_need_lc_CXX=no - hardcode_shlibpath_var_CXX=no - hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' - hardcode_libdir_separator_CXX=':' - link_all_deplibs_CXX=yes - export_dynamic_flag_spec_CXX='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - tandem*) - case $cc_basename in - NCC*) - # NonStop-UX NCC 3.20 - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - vxworks*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; -esac -{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 -echo "${ECHO_T}$ld_shlibs_CXX" >&6; } -test "$ld_shlibs_CXX" = no && can_build_shared=no - -GCC_CXX="$GXX" -LD_CXX="$LD" - -cat > conftest.$ac_ext <&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Parse the compiler output and extract the necessary - # objects, libraries and library flags. - - # Sentinel used to keep track of whether or not we are before - # the conftest object file. - pre_test_object_deps_done=no - - # The `*' in the case matches for architectures that use `case' in - # $output_verbose_cmd can trigger glob expansion during the loop - # eval without this substitution. - output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` - - for p in `eval $output_verbose_link_cmd`; do - case $p in - - -L* | -R* | -l*) - # Some compilers place space between "-{L,R}" and the path. - # Remove the space. - if test $p = "-L" \ - || test $p = "-R"; then - prev=$p - continue - else - prev= - fi - - if test "$pre_test_object_deps_done" = no; then - case $p in - -L* | -R*) - # Internal compiler library paths should come after those - # provided the user. The postdeps already come after the - # user supplied libs so there is no need to process them. - if test -z "$compiler_lib_search_path_CXX"; then - compiler_lib_search_path_CXX="${prev}${p}" - else - compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" - fi - ;; - # The "-l" case would never come before the object being - # linked, so don't bother handling this case. - esac - else - if test -z "$postdeps_CXX"; then - postdeps_CXX="${prev}${p}" - else - postdeps_CXX="${postdeps_CXX} ${prev}${p}" - fi - fi - ;; - - *.$objext) - # This assumes that the test object file only shows up - # once in the compiler output. - if test "$p" = "conftest.$objext"; then - pre_test_object_deps_done=yes - continue - fi - - if test "$pre_test_object_deps_done" = no; then - if test -z "$predep_objects_CXX"; then - predep_objects_CXX="$p" - else - predep_objects_CXX="$predep_objects_CXX $p" - fi - else - if test -z "$postdep_objects_CXX"; then - postdep_objects_CXX="$p" - else - postdep_objects_CXX="$postdep_objects_CXX $p" - fi - fi - ;; - - *) ;; # Ignore the rest. - - esac - done - - # Clean up. - rm -f a.out a.exe -else - echo "libtool.m4: error: problem compiling CXX test program" -fi - -$rm -f confest.$objext - -compiler_lib_search_dirs_CXX= -if test -n "$compiler_lib_search_path_CXX"; then - compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` -fi - -# PORTME: override above test on systems where it is broken -case $host_os in -interix[3-9]*) - # Interix 3.5 installs completely hosed .la files for C++, so rather than - # hack all around it, let's just trust "g++" to DTRT. - predep_objects_CXX= - postdep_objects_CXX= - postdeps_CXX= - ;; - -linux*) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - # - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - if test "$solaris_use_stlport4" != yes; then - postdeps_CXX='-library=Cstd -library=Crun' - fi - ;; - esac - ;; - -solaris*) - case $cc_basename in - CC*) - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - - # Adding this requires a known-good setup of shared libraries for - # Sun compiler versions before 5.6, else PIC objects from an old - # archive will be linked into the output, leading to subtle bugs. - if test "$solaris_use_stlport4" != yes; then - postdeps_CXX='-library=Cstd -library=Crun' - fi - ;; - esac - ;; -esac - -case " $postdeps_CXX " in -*" -lc "*) archive_cmds_need_lc_CXX=no ;; -esac - -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; } - - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_CXX='-Bstatic' - fi - ;; - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' - ;; - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - mingw* | cygwin* | os2* | pw32*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - lt_prog_compiler_pic_CXX='-DDLL_EXPORT' - ;; - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic_CXX='-fno-common' - ;; - *djgpp*) - # DJGPP does not support shared libraries at all - lt_prog_compiler_pic_CXX= - ;; - interix[3-9]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic_CXX=-Kconform_pic - fi - ;; - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - ;; - *) - lt_prog_compiler_pic_CXX='-fPIC' - ;; - esac - ;; - *) - lt_prog_compiler_pic_CXX='-fPIC' - ;; - esac - else - case $host_os in - aix[4-9]*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_CXX='-Bstatic' - else - lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' - fi - ;; - chorus*) - case $cc_basename in - cxch68*) - # Green Hills C++ Compiler - # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" - ;; - esac - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case $cc_basename in - xlc*) - lt_prog_compiler_pic_CXX='-qnocommon' - lt_prog_compiler_wl_CXX='-Wl,' - ;; - esac - ;; - dgux*) - case $cc_basename in - ec++*) - lt_prog_compiler_pic_CXX='-KPIC' - ;; - ghcx*) - # Green Hills C++ Compiler - lt_prog_compiler_pic_CXX='-pic' - ;; - *) - ;; - esac - ;; - freebsd* | dragonfly*) - # FreeBSD uses GNU C++ - ;; - hpux9* | hpux10* | hpux11*) - case $cc_basename in - CC*) - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' - if test "$host_cpu" != ia64; then - lt_prog_compiler_pic_CXX='+Z' - fi - ;; - aCC*) - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic_CXX='+Z' - ;; - esac - ;; - *) - ;; - esac - ;; - interix*) - # This is c89, which is MS Visual C++ (no shared libs) - # Anyone wants to do a port? - ;; - irix5* | irix6* | nonstopux*) - case $cc_basename in - CC*) - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX='-non_shared' - # CC pic flag -KPIC is the default. - ;; - *) - ;; - esac - ;; - linux* | k*bsd*-gnu) - case $cc_basename in - KCC*) - # KAI C++ Compiler - lt_prog_compiler_wl_CXX='--backend -Wl,' - lt_prog_compiler_pic_CXX='-fPIC' - ;; - icpc* | ecpc*) - # Intel C++ - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_pic_CXX='-KPIC' - lt_prog_compiler_static_CXX='-static' - ;; - pgCC* | pgcpp*) - # Portland Group C++ compiler. - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_pic_CXX='-fpic' - lt_prog_compiler_static_CXX='-Bstatic' - ;; - cxx*) - # Compaq C++ - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - lt_prog_compiler_pic_CXX= - lt_prog_compiler_static_CXX='-non_shared' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - lt_prog_compiler_pic_CXX='-KPIC' - lt_prog_compiler_static_CXX='-Bstatic' - lt_prog_compiler_wl_CXX='-Qoption ld ' - ;; - esac - ;; - esac - ;; - lynxos*) - ;; - m88k*) - ;; - mvs*) - case $cc_basename in - cxx*) - lt_prog_compiler_pic_CXX='-W c,exportall' - ;; - *) - ;; - esac - ;; - netbsd* | netbsdelf*-gnu) - ;; - osf3* | osf4* | osf5*) - case $cc_basename in - KCC*) - lt_prog_compiler_wl_CXX='--backend -Wl,' - ;; - RCC*) - # Rational C++ 2.4.1 - lt_prog_compiler_pic_CXX='-pic' - ;; - cxx*) - # Digital/Compaq C++ - lt_prog_compiler_wl_CXX='-Wl,' - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - lt_prog_compiler_pic_CXX= - lt_prog_compiler_static_CXX='-non_shared' - ;; - *) - ;; - esac - ;; - psos*) - ;; - solaris*) - case $cc_basename in - CC*) - # Sun C++ 4.2, 5.x and Centerline C++ - lt_prog_compiler_pic_CXX='-KPIC' - lt_prog_compiler_static_CXX='-Bstatic' - lt_prog_compiler_wl_CXX='-Qoption ld ' - ;; - gcx*) - # Green Hills C++ Compiler - lt_prog_compiler_pic_CXX='-PIC' - ;; - *) - ;; - esac - ;; - sunos4*) - case $cc_basename in - CC*) - # Sun C++ 4.x - lt_prog_compiler_pic_CXX='-pic' - lt_prog_compiler_static_CXX='-Bstatic' - ;; - lcc*) - # Lucid - lt_prog_compiler_pic_CXX='-pic' - ;; - *) - ;; - esac - ;; - tandem*) - case $cc_basename in - NCC*) - # NonStop-UX NCC 3.20 - lt_prog_compiler_pic_CXX='-KPIC' - ;; - *) - ;; - esac - ;; - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - case $cc_basename in - CC*) - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_pic_CXX='-KPIC' - lt_prog_compiler_static_CXX='-Bstatic' - ;; - esac - ;; - vxworks*) - ;; - *) - lt_prog_compiler_can_build_shared_CXX=no - ;; - esac - fi - -{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 -echo "${ECHO_T}$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_cv_prog_compiler_pic_works_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_pic_works_CXX=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:13110: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:13114: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_pic_works_CXX=yes - fi - fi - $rm conftest* - -fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_pic_works_CXX" >&6; } - -if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then - case $lt_prog_compiler_pic_CXX in - "" | " "*) ;; - *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; - esac -else - lt_prog_compiler_pic_CXX= - lt_prog_compiler_can_build_shared_CXX=no -fi - -fi -case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic_CXX= - ;; - *) - lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" - ;; -esac - -# -# Check to make sure the static flag actually works. -# -wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" -{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } -if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_static_works_CXX=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_tmp_static_flag" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_static_works_CXX=yes - fi - else - lt_cv_prog_compiler_static_works_CXX=yes - fi - fi - $rm -r conftest* - LDFLAGS="$save_LDFLAGS" - -fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_CXX" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_static_works_CXX" >&6; } - -if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then - : -else - lt_prog_compiler_static_CXX= -fi - - -{ 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 -else - lt_cv_prog_compiler_c_o_CXX=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:13214: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:13218: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o_CXX=yes - fi - fi - chmod u+w . 2>&5 - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $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; } - - -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; } - 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; } - 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;} - 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; } - - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - case $host_os in - aix[4-9]*) - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - fi - ;; - pw32*) - export_symbols_cmds_CXX="$ltdll_cmds" - ;; - cygwin* | mingw*) - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' - ;; - linux* | k*bsd*-gnu) - link_all_deplibs_CXX=no - ;; - *) - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; - esac - exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' - -{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 -echo "${ECHO_T}$ld_shlibs_CXX" >&6; } -test "$ld_shlibs_CXX" = no && can_build_shared=no - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc_CXX" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc_CXX=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds_CXX in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - { 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; } - $rm conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$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 - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl_CXX - pic_flag=$lt_prog_compiler_pic_CXX - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag_CXX - allow_undefined_flag_CXX= - if { (eval echo "$as_me:$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); } - then - archive_cmds_need_lc_CXX=no - else - archive_cmds_need_lc_CXX=yes - fi - allow_undefined_flag_CXX=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 -echo "${ECHO_T}$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; } -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" - -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix[4-9]*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[45]*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' - - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[123]*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ - freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -interix[3-9]*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux* | k*bsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -netbsdelf*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='NetBSD ld.elf_so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -nto-qnx*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -openbsd*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - export_dynamic_flag_spec='${wl}-Blargedynsym' - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - shlibpath_overrides_runpath=no - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - shlibpath_overrides_runpath=yes - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6; } -test "$dynamic_linker" = no && can_build_shared=no - -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec" -fi - -sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec" -fi - -sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -{ 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; } -hardcode_action_CXX= -if test -n "$hardcode_libdir_flag_spec_CXX" || \ - test -n "$runpath_var_CXX" || \ - test "X$hardcode_automatic_CXX" = "Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct_CXX" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && - test "$hardcode_minus_L_CXX" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action_CXX=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action_CXX=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action_CXX=unsupported -fi -{ echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 -echo "${ECHO_T}$hardcode_action_CXX" >&6; } - -if test "$hardcode_action_CXX" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_CXX \ - CC_CXX \ - LD_CXX \ - lt_prog_compiler_wl_CXX \ - lt_prog_compiler_pic_CXX \ - lt_prog_compiler_static_CXX \ - lt_prog_compiler_no_builtin_flag_CXX \ - export_dynamic_flag_spec_CXX \ - thread_safe_flag_spec_CXX \ - whole_archive_flag_spec_CXX \ - enable_shared_with_static_runtimes_CXX \ - old_archive_cmds_CXX \ - old_archive_from_new_cmds_CXX \ - predep_objects_CXX \ - postdep_objects_CXX \ - predeps_CXX \ - postdeps_CXX \ - compiler_lib_search_path_CXX \ - compiler_lib_search_dirs_CXX \ - archive_cmds_CXX \ - archive_expsym_cmds_CXX \ - postinstall_cmds_CXX \ - postuninstall_cmds_CXX \ - old_archive_from_expsyms_cmds_CXX \ - allow_undefined_flag_CXX \ - no_undefined_flag_CXX \ - export_symbols_cmds_CXX \ - hardcode_libdir_flag_spec_CXX \ - hardcode_libdir_flag_spec_ld_CXX \ - hardcode_libdir_separator_CXX \ - hardcode_automatic_CXX \ - module_cmds_CXX \ - module_expsym_cmds_CXX \ - lt_cv_prog_compiler_c_o_CXX \ - fix_srcfile_path_CXX \ - exclude_expsyms_CXX \ - include_expsyms_CXX; do - - case $var in - old_archive_cmds_CXX | \ - old_archive_from_new_cmds_CXX | \ - archive_cmds_CXX | \ - archive_expsym_cmds_CXX | \ - module_cmds_CXX | \ - module_expsym_cmds_CXX | \ - old_archive_from_expsyms_cmds_CXX | \ - export_symbols_cmds_CXX | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc_CXX - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# LTCC compiler flags. -LTCFLAGS=$lt_LTCFLAGS - -# A language-specific compiler. -CC=$lt_compiler_CXX - -# Is the compiler the GNU C compiler? -with_gcc=$GCC_CXX - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD_CXX - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_CXX - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic_CXX -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX - -# Must we lock files when doing compilation? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static_CXX - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds_CXX -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds_CXX -archive_expsym_cmds=$lt_archive_expsym_cmds_CXX -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds_CXX -module_expsym_cmds=$lt_module_expsym_cmds_CXX - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects_CXX - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects_CXX - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps_CXX - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps_CXX - -# The directories searched by this compiler when creating a shared -# library -compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_CXX - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag_CXX - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag_CXX - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action_CXX - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct_CXX - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L_CXX - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$hardcode_automatic_CXX - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs_CXX - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=$lt_fix_srcfile_path - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols_CXX - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds_CXX - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms_CXX - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms_CXX - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - -CC=$lt_save_CC -LDCXX=$LD -LD=$lt_save_LD -GCC=$lt_save_GCC -with_gnu_ldcxx=$with_gnu_ld -with_gnu_ld=$lt_save_with_gnu_ld -lt_cv_path_LDCXX=$lt_cv_path_LD -lt_cv_path_LD=$lt_save_path_LD -lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld -lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld - - else - tagname="" - fi - ;; - - F77) - if test -n "$F77" && test "X$F77" != "Xno"; then - -ac_ext=f -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 - - -archive_cmds_need_lc_F77=no -allow_undefined_flag_F77= -always_export_symbols_F77=no -archive_expsym_cmds_F77= -export_dynamic_flag_spec_F77= -hardcode_direct_F77=no -hardcode_libdir_flag_spec_F77= -hardcode_libdir_flag_spec_ld_F77= -hardcode_libdir_separator_F77= -hardcode_minus_L_F77=no -hardcode_automatic_F77=no -module_cmds_F77= -module_expsym_cmds_F77= -link_all_deplibs_F77=unknown -old_archive_cmds_F77=$old_archive_cmds -no_undefined_flag_F77= -whole_archive_flag_spec_F77= -enable_shared_with_static_runtimes_F77=no - -# Source file extension for f77 test sources. -ac_ext=f - -# Object file extension for compiled f77 test sources. -objext=o -objext_F77=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="\ - subroutine t - return - end -" - -# Code to be used in simple link tests -lt_simple_link_test_code="\ - program t - end -" - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$rm conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$rm -r conftest* - - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${F77-"f77"} -compiler=$CC -compiler_F77=$CC -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - -{ 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; } - -{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 -echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } -test "$can_build_shared" = "no" && enable_shared=no - -# On AIX, shared libraries and static libraries use the same namespace, and -# are all built from PIC. -case $host_os in -aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; -aix[4-9]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; -esac -{ echo "$as_me:$LINENO: result: $enable_shared" >&5 -echo "${ECHO_T}$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; } -# 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; } - -GCC_F77="$G77" -LD_F77="$LD" - -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; } - - if test "$GCC" = yes; then - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_static_F77='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_F77='-Bstatic' - fi - ;; - - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - lt_prog_compiler_pic_F77='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic_F77='-fno-common' - ;; - - interix[3-9]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - lt_prog_compiler_can_build_shared_F77=no - enable_shared=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic_F77=-Kconform_pic - fi - ;; - - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic_F77='-fPIC' - ;; - esac - ;; - - *) - lt_prog_compiler_pic_F77='-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl_F77='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_F77='-Bstatic' - else - lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' - fi - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case $cc_basename in - xlc*) - lt_prog_compiler_pic_F77='-qnocommon' - lt_prog_compiler_wl_F77='-Wl,' - ;; - esac - ;; - - mingw* | cygwin* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic_F77='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl_F77='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic_F77='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static_F77='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl_F77='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static_F77='-non_shared' - ;; - - newsos6) - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - linux* | k*bsd*-gnu) - case $cc_basename in - icc* | ecc*) - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-static' - ;; - pgcc* | pgf77* | pgf90* | pgf95*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_pic_F77='-fpic' - lt_prog_compiler_static_F77='-Bstatic' - ;; - ccc*) - lt_prog_compiler_wl_F77='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static_F77='-non_shared' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C 5.9 - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - lt_prog_compiler_wl_F77='-Wl,' - ;; - *Sun\ F*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - lt_prog_compiler_wl_F77='' - ;; - esac - ;; - esac - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl_F77='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static_F77='-non_shared' - ;; - - rdos*) - lt_prog_compiler_static_F77='-non_shared' - ;; - - solaris*) - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - case $cc_basename in - f77* | f90* | f95*) - lt_prog_compiler_wl_F77='-Qoption ld ';; - *) - lt_prog_compiler_wl_F77='-Wl,';; - esac - ;; - - sunos4*) - lt_prog_compiler_wl_F77='-Qoption ld ' - lt_prog_compiler_pic_F77='-PIC' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - lt_prog_compiler_pic_F77='-Kconform_pic' - lt_prog_compiler_static_F77='-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - unicos*) - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_can_build_shared_F77=no - ;; - - uts4*) - lt_prog_compiler_pic_F77='-pic' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared_F77=no - ;; - esac - fi - -{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 -echo "${ECHO_T}$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_cv_prog_compiler_pic_works_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_pic_works_F77=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic_F77" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:14812: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:14816: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_pic_works_F77=yes - fi - fi - $rm conftest* - -fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_F77" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_pic_works_F77" >&6; } - -if test x"$lt_cv_prog_compiler_pic_works_F77" = xyes; then - case $lt_prog_compiler_pic_F77 in - "" | " "*) ;; - *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; - esac -else - lt_prog_compiler_pic_F77= - lt_prog_compiler_can_build_shared_F77=no -fi - -fi -case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic_F77= - ;; - *) - lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" - ;; -esac - -# -# Check to make sure the static flag actually works. -# -wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" -{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } -if test "${lt_cv_prog_compiler_static_works_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_static_works_F77=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_tmp_static_flag" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_static_works_F77=yes - fi - else - lt_cv_prog_compiler_static_works_F77=yes - fi - fi - $rm -r conftest* - LDFLAGS="$save_LDFLAGS" - -fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_F77" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_static_works_F77" >&6; } - -if test x"$lt_cv_prog_compiler_static_works_F77" = xyes; then - : -else - lt_prog_compiler_static_F77= -fi - - -{ 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 -else - lt_cv_prog_compiler_c_o_F77=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:14916: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:14920: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o_F77=yes - fi - fi - chmod u+w . 2>&5 - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $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; } - - -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; } - 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; } - 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;} - 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; } - - runpath_var= - allow_undefined_flag_F77= - enable_shared_with_static_runtimes_F77=no - archive_cmds_F77= - archive_expsym_cmds_F77= - old_archive_From_new_cmds_F77= - old_archive_from_expsyms_cmds_F77= - export_dynamic_flag_spec_F77= - whole_archive_flag_spec_F77= - thread_safe_flag_spec_F77= - hardcode_libdir_flag_spec_F77= - hardcode_libdir_flag_spec_ld_F77= - hardcode_libdir_separator_F77= - hardcode_direct_F77=no - hardcode_minus_L_F77=no - hardcode_shlibpath_var_F77=unsupported - link_all_deplibs_F77=unknown - hardcode_automatic_F77=no - module_cmds_F77= - module_expsym_cmds_F77= - always_export_symbols_F77=no - export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms_F77= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - exclude_expsyms_F77='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - # Exclude shared library initialization/finalization symbols. - extract_expsyms_cmds= - # Just being paranoid about ensuring that cc_basename is set. - for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - case $host_os in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - ld_shlibs_F77=yes - if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec_F77='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec_F77= - fi - supports_anon_versioning=no - case `$LD -v 2>/dev/null` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - - # See if GNU ld supports shared libraries. - case $host_os in - aix[3-9]*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs_F77=no - cat <&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - fi - ;; - - amigaos*) - archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_minus_L_F77=yes - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - ld_shlibs_F77=no - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag_F77=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs_F77=no - fi - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec_F77='-L$libdir' - allow_undefined_flag_F77=unsupported - always_export_symbols_F77=no - enable_shared_with_static_runtimes_F77=yes - export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs_F77=no - fi - ;; - - interix[3-9]*) - hardcode_direct_F77=no - hardcode_shlibpath_var_F77=no - hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' - export_dynamic_flag_spec_F77='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | k*bsd*-gnu) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - tmp_addflag= - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers - whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec_F77='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - *) - tmp_sharedflag='-shared' ;; - esac - archive_cmds_F77='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - - if test $supports_anon_versioning = yes; then - archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - $echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - link_all_deplibs_F77=no - else - ld_shlibs_F77=no - fi - ;; - - netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs_F77=no - cat <&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs_F77=no - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) - ld_shlibs_F77=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' - archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' - else - ld_shlibs_F77=no - fi - ;; - esac - ;; - - sunos4*) - archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs_F77=no - fi - ;; - esac - - if test "$ld_shlibs_F77" = no; then - runpath_var= - hardcode_libdir_flag_spec_F77= - export_dynamic_flag_spec_F77= - whole_archive_flag_spec_F77= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag_F77=unsupported - always_export_symbols_F77=yes - archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L_F77=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct_F77=unsupported - fi - ;; - - aix[4-9]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds_F77='' - hardcode_direct_F77=yes - hardcode_libdir_separator_F77=':' - link_all_deplibs_F77=yes - - if test "$GCC" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - hardcode_direct_F77=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L_F77=yes - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_libdir_separator_F77= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols_F77=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag_F77='-berok' - # Determine the default libpath from the value encoded in an empty executable. - 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); } && { - test -z "$ac_f77_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -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_ipa8_conftest.oo \ - 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" - archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag_F77="-z nodefs" - archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - 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); } && { - test -z "$ac_f77_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -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_ipa8_conftest.oo \ - 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" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag_F77=' ${wl}-bernotok' - allow_undefined_flag_F77=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec_F77='$convenience' - archive_cmds_need_lc_F77=yes - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_minus_L_F77=yes - # see comment about different semantics on the GNU ld section - ld_shlibs_F77=no - ;; - - bsdi[45]*) - export_dynamic_flag_spec_F77=-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec_F77=' ' - allow_undefined_flag_F77=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_From_new_cmds_F77='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds_F77='lib -OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path_F77='`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes_F77=yes - ;; - - darwin* | rhapsody*) - case $host_os in - rhapsody* | darwin1.[012]) - allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - archive_cmds_need_lc_F77=no - hardcode_direct_F77=no - hardcode_automatic_F77=yes - hardcode_shlibpath_var_F77=unsupported - whole_archive_flag_spec_F77='' - link_all_deplibs_F77=yes - if test "$GCC" = yes ; then - output_verbose_link_cmd='echo' - archive_cmds_F77="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - module_cmds_F77="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - archive_expsym_cmds_F77="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - module_expsym_cmds_F77="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" - else - case $cc_basename in - xlc*) - output_verbose_link_cmd='echo' - archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' - module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds - archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - ;; - *) - ld_shlibs_F77=no - ;; - esac - fi - ;; - - dgux*) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_shlibpath_var_F77=no - ;; - - freebsd1*) - ld_shlibs_F77=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec_F77='-R$libdir' - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=yes - hardcode_minus_L_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) - archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_F77='-R$libdir' - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - hpux9*) - if test "$GCC" = yes; then - archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_F77=: - hardcode_direct_F77=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_F77=yes - export_dynamic_flag_spec_F77='${wl}-E' - ;; - - hpux10*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_F77=: - - hardcode_direct_F77=yes - export_dynamic_flag_spec_F77='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_F77=yes - fi - ;; - - hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_F77=: - - case $host_cpu in - hppa*64*|ia64*) - hardcode_libdir_flag_spec_ld_F77='+b $libdir' - hardcode_direct_F77=no - hardcode_shlibpath_var_F77=no - ;; - *) - hardcode_direct_F77=yes - export_dynamic_flag_spec_F77='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_F77=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' - fi - hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_F77=: - link_all_deplibs_F77=yes - ;; - - netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec_F77='-R$libdir' - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - newsos6) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=yes - hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_F77=: - hardcode_shlibpath_var_F77=no - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' - export_dynamic_flag_spec_F77='${wl}-E' - else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_F77='-R$libdir' - ;; - *) - archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' - ;; - esac - fi - else - ld_shlibs_F77=no - fi - ;; - - os2*) - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_minus_L_F77=yes - allow_undefined_flag_F77=unsupported - archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag_F77=' -expect_unresolved \*' - archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_F77=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag_F77=' -expect_unresolved \*' - archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' - - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec_F77='-rpath $libdir' - fi - hardcode_libdir_separator_F77=: - ;; - - solaris*) - no_undefined_flag_F77=' -z text' - if test "$GCC" = yes; then - wlarc='${wl}' - archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' - else - wlarc='' - archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - fi - hardcode_libdir_flag_spec_F77='-R$libdir' - hardcode_shlibpath_var_F77=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - whole_archive_flag_spec_F77='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' - fi - ;; - esac - link_all_deplibs_F77=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_direct_F77=yes - hardcode_minus_L_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds_F77='$CC -r -o $output$reload_objs' - hardcode_direct_F77=no - ;; - motorola) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var_F77=no - ;; - - sysv4.3*) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_F77=no - export_dynamic_flag_spec_F77='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_F77=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs_F77=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag_F77='${wl}-z,text' - archive_cmds_need_lc_F77=no - hardcode_shlibpath_var_F77=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - no_undefined_flag_F77='${wl}-z,text' - allow_undefined_flag_F77='${wl}-z,nodefs' - archive_cmds_need_lc_F77=no - hardcode_shlibpath_var_F77=no - hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' - hardcode_libdir_separator_F77=':' - link_all_deplibs_F77=yes - export_dynamic_flag_spec_F77='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_shlibpath_var_F77=no - ;; - - *) - ld_shlibs_F77=no - ;; - esac - fi - -{ echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 -echo "${ECHO_T}$ld_shlibs_F77" >&6; } -test "$ld_shlibs_F77" = no && can_build_shared=no - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc_F77" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc_F77=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds_F77 in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - { 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; } - $rm conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$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 - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl_F77 - pic_flag=$lt_prog_compiler_pic_F77 - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - 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 - (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); } - then - archive_cmds_need_lc_F77=no - else - archive_cmds_need_lc_F77=yes - fi - allow_undefined_flag_F77=$lt_save_allow_undefined_flag - else - 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; } - ;; - esac - fi - ;; -esac - -{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" - -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix[4-9]*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[45]*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' - - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[123]*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ - freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -interix[3-9]*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux* | k*bsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -netbsdelf*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='NetBSD ld.elf_so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -nto-qnx*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -openbsd*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - export_dynamic_flag_spec='${wl}-Blargedynsym' - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - shlibpath_overrides_runpath=no - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - shlibpath_overrides_runpath=yes - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6; } -test "$dynamic_linker" = no && can_build_shared=no - -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec" -fi - -sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec" -fi - -sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -{ 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; } -hardcode_action_F77= -if test -n "$hardcode_libdir_flag_spec_F77" || \ - test -n "$runpath_var_F77" || \ - test "X$hardcode_automatic_F77" = "Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct_F77" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && - test "$hardcode_minus_L_F77" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action_F77=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action_F77=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action_F77=unsupported -fi -{ echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 -echo "${ECHO_T}$hardcode_action_F77" >&6; } - -if test "$hardcode_action_F77" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_F77 \ - CC_F77 \ - LD_F77 \ - lt_prog_compiler_wl_F77 \ - lt_prog_compiler_pic_F77 \ - lt_prog_compiler_static_F77 \ - lt_prog_compiler_no_builtin_flag_F77 \ - export_dynamic_flag_spec_F77 \ - thread_safe_flag_spec_F77 \ - whole_archive_flag_spec_F77 \ - enable_shared_with_static_runtimes_F77 \ - old_archive_cmds_F77 \ - old_archive_from_new_cmds_F77 \ - predep_objects_F77 \ - postdep_objects_F77 \ - predeps_F77 \ - postdeps_F77 \ - compiler_lib_search_path_F77 \ - compiler_lib_search_dirs_F77 \ - archive_cmds_F77 \ - archive_expsym_cmds_F77 \ - postinstall_cmds_F77 \ - postuninstall_cmds_F77 \ - old_archive_from_expsyms_cmds_F77 \ - allow_undefined_flag_F77 \ - no_undefined_flag_F77 \ - export_symbols_cmds_F77 \ - hardcode_libdir_flag_spec_F77 \ - hardcode_libdir_flag_spec_ld_F77 \ - hardcode_libdir_separator_F77 \ - hardcode_automatic_F77 \ - module_cmds_F77 \ - module_expsym_cmds_F77 \ - lt_cv_prog_compiler_c_o_F77 \ - fix_srcfile_path_F77 \ - exclude_expsyms_F77 \ - include_expsyms_F77; do - - case $var in - old_archive_cmds_F77 | \ - old_archive_from_new_cmds_F77 | \ - archive_cmds_F77 | \ - archive_expsym_cmds_F77 | \ - module_cmds_F77 | \ - module_expsym_cmds_F77 | \ - old_archive_from_expsyms_cmds_F77 | \ - export_symbols_cmds_F77 | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc_F77 - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# LTCC compiler flags. -LTCFLAGS=$lt_LTCFLAGS - -# A language-specific compiler. -CC=$lt_compiler_F77 - -# Is the compiler the GNU C compiler? -with_gcc=$GCC_F77 - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD_F77 - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_F77 - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic_F77 -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 - -# Must we lock files when doing compilation? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static_F77 - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds_F77 -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds_F77 -archive_expsym_cmds=$lt_archive_expsym_cmds_F77 -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds_F77 -module_expsym_cmds=$lt_module_expsym_cmds_F77 - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects_F77 - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects_F77 - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps_F77 - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps_F77 - -# The directories searched by this compiler when creating a shared -# library -compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_F77 - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_F77 - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag_F77 - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag_F77 - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action_F77 - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct_F77 - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L_F77 - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$hardcode_automatic_F77 - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs_F77 - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=$lt_fix_srcfile_path - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols_F77 - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds_F77 - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms_F77 - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms_F77 - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - -CC="$lt_save_CC" - - else - tagname="" - fi - ;; - - GCJ) - if test -n "$GCJ" && test "X$GCJ" != "Xno"; then - - -# Source file extension for Java test sources. -ac_ext=java - -# Object file extension for compiled Java test sources. -objext=o -objext_GCJ=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="class foo {}" - -# Code to be used in simple link tests -lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$rm conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$rm -r conftest* - - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${GCJ-"gcj"} -compiler=$CC -compiler_GCJ=$CC -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - -# GCJ did not exist at the time GCC didn't implicitly link libc in. -archive_cmds_need_lc_GCJ=no - -old_archive_cmds_GCJ=$old_archive_cmds - - -lt_prog_compiler_no_builtin_flag_GCJ= - -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 -else - lt_cv_prog_compiler_rtti_exceptions=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="-fno-rtti -fno-exceptions" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:17136: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:17140: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_rtti_exceptions=yes - fi - fi - $rm conftest* - -fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -echo "${ECHO_T}$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" -else - : -fi - -fi - -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; } - - if test "$GCC" = yes; then - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_static_GCJ='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_GCJ='-Bstatic' - fi - ;; - - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic_GCJ='-fno-common' - ;; - - interix[3-9]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - lt_prog_compiler_can_build_shared_GCJ=no - enable_shared=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic_GCJ=-Kconform_pic - fi - ;; - - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic_GCJ='-fPIC' - ;; - esac - ;; - - *) - lt_prog_compiler_pic_GCJ='-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl_GCJ='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_GCJ='-Bstatic' - else - lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' - fi - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case $cc_basename in - xlc*) - lt_prog_compiler_pic_GCJ='-qnocommon' - lt_prog_compiler_wl_GCJ='-Wl,' - ;; - esac - ;; - - mingw* | cygwin* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl_GCJ='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic_GCJ='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl_GCJ='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static_GCJ='-non_shared' - ;; - - newsos6) - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - linux* | k*bsd*-gnu) - case $cc_basename in - icc* | ecc*) - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-static' - ;; - pgcc* | pgf77* | pgf90* | pgf95*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_pic_GCJ='-fpic' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - ccc*) - lt_prog_compiler_wl_GCJ='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static_GCJ='-non_shared' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C 5.9 - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - lt_prog_compiler_wl_GCJ='-Wl,' - ;; - *Sun\ F*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - lt_prog_compiler_wl_GCJ='' - ;; - esac - ;; - esac - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl_GCJ='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static_GCJ='-non_shared' - ;; - - rdos*) - lt_prog_compiler_static_GCJ='-non_shared' - ;; - - solaris*) - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - case $cc_basename in - f77* | f90* | f95*) - lt_prog_compiler_wl_GCJ='-Qoption ld ';; - *) - lt_prog_compiler_wl_GCJ='-Wl,';; - esac - ;; - - sunos4*) - lt_prog_compiler_wl_GCJ='-Qoption ld ' - lt_prog_compiler_pic_GCJ='-PIC' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - lt_prog_compiler_pic_GCJ='-Kconform_pic' - lt_prog_compiler_static_GCJ='-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - unicos*) - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_can_build_shared_GCJ=no - ;; - - uts4*) - lt_prog_compiler_pic_GCJ='-pic' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared_GCJ=no - ;; - esac - fi - -{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 -echo "${ECHO_T}$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_cv_prog_compiler_pic_works_GCJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_pic_works_GCJ=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic_GCJ" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:17426: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:17430: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_pic_works_GCJ=yes - fi - fi - $rm conftest* - -fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_GCJ" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_pic_works_GCJ" >&6; } - -if test x"$lt_cv_prog_compiler_pic_works_GCJ" = xyes; then - case $lt_prog_compiler_pic_GCJ in - "" | " "*) ;; - *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; - esac -else - lt_prog_compiler_pic_GCJ= - lt_prog_compiler_can_build_shared_GCJ=no -fi - -fi -case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic_GCJ= - ;; - *) - lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" - ;; -esac - -# -# Check to make sure the static flag actually works. -# -wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" -{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } -if test "${lt_cv_prog_compiler_static_works_GCJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_static_works_GCJ=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_tmp_static_flag" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_static_works_GCJ=yes - fi - else - lt_cv_prog_compiler_static_works_GCJ=yes - fi - fi - $rm -r conftest* - LDFLAGS="$save_LDFLAGS" - -fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_GCJ" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_static_works_GCJ" >&6; } - -if test x"$lt_cv_prog_compiler_static_works_GCJ" = xyes; then - : -else - lt_prog_compiler_static_GCJ= -fi - - -{ 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 -else - lt_cv_prog_compiler_c_o_GCJ=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:17530: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:17534: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o_GCJ=yes - fi - fi - chmod u+w . 2>&5 - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $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; } - - -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; } - 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; } - 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;} - 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; } - - runpath_var= - allow_undefined_flag_GCJ= - enable_shared_with_static_runtimes_GCJ=no - archive_cmds_GCJ= - archive_expsym_cmds_GCJ= - old_archive_From_new_cmds_GCJ= - old_archive_from_expsyms_cmds_GCJ= - export_dynamic_flag_spec_GCJ= - whole_archive_flag_spec_GCJ= - thread_safe_flag_spec_GCJ= - hardcode_libdir_flag_spec_GCJ= - hardcode_libdir_flag_spec_ld_GCJ= - hardcode_libdir_separator_GCJ= - hardcode_direct_GCJ=no - hardcode_minus_L_GCJ=no - hardcode_shlibpath_var_GCJ=unsupported - link_all_deplibs_GCJ=unknown - hardcode_automatic_GCJ=no - module_cmds_GCJ= - module_expsym_cmds_GCJ= - always_export_symbols_GCJ=no - export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms_GCJ= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - exclude_expsyms_GCJ='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - # Exclude shared library initialization/finalization symbols. - extract_expsyms_cmds= - # Just being paranoid about ensuring that cc_basename is set. - for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - case $host_os in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - ld_shlibs_GCJ=yes - if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec_GCJ= - fi - supports_anon_versioning=no - case `$LD -v 2>/dev/null` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - - # See if GNU ld supports shared libraries. - case $host_os in - aix[3-9]*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs_GCJ=no - cat <&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - fi - ;; - - amigaos*) - archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_minus_L_GCJ=yes - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - ld_shlibs_GCJ=no - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag_GCJ=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs_GCJ=no - fi - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec_GCJ='-L$libdir' - allow_undefined_flag_GCJ=unsupported - always_export_symbols_GCJ=no - enable_shared_with_static_runtimes_GCJ=yes - export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs_GCJ=no - fi - ;; - - interix[3-9]*) - hardcode_direct_GCJ=no - hardcode_shlibpath_var_GCJ=no - hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' - export_dynamic_flag_spec_GCJ='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | k*bsd*-gnu) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - tmp_addflag= - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers - whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec_GCJ='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - *) - tmp_sharedflag='-shared' ;; - esac - archive_cmds_GCJ='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - - if test $supports_anon_versioning = yes; then - archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - $echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - link_all_deplibs_GCJ=no - else - ld_shlibs_GCJ=no - fi - ;; - - netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs_GCJ=no - cat <&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs_GCJ=no - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) - ld_shlibs_GCJ=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' - archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' - else - ld_shlibs_GCJ=no - fi - ;; - esac - ;; - - sunos4*) - archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs_GCJ=no - fi - ;; - esac - - if test "$ld_shlibs_GCJ" = no; then - runpath_var= - hardcode_libdir_flag_spec_GCJ= - export_dynamic_flag_spec_GCJ= - whole_archive_flag_spec_GCJ= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag_GCJ=unsupported - always_export_symbols_GCJ=yes - archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L_GCJ=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct_GCJ=unsupported - fi - ;; - - aix[4-9]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds_GCJ='' - hardcode_direct_GCJ=yes - hardcode_libdir_separator_GCJ=':' - link_all_deplibs_GCJ=yes - - if test "$GCC" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - hardcode_direct_GCJ=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L_GCJ=yes - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_libdir_separator_GCJ= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols_GCJ=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag_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 -/* end confdefs.h. */ - -int -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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -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_ipa8_conftest.oo \ - 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" - archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag_GCJ="-z nodefs" - archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -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_ipa8_conftest.oo \ - 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" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag_GCJ=' ${wl}-bernotok' - allow_undefined_flag_GCJ=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec_GCJ='$convenience' - archive_cmds_need_lc_GCJ=yes - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_minus_L_GCJ=yes - # see comment about different semantics on the GNU ld section - ld_shlibs_GCJ=no - ;; - - bsdi[45]*) - export_dynamic_flag_spec_GCJ=-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec_GCJ=' ' - allow_undefined_flag_GCJ=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_From_new_cmds_GCJ='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds_GCJ='lib -OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes_GCJ=yes - ;; - - darwin* | rhapsody*) - case $host_os in - rhapsody* | darwin1.[012]) - allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - archive_cmds_need_lc_GCJ=no - hardcode_direct_GCJ=no - hardcode_automatic_GCJ=yes - hardcode_shlibpath_var_GCJ=unsupported - whole_archive_flag_spec_GCJ='' - link_all_deplibs_GCJ=yes - if test "$GCC" = yes ; then - output_verbose_link_cmd='echo' - archive_cmds_GCJ="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - module_cmds_GCJ="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - archive_expsym_cmds_GCJ="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - module_expsym_cmds_GCJ="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" - else - case $cc_basename in - xlc*) - output_verbose_link_cmd='echo' - archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' - module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds - archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - ;; - *) - ld_shlibs_GCJ=no - ;; - esac - fi - ;; - - dgux*) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_shlibpath_var_GCJ=no - ;; - - freebsd1*) - ld_shlibs_GCJ=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec_GCJ='-R$libdir' - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=yes - hardcode_minus_L_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) - archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_GCJ='-R$libdir' - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - hpux9*) - if test "$GCC" = yes; then - archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - hardcode_direct_GCJ=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_GCJ=yes - export_dynamic_flag_spec_GCJ='${wl}-E' - ;; - - hpux10*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - - hardcode_direct_GCJ=yes - export_dynamic_flag_spec_GCJ='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_GCJ=yes - fi - ;; - - hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - - case $host_cpu in - hppa*64*|ia64*) - hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' - hardcode_direct_GCJ=no - hardcode_shlibpath_var_GCJ=no - ;; - *) - hardcode_direct_GCJ=yes - export_dynamic_flag_spec_GCJ='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_GCJ=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' - fi - hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - link_all_deplibs_GCJ=yes - ;; - - netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec_GCJ='-R$libdir' - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - newsos6) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=yes - hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - hardcode_shlibpath_var_GCJ=no - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' - export_dynamic_flag_spec_GCJ='${wl}-E' - else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_GCJ='-R$libdir' - ;; - *) - archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' - ;; - esac - fi - else - ld_shlibs_GCJ=no - fi - ;; - - os2*) - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_minus_L_GCJ=yes - allow_undefined_flag_GCJ=unsupported - archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag_GCJ=' -expect_unresolved \*' - archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag_GCJ=' -expect_unresolved \*' - archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' - - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec_GCJ='-rpath $libdir' - fi - hardcode_libdir_separator_GCJ=: - ;; - - solaris*) - no_undefined_flag_GCJ=' -z text' - if test "$GCC" = yes; then - wlarc='${wl}' - archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' - else - wlarc='' - archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - fi - hardcode_libdir_flag_spec_GCJ='-R$libdir' - hardcode_shlibpath_var_GCJ=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' - fi - ;; - esac - link_all_deplibs_GCJ=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_direct_GCJ=yes - hardcode_minus_L_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds_GCJ='$CC -r -o $output$reload_objs' - hardcode_direct_GCJ=no - ;; - motorola) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var_GCJ=no - ;; - - sysv4.3*) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_GCJ=no - export_dynamic_flag_spec_GCJ='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_GCJ=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs_GCJ=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag_GCJ='${wl}-z,text' - archive_cmds_need_lc_GCJ=no - hardcode_shlibpath_var_GCJ=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - no_undefined_flag_GCJ='${wl}-z,text' - allow_undefined_flag_GCJ='${wl}-z,nodefs' - archive_cmds_need_lc_GCJ=no - hardcode_shlibpath_var_GCJ=no - hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' - hardcode_libdir_separator_GCJ=':' - link_all_deplibs_GCJ=yes - export_dynamic_flag_spec_GCJ='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_shlibpath_var_GCJ=no - ;; - - *) - ld_shlibs_GCJ=no - ;; - esac - fi - -{ echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 -echo "${ECHO_T}$ld_shlibs_GCJ" >&6; } -test "$ld_shlibs_GCJ" = no && can_build_shared=no - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc_GCJ" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc_GCJ=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds_GCJ in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - { 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; } - $rm conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$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 - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl_GCJ - pic_flag=$lt_prog_compiler_pic_GCJ - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - 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 - (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); } - then - archive_cmds_need_lc_GCJ=no - else - archive_cmds_need_lc_GCJ=yes - fi - allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag - else - 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; } - ;; - esac - fi - ;; -esac - -{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" - -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix[4-9]*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[45]*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' - - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[123]*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ - freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -interix[3-9]*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux* | k*bsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -netbsdelf*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='NetBSD ld.elf_so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -nto-qnx*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -openbsd*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - export_dynamic_flag_spec='${wl}-Blargedynsym' - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - shlibpath_overrides_runpath=no - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - shlibpath_overrides_runpath=yes - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6; } -test "$dynamic_linker" = no && can_build_shared=no - -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec" -fi - -sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec" -fi - -sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -{ 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; } -hardcode_action_GCJ= -if test -n "$hardcode_libdir_flag_spec_GCJ" || \ - test -n "$runpath_var_GCJ" || \ - test "X$hardcode_automatic_GCJ" = "Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct_GCJ" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && - test "$hardcode_minus_L_GCJ" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action_GCJ=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action_GCJ=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action_GCJ=unsupported -fi -{ echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 -echo "${ECHO_T}$hardcode_action_GCJ" >&6; } - -if test "$hardcode_action_GCJ" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_GCJ \ - CC_GCJ \ - LD_GCJ \ - lt_prog_compiler_wl_GCJ \ - lt_prog_compiler_pic_GCJ \ - lt_prog_compiler_static_GCJ \ - lt_prog_compiler_no_builtin_flag_GCJ \ - export_dynamic_flag_spec_GCJ \ - thread_safe_flag_spec_GCJ \ - whole_archive_flag_spec_GCJ \ - enable_shared_with_static_runtimes_GCJ \ - old_archive_cmds_GCJ \ - old_archive_from_new_cmds_GCJ \ - predep_objects_GCJ \ - postdep_objects_GCJ \ - predeps_GCJ \ - postdeps_GCJ \ - compiler_lib_search_path_GCJ \ - compiler_lib_search_dirs_GCJ \ - archive_cmds_GCJ \ - archive_expsym_cmds_GCJ \ - postinstall_cmds_GCJ \ - postuninstall_cmds_GCJ \ - old_archive_from_expsyms_cmds_GCJ \ - allow_undefined_flag_GCJ \ - no_undefined_flag_GCJ \ - export_symbols_cmds_GCJ \ - hardcode_libdir_flag_spec_GCJ \ - hardcode_libdir_flag_spec_ld_GCJ \ - hardcode_libdir_separator_GCJ \ - hardcode_automatic_GCJ \ - module_cmds_GCJ \ - module_expsym_cmds_GCJ \ - lt_cv_prog_compiler_c_o_GCJ \ - fix_srcfile_path_GCJ \ - exclude_expsyms_GCJ \ - include_expsyms_GCJ; do - - case $var in - old_archive_cmds_GCJ | \ - old_archive_from_new_cmds_GCJ | \ - archive_cmds_GCJ | \ - archive_expsym_cmds_GCJ | \ - module_cmds_GCJ | \ - module_expsym_cmds_GCJ | \ - old_archive_from_expsyms_cmds_GCJ | \ - export_symbols_cmds_GCJ | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc_GCJ - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# LTCC compiler flags. -LTCFLAGS=$lt_LTCFLAGS - -# A language-specific compiler. -CC=$lt_compiler_GCJ - -# Is the compiler the GNU C compiler? -with_gcc=$GCC_GCJ - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD_GCJ - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_GCJ - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic_GCJ -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ - -# Must we lock files when doing compilation? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static_GCJ - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds_GCJ -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds_GCJ -archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds_GCJ -module_expsym_cmds=$lt_module_expsym_cmds_GCJ - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects_GCJ - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects_GCJ - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps_GCJ - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps_GCJ - -# The directories searched by this compiler when creating a shared -# library -compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_GCJ - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag_GCJ - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag_GCJ - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action_GCJ - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct_GCJ - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L_GCJ - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$hardcode_automatic_GCJ - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs_GCJ - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=$lt_fix_srcfile_path - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols_GCJ - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds_GCJ - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms_GCJ - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms_GCJ - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - -CC="$lt_save_CC" - - else - tagname="" - fi - ;; - - RC) - - -# Source file extension for RC test sources. -ac_ext=rc - -# Object file extension for compiled RC test sources. -objext=o -objext_RC=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' - -# Code to be used in simple link tests -lt_simple_link_test_code="$lt_simple_compile_test_code" - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$rm conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$rm -r conftest* - - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${RC-"windres"} -compiler=$CC -compiler_RC=$CC -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - -lt_cv_prog_compiler_c_o_RC=yes - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_RC \ - CC_RC \ - LD_RC \ - lt_prog_compiler_wl_RC \ - lt_prog_compiler_pic_RC \ - lt_prog_compiler_static_RC \ - lt_prog_compiler_no_builtin_flag_RC \ - export_dynamic_flag_spec_RC \ - thread_safe_flag_spec_RC \ - whole_archive_flag_spec_RC \ - enable_shared_with_static_runtimes_RC \ - old_archive_cmds_RC \ - old_archive_from_new_cmds_RC \ - predep_objects_RC \ - postdep_objects_RC \ - predeps_RC \ - postdeps_RC \ - compiler_lib_search_path_RC \ - compiler_lib_search_dirs_RC \ - archive_cmds_RC \ - archive_expsym_cmds_RC \ - postinstall_cmds_RC \ - postuninstall_cmds_RC \ - old_archive_from_expsyms_cmds_RC \ - allow_undefined_flag_RC \ - no_undefined_flag_RC \ - export_symbols_cmds_RC \ - hardcode_libdir_flag_spec_RC \ - hardcode_libdir_flag_spec_ld_RC \ - hardcode_libdir_separator_RC \ - hardcode_automatic_RC \ - module_cmds_RC \ - module_expsym_cmds_RC \ - lt_cv_prog_compiler_c_o_RC \ - fix_srcfile_path_RC \ - exclude_expsyms_RC \ - include_expsyms_RC; do - - case $var in - old_archive_cmds_RC | \ - old_archive_from_new_cmds_RC | \ - archive_cmds_RC | \ - archive_expsym_cmds_RC | \ - module_cmds_RC | \ - module_expsym_cmds_RC | \ - old_archive_from_expsyms_cmds_RC | \ - export_symbols_cmds_RC | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc_RC - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# LTCC compiler flags. -LTCFLAGS=$lt_LTCFLAGS - -# A language-specific compiler. -CC=$lt_compiler_RC - -# Is the compiler the GNU C compiler? -with_gcc=$GCC_RC - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD_RC - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_RC - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic_RC -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC - -# Must we lock files when doing compilation? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static_RC - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds_RC -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds_RC -archive_expsym_cmds=$lt_archive_expsym_cmds_RC -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds_RC -module_expsym_cmds=$lt_module_expsym_cmds_RC - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects_RC - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects_RC - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps_RC - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps_RC - -# The directories searched by this compiler when creating a shared -# library -compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_RC - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_RC - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag_RC - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag_RC - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action_RC - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct_RC - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L_RC - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var_RC - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$hardcode_automatic_RC - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs_RC - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=$lt_fix_srcfile_path - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols_RC - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds_RC - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms_RC - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms_RC - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - -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; }; } - ;; - esac - - # Append the new tag name to the list of available tags. - if test -n "$tagname" ; then - available_tags="$available_tags $tagname" - fi - fi - done - IFS="$lt_save_ifs" - - # Now substitute the updated list of available tags. - if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then - mv "${ofile}T" "$ofile" - 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; }; } - fi -fi - - - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' - -# Prevent multiple expansion - - - - - - - - - - - - - - - - - - - - - -# check for dlopen,dlsym... or shl_load, shl_findsym... -LIBADD_DL= - - -{ 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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; 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_ipa8_conftest.oo \ - 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 - -cat >>confdefs.h <<\_ACEOF -#define HAVE_SHL_LOAD 1 -_ACEOF - -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 -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 -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shl_load (); -int -main () -{ -return shl_load (); - ; - return 0; -} -_ACEOF -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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; 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 -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - 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 - -cat >>confdefs.h <<\_ACEOF -#define HAVE_SHL_LOAD 1 -_ACEOF - - LIBADD_DL="$LIBADD_DL -ldld" -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 -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 -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; 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 -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - 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 - -cat >>confdefs.h <<\_ACEOF -#define HAVE_LIBDL 1 -_ACEOF - - LIBADD_DL="-ldl" -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#if HAVE_DLFCN_H -# include -#endif - -int -main () -{ -dlopen(0, 0); - ; - 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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_LIBDL 1 -_ACEOF - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { 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 -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 -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; 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 -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - 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 - -cat >>confdefs.h <<\_ACEOF -#define HAVE_LIBDL 1 -_ACEOF - - LIBADD_DL="-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 -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 -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dld_link (); -int -main () -{ -return dld_link (); - ; - return 0; -} -_ACEOF -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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; 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 -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - 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 - -cat >>confdefs.h <<\_ACEOF -#define HAVE_DLD 1 -_ACEOF - - LIBADD_DL="$LIBADD_DL -ldld" - -fi - - -fi - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - -fi - - -fi - - -fi - - -if test "x$ac_cv_func_dlopen" = xyes || test "x$ac_cv_lib_dl_dlopen" = xyes; then - LIBS_SAVE="$LIBS" - LIBS="$LIBS $LIBADD_DL" - -for ac_func in dlerror -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } -if { as_var=$as_ac_var; 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. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* 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 $ac_func (); -/* 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_$ac_func || defined __stub___$ac_func -choke me -#endif - -int -main () -{ -return $ac_func (); - ; - 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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - LIBS="$LIBS_SAVE" -fi - - -# check for doxygen - -# Check whether --enable-doxygen was given. -if test "${enable_doxygen+set}" = set; then - enableval=$enable_doxygen; -fi - -# Check whether --enable-dot was given. -if test "${enable_dot+set}" = set; then - enableval=$enable_dot; -fi - -# Check whether --enable-html-docs was given. -if test "${enable_html_docs+set}" = set; then - enableval=$enable_html_docs; -else - enable_html_docs=yes -fi - -# Check whether --enable-latex-docs was given. -if test "${enable_latex_docs+set}" = set; then - enableval=$enable_latex_docs; -else - enable_latex_docs=no -fi - -if test "x$enable_doxygen" = xno; then - enable_doc=no -else - # Extract the first word of "doxygen", so it can be a program name with args. -set dummy doxygen; 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_DOXYGEN+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $DOXYGEN in - [\\/]* | ?:[\\/]*) - ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - ;; -esac -fi -DOXYGEN=$ac_cv_path_DOXYGEN -if test -n "$DOXYGEN"; then - { echo "$as_me:$LINENO: result: $DOXYGEN" >&5 -echo "${ECHO_T}$DOXYGEN" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - - if test "x$DOXYGEN" = x; then - if test "x$enable_doxygen" = xyes; then - { { echo "$as_me:$LINENO: error: could not find doxygen" >&5 -echo "$as_me: error: could not find doxygen" >&2;} - { (exit 1); exit 1; }; } - fi - enable_doc=no - else - enable_doc=yes - # Extract the first word of "dot", so it can be a program name with args. -set dummy dot; 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_DOT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $DOT in - [\\/]* | ?:[\\/]*) - ac_cv_path_DOT="$DOT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_DOT="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - ;; -esac -fi -DOT=$ac_cv_path_DOT -if test -n "$DOT"; then - { echo "$as_me:$LINENO: result: $DOT" >&5 -echo "${ECHO_T}$DOT" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - - fi -fi - if test x$enable_doc = xyes; then - DOC_TRUE= - DOC_FALSE='#' -else - DOC_TRUE='#' - DOC_FALSE= -fi - - -if test x$DOT = x; then - if test "x$enable_dot" = xyes; then - { { echo "$as_me:$LINENO: error: could not find dot" >&5 -echo "$as_me: error: could not find dot" >&2;} - { (exit 1); exit 1; }; } - fi - enable_dot=no -else - enable_dot=yes -fi - - - - - - -# Check for headers -# Note that the fourth argument to AC_CHECK_HEADERS is non-empty to force -# the configure probe to try compiling "#include
". See autoconf docs. -# ---------------------------------------------------------------------------- - - -for ac_header in cmath -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. */ -/**/ - -#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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; 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 - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -# Check for compiler characteristics -# ---------------------------------------------------------------------------- - -{ echo "$as_me:$LINENO: checking whether the compiler supports Run-Time Type Identification" >&5 -echo $ECHO_N "checking whether the compiler supports Run-Time Type Identification... $ECHO_C" >&6; } -if test "${ac_cv_cxx_rtti+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -class Base { public : - Base () {} - virtual int f () { return 0; } - }; -class Derived : public Base { public : - Derived () {} - virtual int f () { return 1; } - }; - -int -main () -{ -Derived d; -Base *ptr = &d; -return typeid (*ptr) == typeid (Derived); - - ; - 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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_cxx_rtti=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_cxx_rtti=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - -fi -{ echo "$as_me:$LINENO: result: $ac_cv_cxx_rtti" >&5 -echo "${ECHO_T}$ac_cv_cxx_rtti" >&6; } -if test "$ac_cv_cxx_rtti" = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_RTTI 1 -_ACEOF - -fi - -{ echo "$as_me:$LINENO: checking whether the compiler supports GCC C++ ABI name demangling" >&5 -echo $ECHO_N "checking whether the compiler supports GCC C++ ABI name demangling... $ECHO_C" >&6; } -if test "${ac_cv_cxx_gcc_abi_demangle+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include - -template -class A {}; - -int -main () -{ -A instance; -int status = 0; -char* c_name = 0; - -c_name = abi::__cxa_demangle(typeid(instance).name(), 0, 0, &status); - -std::string name(c_name); -free(c_name); - -return name == "A"; - - ; - 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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_cxx_gcc_abi_demangle=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_cxx_gcc_abi_demangle=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - -fi -{ echo "$as_me:$LINENO: result: $ac_cv_cxx_gcc_abi_demangle" >&5 -echo "${ECHO_T}$ac_cv_cxx_gcc_abi_demangle" >&6; } -if test "$ac_cv_cxx_gcc_abi_demangle" = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_GCC_ABI_DEMANGLE 1 -_ACEOF - -fi - -{ echo "$as_me:$LINENO: checking whether the compiler implements namespaces" >&5 -echo $ECHO_N "checking whether the compiler implements namespaces... $ECHO_C" >&6; } -if test "${ac_cv_cxx_namespaces+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -namespace Outer { namespace Inner { int i = 0; }} -int -main () -{ -using namespace Outer::Inner; return i; - ; - 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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_cxx_namespaces=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_cxx_namespaces=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - -fi -{ echo "$as_me:$LINENO: result: $ac_cv_cxx_namespaces" >&5 -echo "${ECHO_T}$ac_cv_cxx_namespaces" >&6; } -if test "$ac_cv_cxx_namespaces" = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_NAMESPACES 1 -_ACEOF - -fi - -{ echo "$as_me:$LINENO: checking whether std::string::compare takes a string in argument 1" >&5 -echo $ECHO_N "checking whether std::string::compare takes a string in argument 1... $ECHO_C" >&6; } -if test "${ac_cv_cxx_string_compare_string_first+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#ifdef HAVE_NAMESPACES -using namespace std; -#endif -int -main () -{ -string x("hi"); string y("h"); -return x.compare(y,0,1) == 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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_cxx_string_compare_string_first=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_cxx_string_compare_string_first=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - -fi -{ echo "$as_me:$LINENO: result: $ac_cv_cxx_string_compare_string_first" >&5 -echo "${ECHO_T}$ac_cv_cxx_string_compare_string_first" >&6; } -if test "$ac_cv_cxx_string_compare_string_first" = yes; then - -cat >>confdefs.h <<\_ACEOF -#define FUNC_STRING_COMPARE_STRING_FIRST 1 -_ACEOF - -fi - - - -# Check for library functions -# ---------------------------------------------------------------------------- -{ echo "$as_me:$LINENO: checking whether the compiler has stringstream" >&5 -echo $ECHO_N "checking whether the compiler has stringstream... $ECHO_C" >&6; } -if test "${ac_cv_cxx_have_sstream+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#ifdef HAVE_NAMESPACES -using namespace std; -#endif -int -main () -{ -stringstream message; message << "Hello"; 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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_cxx_have_sstream=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_cxx_have_sstream=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - -fi -{ echo "$as_me:$LINENO: result: $ac_cv_cxx_have_sstream" >&5 -echo "${ECHO_T}$ac_cv_cxx_have_sstream" >&6; } -if test "$ac_cv_cxx_have_sstream" = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_SSTREAM 1 -_ACEOF - -fi - - -{ echo "$as_me:$LINENO: checking whether the library defines class strstream" >&5 -echo $ECHO_N "checking whether the library defines class strstream... $ECHO_C" >&6; } -if test "${ac_cv_cxx_have_class_strstream+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - -for ac_header in strstream -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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; 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 && { - test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || - test ! -s conftest.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_cxx_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 - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#if HAVE_STRSTREAM -# include -#else -# include -#endif -#ifdef HAVE_NAMESPACES -using namespace std; -#endif -int -main () -{ -ostrstream message; message << "Hello"; 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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_cxx_have_class_strstream=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_cxx_have_class_strstream=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - -fi -{ echo "$as_me:$LINENO: result: $ac_cv_cxx_have_class_strstream" >&5 -echo "${ECHO_T}$ac_cv_cxx_have_class_strstream" >&6; } -if test "$ac_cv_cxx_have_class_strstream" = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_CLASS_STRSTREAM 1 -_ACEOF - -fi - -ax_cxx_have_isfinite_save_LIBS=$LIBS - LIBS="$LIBS -lm" - - { echo "$as_me:$LINENO: checking for isfinite" >&5 -echo $ECHO_N "checking for isfinite... $ECHO_C" >&6; } -if test "${ax_cv_cxx_have_isfinite+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ -int f = isfinite( 3 ); - ; - 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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ax_cv_cxx_have_isfinite=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ax_cv_cxx_have_isfinite=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - -fi -{ echo "$as_me:$LINENO: result: $ax_cv_cxx_have_isfinite" >&5 -echo "${ECHO_T}$ax_cv_cxx_have_isfinite" >&6; } - - if test "$ax_cv_cxx_have_isfinite" = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_ISFINITE 1 -_ACEOF - - else - LIBS=$ax_cxx_have_isfinite_save_LIBS - fi - - -for ac_func in finite -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } -if { as_var=$as_ac_var; 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. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* 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 $ac_func (); -/* 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_$ac_func || defined __stub___$ac_func -choke me -#endif - -int -main () -{ -return $ac_func (); - ; - 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); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - -cppunit_val='CPPUNIT_HAVE_RTTI' -# Check whether --enable-typeinfo-name was given. -if test "${enable_typeinfo_name+set}" = set; then - enableval=$enable_typeinfo_name; - test x$enableval = 'xno' && cppunit_val='0' - -fi - - - -cat >>confdefs.h <<_ACEOF -#define USE_TYPEINFO_NAME $cppunit_val -_ACEOF - - - -# Doesn't work. It's supposed to add "#define CPPUNIT_NO_TESTPLUGIN" if -# --disable-test-plugin was used on the command line. -# -# -# -#AC_ARG_ENABLE(test-plugin, -#[ --disable-test-plugin disable support for test plug-ins], -#[ -# if test -n "$enable_test_plugin"; then -# enable_test_plugin=${enable_test_plugin_default-yes} -# fi -# if test "$enable_test_plugin" = no; then -#echo "test-plug in disabled" -# fi -#]) -# -#testplugin_val=1 -#AC_DEFINE_UNQUOTED(NO_TESTPLUGIN,$testplugin_val, -#[defined to disable TestPlugIn]) - - -ac_config_files="$ac_config_files Makefile cppunit.pc cppunit.spec cppunit-config src/Makefile src/DllPlugInTester/Makefile src/cppunit/Makefile include/Makefile include/cppunit/Makefile include/cppunit/config/Makefile include/cppunit/extensions/Makefile include/cppunit/plugin/Makefile include/cppunit/portability/Makefile include/cppunit/tools/Makefile include/cppunit/ui/Makefile include/cppunit/ui/mfc/Makefile include/cppunit/ui/qt/Makefile include/cppunit/ui/text/Makefile doc/Makefile doc/Doxyfile examples/Makefile examples/simple/Makefile examples/hierarchy/Makefile examples/cppunittest/Makefile examples/ClockerPlugIn/Makefile examples/DumperPlugIn/Makefile examples/money/Makefile" - -ac_config_commands="$ac_config_commands default" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { 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;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - *) $as_unset $ac_var ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && - { echo "$as_me:$LINENO: updating cache $cache_file" >&5 -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;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -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"` - # 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' -done -LIBOBJS=$ac_libobjs - -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; }; } -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; }; } -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; }; } -fi -if test -z "${DOC_TRUE}" && test -z "${DOC_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"DOC\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"DOC\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi - -: ${CONFIG_STATUS=./config.status} -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 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # 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 - - - - -# 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 - -# 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 -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -as_nl=' -' -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); 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 -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 - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# 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" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - 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 - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in --n*) - case `echo 'x\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; - 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 -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 || - as_ln_s='cp -p' -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -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=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 - -# 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 $as_me, which was -generated by GNU Autoconf 2.61. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTIONS] [FILE]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration commands: -$config_commands - -Report bugs to ." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -ac_cs_version="\\ -config.status -configured by $0, generated by GNU Autoconf 2.61, - with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" - -Copyright (C) 2006 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -MKDIR_P='$MKDIR_P' -_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. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - echo "$ac_cs_version"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - CONFIG_HEADERS="$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; }; };; - --help | --hel | -h ) - 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; }; } ;; - - *) ac_config_targets="$ac_config_targets $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -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 - export CONFIG_SHELL - exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -# -# INIT-COMMANDS -# -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "config/config.h") CONFIG_HEADERS="$CONFIG_HEADERS config/config.h" ;; - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "cppunit.pc") CONFIG_FILES="$CONFIG_FILES cppunit.pc" ;; - "cppunit.spec") CONFIG_FILES="$CONFIG_FILES cppunit.spec" ;; - "cppunit-config") CONFIG_FILES="$CONFIG_FILES cppunit-config" ;; - "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; - "src/DllPlugInTester/Makefile") CONFIG_FILES="$CONFIG_FILES src/DllPlugInTester/Makefile" ;; - "src/cppunit/Makefile") CONFIG_FILES="$CONFIG_FILES src/cppunit/Makefile" ;; - "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; - "include/cppunit/Makefile") CONFIG_FILES="$CONFIG_FILES include/cppunit/Makefile" ;; - "include/cppunit/config/Makefile") CONFIG_FILES="$CONFIG_FILES include/cppunit/config/Makefile" ;; - "include/cppunit/extensions/Makefile") CONFIG_FILES="$CONFIG_FILES include/cppunit/extensions/Makefile" ;; - "include/cppunit/plugin/Makefile") CONFIG_FILES="$CONFIG_FILES include/cppunit/plugin/Makefile" ;; - "include/cppunit/portability/Makefile") CONFIG_FILES="$CONFIG_FILES include/cppunit/portability/Makefile" ;; - "include/cppunit/tools/Makefile") CONFIG_FILES="$CONFIG_FILES include/cppunit/tools/Makefile" ;; - "include/cppunit/ui/Makefile") CONFIG_FILES="$CONFIG_FILES include/cppunit/ui/Makefile" ;; - "include/cppunit/ui/mfc/Makefile") CONFIG_FILES="$CONFIG_FILES include/cppunit/ui/mfc/Makefile" ;; - "include/cppunit/ui/qt/Makefile") CONFIG_FILES="$CONFIG_FILES include/cppunit/ui/qt/Makefile" ;; - "include/cppunit/ui/text/Makefile") CONFIG_FILES="$CONFIG_FILES include/cppunit/ui/text/Makefile" ;; - "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; - "doc/Doxyfile") CONFIG_FILES="$CONFIG_FILES doc/Doxyfile" ;; - "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; - "examples/simple/Makefile") CONFIG_FILES="$CONFIG_FILES examples/simple/Makefile" ;; - "examples/hierarchy/Makefile") CONFIG_FILES="$CONFIG_FILES examples/hierarchy/Makefile" ;; - "examples/cppunittest/Makefile") CONFIG_FILES="$CONFIG_FILES examples/cppunittest/Makefile" ;; - "examples/ClockerPlugIn/Makefile") CONFIG_FILES="$CONFIG_FILES examples/ClockerPlugIn/Makefile" ;; - "examples/DumperPlugIn/Makefile") CONFIG_FILES="$CONFIG_FILES examples/DumperPlugIn/Makefile" ;; - "examples/money/Makefile") CONFIG_FILES="$CONFIG_FILES examples/money/Makefile" ;; - "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; - - *) { { 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; }; };; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= - 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 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || -{ - echo "$me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} - -# -# 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 -if test -n "$CONFIG_FILES"; then - -_ACEOF - - - -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 -CPPUNIT_MAJOR_VERSION!$CPPUNIT_MAJOR_VERSION$ac_delim -CPPUNIT_MINOR_VERSION!$CPPUNIT_MINOR_VERSION$ac_delim -CPPUNIT_MICRO_VERSION!$CPPUNIT_MICRO_VERSION$ac_delim -CPPUNIT_INTERFACE_AGE!$CPPUNIT_INTERFACE_AGE$ac_delim -CPPUNIT_BINARY_AGE!$CPPUNIT_BINARY_AGE$ac_delim -CPPUNIT_VERSION!$CPPUNIT_VERSION$ac_delim -LT_RELEASE!$LT_RELEASE$ac_delim -LT_CURRENT!$LT_CURRENT$ac_delim -LT_REVISION!$LT_REVISION$ac_delim -LT_AGE!$LT_AGE$ac_delim -INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim -INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim -INSTALL_DATA!$INSTALL_DATA$ac_delim -am__isrc!$am__isrc$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 -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 -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 -_ACEOF - - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; 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-1.sed" <<\CEOF$ac_eof -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -_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 -_ACEOF - - -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - cat >conf$$subs.sed <<_ACEOF -host_vendor!$host_vendor$ac_delim -host_os!$host_os$ac_delim -SED!$SED$ac_delim -GREP!$GREP$ac_delim -EGREP!$EGREP$ac_delim -LN_S!$LN_S$ac_delim -ECHO!$ECHO$ac_delim -AR!$AR$ac_delim -RANLIB!$RANLIB$ac_delim -DSYMUTIL!$DSYMUTIL$ac_delim -NMEDIT!$NMEDIT$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 -LIBADD_DL!$LIBADD_DL$ac_delim -DOXYGEN!$DOXYGEN$ac_delim -DOT!$DOT$ac_delim -DOC_TRUE!$DOC_TRUE$ac_delim -DOC_FALSE!$DOC_FALSE$ac_delim -enable_dot!$enable_dot$ac_delim -enable_html_docs!$enable_html_docs$ac_delim -enable_latex_docs!$enable_latex_docs$ac_delim -LIBOBJS!$LIBOBJS$ac_delim -LTLIBOBJS!$LTLIBOBJS$ac_delim -_ACEOF - - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 30; 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 -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/ -s/:*\${srcdir}:*/:/ -s/:*@srcdir@:*/:/ -s/^\([^=]*=[ ]*\):*/\1/ -s/:*$// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF -fi # test -n "$CONFIG_FILES" - - -for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS -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; }; };; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - { { 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; }; };; - esac - ac_file_inputs="$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." - 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;} - fi - - case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin";; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - { as_dir="$ac_dir" - 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; }; }; } - 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,^\.[\\/],,'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac - ac_MKDIR_P=$MKDIR_P - case $MKDIR_P in - [\\/$]* | ?:[\\/]* ) ;; - */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# 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/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p -' $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;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s&@configure_input@&$configure_input&;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -s&@MKDIR_P@&$ac_MKDIR_P&;t t -$ac_datarootdir_hack -" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out - -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' -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' -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 - ;; - :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;} - else - rm -f $ac_file - mv "$tmp/config.h" $ac_file - fi - else - echo "/* $configure_input */" - cat "$ac_result" - fi - rm -f "$tmp/out12" -# Compute $ac_file's index in $config_headers. -_am_arg=$ac_file -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || -$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$_am_arg" : 'X\(//\)[^/]' \| \ - X"$_am_arg" : 'X\(//\)$' \| \ - X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || -echo X"$_am_arg" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'`/stamp-h$_am_stamp_count - ;; - - :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 -echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - { as_dir=$dirpart/$fdir - 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; }; }; } - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done -done - ;; - "default":C) chmod a+x cppunit-config ;; - - esac -done # for ac_tag - - -{ (exit 0); exit 0; } -_ACEOF -chmod +x $CONFIG_STATUS -ac_clean_files=$ac_clean_files_save - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } -fi - - -ac_prefix_conf_OUT=`echo include/cppunit/config-auto.h` -ac_prefix_conf_DEF=`echo _$ac_prefix_conf_OUT | sed -e 'y:abcdefghijklmnopqrstuvwxyz./,-:ABCDEFGHIJKLMNOPQRSTUVWXYZ____:'` -ac_prefix_conf_PKG=`echo $PACKAGE` -ac_prefix_conf_LOW=`echo _$ac_prefix_conf_PKG | sed -e 'y:ABCDEFGHIJKLMNOPQRSTUVWXYZ-:abcdefghijklmnopqrstuvwxyz_:'` -ac_prefix_conf_UPP=`echo $ac_prefix_conf_PKG | sed -e 'y:abcdefghijklmnopqrstuvwxyz-:ABCDEFGHIJKLMNOPQRSTUVWXYZ_:' -e '/^[0-9]/s/^/_/'` -ac_prefix_conf_INP=`echo config/config.h` -if test "$ac_prefix_conf_INP" = "_"; then - case $ac_prefix_conf_OUT in - */*) ac_prefix_conf_INP=`basename $ac_prefix_conf_OUT` - ;; - *-*) ac_prefix_conf_INP=`echo $ac_prefix_conf_OUT | sed -e 's/[a-zA-Z0-9_]*-//'` - ;; - *) ac_prefix_conf_INP=config.h - ;; - esac -fi -if test -z "$ac_prefix_conf_PKG" ; then - { { echo "$as_me:$LINENO: error: no prefix for _PREFIX_PKG_CONFIG_H" >&5 -echo "$as_me: error: no prefix for _PREFIX_PKG_CONFIG_H" >&2;} - { (exit 1); exit 1; }; } -else - { echo "$as_me:$LINENO: result: creating $ac_prefix_conf_OUT - prefix $ac_prefix_conf_UPP for $ac_prefix_conf_INP defines" >&5 -echo "${ECHO_T}creating $ac_prefix_conf_OUT - prefix $ac_prefix_conf_UPP for $ac_prefix_conf_INP defines" >&6; } - if test -f $ac_prefix_conf_INP ; then - $as_dirname -- /* automatically generated */ || -$as_expr X/* automatically generated */ : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X/* automatically generated */ : 'X\(//\)[^/]' \| \ - X/* automatically generated */ : 'X\(//\)$' \| \ - X/* automatically generated */ : 'X\(/\)' \| . 2>/dev/null || -echo X/* automatically generated */ | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q' - echo '#ifndef '$ac_prefix_conf_DEF >$ac_prefix_conf_OUT - echo '#define '$ac_prefix_conf_DEF' 1' >>$ac_prefix_conf_OUT - echo ' ' >>$ac_prefix_conf_OUT - echo /'*' $ac_prefix_conf_OUT. Generated automatically at end of configure. '*'/ >>$ac_prefix_conf_OUT - - echo 's/#undef *\([A-Z_]\)/#undef '$ac_prefix_conf_UPP'_\1/' >conftest.sed - echo 's/#undef *\([a-z]\)/#undef '$ac_prefix_conf_LOW'_\1/' >>conftest.sed - echo 's/#define *\([A-Z_][A-Za-z0-9_]*\)\(.*\)/#ifndef '$ac_prefix_conf_UPP"_\\1 \\" >>conftest.sed - echo '#define '$ac_prefix_conf_UPP"_\\1 \\2 \\" >>conftest.sed - echo '#endif/' >>conftest.sed - echo 's/#define *\([a-z][A-Za-z0-9_]*\)\(.*\)/#ifndef '$ac_prefix_conf_LOW"_\\1 \\" >>conftest.sed - echo '#define '$ac_prefix_conf_LOW"_\\1 \\2 \\" >>conftest.sed - echo '#endif/' >>conftest.sed - sed -f conftest.sed $ac_prefix_conf_INP >>$ac_prefix_conf_OUT - echo ' ' >>$ac_prefix_conf_OUT - echo '/*' $ac_prefix_conf_DEF '*/' >>$ac_prefix_conf_OUT - echo '#endif' >>$ac_prefix_conf_OUT - else - { { echo "$as_me:$LINENO: error: input file $ac_prefix_conf_IN does not exist, skip generating $ac_prefix_conf_OUT" >&5 -echo "$as_me: error: input file $ac_prefix_conf_IN does not exist, skip generating $ac_prefix_conf_OUT" >&2;} - { (exit 1); exit 1; }; } - fi - rm -f conftest.* -fi diff --git a/contrib/cppunit-1.12.1/configure.in b/contrib/cppunit-1.12.1/configure.in deleted file mode 100644 index ed1880cb5..000000000 --- a/contrib/cppunit-1.12.1/configure.in +++ /dev/null @@ -1,155 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -AC_INIT(Makefile.am) - -# autoconf 2.50 or higher to rebuild aclocal.m4, because the -# AC_CREATE_PREFIX_CONFIG_H macro needs the AS_DIRNAME macro. -AC_PREREQ(2.50) - -# Making releases: -# CPPUNIT_MICRO_VERSION += 1; -# CPPUNIT_INTERFACE_AGE += 1; -# CPPUNIT_BINARY_AGE += 1; -# if any functions have been added, set CPPUNIT_INTERFACE_AGE to 0. -# if backwards compatibility has been broken, -# set CPPUNIT_BINARY_AGE and CPPUNIT_INTERFACE_AGE to 0. -# -CPPUNIT_MAJOR_VERSION=1 -CPPUNIT_MINOR_VERSION=12 -CPPUNIT_MICRO_VERSION=1 -CPPUNIT_INTERFACE_AGE=0 -CPPUNIT_BINARY_AGE=0 -CPPUNIT_VERSION=$CPPUNIT_MAJOR_VERSION.$CPPUNIT_MINOR_VERSION.$CPPUNIT_MICRO_VERSION -AC_SUBST(CPPUNIT_MAJOR_VERSION) -AC_SUBST(CPPUNIT_MINOR_VERSION) -AC_SUBST(CPPUNIT_MICRO_VERSION) -AC_SUBST(CPPUNIT_INTERFACE_AGE) -AC_SUBST(CPPUNIT_BINARY_AGE) -AC_SUBST(CPPUNIT_VERSION) - -# libtool versioning -LT_RELEASE=$CPPUNIT_MAJOR_VERSION.$CPPUNIT_MINOR_VERSION -LT_CURRENT=`expr $CPPUNIT_MICRO_VERSION - $CPPUNIT_INTERFACE_AGE` -LT_REVISION=$CPPUNIT_INTERFACE_AGE -LT_AGE=`expr $CPPUNIT_BINARY_AGE - $CPPUNIT_INTERFACE_AGE` -AC_SUBST(LT_RELEASE) -AC_SUBST(LT_CURRENT) -AC_SUBST(LT_REVISION) -AC_SUBST(LT_AGE) - -AC_CONFIG_AUX_DIR(config) -AM_CONFIG_HEADER(config/config.h) -AM_INIT_AUTOMAKE(cppunit, $CPPUNIT_VERSION) - -# General "with" options -# ---------------------------------------------------------------------------- - -dnl Checks for programs. - -AC_PROG_MAKE_SET -AC_PROG_INSTALL - -# The libtool macro AC_PROG_LIBTOOL checks for the C preprocessor. -# Configure gets confused if we try to check for a C preprocessor -# without first checking for the C compiler -# (see http://sources.redhat.com/ml/autoconf/2001-07/msg00036.html), -# so we invoke AC_PROG_CC explicitly. -AC_PROG_CC -AC_PROG_CXX -AC_LANG(C++) - -AC_LIBTOOL_WIN32_DLL -AC_PROG_LIBTOOL - -# check for dlopen,dlsym... or shl_load, shl_findsym... -AC_LTDL_DLLIB - -# check for doxygen -BB_ENABLE_DOXYGEN - - -# Check for headers -# Note that the fourth argument to AC_CHECK_HEADERS is non-empty to force -# the configure probe to try compiling "#include
". See autoconf docs. -# ---------------------------------------------------------------------------- - -AC_CHECK_HEADERS(cmath,[],[],[/**/]) - -# Check for compiler characteristics -# ---------------------------------------------------------------------------- - -AC_CXX_RTTI -AX_CXX_GCC_ABI_DEMANGLE -AC_CXX_STRING_COMPARE_STRING_FIRST - - -# Check for library functions -# ---------------------------------------------------------------------------- -AC_CXX_HAVE_SSTREAM -AC_CXX_HAVE_STRSTREAM -AX_CXX_HAVE_ISFINITE -AC_CHECK_FUNCS(finite) - -cppunit_val='CPPUNIT_HAVE_RTTI' -AC_ARG_ENABLE(typeinfo-name, -[ --disable-typeinfo-name disable use of RTTI for class names], -[ - test x$enableval = 'xno' && cppunit_val='0' -]) - -AC_DEFINE_UNQUOTED(USE_TYPEINFO_NAME,$cppunit_val, -[Define to 1 to use type_info::name() for class names]) - - -# Doesn't work. It's supposed to add "#define CPPUNIT_NO_TESTPLUGIN" if -# --disable-test-plugin was used on the command line. -# -# -# -#AC_ARG_ENABLE(test-plugin, -#[ --disable-test-plugin disable support for test plug-ins], -#[ -# if test -n "$enable_test_plugin"; then -# enable_test_plugin=${enable_test_plugin_default-yes} -# fi -# if test "$enable_test_plugin" = no; then -#echo "test-plug in disabled" -# fi -#]) -# -#testplugin_val=1 -#AC_DEFINE_UNQUOTED(NO_TESTPLUGIN,$testplugin_val, -#[defined to disable TestPlugIn]) - - -AC_OUTPUT([ - Makefile - cppunit.pc - cppunit.spec - cppunit-config - src/Makefile - src/DllPlugInTester/Makefile - src/cppunit/Makefile - include/Makefile - include/cppunit/Makefile - include/cppunit/config/Makefile - include/cppunit/extensions/Makefile - include/cppunit/plugin/Makefile - include/cppunit/portability/Makefile - include/cppunit/tools/Makefile - include/cppunit/ui/Makefile - include/cppunit/ui/mfc/Makefile - include/cppunit/ui/qt/Makefile - include/cppunit/ui/text/Makefile - doc/Makefile - doc/Doxyfile - examples/Makefile - examples/simple/Makefile - examples/hierarchy/Makefile - examples/cppunittest/Makefile - examples/ClockerPlugIn/Makefile - examples/DumperPlugIn/Makefile - examples/money/Makefile -],[chmod a+x cppunit-config]) - -AC_CREATE_PREFIX_CONFIG_H([include/cppunit/config-auto.h], - $PACKAGE, [config/config.h]) diff --git a/contrib/cppunit-1.12.1/contrib/bc5/bcc-makefile.zip b/contrib/cppunit-1.12.1/contrib/bc5/bcc-makefile.zip deleted file mode 100644 index 8be8d7bb27104dd86d188ea6dbf99213fcd91bcd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4359 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 diff --git a/contrib/cppunit-1.12.1/contrib/msvc/AddingUnitTestMethod.dsm b/contrib/cppunit-1.12.1/contrib/msvc/AddingUnitTestMethod.dsm deleted file mode 100644 index 51f0dcba3..000000000 --- a/contrib/cppunit-1.12.1/contrib/msvc/AddingUnitTestMethod.dsm +++ /dev/null @@ -1,170 +0,0 @@ -'Made by bloodchen -'bloodchen@hotmail.com -Sub NewTestClass -On Error Resume Next -dim proj_path,ext,pos,proj_dir,MyCppFile,MyCppName,MyHFile,MyHName,ClassName,HText,CPPText -proj_path = ActiveProject.fullname -ext = "" -pos = len (proj_path) -Do While ext <> "\" -ext = Mid(proj_path, pos, 1) -pos = pos -1 -Loop -proj_dir = left(proj_path, pos+1) -ClassName=InputBox("Enter the class name:", "Class Name") -if ActiveProject.Type <> "Build" then -MsgBox "This project is not valid. Ending macro." -Exit Sub -end if -if (len(ClassName) <= 0) then -MsgBox "Invalid class name. Ending macro." -Exit Sub -end if - -' ClassName="CTest" -MyCppName=proj_dir+ClassName+".cpp" -MyHName=proj_dir+ClassName+".h" -ActiveProject.AddFile MyCppName -ActiveProject.AddFile MyHName -Documents.Add "Text" -ActiveDocument.Selection.StartOfDocument - -HText= "#ifndef "+ClassName+"DEF"+VbCrLf& _ -"#define "+ClassName+"DEF"+VbCrLf& _ -""+VbCrLf& _ -"#include "+VbCrLf& _ -"#include "+VbCrLf& _ -"class "+ClassName+":public CppUnit::TestCase"+VbCrLf& _ -"{"+VbCrLf& _ -" CPPUNIT_TEST_SUITE( "+ClassName+" );"+VbCrLf& _ -" CPPUNIT_TEST_SUITE_END();"+VbCrLf& _ -"public:"+VbCrLf& _ -" "+ClassName+"();"+VbCrLf& _ -" virtual ~"+ClassName+"();"+VbCrLf& _ -"};"+VbCrLf& _ -"#endif"+VbCrLf -ActiveDocument.Selection = HText -ActiveDocument.Save MyHName -' WriteFile MyHName,HText -Documents.Add "Text" -ActiveDocument.Selection.StartOfDocument -CPPText = "#include "+chr(34)+"stdafx.h"+chr(34)+VbCrLf& _ -"#include "+chr(34)+ClassName+".h"+chr(34)+VbCrLf& _ -""+VbCrLf& _ -""+VbCrLf& _ -"CPPUNIT_TEST_SUITE_REGISTRATION( "+ClassName+ " );"+VbCrLf& _ -""+VbCrLf& _ -""+VbCrLf& _ -ClassName+"::"+ClassName+"()"+VbCrLf& _ -"{"+VbCrLf& _ -"}"+VbCrLf& _ -""+VbCrLf& _ -""+VbCrLf& _ -ClassName+"::~"+ClassName+"()"+VbCrLf& _ -"{"+VbCrLf& _ -"}" -' WriteFile MyCppName,CPPText -ActiveDocument.Selection = CPPText -ActiveDocument.Save MyCppName - -End Sub - - -Sub ToggleHandCPP() -'DESCRIPTION: Opens the .cpp or .h file for the current document. -'Toggles between the .cpp & .h file -ext = ActiveDocument.FullName -If ext = "" Then -msgbox ("Error, not a .cpp or .h file") -exit sub -End If -DocName = UCase(ext) - -If Right(DocName,4) = ".CPP" Then -fn = left(DocName, Len(DocName)-3) & "h" -ElseIf Right(DocName,2) = ".H" Then -fn = Left(DocName, Len(DocName)-1) & "cpp" -Else -msgbox ("Error, not a .cpp or a .h file") -exit sub -End If -'msgbox (fn) -on error resume next -Documents.Open (fn) -End Sub - -Sub ADDTestMethod() -strHpt = ActiveDocument.FullName -if right(strHpt,3) = "CPP" Or right (strHpt,3) = "cpp" Then -ActiveDocument.Selection.SelectLine -strText = ActiveDocument.Selection.Text -if (Instr(strText, "::" ) = 0) Then -MsgBox("Line not valid !!") -Exit Sub -End If -else exit sub -end if - -pos = Instr(strText, "::") -strName = Right(strText, (Len(strText) - (pos+1))) -pos = Instr(strName,"(") -strName = Left(strName,pos-1) -strClass = Left(strText,pos - 1) -while (instr(strClass, " ") > 0) -pos = instr(strClass, " ") -strTyp = strTyp & Left(strClass, pos) -strClass = Right(strClass, Len(strClass) - (pos) ) -wend -ToggleHandCPP - -ActiveDocument.Selection.SelectAll -strHead = ActiveDocument.Selection.Text - -if (instr(strHead,strClass) = 0) Then -MsgBox(" Can't find class " & strClass & " !!") -ToggleHandCPP -Exit Sub -End If -ActiveDocument.Selection.EndOfDocument -lineBottom = ActiveDocument.Selection.CurrentLine - -ActiveDocument.Selection.StartOfDocument -ActiveDocument.Selection.StartOfLine -ActiveDocument.Selection.SelectLine -strLine = ActiveDocument.Selection.Text -while (instr(strLine, strName) = 0 And ActiveDocument.Selection.CurrentLine <> lineBottom) -ActiveDocument.Selection.StartOfLine -ActiveDocument.Selection.LineDown dsMove -ActiveDocument.Selection.SelectLine -strLine = ActiveDocument.Selection.Text -Wend -if (ActiveDocument.Selection.CurrentLine < lineBottom) Then -if( instr(strLine, "CPPUNIT_TEST" ) <> 0 )Then -ToggleHandCPP -Exit Sub -end if -End If - -ActiveDocument.Selection.StartOfDocument -ActiveDocument.Selection.StartOfLine -ActiveDocument.Selection.SelectLine -strLine = ActiveDocument.Selection.Text -while (instr(strLine, " CPPUNIT_TEST_SUITE_END();" ) = 0 And ActiveDocument.Selection.CurrentLine <> lineBottom) -ActiveDocument.Selection.StartOfLine -ActiveDocument.Selection.LineDown dsMove -ActiveDocument.Selection.SelectLine -strLine = ActiveDocument.Selection.Text -Wend -if (ActiveDocument.Selection.CurrentLine < lineBottom) Then -ActiveDocument.Selection.EndOfLine -ActiveDocument.Selection.LineUp -ActiveDocument.Selection.EndOfLine -ActiveDocument.Selection.NewLine -ActiveDocument.Selection = "CPPUNIT_TEST( "&strName&" );" -else -MsgBox("CPPUNIT_TEST_SUITE_END not found") -end if -ToggleHandCPP - -End Sub - \ No newline at end of file diff --git a/contrib/cppunit-1.12.1/contrib/msvc/CppUnit.WWTpl b/contrib/cppunit-1.12.1/contrib/msvc/CppUnit.WWTpl deleted file mode 100644 index 174a64b5a..000000000 --- a/contrib/cppunit-1.12.1/contrib/msvc/CppUnit.WWTpl +++ /dev/null @@ -1,486 +0,0 @@ -Baptiste Lepilleur's template file. -(@)Copyright 2001, Baptiste Lepilleur . - - - -[-ExtractPath] -!!Memo -Extract the path from a full filename. -path is the filename we need to extract the path from. -returns: extracted path. -Algo: we iterates the filename from the end until we found a character '\'. -!!End - -!!Params -path @@(ProjectPath)@@ -!!End - -!!Code -Input path: "@@path@@" -!!Set index @@(Strlen @@path@@)@@ -!!// -!!Set finalpath -!!Label LoopExtractPath -!!Sub index 1 -!!If @@index@@ < 0 -!!Goto EndExtractPath -!!Endif -!!// -!!Set lastchar @@(StrSub @@path@@ @@index@@ 1)@@ -!!If @@lastchar@@ != "\" -!!Goto LoopExtractPath -!!Endif -!!// -!!Add index 1 -!!Set finalpath @@(StrSub @@path@@ 0 @@index@@)@@ -!!// -!!Label EndExtractPath -!!Return @@finalpath@@ -!!End - - - ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- -[+01 Create Class in file] -!!Memo -Creates a new class in new files (.h/.cpp) and adds them to the project. -!!End - -!!Params -classname Ttr -parentclassname = -classdesc This class represents -objectkind Reference Object -hasserialize 0 -isrefobj 0 -inlinectordtor 0 -createfile 1 -isunittest 0 -!!End - -!!Dialog - -Class name:
-Brief description:
-Object Kind: -
- -Parent class name:
- - - Create a new file ? (otherwise Insert in current file).
-
- - Has: virtual void Serialize( CArchive &ar )
- - Is a reference counted object (inherit ERefObj)
- - Inline ctor/dtor, copy ctor/operator.
- - Is a CppUnit unit test.
- - - - - - - -!!End - -!!Code -!!// Set variable that indicates the kind of object we are working on. -!!Set defvalobject 0 -!!If @@objectkind@@ == "Default Value Object" -!!Set defvalobject 1 -!!Endif -!!// -!!Set valobject 0 -!!If @@objectkind@@ == "Explicit Value Object" -!!Set valobject 1 -!!Endif -!!// -!!Set refobject 0 -!!If @@objectkind@@ == "Reference Object" -!!Set refobject 1 -!!Endif -!!// -!!// Set class filename (relative to dsp) -!!Set headerfn @@classname@@.h -!!Set implfn @@classname@@.cpp -!!Set headerdefine @@(String @@(Call -MakeHeaderDefined fn @@headerfn@@)@@:U)@@ -!!// -!!// hasparentclass indicates if a parent class has been defined. -!!Set hasparentclass 0 -!!If @@parentclassname@@ != = -!!Set hasparentclass 1 -!!Else -!!If @@isunittest@@ -!!Set parentclassname CppUnit::TestFixture -!!Set hasparentclass 1 -!!Endif -!!Endif -!!// -!!// hasparent is set to 1 if the class has some parent (ERefObj or parentclass). -!!Set hasparent @@hasparentclass@@ -!!If @@isrefobj@@ -!!Set hasparent 1 -!!Endif -!!// -!!// -!!// All variables are set, we can now generates the class. -!!// -!!// -!!// -!!// -!!// ---------------------------------------------------------------------------- -!!// ------------------------------ header file --------------------------------- -!!// ---------------------------------------------------------------------------- -!!// -!!// -!!// -!!If @@createfile@@ -!!FileNew @@headerfn@@ dsp -!!Set headerpath @@(FilePath)@@ -// ////////////////////////////////////////////////////////////////////////// -// Header file @@headerfn@@ for class @@classname@@ -// (c)Copyright 2000, Baptiste Lepilleur. -// Created: @@(Date "yyyy/MM/dd")@@ -// ////////////////////////////////////////////////////////////////////////// -#ifndef @@headerdefine@@ -#define @@headerdefine@@ -!!Else -// ////////////////////////////////////////////////////////////////////////// -// ////////////////////////////////////////////////////////////////////////// -// Definition of class @@classname@@ -// ////////////////////////////////////////////////////////////////////////// -// ////////////////////////////////////////////////////////////////////////// -!!Endif -!!If @@hasparentclass@@ - -!!If @@isunittest@@ -#include -!!Else -#include "@@parentclassname@@.h" -!!Endif -!!Endif - - -!!If @@isrefobj@@ -/*! Declare @@classname@@Ref as a reference pointer on @@classname@@. - */ -EDECL_REF( @@classname@@ ); - - - -!!Endif -/*! \class @@classname@@ - * \brief @@classdesc@@ - */ -class @@classname@@@@\ -!!// Write inherited class list (parent class first, then ERefObj if inherited). -!!If @@hasparent@@ - : @@\ -!!// xpos contains the indentation level for inheritance declarations... -!!GetPos xpos ypos -!!Sub xpos 1 -public @@\ -!!Else - -!!Endif -!!If @@hasparentclass@@ -@@parentclassname@@@@\ -!!If @@isrefobj@@ -, -@@(Call -MakeFiller filler " " count @@xpos@@)@@@@\ -public @@\ -!!Else - -!!Endif -!!Endif -!!If @@isrefobj@@ -ERefObj -!!Endif -{ -!!// -!!// -!!// ------------ Done with inheritance, declare the class body... ---------- -!!// -!!// -!!If @@isunittest@@ - CPPUNIT_TEST_SUITE( @@classname@@ ); - CPPUNIT_TEST( putTestMethodNameHere ); - CPPUNIT_TEST_SUITE_END(); - -!!Endif -public: -!!If !@@defvalobject@@ - /*! Constructs a @@classname@@ object. - */ - @@classname@@(); - -!!Endif -!!If @@valobject@@ - /*! Copy constructor. - * @param copy Object to copy. - */ - @@classname@@( const @@classname@@ © ); - -!!Endif - /// Destructor. - virtual ~@@classname@@(); -!!If @@valobject@@ - - /*! Copy operator. - * @param copy Object to copy. - * @return Reference on this object. - */ - @@classname@@ &operator =( const @@classname@@ © ); -!!Endif -!!If @@isunittest@@ - - void setUp(); - void tearDown(); -!!Endif -!!// Private for methods -!!If @@refobject@@ - -private: - /// Prevents the use of the copy constructor. - @@classname@@( const @@classname@@ © ); - - /// Prevents the use of the copy operator. - void operator =( const @@classname@@ © ); -!!Endif -!!// Private for member datas - -private: -}; - - - -!!If @@createfile@@ -// Inlines methods for @@classname@@:@@\ -!!GetPos xpos ypos -!!Sub xpos 4 - -// @@(Call -MakeFiller filler - count @@xpos@@)@@ -!!Endif //@@createfile@@ -!!If @@inlinectordtor@@ -!!If !@@defvalobject@@ - - -inline -@@classname@@::@@classname@@()@@\ -!!If @@hasparentclass@@ - : - @@parentclassname@@() -!!Else - -!!Endif -{ -} -!!Endif //!@@defvalobject@@ -!!If @@valobject@@ - - -inline -@@classname@@::@@classname@@( const @@classname@@ © )@@\ -!!If @@hasparentclass@@ - : - @@parentclassname@@( copy ) -!!Else - -!!Endif -!!Endif //@@valobject@@ - - -inline -@@classname@@::~@@classname@@() -{ -} -!!If @@valobject@@ - - -inline @@classname@@ & -@@classname@@::operator =( const @@classname@@ © ) -{ - - return *this; -} -!!Endif //@@valobject@@ -!!Endif //@@inlinectordtor@@ - - -!!If @@createfile@@ - -#endif // @@headerdefine@@ -!!FileSave -!!ProjectFileAdd -!!Endif -!!// -!!// -!!// -!!// ---------------------------------------------------------------------------- -!!// -------------------------- Implementation file ----------------------------- -!!// ---------------------------------------------------------------------------- -!!// -!!// -!!// -!!If @@createfile@@ -!!FileNew @@implfn@@ dsp -// ////////////////////////////////////////////////////////////////////////// -// Implementation file @@implfn@@ for class @@classname@@ -// (c)Copyright 2000, Baptiste Lepilleur. -// Created: @@(Date "yyyy/MM/dd")@@ -// ////////////////////////////////////////////////////////////////////////// - -#include "StdAfx.h" -#include "@@headerfn@@" -!!Else - - -// ////////////////////////////////////////////////////////////////////////// -// Implementation of class @@classname@@ -// ////////////////////////////////////////////////////////////////////////// -!!Endif -!!If @@isunittest@@ - -CPPUNIT_TEST_SUITE_REGISTRATION( @@classname@@ ); -!!Endif -!!If !@@inlinectordtor@@ -!!If !@@defvalobject@@ - - -@@classname@@::@@classname@@()@@\ -!!If @@hasparentclass@@ - : - @@parentclassname@@() -!!Else - -!!Endif -{ -} -!!Endif -!!If @@valobject@@ - - -@@classname@@::@@classname@@( const @@classname@@ © )@@\ -!!If @@hasparentclass@@ - : - @@parentclassname@@( copy ) -!!Else - -!!Endif -{ -} -!!Endif - - -@@classname@@::~@@classname@@() -{ -} -!!If @@valobject@@ - - -@@classname@@ & -@@classname@@::operator =( const @@classname@@ © ) -{ - - return *this; -} -!!Endif -!!Endif -!!If @@isunittest@@ - - -void -@@classname@@::setUp() -{ -} - - -void -@@classname@@::tearDown() -{ -} -!!Endif - -!!If @@createfile@@ -!!FileSave -!!ProjectFileAdd -!!//ExecuteCommand FileOpen "@@headerpath@@" -!!Endif -!!End - ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- -[-Dummy] -!!Code -!!End - ---------------------------------------------------------------------------------- ------------------------- [-MakeHeaderDefined] ------------------------------- ---------------------------------------------------------------------------------- -[-MakeHeaderDefined] -!!Memo -This template replace all occurences of '.' in the specified filename "fn" by '_'. -This is typically used to make the #ifndef at the beginning of header files. -Parameters: "fn" filename in which each occurence of '.' is replaced by '_'. -Returns: Transformed filename. -!!End - -!!Params -fn TestDoIt -!!End - -!!Code -!!Set result @@fn@@ -!!Label LoopMakeHeaderDefined -!!Set fn @@result@@ -!!// Check if there is any occurence left of '.' -!!Set index @@(StrFind @@fn@@ ".")@@ -!!If @@index@@ < 0 -!!Goto EndMakeHeaderDefined -!!Endif -!!// Replace occurences of '.' in fb by '_' and set to result. -!!Set result @@(StrSub @@fn@@ 0 @@index@@ )@@_ -!!Add index 1 -!!Set result @@result@@@@(StrSub @@fn@@ @@index@@)@@ -!!Goto LoopMakeHeaderDefined -!!Label EndMakeHeaderDefined -!!Return @@result@@ -!!End - ---------------------------------------------------------------------------------- ----------------------------- [-MakeFiller] ---------------------------------- ---------------------------------------------------------------------------------- -[-MakeFiller] -!!Memo -Make a string that contains "count" occurrence of "filler". -Parameters: "filler" String that is repeated. - "count" Number of times the "filler" is repeated. -Returns: A string that contains "count" times the string "filler". -!!End - -!!Params -filler - -count 10 -!!End - -!!Code -!!Set result -!!Label LoopMakerFiller -!!If @@count@@ > 0 -!!Set result @@result@@@@filler@@ -!!Sub count 1 -!!Goto LoopMakerFiller -!!Endif -!!Return @@result@@ -!!End \ No newline at end of file diff --git a/contrib/cppunit-1.12.1/contrib/msvc/readme.txt b/contrib/cppunit-1.12.1/contrib/msvc/readme.txt deleted file mode 100644 index b2ac1b48a..000000000 --- a/contrib/cppunit-1.12.1/contrib/msvc/readme.txt +++ /dev/null @@ -1,10 +0,0 @@ -What's in those files: - - * CppUnit.WWTpl: a template Workspace Whiz! which create a new class -and add the new files to the project. You can specify that the class is a -CppUnit testcase and all the macro will be defined to register the test case -and declare the test suite. Workspace Whiz! is an add-ins for VC++. It can -be found at: http://www.workspacewhiz.com/. - - * AddingUnitTestMethod.dsm: a set of VC++ macro to add unit test -using helper macros. \ No newline at end of file diff --git a/contrib/cppunit-1.12.1/contrib/xml-xsl/report.xsl b/contrib/cppunit-1.12.1/contrib/xml-xsl/report.xsl deleted file mode 100644 index b394cdbe6..000000000 --- a/contrib/cppunit-1.12.1/contrib/xml-xsl/report.xsl +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - -Test Report - - - -

Test Report

- - - -
- - -

FailedTests

- - - - - - - - - - - -
idNameFailureTypeLocationMessage
-
- - No failed test. - -
-
- - - - - - - -
- -
- - - - line # in - - - - -

SuccessfulTests

- - - - - - - - -
idName
-
- - No sucessful test. - -
-
- - - - - - - - - -

Statistics

- - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusNumber
Tests
FailuresTotal
Errors
Failures
-
- -
diff --git a/contrib/cppunit-1.12.1/contrib/xml-xsl/tests.xml b/contrib/cppunit-1.12.1/contrib/xml-xsl/tests.xml deleted file mode 100644 index 6fef14ebe..000000000 --- a/contrib/cppunit-1.12.1/contrib/xml-xsl/tests.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - ExampleTestCase.example - Assertion - - exampletestcase.cpp - 7 - - - Expected : { 0; 7; 8; 9; 10; 11; 1; 2; 3; 4; 5; 6; 12; 13; 14; 15; 16; 17; 18; 19 } -- Actual : { 0; 1; 2; 3; 4; 5; 7; 8; 9; 10; 11; 6; 12; 13; 14; 15; 16; 17; 18; 19 } -- Difference at index 1 -->Expected : { 7; 8; 9; 10; 11; 1; 2; 3; 4; 5; 6; 12; 13; 14; 15; 16; 17; 18; 19 } -->Actual : { 1; 2; 3; 4; 5; 7; 8; 9; 10; 11; 6; 12; 13; 14; 15; 16; 17; 18; 19 } - - - ExampleTestCase.anotherExample - Assertion - - exampletestcase.cpp - 15 - - 1 == 2 - - - ExampleTestCase.testAdd - Assertion - - exampletestcase.cpp - 27 - - result == 6.0 - - - ExampleTestCase.testDivideByZero - Error - caught unknown exception - - - ExampleTestCase.testEquals - Assertion - - exampletestcase.cpp - 48 - - Expected: 12, but was: 13. - - - - - 5 - 5 - 1 - 4 - - diff --git a/contrib/cppunit-1.12.1/cppunit-config.1 b/contrib/cppunit-1.12.1/cppunit-config.1 deleted file mode 100644 index baa8b5845..000000000 --- a/contrib/cppunit-1.12.1/cppunit-config.1 +++ /dev/null @@ -1,67 +0,0 @@ -.TH cppunit 1 "September 2001" -.SH NAME -cppunit-config - script to get information about the installed version of cppunit -.SH SYNOPSIS -.B cppunit-config -[\-\-prefix\fI[=DIR]\fP] [\-\-exec\-prefix\fI[=DIR]\fP] [\-\-version] [\-\-libs] [\-\-cflags] -.SH DESCRIPTION -.PP -\fIcppunit-config\fP is a tool that is used to configure to determine -the compiler and linker flags that should be used to compile and link -programs that use \fIcppunit\fP. It is also used internally to the .m4 -macros for GNU autoconf that are included with \fIcppunit\fP. -. -.SH OPTIONS -.l -\fIcppunit-config\fP accepts the following options: -.TP 8 -.B \-\-version -Print the currently installed version of \fIcppunit\fP on the standard -output. -.TP 8 -.B \-\-libs -Print the linker flags that are necessary to link a \fIcppunit\fP -program. -.TP 8 -.B \-\-cflags -Print the compiler flags that are necessary to compile a \fIcppunit\fP -program. -.TP 8 -.B \-\-prefix -Print the prefix with which \fIcppunit\fP was compiled. -.TP 8 -.B \-\-prefix=PREFIX -If specified, use PREFIX instead of the installation prefix that -\fIcppunit\fP was built with when computing the output for the -\-\-cflags and \-\-libs options. This option is also used for the exec -prefix if \-\-exec\-prefix was not specified. This option must be -specified before any \-\-libs or \-\-cflags options. -.TP 8 -.B \-\-exec\-prefix -Print the exec\-prefix with which \fIcppunit\fP was compiled. -.TP 8 -.B \-\-exec\-prefix=PREFIX -If specified, use PREFIX instead of the installation exec prefix that -\fIcppunit\fP was built with when computing the output for the -\-\-cflags and \-\-libs options. This option must be specified before -any \-\-libs or \-\-cflags options. -.SH COPYRIGHT -cppunit Copyright \(co 1996-2000 by Michael Feathers -.PP -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or (at -your option) any later version. -.PP -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. -.PP -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -.SH AUTHOR -This manpage is an almost word-for-word copy of the gtk-config -manpage, written by Owen Taylor. It was modified by E. Sommerlade -. diff --git a/contrib/cppunit-1.12.1/cppunit-config.in b/contrib/cppunit-1.12.1/cppunit-config.in deleted file mode 100644 index 51e8b581c..000000000 --- a/contrib/cppunit-1.12.1/cppunit-config.in +++ /dev/null @@ -1,98 +0,0 @@ -#!/bin/sh - -prefix=@prefix@ -exec_prefix=@exec_prefix@ -exec_prefix_set=no -includedir=@includedir@ - -usage() -{ - cat <&2 -fi - -while test $# -gt 0; do - case "$1" in - -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) optarg= ;; - esac - - case $1 in - --prefix=*) - prefix=$optarg - if test $exec_prefix_set = no ; then - exec_prefix=$optarg - fi - ;; - --prefix) - echo_prefix=yes - ;; - --exec-prefix=*) - exec_prefix=$optarg - exec_prefix_set=yes - ;; - --exec-prefix) - echo_exec_prefix=yes - ;; - --version) - echo @CPPUNIT_VERSION@ - ;; - --help) - usage 0 - ;; - --cflags) - echo_cflags=yes - ;; - --libs) - echo_libs=yes - ;; - *) - usage 1 1>&2 - ;; - esac - shift -done - -if test "$echo_prefix" = "yes"; then - echo $prefix -fi - -if test "$echo_exec_prefix" = "yes"; then - echo $exec_prefix -fi - -if test "$echo_cflags" = "yes"; then - if test "$includedir" != "/usr/include" ; then - echo -I$includedir - fi -fi - -if test "$echo_libs" = "yes"; then - if test @libdir@ != /usr/lib ; then - my_linker_flags="-L@libdir@" - fi - echo ${my_linker_flags} -lcppunit @LIBADD_DL@ -fi - - - - diff --git a/contrib/cppunit-1.12.1/cppunit.m4 b/contrib/cppunit-1.12.1/cppunit.m4 deleted file mode 100644 index 41f067b6d..000000000 --- a/contrib/cppunit-1.12.1/cppunit.m4 +++ /dev/null @@ -1,92 +0,0 @@ -dnl -dnl AM_PATH_CPPUNIT(MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) -dnl -AC_DEFUN([AM_PATH_CPPUNIT], -[ - -AC_ARG_WITH(cppunit-prefix,[ --with-cppunit-prefix=PFX Prefix where CppUnit is installed (optional)], - cppunit_config_prefix="$withval", cppunit_config_prefix="") -AC_ARG_WITH(cppunit-exec-prefix,[ --with-cppunit-exec-prefix=PFX Exec prefix where CppUnit is installed (optional)], - cppunit_config_exec_prefix="$withval", cppunit_config_exec_prefix="") - - if test x$cppunit_config_exec_prefix != x ; then - cppunit_config_args="$cppunit_config_args --exec-prefix=$cppunit_config_exec_prefix" - if test x${CPPUNIT_CONFIG+set} != xset ; then - CPPUNIT_CONFIG=$cppunit_config_exec_prefix/bin/cppunit-config - fi - fi - if test x$cppunit_config_prefix != x ; then - cppunit_config_args="$cppunit_config_args --prefix=$cppunit_config_prefix" - if test x${CPPUNIT_CONFIG+set} != xset ; then - CPPUNIT_CONFIG=$cppunit_config_prefix/bin/cppunit-config - fi - fi - - AC_PATH_PROG(CPPUNIT_CONFIG, cppunit-config, no) - cppunit_version_min=$1 - - AC_MSG_CHECKING(for Cppunit - version >= $cppunit_version_min) - no_cppunit="" - if test "$CPPUNIT_CONFIG" = "no" ; then - AC_MSG_RESULT(no) - no_cppunit=yes - else - CPPUNIT_CFLAGS=`$CPPUNIT_CONFIG --cflags` - CPPUNIT_LIBS=`$CPPUNIT_CONFIG --libs` - cppunit_version=`$CPPUNIT_CONFIG --version` - - cppunit_major_version=`echo $cppunit_version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` - cppunit_minor_version=`echo $cppunit_version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - cppunit_micro_version=`echo $cppunit_version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` - - cppunit_major_min=`echo $cppunit_version_min | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` - if test "x${cppunit_major_min}" = "x" ; then - cppunit_major_min=0 - fi - - cppunit_minor_min=`echo $cppunit_version_min | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - if test "x${cppunit_minor_min}" = "x" ; then - cppunit_minor_min=0 - fi - - cppunit_micro_min=`echo $cppunit_version_min | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` - if test "x${cppunit_micro_min}" = "x" ; then - cppunit_micro_min=0 - fi - - cppunit_version_proper=`expr \ - $cppunit_major_version \> $cppunit_major_min \| \ - $cppunit_major_version \= $cppunit_major_min \& \ - $cppunit_minor_version \> $cppunit_minor_min \| \ - $cppunit_major_version \= $cppunit_major_min \& \ - $cppunit_minor_version \= $cppunit_minor_min \& \ - $cppunit_micro_version \>= $cppunit_micro_min ` - - if test "$cppunit_version_proper" = "1" ; then - AC_MSG_RESULT([$cppunit_major_version.$cppunit_minor_version.$cppunit_micro_version]) - else - AC_MSG_RESULT(no) - no_cppunit=yes - fi - fi - - if test "x$no_cppunit" = x ; then - ifelse([$2], , :, [$2]) - else - CPPUNIT_CFLAGS="" - CPPUNIT_LIBS="" - ifelse([$3], , :, [$3]) - fi - - AC_SUBST(CPPUNIT_CFLAGS) - AC_SUBST(CPPUNIT_LIBS) -]) - - - diff --git a/contrib/cppunit-1.12.1/cppunit.pc.in b/contrib/cppunit-1.12.1/cppunit.pc.in deleted file mode 100644 index 79c3a7f5e..000000000 --- a/contrib/cppunit-1.12.1/cppunit.pc.in +++ /dev/null @@ -1,11 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: CppUnit -Description: The C++ Unit Test Library -Version: @CPPUNIT_VERSION@ -Libs: -L${libdir} -lcppunit -Libs.private: @LIBADD_DL@ -Cflags: -I${includedir} \ No newline at end of file diff --git a/contrib/cppunit-1.12.1/cppunit.spec b/contrib/cppunit-1.12.1/cppunit.spec deleted file mode 100644 index 5152beb0e..000000000 --- a/contrib/cppunit-1.12.1/cppunit.spec +++ /dev/null @@ -1,65 +0,0 @@ -Name: cppunit -Version: 1.12.1 -Release: 2 - -Summary: C++ Port of JUnit Testing Framework -License: LGPL -Group: Development/Libraries -Url: http://cppunit.sourceforge.net/ -Source: ftp://download.sourceforge.net/pub/sourceforge/cppunit/cppunit-%version.tar.gz - -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - -%description -CppUnit is the C++ port of the famous JUnit framework for unit testing. -Test output is in XML for automatic testing and GUI based for supervised tests. - -%package doc -Summary: HTML formatted API documention for Log for C++ -Group: Development/Libraries -Requires: %name = %version - -%description doc -The %name-doc package contains HTML formatted API documention generated by -the popular doxygen documentation generation tool. - -%prep -%setup -q - -%build -%configure --enable-doxygen -make %{?_smp_mflags} - -%install -rm -rf $RPM_BUILD_ROOT -make install DESTDIR=$RPM_BUILD_ROOT -rm -f $RPM_BUILD_ROOT/%{_libdir}/*.la -rm -rf $RPM_BUILD_ROOT/%{_datadir}/cppunit - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -%defattr(-,root,root,-) -%{_bindir}/cppunit-config -%{_bindir}/DllPlugInTester -%{_includedir}/cppunit/* -%{_mandir}/man1/* -%{_datadir}/aclocal/* -%{_libdir}/libcppunit*.so.* -%{_libdir}/libcppunit.so -%{_libdir}/libcppunit.a -%doc AUTHORS COPYING INSTALL NEWS README THANKS ChangeLog TODO BUGS doc/FAQ - -%post -p /sbin/ldconfig - -%postun -p /sbin/ldconfig - -%files doc -%doc doc/html/* - -%changelog -* Mon Jul 4 2005 Patrice Dumas -- update using the fedora template -* Sat Apr 14 2001 Bastiaan Bakker -- Initial release diff --git a/contrib/cppunit-1.12.1/cppunit.spec.in b/contrib/cppunit-1.12.1/cppunit.spec.in deleted file mode 100644 index 39507dc35..000000000 --- a/contrib/cppunit-1.12.1/cppunit.spec.in +++ /dev/null @@ -1,65 +0,0 @@ -Name: cppunit -Version: @VERSION@ -Release: 2 - -Summary: C++ Port of JUnit Testing Framework -License: LGPL -Group: Development/Libraries -Url: http://cppunit.sourceforge.net/ -Source: ftp://download.sourceforge.net/pub/sourceforge/cppunit/cppunit-%version.tar.gz - -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - -%description -CppUnit is the C++ port of the famous JUnit framework for unit testing. -Test output is in XML for automatic testing and GUI based for supervised tests. - -%package doc -Summary: HTML formatted API documention for Log for C++ -Group: Development/Libraries -Requires: %name = %version - -%description doc -The %name-doc package contains HTML formatted API documention generated by -the popular doxygen documentation generation tool. - -%prep -%setup -q - -%build -%configure --enable-doxygen -make %{?_smp_mflags} - -%install -rm -rf $RPM_BUILD_ROOT -make install DESTDIR=$RPM_BUILD_ROOT -rm -f $RPM_BUILD_ROOT/%{_libdir}/*.la -rm -rf $RPM_BUILD_ROOT/%{_datadir}/cppunit - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -%defattr(-,root,root,-) -%{_bindir}/cppunit-config -%{_bindir}/DllPlugInTester -%{_includedir}/cppunit/* -%{_mandir}/man1/* -%{_datadir}/aclocal/* -%{_libdir}/libcppunit*.so.* -%{_libdir}/libcppunit.so -%{_libdir}/libcppunit.a -%doc AUTHORS COPYING INSTALL NEWS README THANKS ChangeLog TODO BUGS doc/FAQ - -%post -p /sbin/ldconfig - -%postun -p /sbin/ldconfig - -%files doc -%doc doc/html/* - -%changelog -* Mon Jul 4 2005 Patrice Dumas -- update using the fedora template -* Sat Apr 14 2001 Bastiaan Bakker -- Initial release diff --git a/contrib/cppunit-1.12.1/doc/Doxyfile.in b/contrib/cppunit-1.12.1/doc/Doxyfile.in deleted file mode 100644 index 28f462451..000000000 --- a/contrib/cppunit-1.12.1/doc/Doxyfile.in +++ /dev/null @@ -1,604 +0,0 @@ -# Doxyfile 1.1.4 - -# This file describes the settings to be used by doxygen for a project -# -# All text after a hash (#) is considered a comment and will be ignored -# The format is: -# TAG = value [value, ...] -# Values that contain spaces should be placed between quotes (" ") - -#--------------------------------------------------------------------------- -# General configuration options -#--------------------------------------------------------------------------- - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded -# by quotes) that should identify the project. - -PROJECT_NAME = CppUnit - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. -# This could be handy for archiving the generated documentation or -# if some version control system is used. - -PROJECT_NUMBER = "Version @VERSION@" - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location -# where doxygen was started. If left blank the current directory will be used. - -OUTPUT_DIRECTORY = . - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# The default language is English, other supported languages are: -# Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese, -# Spanish and Russian - -OUTPUT_LANGUAGE = English - -# The DISABLE_INDEX tag can be used to turn on/off the condensed index at -# top of each HTML page. The value NO (the default) enables the index and -# the value YES disables it. - -DISABLE_INDEX = NO - -# If the EXTRACT_ALL tag is set to YES all classes and functions will be -# included in the documentation, even if no documentation was available. - -EXTRACT_ALL = YES - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class -# will be included in the documentation. - -EXTRACT_PRIVATE = YES - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all -# undocumented members inside documented classes or files. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSESS tag is set to YES, Doxygen will hide all -# undocumented classes. - -HIDE_UNDOC_CLASSES = NO - -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). -# Set to NO to disable this. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. - -REPEAT_BRIEF = YES - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief -# description. - -ALWAYS_DETAILED_SEC = NO - -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set -# to NO the shortest path that makes the file name unique will be used. - -FULL_PATH_NAMES = NO - -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. - -STRIP_FROM_PATH = - -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. -# Set it to YES to include the internal documentation. - -INTERNAL_DOCS = NO - -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a class diagram (in Html and LaTeX) for classes with base or -# super classes. Setting the tag to NO turns the diagrams off. - -CLASS_DIAGRAMS = YES - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will -# be generated. Documented entities will be cross-referenced with these sources. - -SOURCE_BROWSER = NO - -# Setting the INLINE_SOURCES tag to YES will include the body -# of functions and classes directly in the documentation. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct -# doxygen to hide any special comment blocks from generated source code -# fragments. Normal C and C++ comments will always remain visible. - -STRIP_CODE_COMMENTS = YES - -# If the CASE_SENSE_NAMES tag is set to NO (the default) then Doxygen -# will only generate file names in lower case letters. If set to -# YES upper case letters are also allowed. This is useful if you have -# classes or files whose names only differ in case and if your file system -# supports case sensitive file names. - -CASE_SENSE_NAMES = NO - -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for -# which an include is specified. Set to NO to disable this. - -VERBATIM_HEADERS = YES - -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put list of the files that are included by a file in the documentation -# of that file. - -SHOW_INCLUDE_FILES = YES - -# If the JAVADOC_AUTOBRIEF tag is set to YES (the default) then Doxygen -# will interpret the first line (until the first dot) of a JavaDoc-style -# comment as the brief description. If set to NO, the Javadoc-style will -# behave just like the Qt-style comments. - -JAVADOC_AUTOBRIEF = YES - -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it -# reimplements. - -INHERIT_DOCS = YES - -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] -# is inserted in the documentation for inline members. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen -# will sort the (detailed) documentation of file and class members -# alphabetically by member name. If set to NO the members will appear in -# declaration order. - -SORT_MEMBER_DOCS = YES - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. -# Doxygen uses this value to replace tabs by spaces in code fragments. - -TAB_SIZE = 8 - -# The ENABLE_SECTIONS tag can be used to enable conditional -# documentation sections, marked by \if sectionname ... \endif. - -ENABLED_SECTIONS = - -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated -# by doxygen. Possible values are YES and NO. If left blank NO is used. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank -# NO is used. - -WARNINGS = YES - -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will -# automatically be disabled. - -WARN_IF_UNDOCUMENTED = YES - -# The WARN_FORMAT tag determines the format of the warning messages that -# doxygen can produce. The string should contain the $file, $line, and $text -# tags, which will be replaced by the file and line number from which the -# warning originated and the warning text. - -WARN_FORMAT = "$file:$line: $text" - -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories -# with spaces. - -INPUT = @top_srcdir@/include @top_srcdir@/src/cppunit @srcdir@/other_documentation.dox @srcdir@/cookbook.dox @srcdir@/Money.dox - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank all files are included. - -FILE_PATTERNS = *.cpp *.h - -# The RECURSIVE tag can be used to turn specify whether or not subdirectories -# should be searched for input files as well. Possible values are YES and NO. -# If left blank NO is used. - -RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. - -EXCLUDE = - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. - -EXCLUDE_PATTERNS = config-*.h - -# The EXAMPLE_PATH tag can be used to specify one or more files or -# directories that contain example code fragments that are included (see -# the \include command). - -EXAMPLE_PATH = ../examples - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank all files are included. - -EXAMPLE_PATTERNS = *.cpp *.h - -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see -# the \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command , where -# is the value of the INPUT_FILTER tag, and is the name of an -# input file. Doxygen will then use the output that the filter program writes -# to standard output. - -INPUT_FILTER = - -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index -# of all compounds will be generated. Enable this if the project -# contains a lot of classes, structs, unions or interfaces. - -ALPHABETICAL_INDEX = YES - -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns -# in which this list will be split (can be a number in the range [1..20]) - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all -# classes will be put under the same header in the alphabetical index. -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that -# should be ignored while generating the index headers. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will -# generate HTML output. - -GENERATE_HTML = @enable_html_docs@ - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `html' will be used as the default path. - -HTML_OUTPUT = html - -# The HTML_HEADER tag can be used to specify a personal HTML header for -# each generated HTML page. If it is left blank doxygen will generate a -# standard header. - -HTML_HEADER = @srcdir@/header.html - -# The HTML_FOOTER tag can be used to specify a personal HTML footer for -# each generated HTML page. If it is left blank doxygen will generate a -# standard footer. - -HTML_FOOTER = @srcdir@/footer.html - -# The HTML_STYLESHEET tag can be used to specify a user defined cascading -# style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If the tag is left blank doxygen -# will generate a default style sheet - -HTML_STYLESHEET = - -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, -# files or namespaces will be aligned in HTML using tables. If set to -# NO a bullet list will be used. - -HTML_ALIGN_MEMBERS = YES - -# If the GENERATE_HTMLHELP tag is set to YES, additional index files -# will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) -# of the generated HTML documentation. - -GENERATE_HTMLHELP = NO - -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- - -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will -# generate Latex output. - -GENERATE_LATEX = @enable_latex_docs@ - -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `latex' will be used as the default path. - -LATEX_OUTPUT = latex - -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact -# LaTeX documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_LATEX = NO - -# The PAPER_TYPE tag can be used to set the paper type that is used -# by the printer. Possible values are: a4, a4wide, letter, legal and -# executive. If left blank a4wide will be used. - -PAPER_TYPE = a4wide - -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX -# packages that should be included in the LaTeX output. - -EXTRA_PACKAGES = - -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for -# the generated latex document. The header should contain everything until -# the first chapter. If it is left blank doxygen will generate a -# standard header. Notice: only use this tag if you know what you are doing! - -LATEX_HEADER = - -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated -# is prepared for conversion to pdf (using ps2pdf). The pdf file will -# contain links (just like the HTML output) instead of page references -# This makes the output suitable for online browsing using a pdf viewer. - -PDF_HYPERLINKS = NO - -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. -# command to the generated LaTeX files. This will instruct LaTeX to keep -# running if errors occur, instead of asking the user for help. -# This option is also used when generating formulas in HTML. - -LATEX_BATCHMODE = NO - -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- - -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output -# For now this is experimental and is disabled by default. The RTF output -# is optimised for Word 97 and may not look too pretty with other readers -# or editors. - -GENERATE_RTF = NO - -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `rtf' will be used as the default path. - -RTF_OUTPUT = rtf - -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact -# RTF documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_RTF = NO - -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated -# will contain hyperlink fields. The RTF file will -# contain links (just like the HTML output) instead of page references. -# This makes the output suitable for online browsing using a WORD or other. -# programs which support those fields. -# Note: wordpad (write) and others do not support links. - -RTF_HYPERLINKS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- - -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will -# generate man pages - -GENERATE_MAN = NO - -# The MAN_OUTPUT tag is used to specify where the man pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `man' will be used as the default path. - -MAN_OUTPUT = man - -# The MAN_EXTENSION tag determines the extension that is added to -# the generated man pages (default is the subroutine's section .3) - -MAN_EXTENSION = .3 - -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- - -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will -# evaluate all C-preprocessor directives found in the sources and include -# files. - -ENABLE_PREPROCESSING = YES - -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro -# names in the source code. If set to NO (the default) only conditional -# compilation will be performed. - -MACRO_EXPANSION = NO - -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files -# in the INCLUDE_PATH (see below) will be search if a #include is found. - -SEARCH_INCLUDES = YES - -# The INCLUDE_PATH tag can be used to specify one or more directories that -# contain include files that are not input files but should be processed by -# the preprocessor. - -INCLUDE_PATH = - -# The PREDEFINED tag can be used to specify one or more macro names that -# are defined before the preprocessor is started (similar to the -D option of -# gcc). The argument of the tag is a list of macros of the form: name -# or name=definition (no spaces). If the definition and the = are -# omitted =1 is assumed. - -PREDEFINED = CPPUNIT_HAVE_CPP_SOURCE_ANNOTATION \ - CPPUNIT_HAVE_NAMESPACES=1 \ - CPPUNIT_NS_BEGIN="namespace CppUnit {" \ - CPPUNIT_NS_END=} \ - CPPUNIT_NS=CppUnit - -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES -# then the macro expansion is limited to the macros specified with the -# PREDEFINED tag. - -EXPAND_ONLY_PREDEF = YES - -#--------------------------------------------------------------------------- -# Configuration::addtions related to external references -#--------------------------------------------------------------------------- - -# The TAGFILES tag can be used to specify one or more tagfiles. - -TAGFILES = - -# When a file name is specified after GENERATE_TAGFILE, doxygen will create -# a tag file that is based on the input files it reads. - -GENERATE_TAGFILE = - -# If the ALLEXTERNALS tag is set to YES all external classes will be listed -# in the class index. If set to NO only the inherited external classes -# will be listed. - -ALLEXTERNALS = NO - -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of `which perl'). - -PERL_PATH = /usr/bin/perl - -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- - -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is -# available from the path. This tool is part of Graphviz, a graph visualization -# toolkit from AT&T and Lucent Bell Labs. The other options in this section -# have no effect if this option is set to NO (the default) - -HAVE_DOT = @enable_dot@ - -# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect inheritance relations. Setting this tag to YES will force the -# the CLASS_DIAGRAMS tag to NO. - -CLASS_GRAPH = YES - -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect implementation dependencies (inheritance, containment, and -# class references variables) of the class with other documented classes. - -COLLABORATION_GRAPH = YES - -# If the ENABLE_PREPROCESSING, INCLUDE_GRAPH, and HAVE_DOT tags are set to -# YES then doxygen will generate a graph for each documented file showing -# the direct and indirect include dependencies of the file with other -# documented files. - -INCLUDE_GRAPH = YES - -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen -# will graphical hierarchy of all classes instead of a textual one. - -GRAPHICAL_HIERARCHY = YES - -# This tag can be used to specify the path where the dot tool can be found. -# If left blank, it is assumed the dot tool can be found on the path. - -DOT_PATH = - -#--------------------------------------------------------------------------- -# Configuration::addtions related to the search engine -#--------------------------------------------------------------------------- - -# The SEARCHENGINE tag specifies whether or not a search engine should be -# used. If set to NO the values of all tags below this one will be ignored. - -SEARCHENGINE = NO - -# The CGI_NAME tag should be the name of the CGI script that -# starts the search engine (doxysearch) with the correct parameters. -# A script with this name will be generated by doxygen. - -CGI_NAME = search.cgi - -# The CGI_URL tag should be the absolute URL to the directory where the -# cgi binaries are located. See the documentation of your http daemon for -# details. - -CGI_URL = - -# The DOC_URL tag should be the absolute URL to the directory where the -# documentation is located. If left blank the absolute path to the -# documentation, with file:// prepended to it, will be used. - -DOC_URL = - -# The DOC_ABSPATH tag should be the absolute path to the directory where the -# documentation is located. If left blank the directory on the local machine -# will be used. - -DOC_ABSPATH = - -# The BIN_ABSPATH tag must point to the directory where the doxysearch binary -# is installed. - -BIN_ABSPATH = /usr/local/bin/ - -# The EXT_DOC_PATHS tag can be used to specify one or more paths to -# documentation generated for other projects. This allows doxysearch to search -# the documentation for these projects as well. - -EXT_DOC_PATHS = diff --git a/contrib/cppunit-1.12.1/doc/FAQ b/contrib/cppunit-1.12.1/doc/FAQ deleted file mode 100644 index e43cdbaf6..000000000 --- a/contrib/cppunit-1.12.1/doc/FAQ +++ /dev/null @@ -1,31 +0,0 @@ -Frequently Asked Questions: ---------------------------- - -1) Questions relating to CppUnit - ---------------------------- - -1.1) Isn't there an easier way to write unit tests than using TestCaller ? - - Yes, there is. Macros have been created to take care of the repetitive -work. Look up include/extensions/HelperMacros.h in CppUnit documentation. -Most of CppUnit test suite is also written that way since they remain -compatible as CppUnit evolve. They also use RTTI if available. - - -2) Questions related to Microsoft Visual VC++ - ----------------------------------------- - -2.1) Why does the compiler report an error when linking with CppUnit library? - - You most likely are not using the same C-RunTime library as CppUnit. - In Release configuration, CppUnit use "Mulithreaded DLL". - In Debug configurations, CppUnit use "Debug Multihreaded DLL". - Check that Projects/Settings.../C++/Code Generation is indeed using -the correct library. - -2.2) Why does CppUnit generate warning 4786:... when compiling ? - - I really don't have a clue. All CppUnit's headers starts by either -including Portability.h or another CppUnit's header. Portability.h includes -config-msvc6.h which disable that specific warning. The warning is generated -by TestFactoryRegistry::m_factories. A solution to this problem is welcome. \ No newline at end of file diff --git a/contrib/cppunit-1.12.1/doc/Makefile.am b/contrib/cppunit-1.12.1/doc/Makefile.am deleted file mode 100644 index 08e5a03b6..000000000 --- a/contrib/cppunit-1.12.1/doc/Makefile.am +++ /dev/null @@ -1,67 +0,0 @@ -EXTRA_DIST = $(doxygen_input) $(static_pages) - -doxygen_input = cookbook.dox other_documentation.dox header.html footer.html Money.dox -static_pages = FAQ - - -# DOC is defined if installer requests doc generation. -# For now, we only install HTML documentation. We could install manpages -# using the following -# man_MANS = man/man3/CppUnit.3 -# man/man3/CppUnit.3: dox -# and an extra copy or two in the install-data-hook. -# However, the manpages do not appear to be tremendously useful, so -# let's not bother. - -if DOC - -htmldir = $(pkgdatadir)/html -html_DATA = $(static_pages) html/index.html - -install-data-hook: - cp -pR html/* $(DESTDIR)$(htmldir) - -# Automake's "distcheck" is sensitive to having files left over -# after "make uninstall", so we have to clean up the install hook. -uninstall-local: - rm -rf $(DESTDIR)$(htmldir) - -dox: html/index.html - -else - -# We repeat the three targets in both the "if" and "else" clauses -# of the conditional, because the generated makefile will contain -# references to the targets (target "install" depends on target -# "install-datahook", for example), and some make programs get upset -# if no target exists. - -install-data-hook: -uninstall-local: -dox: - -endif - - -all-local: dox - - -html/index.html: Doxyfile $(doxygen_input) - "@DOXYGEN@" - - -# Make tarfile to distribute the HTML documentation. -doc-dist: dox - cp $(static_pages) html - tar -czf $(PACKAGE)-docs-$(VERSION).tar.gz -C html . - -pdf: @PACKAGE@.pdf -@PACKAGE@.pdf: - $(MAKE) -C ./latex pdf - ln -s ./latex/refman.ps @PACKAGE@.ps - ln -s ./latex/refman.pdf @PACKAGE@.pdf - - -clean-local: - $(RM) -r latex - $(RM) -r html man @PACKAGE@.ps @PACKAGE@.pdf diff --git a/contrib/cppunit-1.12.1/doc/Makefile.in b/contrib/cppunit-1.12.1/doc/Makefile.in deleted file mode 100644 index a60dd6bed..000000000 --- a/contrib/cppunit-1.12.1/doc/Makefile.in +++ /dev/null @@ -1,441 +0,0 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = doc -DIST_COMMON = $(srcdir)/Doxyfile.in $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = \ - $(top_srcdir)/config/ac_create_prefix_config_h.m4 \ - $(top_srcdir)/config/ac_cxx_have_sstream.m4 \ - $(top_srcdir)/config/ac_cxx_have_strstream.m4 \ - $(top_srcdir)/config/ac_cxx_namespaces.m4 \ - $(top_srcdir)/config/ac_cxx_rtti.m4 \ - $(top_srcdir)/config/ac_cxx_string_compare_string_first.m4 \ - $(top_srcdir)/config/ac_dll.m4 \ - $(top_srcdir)/config/ax_cxx_gcc_abi_demangle.m4 \ - $(top_srcdir)/config/ax_cxx_have_isfinite.m4 \ - $(top_srcdir)/config/bb_enable_doxygen.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config/config.h -CONFIG_CLEAN_FILES = Doxyfile -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(htmldir)" -htmlDATA_INSTALL = $(INSTALL_DATA) -DATA = $(html_DATA) -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@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CPPUNIT_BINARY_AGE = @CPPUNIT_BINARY_AGE@ -CPPUNIT_INTERFACE_AGE = @CPPUNIT_INTERFACE_AGE@ -CPPUNIT_MAJOR_VERSION = @CPPUNIT_MAJOR_VERSION@ -CPPUNIT_MICRO_VERSION = @CPPUNIT_MICRO_VERSION@ -CPPUNIT_MINOR_VERSION = @CPPUNIT_MINOR_VERSION@ -CPPUNIT_VERSION = @CPPUNIT_VERSION@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOT = @DOT@ -DOXYGEN = @DOXYGEN@ -DSYMUTIL = @DSYMUTIL@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBADD_DL = @LIBADD_DL@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -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@ -enable_dot = @enable_dot@ -enable_html_docs = @enable_html_docs@ -enable_latex_docs = @enable_latex_docs@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ - -# DOC is defined if installer requests doc generation. -# For now, we only install HTML documentation. We could install manpages -# using the following -# man_MANS = man/man3/CppUnit.3 -# man/man3/CppUnit.3: dox -# and an extra copy or two in the install-data-hook. -# However, the manpages do not appear to be tremendously useful, so -# let's not bother. -@DOC_TRUE@htmldir = $(pkgdatadir)/html -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -EXTRA_DIST = $(doxygen_input) $(static_pages) -doxygen_input = cookbook.dox other_documentation.dox header.html footer.html Money.dox -static_pages = FAQ -@DOC_TRUE@html_DATA = $(static_pages) html/index.html -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu doc/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(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 -Doxyfile: $(top_builddir)/config.status $(srcdir)/Doxyfile.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-htmlDATA: $(html_DATA) - @$(NORMAL_INSTALL) - test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)" - @list='$(html_DATA)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(htmlDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \ - $(htmlDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \ - done - -uninstall-htmlDATA: - @$(NORMAL_UNINSTALL) - @list='$(html_DATA)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(htmldir)/$$f'"; \ - rm -f "$(DESTDIR)$(htmldir)/$$f"; \ - done -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -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 $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$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 $(DATA) all-local -installdirs: - for dir in "$(DESTDIR)$(htmldir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(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: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool clean-local mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: install-htmlDATA - @$(NORMAL_INSTALL) - $(MAKE) $(AM_MAKEFLAGS) install-data-hook - -install-dvi: install-dvi-am - -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 - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-htmlDATA uninstall-local - -.MAKE: install-am install-data-am install-strip - -.PHONY: all all-am all-local check check-am clean clean-generic \ - clean-libtool clean-local distclean distclean-generic \ - distclean-libtool distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am \ - install-data-hook install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-htmlDATA \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ - uninstall-htmlDATA uninstall-local - - -@DOC_TRUE@install-data-hook: -@DOC_TRUE@ cp -pR html/* $(DESTDIR)$(htmldir) - -# Automake's "distcheck" is sensitive to having files left over -# after "make uninstall", so we have to clean up the install hook. -@DOC_TRUE@uninstall-local: -@DOC_TRUE@ rm -rf $(DESTDIR)$(htmldir) - -@DOC_TRUE@dox: html/index.html - -# We repeat the three targets in both the "if" and "else" clauses -# of the conditional, because the generated makefile will contain -# references to the targets (target "install" depends on target -# "install-datahook", for example), and some make programs get upset -# if no target exists. - -@DOC_FALSE@install-data-hook: -@DOC_FALSE@uninstall-local: -@DOC_FALSE@dox: - -all-local: dox - -html/index.html: Doxyfile $(doxygen_input) - "@DOXYGEN@" - -# Make tarfile to distribute the HTML documentation. -doc-dist: dox - cp $(static_pages) html - tar -czf $(PACKAGE)-docs-$(VERSION).tar.gz -C html . - -pdf: @PACKAGE@.pdf -@PACKAGE@.pdf: - $(MAKE) -C ./latex pdf - ln -s ./latex/refman.ps @PACKAGE@.ps - ln -s ./latex/refman.pdf @PACKAGE@.pdf - -clean-local: - $(RM) -r latex - $(RM) -r html man @PACKAGE@.ps @PACKAGE@.pdf -# 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/contrib/cppunit-1.12.1/doc/Money.dox b/contrib/cppunit-1.12.1/doc/Money.dox deleted file mode 100644 index d35e8e8f2..000000000 --- a/contrib/cppunit-1.12.1/doc/Money.dox +++ /dev/null @@ -1,558 +0,0 @@ -/*! \page money_example Money, a step by step example - -\section Table of contents - - - \ref sec_setting_vc - - \ref sec_setting_unix - - \ref sec_running_test - - \ref sec_adding_testfixture - - \ref sec_first_tests - - \ref sec_more_tests - - \ref sec_credits - - The example explored in this article can be found in \c examples/Money/. - - - -\section sec_setting_vc Setting up your project (VC++) - -\subsection sec_install Compiling and installing CppUnit libaries - -In the following document, $CPPUNIT is the directory where you unpacked %CppUnit: -$CPPUNIT/: - include/ - lib/ - src/ - cppunit/ - -First, you need to compile %CppUnit libraries: -- Open the $CPPUNIT/src/CppUnitLibraries.dsw workspace in VC++. -- In the 'Build' menu, select 'Batch Build...' -- In the batch build dialog, select all projects and press the build button. -- The resulting libraries can be found in the $CPPUNIT/lib/ directory. - -Once it is done, you need to tell VC++ where are the includes and libraries -to use them in other projects. Open the 'Tools/Options...' dialog, and in the -'Directories' tab, select 'include files' in the combo. Add a new entry that -points to $CPPUNIT/include/. Change to 'libraries files' in the combo and -add a new entry for $CPPUNIT/lib/. Repeat the process with 'source files' -and add $CPPUNIT/src/cppunit/. - -\subsection sec_getting_started Getting started - -Creates a new console application ('a simple application' template will do). -Let's link %CppUnit library to our project. In the project settings: -- In tab 'C++', combo 'Code generation', set the combo to 'Multithreaded DLL' -for the release configuration, and 'Debug Multithreaded DLL' for the debug -configure, -- In tab 'C++', combo 'C++ langage', for All Configurations, check -'enable Run-Time Type Information (RTTI)', -- In tab 'Link', in the 'Object/library modules' field, add cppunitd.lib for -the debug configuration, and cppunit.lib for the release configuration. - -We're done ! - - - - - - - -\section sec_setting_unix Setting up your project (Unix) -We'll use \c autoconf and \c automake to make it simple to -create our build environment. Create a directory somewhere to -hold the code we're going to build. Create \c configure.in and -\c Makefile.am in that directory to get started. - -configure.in -\verbatim -dnl Process this file with autoconf to produce a configure script. -AC_INIT(Makefile.am) -AM_INIT_AUTOMAKE(money,0.1) -AM_PATH_CPPUNIT(1.9.6) -AC_PROG_CXX -AC_PROG_CC -AC_PROG_INSTALL -AC_OUTPUT(Makefile)\endverbatim - -Makefile.am -\verbatim -# Rules for the test code (use `make check` to execute) -TESTS = MoneyApp -check_PROGRAMS = $(TESTS) -MoneyApp_SOURCES = Money.h MoneyTest.h MoneyTest.cpp MoneyApp.cpp -MoneyApp_CXXFLAGS = $(CPPUNIT_CFLAGS) -MoneyApp_LDFLAGS = $(CPPUNIT_LIBS) -ldl\endverbatim - - - - - - - - -\section sec_running_test Running our tests - -We have a main that doesn't do anything. Let's start by adding the mechanics -to run our tests (remember, test before you code ;-) ). For this example, -we will use a TextTestRunner with the CompilerOutputter for post-build -testing: - -MoneyApp.cpp -\code -#include "stdafx.h" -#include -#include -#include - - -int main(int argc, char* argv[]) -{ - // Get the top level suite from the registry - CppUnit::Test *suite = CppUnit::TestFactoryRegistry::getRegistry().makeTest(); - - // Adds the test to the list of test to run - CppUnit::TextUi::TestRunner runner; - runner.addTest( suite ); - - // Change the default outputter to a compiler error format outputter - runner.setOutputter( new CppUnit::CompilerOutputter( &runner.result(), - std::cerr ) ); - // Run the tests. - bool wasSucessful = runner.run(); - - // Return error code 1 if the one of test failed. - return wasSucessful ? 0 : 1; -}\endcode - - VC++: Compile and run (Ctrl+F5). - - Unix: First build. Since we don't have all the file yet, let's create them - and build our application for the first time: -\verbatim -touch Money.h MoneyTest.h MoneyTest.cpp -aclocal -I /usr/local/share/aclocal -autoconf -automake -a -touch NEWS README AUTHORS ChangeLog # To make automake happy -./configure -make check\endverbatim - - Our application will report that everything -is fine and no test were run. So let's add some tests... - - - -\subsection sec_post_build Setting up automated post-build testing (VC++) - -What does post-build testing means? It means that each time you compile, -the test are automatically run when the build finish. This is very -useful, if you compile often you can know that you just 'broke' something, -or that everything is still working fine. - -Let's adds that to our project, In the project settings, in the -'post-build step' tab: -- Select 'All configurations' (upper left combo) -- In the 'Post-build description', enter 'Unit testing...' -- In 'post-build command(s)', add a new line: \$(TargetPath) - -\$(TargetPath) expands into the name of your application: -Debug\\MoneyApp.exe in debug configuration and Release\\MoneyApp.exe in release -configuration. - -What we are doing is say to VC++ to run our application for each build. -Notices the last line of \c main(), it returns a different error code, -depending on weither or not a test failed. If the code returned by -an application is not 0 in post-build step, it tell VC++ that the build -step failed. - -Compile. Notice that the application's output is now in the build window. -How convenient! - - (Unix: tips to integrate make check into various IDE?) - - - - - - - -\section sec_adding_testfixture Adding the TestFixture - -For this example, we are going to write a simple money class. Money -has an amount and a currency. Let's begin by creating a fixture where -we can put our tests, and add single test to test Money constructor: - -MoneyTest.h: -\code -#ifndef MONEYTEST_H -#define MONEYTEST_H - -#include - -class MoneyTest : public CppUnit::TestFixture -{ - CPPUNIT_TEST_SUITE( MoneyTest ); - CPPUNIT_TEST( testConstructor ); - CPPUNIT_TEST_SUITE_END(); - -public: - void setUp(); - void tearDown(); - - void testConstructor(); -}; - -#endif // MONEYTEST_H\endcode - -- CPPUNIT_TEST_SUITE declares that our Fixture's test suite. -- CPPUNIT_TEST adds a test to our test suite. The test is implemented -by a method named testConstructor(). -- setUp() and tearDown() are use to setUp/tearDown some fixtures. We are -not using any for now. - -MoneyTest.cpp -\code -#include "stdafx.h" -#include "MoneyTest.h" - -// Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION( MoneyTest ); - - -void -MoneyTest::setUp() -{ -} - - -void -MoneyTest::tearDown() -{ -} - - -void -MoneyTest::testConstructor() -{ - CPPUNIT_FAIL( "not implemented" ); -} -\endcode - -Compile. As expected, it reports that a test failed. Press the \c F4 key -(Go to next Error). VC++ jump right to our failed assertion CPPUNIT_FAIL. -We can not ask better in term of integration! -\verbatim -Compiling... -MoneyTest.cpp -Linking... -Unit testing... -.F -G:\prg\vc\Lib\cppunit\examples\money\MoneyTest.cpp(26):Assertion -Test name: MoneyTest.testConstructor -not implemented -Failures !!! -Run: 1 Failure total: 1 Failures: 1 Errors: 0 -Error executing d:\winnt\system32\cmd.exe. - -moneyappd.exe - 1 error(s), 0 warning(s) -\endverbatim - -Well, we have everything set up, let's start doing some real testing. - - - - - - - -\section sec_first_tests Our first tests - -Let's write our first real test. A test is usually decomposed in three parts: -- setting up datas used by the test -- doing some processing based on those datas -- checking the result of the processing - -\code -void -MoneyTest::testConstructor() -{ - // Set up - const std::string currencyFF( "FF" ); - const double longNumber = 12345678.90123; - - // Process - Money money( longNumber, currencyFF ); - - // Check - CPPUNIT_ASSERT_EQUAL( longNumber, money.getAmount() ); - CPPUNIT_ASSERT_EQUAL( currencyFF, money.getCurrency() ); -}\endcode - -Well, we finally have a good start of what our Money class will -look like. Let's start implementing... - -Money.h -\code -#ifndef MONEY_H -#define MONEY_H - -#include - -class Money -{ -public: - Money( double amount, std::string currency ) - : m_amount( amount ) - , m_currency( currency ) - { - } - - double getAmount() const - { - return m_amount; - } - - std::string getCurrency() const - { - return m_currency; - } - -private: - double m_amount; - std::string m_currency; -}; - -#endif\endcode - -Include Money.h in MoneyTest.cpp and compile. - -Hum, an assertion failed! Press F4, and we jump to the assertion -that checks the currency of the constructed money object. The report -indicates that string is not equal to expected value. There is only -two ways for this to happen: the member was badly initialized or we -returned the wrong value. After a quick check, we find out it is the former. -Let's fix that: - -Money.h -\code - Money( double amount, std::string currency ) - : m_amount( amount ) - , m_currency( currency ) - { - }\endcode - -Compile. Our test finally pass! -Let's add some functionnality to our Money class. - - - - - - - - -\section sec_more_tests Adding more tests - -\subsection sec_equal Testing for equality - - We want to check if to Money object are equal. Let's start by adding -a new test to the suite, then add our method: - -MoneyTest.h -\code - CPPUNIT_TEST_SUITE( MoneyTest ); - CPPUNIT_TEST( testConstructor ); - CPPUNIT_TEST( testEqual ); - CPPUNIT_TEST_SUITE_END(); -public: - ... - void testEqual(); -\endcode - -MoneyTest.cpp -\code -void -MoneyTest::testEqual() -{ - // Set up - const Money money123FF( 123, "FF" ); - const Money money123USD( 123, "USD" ); - const Money money12FF( 12, "FF" ); - const Money money12USD( 12, "USD" ); - - // Process & Check - CPPUNIT_ASSERT( money123FF == money123FF ); // == - CPPUNIT_ASSERT( money12FF != money123FF ); // != amount - CPPUNIT_ASSERT( money123USD != money123FF ); // != currency - CPPUNIT_ASSERT( money12USD != money123FF ); // != currency and != amount -}\endcode - - Let's implements \c operator \c == and \c operator \c != in Money.h: - -Money.h -\code -class Money -{ -public: -... - bool operator ==( const Money &other ) const - { - return m_amount == other.m_amount && - m_currency == other.m_currency; - } - - bool operator !=( const Money &other ) const - { - return (*this == other); - } -}; -\endcode - - Compile, run... Ooops... Press F4, it seems we're having trouble -with \c operator \c !=. Let's fix that: -\code - bool operator !=( const Money &other ) const - { - return !(*this == other); - }\endcode - -Compile, run. Finally got it working! - - - -\subsection sec_opadd Adding moneys - - Let's add our test 'testAdd' to MoneyTest. You know the routine... - -MoneyTest.cpp -\code -void -MoneyTest::testAdd() -{ - // Set up - const Money money12FF( 12, "FF" ); - const Money expectedMoney( 135, "FF" ); - - // Process - Money money( 123, "FF" ); - money += money12FF; - - // Check - CPPUNIT_ASSERT( expectedMoney == money ); // add works - CPPUNIT_ASSERT( &money == &(money += money12FF) ); // add returns ref. on 'this'. -}\endcode - - While writing that test case, you ask yourself, what is the result of -adding money of currencies. Obviously this is an error and it should be -reported, say let throw an exception, say \c IncompatibleMoneyError, -when the currencies are not equal. We will write another test case -for this later. For now let get our testAdd() case working: - -Money.h -\code -class Money -{ -public: -... - Money &operator +=( const Money &other ) - { - m_amount += other.m_amount; - return *this; - } -}; \endcode - -Compile, run. Miracle, everything is fine! Just to be sure the test is indeed -working, in the above code, change \c m_amount \c += to \c -=. Build and -check that it fails (always be suspicious of test that work the first -time: you may have forgotten to add it to the suite for example)! -Change the code back so that all the tests are working. - - Let's the incompatible money test case before we forget about it... -That test case expect an \c IncompatibleMoneyError exception to be thrown. -%CppUnit can test that for us, you need to specify that the test case -expect an exception when you add it to the suite: - -MoneyTest.h -\code -class MoneyTest : public CppUnit::TestFixture -{ - CPPUNIT_TEST_SUITE( MoneyTest ); - CPPUNIT_TEST( testConstructor ); - CPPUNIT_TEST( testEqual ); - CPPUNIT_TEST( testAdd ); - CPPUNIT_TEST_EXCEPTION( testAddThrow, IncompatibleMoneyError ); - CPPUNIT_TEST_SUITE_END(); -public: - ... - void testAddThrow(); -};\endcode - -By convention, you end the name of such tests with \c 'Throw', that way, you -know that the test expect an exception to be thrown. Let's write our test case: - -MoneyTest.cpp -\code -void -MoneyTest::testAddThrow() -{ - // Set up - const Money money123FF( 123, "FF" ); - - // Process - Money money( 123, "USD" ); - money += money123FF; // should throw an exception -} -\endcode - - Compile... Ooops, forgot to declare the exception class. Let's do that: - -Money.h -\code -#include -#include - -class IncompatibleMoneyError : public std::runtime_error -{ -public: - IncompatibleMoneyError() : runtime_error( "Incompatible moneys" ) - { - } -}; -\endcode - - Compile. As expected testAddThrow() fail... Let's fix that: - -Money.h -\code - Money &operator +=( const Money &other ) - { - if ( m_currency != other.m_currency ) - throw IncompatibleMoneyError(); - - m_amount += other.m_amount; - return *this; - }\endcode - - Compile. Our test finaly passes! - - TODO: -- How to use CPPUNIT_ASSERT_EQUALS with Money -- Copy constructor/Assignment operator -- Introducing fixtures -- ? - - - - - - -\section sec_credits Credits -This article was written by Baptiste Lepilleur. Unix configuration & set up -by Phil Verghese. Inspired from many others (JUnit, Phil's cookbook...), -and all the newbies around that keep asking me for the -'Hello world' example ;-) - - - -*/ diff --git a/contrib/cppunit-1.12.1/doc/cookbook.dox b/contrib/cppunit-1.12.1/doc/cookbook.dox deleted file mode 100644 index ace3eccbe..000000000 --- a/contrib/cppunit-1.12.1/doc/cookbook.dox +++ /dev/null @@ -1,523 +0,0 @@ -/*! \page cppunit_cookbook CppUnit Cookbook -Here is a short cookbook to help you get started. - - -\section simple_test_case Simple Test Case -You want to know whether your code is working. - -How do you do it? - -There are many ways. Stepping through a debugger or -littering your code with stream output calls are two of -the simpler ways, but they both have drawbacks. -Stepping through your code is a good idea, but it -is not automatic. You have to do it every time you -make changes. Streaming out text is also fine, -but it makes code ugly and it generates far more -information than you need most of the time. - -Tests in %CppUnit can be run automatically. -They are easy to set up and once you have -written them, they are always there to help -you keep confidence in the quality of your code. - -To make a simple test, here is what you do: - -Subclass the \link CppUnit::TestCase TestCase \endlink class. -Override the method \link CppUnit::TestCase::runTest() runTest()\endlink. -When you want to check a value, call -\link CPPUNIT_ASSERT() CPPUNIT_ASSERT(bool) \endlink -and pass in an expression that is true if the -test succeeds. - -For example, to test the equality comparison -for a Complex number class, write: - -\code -class ComplexNumberTest : public CppUnit::TestCase { -public: - ComplexNumberTest( std::string name ) : CppUnit::TestCase( name ) {} - - void runTest() { - CPPUNIT_ASSERT( Complex (10, 1) == Complex (10, 1) ); - CPPUNIT_ASSERT( !(Complex (1, 1) == Complex (2, 2)) ); - } -}; -\endcode - -That was a very simple test. Ordinarily, -you'll have many little test cases that you'll -want to run on the same set of objects. To do -this, use a fixture. - - - - - - -\section fixture Fixture -A fixture is a known set of objects that -serves as a base for a set of test cases. -Fixtures come in very handy when you are -testing as you develop. - -Let's try out this style of development and -learn about fixtures along the away. Suppose -that we are really developing a complex -number class. Let's start by defining a -empty class named Complex. - -\code -class Complex {}; -\endcode - -Now create an instance of ComplexNumberTest -above, compile the code and see what happens. -The first thing we notice is a few compiler -errors. The test uses operator ==, but it is -not defined. Let's fix that. - -\code -bool operator==( const Complex &a, const Complex &b) -{ - return true; -} -\endcode - -Now compile the test, and run it. This time it -compiles but the test fails. -We need a bit more to get an operator ==working -correctly, so we revisit the code. - -\code -class Complex { - friend bool operator ==(const Complex& a, const Complex& b); - double real, imaginary; -public: - Complex( double r, double i = 0 ) - : real(r) - , imaginary(i) - { - } -}; - -bool operator ==( const Complex &a, const Complex &b ) -{ - return a.real == b.real && a.imaginary == b.imaginary; -} -\endcode - -If we compile now and run our test it will pass. - -Now we are ready to add new operations and -new tests. At this point a fixture would be -handy. We would probably be better off when -doing our tests if we decided to instantiate -three or four complex numbers and reuse them -across our tests. - -Here is how we do it: -- Add member variables for each part of the - \link CppUnit::TestFixture fixture \endlink -- Override \link CppUnit::TestFixture::setUp() setUp() \endlink - to initialize the variables -- Override \link CppUnit::TestFixture::tearDown() tearDown() \endlink - to release any permanent resources you allocated in - \link CppUnit::TestFixture::setUp() setUp() \endlink - -\code -class ComplexNumberTest : public CppUnit::TestFixture { -private: - Complex *m_10_1, *m_1_1, *m_11_2; -public: - void setUp() - { - m_10_1 = new Complex( 10, 1 ); - m_1_1 = new Complex( 1, 1 ); - m_11_2 = new Complex( 11, 2 ); - } - - void tearDown() - { - delete m_10_1; - delete m_1_1; - delete m_11_2; - } -}; -\endcode - -Once we have this fixture, we can add the complex -addition test case and any others that we need -over the course of our development. - - - -\section test_case Test Case - -How do you write and invoke individual tests using a fixture? - -There are two steps to this process: -- Write the test case as a method in the fixture class -- Create a TestCaller which runs that particular method - -Here is our test case class with a few extra case methods: - -\code -class ComplexNumberTest : public CppUnit::TestFixture { -private: - Complex *m_10_1, *m_1_1, *m_11_2; -public: - void setUp() - { - m_10_1 = new Complex( 10, 1 ); - m_1_1 = new Complex( 1, 1 ); - m_11_2 = new Complex( 11, 2 ); - } - - void tearDown() - { - delete m_10_1; - delete m_1_1; - delete m_11_2; - } - - void testEquality() - { - CPPUNIT_ASSERT( *m_10_1 == *m_10_1 ); - CPPUNIT_ASSERT( !(*m_10_1 == *m_11_2) ); - } - - void testAddition() - { - CPPUNIT_ASSERT( *m_10_1 + *m_1_1 == *m_11_2 ); - } -}; -\endcode - -One may create and run instances for each test case like this: - -\code -CppUnit::TestCaller test( "testEquality", - &ComplexNumberTest::testEquality ); -CppUnit::TestResult result; -test.run( &result ); -\endcode - -The second argument to the test caller constructor is the address of -a method on ComplexNumberTest. When the test caller is run, -that specific method will be run. This is not a useful thing to do, -however, as no diagnostics will be displayed. -One will normally use a \link ExecutingTest TestRunner \endlink (see below) -to display the results. - -Once you have several tests, organize them into a suite. - - - - - -\section suite Suite - -How do you set up your tests so that you can run them all at once? - -%CppUnit provides a \link CppUnit::TestSuite TestSuite \endlink class -that runs any number of TestCases together. - -We saw, above, how to run a single test case. - -To create a suite of two or more tests, you do the following: - -\code -CppUnit::TestSuite suite; -CppUnit::TestResult result; -suite.addTest( new CppUnit::TestCaller( - "testEquality", - &ComplexNumberTest::testEquality ) ); -suite.addTest( new CppUnit::TestCaller( - "testAddition", - &ComplexNumberTest::testAddition ) ); -suite.run( &result ); -\endcode - -\link CppUnit::TestSuite TestSuites \endlink don't only have to -contain callers for TestCases. They can contain any object -that implements the \link CppUnit::Test Test \endlink interface. -For example, you can create a -\link CppUnit::TestSuite TestSuite \endlink in your code and -I can create one in mine, and we can run them together -by creating a \link CppUnit::TestSuite TestSuite \endlink -that contains both: - -\code -CppUnit::TestSuite suite; -CppUnit::TestResult result; -suite.addTest( ComplexNumberTest::suite() ); -suite.addTest( SurrealNumberTest::suite() ); -suite.run( &result ); -\endcode - - - - -\section test_runner TestRunner - -How do you run your tests and collect their results? - -Once you have a test suite, you'll want to run it. %CppUnit provides tools -to define the suite to be run and to display its results. -You make your suite accessible to a \link ExecutingTest TestRunner \endlink -program with a static method suite that returns a test suite. - -For example, to make a ComplexNumberTest suite available to a -\link ExecutingTest TestRunner \endlink, add the following code to -ComplexNumberTest: - -\code -public: - static CppUnit::TestSuite *suite() - { - CppUnit::TestSuite *suiteOfTests = new CppUnit::TestSuite( "ComplexNumberTest" ); - suiteOfTests->addTest( new CppUnit::TestCaller( - "testEquality", - &ComplexNumberTest::testEquality ) ); - suiteOfTests->addTest( new CppUnit::TestCaller( - "testAddition", - &ComplexNumberTest::testAddition ) ); - return suiteOfTests; - } -\endcode - -\anchor test_runner_code -To use the text version, include the header files for the tests in Main.cpp: - -\code -#include -#include "ExampleTestCase.h" -#include "ComplexNumberTest.h" -\endcode - -And add a call to -\link ::CppUnit::TextUi::TestRunner::addTest addTest(CppUnit::Test *) \endlink -in the main() function: - -\code -int main( int argc, char **argv) -{ - CppUnit::TextUi::TestRunner runner; - runner.addTest( ExampleTestCase::suite() ); - runner.addTest( ComplexNumberTest::suite() ); - runner.run(); - return 0; -} -\endcode - -The \link ExecutingTest TestRunner \endlink will run the tests. -If all the tests pass, you'll get an informative message. -If any fail, you'll get the following information: - -- The name of the test case that failed -- The name of the source file that contains the test -- The line number where the failure occurred -- All of the text inside the call to CPPUNIT_ASSERT() which detected the failure - -%CppUnit distinguishes between failures and errors. A failure is -anticipated and checked for with assertions. Errors are unanticipated problems -like division by zero and other exceptions thrown by the C++ runtime or your code. - - - - -\section helper_macros Helper Macros - -As you might have noticed, implementing the fixture static suite() -method is a repetitive and error prone task. A \ref WritingTestFixture set of -macros have been created to automatically implements the -static suite() method. - -The following code is a rewrite of ComplexNumberTest using those macros: - -\code -#include - -class ComplexNumberTest : public CppUnit::TestFixture { -\endcode -First, we declare the suite, passing the class name to the macro: -\code -CPPUNIT_TEST_SUITE( ComplexNumberTest ); -\endcode -The suite created by the static suite() method is named after -the class name. -Then, we declare each test case of the fixture: -\code -CPPUNIT_TEST( testEquality ); -CPPUNIT_TEST( testAddition ); -\endcode -Finally, we end the suite declaration: -\code -CPPUNIT_TEST_SUITE_END(); -\endcode -At this point, a method with the following signature has been implemented: -\code -static CppUnit::TestSuite *suite(); -\endcode -The rest of the fixture is left unchanged: -\code -private: - Complex *m_10_1, *m_1_1, *m_11_2; -public: - void setUp() - { - m_10_1 = new Complex( 10, 1 ); - m_1_1 = new Complex( 1, 1 ); - m_11_2 = new Complex( 11, 2 ); - } - - void tearDown() - { - delete m_10_1; - delete m_1_1; - delete m_11_2; - } - - void testEquality() - { - CPPUNIT_ASSERT( *m_10_1 == *m_10_1 ); - CPPUNIT_ASSERT( !(*m_10_1 == *m_11_2) ); - } - - void testAddition() - { - CPPUNIT_ASSERT( *m_10_1 + *m_1_1 == *m_11_2 ); - } -}; -\endcode - -The name of the \link CppUnit::TestCaller TestCaller \endlink added to the -suite are a composition of the fixture name and the method name. - -In the present case, the names would be: -"ComplexNumberTest.testEquality" and "ComplexNumberTest.testAddition". - -The \link WritingTestFixture helper macros \endlink help you write comon assertion. -For example, to check that ComplexNumber throws a MathException when dividing -a number by 0: -- add the test to the suite using CPPUNIT_TEST_EXCEPTION, specifying the expected - exception type. -- write the test case method - -\code -CPPUNIT_TEST_SUITE( ComplexNumberTest ); -// [...] -CPPUNIT_TEST_EXCEPTION( testDivideByZeroThrows, MathException ); -CPPUNIT_TEST_SUITE_END(); - -// [...] - - void testDivideByZeroThrows() - { - // The following line should throw a MathException. - *m_10_1 / ComplexNumber(0); - } -\endcode - -If the expected exception is not thrown, then a assertion failure is reported. - - - - -\section test_factory_registry TestFactoryRegistry - -The TestFactoryRegistry was created to solve two pitfalls: -- forgetting to add your fixture suite to the test runner (since it is in - another file, it is easy to forget) -- compilation bottleneck caused by the inclusion of all test case headers - (see \ref test_runner_code "previous example") - -The TestFactoryRegistry is a place where suites can be registered at initialization -time. - -To register the ComplexNumber suite, in the .cpp file, you add: - -\code -#include - -CPPUNIT_TEST_SUITE_REGISTRATION( ComplexNumberTest ); -\endcode - -Behind the scene, a static variable type of -\link CppUnit::AutoRegisterSuite AutoRegisterSuite \endlink is declared. -On construction, it will -\link CppUnit::TestFactoryRegistry::registerFactory(TestFactory*) register \endlink -a \link CppUnit::TestSuiteFactory TestSuiteFactory \endlink into the -\link CppUnit::TestFactoryRegistry TestFactoryRegistry \endlink. -The \link CppUnit::TestSuiteFactory TestSuiteFactory \endlink returns -the \link CppUnit::TestSuite TestSuite \endlink returned by ComplexNumber::suite(). - -To run the tests, using the text test runner, we don't need to include the fixture -anymore: - -\code -#include -#include - -int main( int argc, char **argv) -{ - CppUnit::TextUi::TestRunner runner; -\endcode -First, we retreive the instance of the -\link CppUnit::TestFactoryRegistry TestFactoryRegistry \endlink: -\code - CppUnit::TestFactoryRegistry ®istry = CppUnit::TestFactoryRegistry::getRegistry(); -\endcode -Then, we obtain and add a new \link CppUnit::TestSuite TestSuite \endlink created -by the \link CppUnit::TestFactoryRegistry TestFactoryRegistry \endlink that -contains all the test suite registered using CPPUNIT_TEST_SUITE_REGISTRATION(). -\code - runner.addTest( registry.makeTest() ); - runner.run(); - return 0; -} -\endcode - - - - -\section post_build_check Post-build check - -Well, now that we have our unit tests running, how about integrating unit -testing to our build process ? - -To do that, the application must returns a value different than 0 to indicate that -there was an error. - -\link CppUnit::TextUi::TestRunner::run() TestRunner::run() \endlink returns -a boolean indicating if the run was successful. - -Updating our main programm, we obtains: -\code -#include -#include - -int main( int argc, char **argv) -{ - CppUnit::TextUi::TestRunner runner; - CppUnit::TestFactoryRegistry ®istry = CppUnit::TestFactoryRegistry::getRegistry(); - runner.addTest( registry.makeTest() ); - bool wasSuccessful = runner.run( "", false ); - return !wasSuccessful; -} -\endcode - -Now, you need to run your application after compilation. - -With Visual C++, this is done in Project Settings/Post-Build step, -by adding the following command: "$(TargetPath)". It is expanded to -the application executable path. Look up the project -examples/cppunittest/CppUnitTestMain.dsp which -use that technic. - - - -Original version by Michael Feathers. -Doxygen conversion and update by Baptiste Lepilleur. -*/ diff --git a/contrib/cppunit-1.12.1/doc/footer.html b/contrib/cppunit-1.12.1/doc/footer.html deleted file mode 100644 index 448359e1c..000000000 --- a/contrib/cppunit-1.12.1/doc/footer.html +++ /dev/null @@ -1,23 +0,0 @@ -
- - - - - - - -
- - SourceForge Logo - - hosts this site. - - - Send comments to:
- CppUnit Developers -
- - - diff --git a/contrib/cppunit-1.12.1/doc/header.html b/contrib/cppunit-1.12.1/doc/header.html deleted file mode 100644 index 01cf93229..000000000 --- a/contrib/cppunit-1.12.1/doc/header.html +++ /dev/null @@ -1,27 +0,0 @@ - - - -CppUnit - The Unit Testing Library - - - - - - - - - - - - -
- - CppUnit project page - - - FAQ - - CppUnit home page -
- -
diff --git a/contrib/cppunit-1.12.1/doc/other_documentation.dox b/contrib/cppunit-1.12.1/doc/other_documentation.dox deleted file mode 100644 index df244c76c..000000000 --- a/contrib/cppunit-1.12.1/doc/other_documentation.dox +++ /dev/null @@ -1,147 +0,0 @@ -/** - \mainpage - - \section _history History - The first port of JUnit to C++ was done - by Michael Feathers. His versions - can be found on the - - XProgramming software page. They are os-specific, - so Jerome Lacoste provided a port to Unix/Solaris. - His version can be found on the same page. - The %CppUnit project has combined and built on this work. - - \section _usage Usage - Take a look into the \ref cppunit_cookbook. - It gives a quick start into using this - testing framework. Modules give - you a organized view of %CppUnit classes. - - (Notes to newbies, you may want to check out \ref money_example, - a work in progress, but the project is provided with %CppUnit). - - For a discussion on %CppUnit, check - - the WikiWiki Pages on CppUnit. There you can also - find the original versions and various ports to other - OSses and languages. - - \section _license License - This library is released under - the GNU - - Lesser General Public License. - - \author Eric Sommerlade (sommerlade@gmx.net) - \author Michael Feathers (mfeathers@objectmentor.com) - \author Jerome Lacoste (lacostej@altern.org) - \author Baptiste Lepilleur - \author Bastiaan Bakker - \author Steve Robbins - */ - - - -/*! \defgroup WritingTestFixture Writing test fixture - */ - -/*! \defgroup Assertions Making assertions - */ - -/*! \defgroup CreatingTestSuite Creating TestSuite - */ - -/*! \defgroup ExecutingTest Executing test - */ - -/*! \defgroup TrackingTestExecution Tracking test execution - */ - -/*! \defgroup WritingTestResult Writing test result - */ - -/*! \defgroup BrowsingCollectedTestResult Browsing collected test result - */ - -/*! \defgroup CreatingNewAssertions Creating custom assertions - */ - -/*! \defgroup WritingTestPlugIn Writing Test Plug-in - * - * Creating a test plug-in is really simple: - * - make your project a dynamic library (with VC++, choose Win32 Dynamic Library in - * the project wizard), and link against the dynamic library version of %CppUnit - * (cppunit*_dll.lib for VC++). - * - in a cpp file, include TestPlugIn.h, and use the macro CPPUNIT_PLUGIN_IMPLEMENT() - * to declare the test plug-in. - * - That's it, you're done! All the tests registered using the TestFactoryRegistry, - * CPPUNIT_TEST_SUITE_NAMED_REGISTRATION, or CPPUNIT_TEST_SUITE_REGISTRATION will - * be visible to other plug-in and to the DllPlugInRunner. - * - * Example: - * \code - * #include - * - * CPPUNIT_PLUGIN_IMPLEMENT(); - * \endcode - * - * The interface CppUnitTestPlugIn is automatically implemented by the previous - * macro. You can define your own implementation. - * - * To provide your custom implementation of the plug-in interface, you must: - * - create a class that implements the CppUnitTestPlugIn interface - * - use CPPUNIT_PLUGIN_EXPORTED_FUNCTION_IMPL() with your class to export - * the plug-in interface - * - implements the 'main' function with CPPUNIT_PLUGIN_IMPLEMENT_MAIN(). - * - * Some of the reason you may want to do this: - * - You do not use the TestFactoryRegistry to register your test. - * - You want to create a custom listener to use with DllPlugInRunner. - * - You want to do initialize some globale resources before running the test - * (setting up COM for example). - * - * See CppUnitTestPlugIn for further detail on how to do this. - * - * Creating your own test plug-in with VC++: - * - Create a new "Win32 Dynamic Library" project, choose the empty template - * - For the Debug Configuration, add cppunitd_dll.lib to - * 'Project Settings/Link/Object/Libariries modules', and for the Release - * Configuration, add cppunit_dll.lib. - * - For All Configuration, in 'C++/Preprocessor/Preprocessors definitions', - * add the symbol 'CPPUNIT_DLL' at the end of the line (it means that - * you are linking against cppunit dll). - * - Create a 'main' file that contains: -\verbatim -#include - -CPPUNIT_PLUGIN_IMPLEMENT();\endverbatim - * - Add your tests - * - You're done ! - * - * See examples/simple/simple_plugin.dsp for an example. - * - * Notes to VC++ users: - * - you can run a post-build check on the plug-in. Add the following line to your - * post-build tab: "DllPlugInTesterd_dll.exe $(TargetPath)". DllPlugInTesterd_dll.exe - * need to be some place were it can be found (path, ...), or you need to - * indicate the correct path. - * $(TargetPath) is the filename of your plug-in. - * - you can debug your DLL, set the executable for debug session to the plug-in - * runner, and the name of the DLL in the program arguments ($(xxx) won't work - * this time). - * - * How does it works ? - * - * When %CppUnit is linked as a DLL, the singleton used for the TestFactoryRegistry - * is the same for the plug-in runner (also linked against %CppUnit DLL). This means - * that the tests registered with the macros (at static initialization) are - * registered in the same registry. As soon as a DLL is loaded by the PlugInManager, - * the DLL static variable are constructed and the test registered to the - * TestFactoryRegistry. - * - * After loading the DLL, the PlugInManager look-up a specific function exported by - * the DLL. That function returns a pointer on the plug-in interface, which is later - * used by the PlugInManager. - * - * \see CreatingTestSuite. - */ \ No newline at end of file diff --git a/contrib/cppunit-1.12.1/include/Makefile.am b/contrib/cppunit-1.12.1/include/Makefile.am deleted file mode 100644 index 872ec7063..000000000 --- a/contrib/cppunit-1.12.1/include/Makefile.am +++ /dev/null @@ -1,4 +0,0 @@ -SUBDIRS = cppunit - -# already handled by toplevel dist-hook. -# DIST_SUBDIRS = msvc6 diff --git a/contrib/cppunit-1.12.1/include/Makefile.in b/contrib/cppunit-1.12.1/include/Makefile.in deleted file mode 100644 index a89d91416..000000000 --- a/contrib/cppunit-1.12.1/include/Makefile.in +++ /dev/null @@ -1,514 +0,0 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = include -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = \ - $(top_srcdir)/config/ac_create_prefix_config_h.m4 \ - $(top_srcdir)/config/ac_cxx_have_sstream.m4 \ - $(top_srcdir)/config/ac_cxx_have_strstream.m4 \ - $(top_srcdir)/config/ac_cxx_namespaces.m4 \ - $(top_srcdir)/config/ac_cxx_rtti.m4 \ - $(top_srcdir)/config/ac_cxx_string_compare_string_first.m4 \ - $(top_srcdir)/config/ac_dll.m4 \ - $(top_srcdir)/config/ax_cxx_gcc_abi_demangle.m4 \ - $(top_srcdir)/config/ax_cxx_have_isfinite.m4 \ - $(top_srcdir)/config/bb_enable_doxygen.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config/config.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -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@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CPPUNIT_BINARY_AGE = @CPPUNIT_BINARY_AGE@ -CPPUNIT_INTERFACE_AGE = @CPPUNIT_INTERFACE_AGE@ -CPPUNIT_MAJOR_VERSION = @CPPUNIT_MAJOR_VERSION@ -CPPUNIT_MICRO_VERSION = @CPPUNIT_MICRO_VERSION@ -CPPUNIT_MINOR_VERSION = @CPPUNIT_MINOR_VERSION@ -CPPUNIT_VERSION = @CPPUNIT_VERSION@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOT = @DOT@ -DOXYGEN = @DOXYGEN@ -DSYMUTIL = @DSYMUTIL@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBADD_DL = @LIBADD_DL@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -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@ -enable_dot = @enable_dot@ -enable_html_docs = @enable_html_docs@ -enable_latex_docs = @enable_latex_docs@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -SUBDIRS = cppunit -all: all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu include/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 - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -$(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -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; nonemtpy = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - 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; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && 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 $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(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: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: - -install-dvi: install-dvi-recursive - -install-exec-am: - -install-html: install-html-recursive - -install-info: install-info-recursive - -install-man: - -install-pdf: install-pdf-recursive - -install-ps: install-ps-recursive - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: - -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ - install-strip - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean 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 installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am - - -# already handled by toplevel dist-hook. -# DIST_SUBDIRS = msvc6 -# 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/contrib/cppunit-1.12.1/include/cppunit/AdditionalMessage.h b/contrib/cppunit-1.12.1/include/cppunit/AdditionalMessage.h deleted file mode 100644 index 917d75414..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/AdditionalMessage.h +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef CPPUNIT_ADDITIONALMESSAGE_H -#define CPPUNIT_ADDITIONALMESSAGE_H - -#include - - -CPPUNIT_NS_BEGIN - - -/*! \brief An additional Message for assertions. - * \ingroup CreatingNewAssertions - * - * Provides a implicit constructor that takes a single string. This allow this - * class to be used as the message arguments in macros. - * - * The constructed object is either a Message with a single detail string if - * a string was passed to the macro, or a copy of the Message passed to the macro. - * - * Here is an example of usage: - * \code - * - * void checkStringEquals( const std::string &expected, - * const std::string &actual, - * const CppUnit::SourceLine &sourceLine, - * const CppUnit::AdditionalMessage &message ); - * - * #define XTLUT_ASSERT_STRING_EQUAL_MESSAGE( expected, actual, message ) \ - * ::XtlUt::Impl::checkStringEquals( ::Xtl::toString(expected), \ - * ::Xtl::toString(actual), \ - * CPPUNIT_SOURCELINE(), \ - * message ) - * \endcode - * - * In the previous example, the user can specify a simple string for \a message, - * or a complex Message object. - * - * \see Message - */ -class CPPUNIT_API AdditionalMessage : public Message -{ -public: - typedef Message SuperClass; - - /// Constructs an empty Message. - AdditionalMessage(); - - /*! \brief Constructs a Message with the specified detail string. - * \param detail1 Detail string of the message. If empty, then it is not added. - */ - AdditionalMessage( const std::string &detail1 ); - - /*! \brief Constructs a Message with the specified detail string. - * \param detail1 Detail string of the message. If empty, then it is not added. - */ - AdditionalMessage( const char *detail1 ); - - /*! \brief Constructs a copy of the specified message. - * \param other Message to copy. - */ - AdditionalMessage( const Message &other ); - - /*! \brief Assignment operator. - * \param other Message to copy. - * \return Reference on this object. - */ - AdditionalMessage &operator =( const Message &other ); - -private: -}; - - -CPPUNIT_NS_END - - - -#endif // CPPUNIT_ADDITIONALMESSAGE_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/Asserter.h b/contrib/cppunit-1.12.1/include/cppunit/Asserter.h deleted file mode 100644 index 94dadaad7..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/Asserter.h +++ /dev/null @@ -1,143 +0,0 @@ -#ifndef CPPUNIT_ASSERTER_H -#define CPPUNIT_ASSERTER_H - -#include -#include -#include - -CPPUNIT_NS_BEGIN - - -class Message; - - -/*! \brief A set of functions to help writing assertion macros. - * \ingroup CreatingNewAssertions - * - * Here is an example of assertion, a simplified version of the - * actual assertion implemented in examples/cppunittest/XmlUniformiser.h: - * \code - * #include - * #include - * - * void - * checkXmlEqual( std::string expectedXml, - * std::string actualXml, - * CppUnit::SourceLine sourceLine ) - * { - * std::string expected = XmlUniformiser( expectedXml ).stripped(); - * std::string actual = XmlUniformiser( actualXml ).stripped(); - * - * if ( expected == actual ) - * return; - * - * ::CppUnit::Asserter::failNotEqual( expected, - * actual, - * sourceLine ); - * } - * - * /// Asserts that two XML strings are equivalent. - * #define CPPUNITTEST_ASSERT_XML_EQUAL( expected, actual ) \ - * checkXmlEqual( expected, actual, \ - * CPPUNIT_SOURCELINE() ) - * \endcode - */ -struct Asserter -{ - /*! \brief Throws a Exception with the specified message and location. - */ - static void CPPUNIT_API fail( const Message &message, - const SourceLine &sourceLine = SourceLine() ); - - /*! \brief Throws a Exception with the specified message and location. - * \deprecated Use fail( Message, SourceLine ) instead. - */ - static void CPPUNIT_API fail( std::string message, - const SourceLine &sourceLine = SourceLine() ); - - /*! \brief Throws a Exception with the specified message and location. - * \param shouldFail if \c true then the exception is thrown. Otherwise - * nothing happen. - * \param message Message explaining the assertion failiure. - * \param sourceLine Location of the assertion. - */ - static void CPPUNIT_API failIf( bool shouldFail, - const Message &message, - const SourceLine &sourceLine = SourceLine() ); - - /*! \brief Throws a Exception with the specified message and location. - * \deprecated Use failIf( bool, Message, SourceLine ) instead. - * \param shouldFail if \c true then the exception is thrown. Otherwise - * nothing happen. - * \param message Message explaining the assertion failiure. - * \param sourceLine Location of the assertion. - */ - static void CPPUNIT_API failIf( bool shouldFail, - std::string message, - const SourceLine &sourceLine = SourceLine() ); - - /*! \brief Returns a expected value string for a message. - * Typically used to create 'not equal' message, or to check that a message - * contains the expected content when writing unit tests for your custom - * assertions. - * - * \param expectedValue String that represents the expected value. - * \return \a expectedValue prefixed with "Expected: ". - * \see makeActual(). - */ - static std::string CPPUNIT_API makeExpected( const std::string &expectedValue ); - - /*! \brief Returns an actual value string for a message. - * Typically used to create 'not equal' message, or to check that a message - * contains the expected content when writing unit tests for your custom - * assertions. - * - * \param actualValue String that represents the actual value. - * \return \a actualValue prefixed with "Actual : ". - * \see makeExpected(). - */ - static std::string CPPUNIT_API makeActual( const std::string &actualValue ); - - static Message CPPUNIT_API makeNotEqualMessage( const std::string &expectedValue, - const std::string &actualValue, - const AdditionalMessage &additionalMessage = AdditionalMessage(), - const std::string &shortDescription = "equality assertion failed"); - - /*! \brief Throws an Exception with the specified message and location. - * \param expected Text describing the expected value. - * \param actual Text describing the actual value. - * \param sourceLine Location of the assertion. - * \param additionalMessage Additional message. Usually used to report - * what are the differences between the expected and actual value. - * \param shortDescription Short description for the failure message. - */ - static void CPPUNIT_API failNotEqual( std::string expected, - std::string actual, - const SourceLine &sourceLine, - const AdditionalMessage &additionalMessage = AdditionalMessage(), - std::string shortDescription = "equality assertion failed" ); - - /*! \brief Throws an Exception with the specified message and location. - * \param shouldFail if \c true then the exception is thrown. Otherwise - * nothing happen. - * \param expected Text describing the expected value. - * \param actual Text describing the actual value. - * \param sourceLine Location of the assertion. - * \param additionalMessage Additional message. Usually used to report - * where the "difference" is located. - * \param shortDescription Short description for the failure message. - */ - static void CPPUNIT_API failNotEqualIf( bool shouldFail, - std::string expected, - std::string actual, - const SourceLine &sourceLine, - const AdditionalMessage &additionalMessage = AdditionalMessage(), - std::string shortDescription = "equality assertion failed" ); - -}; - - -CPPUNIT_NS_END - - -#endif // CPPUNIT_ASSERTER_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/BriefTestProgressListener.h b/contrib/cppunit-1.12.1/include/cppunit/BriefTestProgressListener.h deleted file mode 100644 index 137ca44b3..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/BriefTestProgressListener.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef CPPUNIT_BRIEFTESTPROGRESSLISTENER_H -#define CPPUNIT_BRIEFTESTPROGRESSLISTENER_H - -#include - - -CPPUNIT_NS_BEGIN - - -/*! \brief TestListener that prints the name of each test before running it. - * \ingroup TrackingTestExecution - */ -class CPPUNIT_API BriefTestProgressListener : public TestListener -{ -public: - /*! Constructs a BriefTestProgressListener object. - */ - BriefTestProgressListener(); - - /// Destructor. - virtual ~BriefTestProgressListener(); - - void startTest( Test *test ); - - void addFailure( const TestFailure &failure ); - - void endTest( Test *test ); - -private: - /// Prevents the use of the copy constructor. - BriefTestProgressListener( const BriefTestProgressListener © ); - - /// Prevents the use of the copy operator. - void operator =( const BriefTestProgressListener © ); - -private: - bool m_lastTestFailed; -}; - - -CPPUNIT_NS_END - -#endif // CPPUNIT_BRIEFTESTPROGRESSLISTENER_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/CompilerOutputter.h b/contrib/cppunit-1.12.1/include/cppunit/CompilerOutputter.h deleted file mode 100644 index 885fe6526..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/CompilerOutputter.h +++ /dev/null @@ -1,146 +0,0 @@ -#ifndef CPPUNIT_COMPILERTESTRESULTOUTPUTTER_H -#define CPPUNIT_COMPILERTESTRESULTOUTPUTTER_H - -#include -#include -#include - -CPPUNIT_NS_BEGIN - - -class Exception; -class SourceLine; -class Test; -class TestFailure; -class TestResultCollector; - -/*! - * \brief Outputs a TestResultCollector in a compiler compatible format. - * \ingroup WritingTestResult - * - * Printing the test results in a compiler compatible format (assertion - * location has the same format as compiler error), allow you to use your - * IDE to jump to the assertion failure. Location format can be customized (see - * setLocationFormat() ). - * - * For example, when running the test in a post-build with VC++, if an assertion - * fails, you can jump to the assertion by pressing F4 (jump to next error). - * - * Heres is an example of usage (from examples/cppunittest/CppUnitTestMain.cpp): - * \code - * int main( int argc, char* argv[] ) { - * // if command line contains "-selftest" then this is the post build check - * // => the output must be in the compiler error format. - * bool selfTest = (argc > 1) && - * (std::string("-selftest") == argv[1]); - * - * CppUnit::TextUi::TestRunner runner; - * runner.addTest( CppUnitTest::suite() ); // Add the top suite to the test runner - * - * if ( selfTest ) - * { // Change the default outputter to a compiler error format outputter - * // The test runner owns the new outputter. - * runner.setOutputter( new CppUnit::CompilerOutputter( &runner.result(), - * std::cerr ) ); - * } - * - * // Run the test and don't wait a key if post build check. - * bool wasSuccessful = runner.run( "", !selfTest ); - * - * // Return error code 1 if the one of test failed. - * return wasSuccessful ? 0 : 1; - * } - * \endcode - */ -class CPPUNIT_API CompilerOutputter : public Outputter -{ -public: - /*! \brief Constructs a CompilerOutputter object. - * \param result Result of the test run. - * \param stream Stream used to output test result. - * \param locationFormat Error location format used by your compiler. Default - * to \c CPPUNIT_COMPILER_LOCATION_FORMAT which is defined - * in the configuration file. See setLocationFormat() for detail. - * \see setLocationFormat(). - */ - CompilerOutputter( TestResultCollector *result, - OStream &stream, - const std::string &locationFormat = CPPUNIT_COMPILER_LOCATION_FORMAT ); - - /// Destructor. - virtual ~CompilerOutputter(); - - /*! \brief Sets the error location format. - * - * Indicates the format used to report location of failed assertion. This format should - * match the one used by your compiler. - * - * The location format is a string in which the occurence of the following character - * sequence are replaced: - * - * - "%l" => replaced by the line number - * - "%p" => replaced by the full path name of the file ("G:\prg\vc\cppunit\MyTest.cpp") - * - "%f" => replaced by the base name of the file ("MyTest.cpp") - * - * Some examples: - * - * - VC++ error location format: "%p(%l):" => produce "G:\prg\MyTest.cpp(43):" - * - GCC error location format: "%f:%l:" => produce "MyTest.cpp:43:" - * - * Thoses are the two compilers currently supported (gcc format is used if - * VC++ is not detected). If you want your compiler to be automatically supported by - * CppUnit, send a mail to the mailing list (preferred), or submit a feature request - * that indicates how to detect your compiler with the preprocessor (\#ifdef...) and - * your compiler location format. - */ - void setLocationFormat( const std::string &locationFormat ); - - /*! \brief Creates an instance of an outputter that matches your current compiler. - * \deprecated This class is specialized through parameterization instead of subclassing... - * Use CompilerOutputter::CompilerOutputter instead. - */ - static CompilerOutputter *defaultOutputter( TestResultCollector *result, - OStream &stream ); - - void write(); - - void setNoWrap(); - - void setWrapColumn( int wrapColumn ); - - int wrapColumn() const; - - virtual void printSuccess(); - virtual void printFailureReport(); - virtual void printFailuresList(); - virtual void printStatistics(); - virtual void printFailureDetail( TestFailure *failure ); - virtual void printFailureLocation( SourceLine sourceLine ); - virtual void printFailureType( TestFailure *failure ); - virtual void printFailedTestName( TestFailure *failure ); - virtual void printFailureMessage( TestFailure *failure ); - -private: - /// Prevents the use of the copy constructor. - CompilerOutputter( const CompilerOutputter © ); - - /// Prevents the use of the copy operator. - void operator =( const CompilerOutputter © ); - - virtual bool processLocationFormatCommand( char command, - const SourceLine &sourceLine ); - - virtual std::string extractBaseName( const std::string &fileName ) const; - -private: - TestResultCollector *m_result; - OStream &m_stream; - std::string m_locationFormat; - int m_wrapColumn; -}; - - -CPPUNIT_NS_END - - -#endif // CPPUNIT_COMPILERTESTRESULTOUTPUTTER_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/Exception.h b/contrib/cppunit-1.12.1/include/cppunit/Exception.h deleted file mode 100644 index bf5fcacf6..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/Exception.h +++ /dev/null @@ -1,90 +0,0 @@ -#ifndef CPPUNIT_EXCEPTION_H -#define CPPUNIT_EXCEPTION_H - -#include -#include -#include -#include - - -CPPUNIT_NS_BEGIN - - -/*! \brief Exceptions thrown by failed assertions. - * \ingroup BrowsingCollectedTestResult - * - * Exception is an exception that serves - * descriptive strings through its what() method - */ -class CPPUNIT_API Exception : public std::exception -{ -public: - /*! \brief Constructs the exception with the specified message and source location. - * \param message Message associated to the exception. - * \param sourceLine Source location related to the exception. - */ - Exception( const Message &message = Message(), - const SourceLine &sourceLine = SourceLine() ); - -#ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED - /*! - * \deprecated Use other constructor instead. - */ - Exception( std::string message, - long lineNumber, - std::string fileName ); -#endif - - /*! \brief Constructs a copy of an exception. - * \param other Exception to copy. - */ - Exception( const Exception &other ); - - /// Destructs the exception - virtual ~Exception() throw(); - - /// Performs an assignment - Exception &operator =( const Exception &other ); - - /// Returns descriptive message - const char *what() const throw(); - - /// Location where the error occured - SourceLine sourceLine() const; - - /// Message related to the exception. - Message message() const; - - /// Set the message. - void setMessage( const Message &message ); - -#ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED - /// The line on which the error occurred - long lineNumber() const; - - /// The file in which the error occurred - std::string fileName() const; - - static const std::string UNKNOWNFILENAME; - static const long UNKNOWNLINENUMBER; -#endif - - /// Clones the exception. - virtual Exception *clone() const; - -protected: - // VC++ does not recognize call to parent class when prefixed - // with a namespace. This is a workaround. - typedef std::exception SuperClass; - - Message m_message; - SourceLine m_sourceLine; - std::string m_whatMessage; -}; - - -CPPUNIT_NS_END - - -#endif // CPPUNIT_EXCEPTION_H - diff --git a/contrib/cppunit-1.12.1/include/cppunit/Makefile.am b/contrib/cppunit-1.12.1/include/cppunit/Makefile.am deleted file mode 100644 index c743a67c5..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/Makefile.am +++ /dev/null @@ -1,42 +0,0 @@ -SUBDIRS = extensions ui plugin config tools portability - -DISTCLEANFILES = config-auto.h - -libcppunitincludedir = $(includedir)/cppunit -libcppunitinclude_HEADERS = \ - config-auto.h \ - AdditionalMessage.h \ - Asserter.h \ - BriefTestProgressListener.h \ - CompilerOutputter.h \ - Exception.h \ - Message.h \ - Outputter.h \ - Portability.h \ - Protector.h \ - SourceLine.h \ - SynchronizedObject.h \ - Test.h \ - TestAssert.h \ - TestCase.h \ - TestCaller.h \ - TestComposite.h \ - TestFailure.h \ - TestFixture.h \ - TestLeaf.h \ - TestPath.h \ - TestResult.h \ - TestResultCollector.h \ - TestRunner.h \ - TestSuccessListener.h \ - TestSuite.h \ - TextOutputter.h \ - TextTestProgressListener.h \ - TextTestResult.h \ - TextTestRunner.h \ - TestListener.h \ - XmlOutputter.h \ - XmlOutputterHook.h - -dist-hook: - rm -f $(distdir)/config-auto.h diff --git a/contrib/cppunit-1.12.1/include/cppunit/Makefile.in b/contrib/cppunit-1.12.1/include/cppunit/Makefile.in deleted file mode 100644 index 4594fa045..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/Makefile.in +++ /dev/null @@ -1,587 +0,0 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = include/cppunit -DIST_COMMON = $(libcppunitinclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = \ - $(top_srcdir)/config/ac_create_prefix_config_h.m4 \ - $(top_srcdir)/config/ac_cxx_have_sstream.m4 \ - $(top_srcdir)/config/ac_cxx_have_strstream.m4 \ - $(top_srcdir)/config/ac_cxx_namespaces.m4 \ - $(top_srcdir)/config/ac_cxx_rtti.m4 \ - $(top_srcdir)/config/ac_cxx_string_compare_string_first.m4 \ - $(top_srcdir)/config/ac_dll.m4 \ - $(top_srcdir)/config/ax_cxx_gcc_abi_demangle.m4 \ - $(top_srcdir)/config/ax_cxx_have_isfinite.m4 \ - $(top_srcdir)/config/bb_enable_doxygen.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config/config.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(libcppunitincludedir)" -libcppunitincludeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(libcppunitinclude_HEADERS) -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -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@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CPPUNIT_BINARY_AGE = @CPPUNIT_BINARY_AGE@ -CPPUNIT_INTERFACE_AGE = @CPPUNIT_INTERFACE_AGE@ -CPPUNIT_MAJOR_VERSION = @CPPUNIT_MAJOR_VERSION@ -CPPUNIT_MICRO_VERSION = @CPPUNIT_MICRO_VERSION@ -CPPUNIT_MINOR_VERSION = @CPPUNIT_MINOR_VERSION@ -CPPUNIT_VERSION = @CPPUNIT_VERSION@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOT = @DOT@ -DOXYGEN = @DOXYGEN@ -DSYMUTIL = @DSYMUTIL@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBADD_DL = @LIBADD_DL@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -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@ -enable_dot = @enable_dot@ -enable_html_docs = @enable_html_docs@ -enable_latex_docs = @enable_latex_docs@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -SUBDIRS = extensions ui plugin config tools portability -DISTCLEANFILES = config-auto.h -libcppunitincludedir = $(includedir)/cppunit -libcppunitinclude_HEADERS = \ - config-auto.h \ - AdditionalMessage.h \ - Asserter.h \ - BriefTestProgressListener.h \ - CompilerOutputter.h \ - Exception.h \ - Message.h \ - Outputter.h \ - Portability.h \ - Protector.h \ - SourceLine.h \ - SynchronizedObject.h \ - Test.h \ - TestAssert.h \ - TestCase.h \ - TestCaller.h \ - TestComposite.h \ - TestFailure.h \ - TestFixture.h \ - TestLeaf.h \ - TestPath.h \ - TestResult.h \ - TestResultCollector.h \ - TestRunner.h \ - TestSuccessListener.h \ - TestSuite.h \ - TextOutputter.h \ - TextTestProgressListener.h \ - TextTestResult.h \ - TextTestRunner.h \ - TestListener.h \ - XmlOutputter.h \ - XmlOutputterHook.h - -all: all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/cppunit/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu include/cppunit/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 - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-libcppunitincludeHEADERS: $(libcppunitinclude_HEADERS) - @$(NORMAL_INSTALL) - test -z "$(libcppunitincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libcppunitincludedir)" - @list='$(libcppunitinclude_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(libcppunitincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(libcppunitincludedir)/$$f'"; \ - $(libcppunitincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(libcppunitincludedir)/$$f"; \ - done - -uninstall-libcppunitincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libcppunitinclude_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(libcppunitincludedir)/$$f'"; \ - rm -f "$(DESTDIR)$(libcppunitincludedir)/$$f"; \ - done - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -$(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -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; nonemtpy = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - 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; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && 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 $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - distdir) \ - || exit 1; \ - fi; \ - done - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" distdir="$(distdir)" \ - dist-hook -check-am: all-am -check: check-recursive -all-am: Makefile $(HEADERS) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(libcppunitincludedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(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: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: install-libcppunitincludeHEADERS - -install-dvi: install-dvi-recursive - -install-exec-am: - -install-html: install-html-recursive - -install-info: install-info-recursive - -install-man: - -install-pdf: install-pdf-recursive - -install-ps: install-ps-recursive - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-libcppunitincludeHEADERS - -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ - install-strip - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive dist-hook distclean 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-libcppunitincludeHEADERS install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am tags tags-recursive uninstall uninstall-am \ - uninstall-libcppunitincludeHEADERS - - -dist-hook: - rm -f $(distdir)/config-auto.h -# 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/contrib/cppunit-1.12.1/include/cppunit/Message.h b/contrib/cppunit-1.12.1/include/cppunit/Message.h deleted file mode 100644 index 1ae51cc2b..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/Message.h +++ /dev/null @@ -1,156 +0,0 @@ -#ifndef CPPUNIT_MESSAGE_H -#define CPPUNIT_MESSAGE_H - -#include - -#if CPPUNIT_NEED_DLL_DECL -#pragma warning( push ) -#pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z -#endif - -#include -#include - - -CPPUNIT_NS_BEGIN - - -#if CPPUNIT_NEED_DLL_DECL -// template class CPPUNIT_API std::deque; -#endif - -/*! \brief Message associated to an Exception. - * \ingroup CreatingNewAssertions - * A message is composed of two items: - * - a short description (~20/30 characters) - * - a list of detail strings - * - * The short description is used to indicate how the detail strings should be - * interpreted. It usually indicates the failure types, such as - * "assertion failed", "forced failure", "unexpected exception caught", - * "equality assertion failed"... It should not contains new line character (\n). - * - * Detail strings are used to provide more information about the failure. It - * can contains the asserted expression, the expected and actual values in an - * equality assertion, some addional messages... Detail strings can contains - * new line characters (\n). - */ -class CPPUNIT_API Message -{ -public: - Message(); - - // Ensure thread-safe copy by detaching the string. - Message( const Message &other ); - - explicit Message( const std::string &shortDescription ); - - Message( const std::string &shortDescription, - const std::string &detail1 ); - - Message( const std::string &shortDescription, - const std::string &detail1, - const std::string &detail2 ); - - Message( const std::string &shortDescription, - const std::string &detail1, - const std::string &detail2, - const std::string &detail3 ); - - Message &operator =( const Message &other ); - - /*! \brief Returns the short description. - * \return Short description. - */ - const std::string &shortDescription() const; - - /*! \brief Returns the number of detail string. - * \return Number of detail string. - */ - int detailCount() const; - - /*! \brief Returns the detail at the specified index. - * \param index Zero based index of the detail string to return. - * \returns Detail string at the specified index. - * \exception std::invalid_argument if \a index < 0 or index >= detailCount(). - */ - std::string detailAt( int index ) const; - - /*! \brief Returns a string that represents a list of the detail strings. - * - * Example: - * \code - * Message message( "not equal", "Expected: 3", "Actual: 7" ); - * std::string details = message.details(); - * // details contains: - * // "- Expected: 3\n- Actual: 7\n" \endcode - * - * \return A string that is a concatenation of all the detail strings. Each detail - * string is prefixed with '- ' and suffixed with '\n' before being - * concatenated to the other. - */ - std::string details() const; - - /*! \brief Removes all detail strings. - */ - void clearDetails(); - - /*! \brief Adds a single detail string. - * \param detail Detail string to add. - */ - void addDetail( const std::string &detail ); - - /*! \brief Adds two detail strings. - * \param detail1 Detail string to add. - * \param detail2 Detail string to add. - */ - void addDetail( const std::string &detail1, - const std::string &detail2 ); - - /*! \brief Adds three detail strings. - * \param detail1 Detail string to add. - * \param detail2 Detail string to add. - * \param detail3 Detail string to add. - */ - void addDetail( const std::string &detail1, - const std::string &detail2, - const std::string &detail3 ); - - /*! \brief Adds the detail strings of the specified message. - * \param message All the detail strings of this message are added to this one. - */ - void addDetail( const Message &message ); - - /*! \brief Sets the short description. - * \param shortDescription New short description. - */ - void setShortDescription( const std::string &shortDescription ); - - /*! \brief Tests if a message is identical to another one. - * \param other Message this message is compared to. - * \return \c true if the two message are identical, \c false otherwise. - */ - bool operator ==( const Message &other ) const; - - /*! \brief Tests if a message is different from another one. - * \param other Message this message is compared to. - * \return \c true if the two message are not identical, \c false otherwise. - */ - bool operator !=( const Message &other ) const; - -private: - std::string m_shortDescription; - - typedef CppUnitDeque Details; - Details m_details; -}; - - -CPPUNIT_NS_END - -#if CPPUNIT_NEED_DLL_DECL -#pragma warning( pop ) -#endif - - -#endif // CPPUNIT_MESSAGE_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/Outputter.h b/contrib/cppunit-1.12.1/include/cppunit/Outputter.h deleted file mode 100644 index f31d6815d..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/Outputter.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef CPPUNIT_OUTPUTTER_H -#define CPPUNIT_OUTPUTTER_H - -#include - - -CPPUNIT_NS_BEGIN - - -/*! \brief Abstract outputter to print test result summary. - * \ingroup WritingTestResult - */ -class CPPUNIT_API Outputter -{ -public: - /// Destructor. - virtual ~Outputter() {} - - virtual void write() =0; -}; - - -CPPUNIT_NS_END - - -#endif // CPPUNIT_OUTPUTTER_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/Portability.h b/contrib/cppunit-1.12.1/include/cppunit/Portability.h deleted file mode 100644 index ddf031691..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/Portability.h +++ /dev/null @@ -1,177 +0,0 @@ -#ifndef CPPUNIT_PORTABILITY_H -#define CPPUNIT_PORTABILITY_H - -#if defined(_WIN32) && !defined(WIN32) -# define WIN32 1 -#endif - -/* include platform specific config */ -#if defined(__BORLANDC__) -# include -#elif defined (_MSC_VER) -# if _MSC_VER == 1200 && defined(_WIN32_WCE) //evc4 -# include -# else -# include -# endif -#else -# include -#endif - -// Version number of package -#ifndef CPPUNIT_VERSION -#define CPPUNIT_VERSION "1.12.0" -#endif - -#include // define CPPUNIT_API & CPPUNIT_NEED_DLL_DECL -#include - - -/* Options that the library user may switch on or off. - * If the user has not done so, we chose default values. - */ - - -/* Define to 1 if you wish to have the old-style macros - assert(), assertEqual(), assertDoublesEqual(), and assertLongsEqual() */ -#if !defined(CPPUNIT_ENABLE_NAKED_ASSERT) -# define CPPUNIT_ENABLE_NAKED_ASSERT 0 -#endif - -/* Define to 1 if you wish to have the old-style CU_TEST family - of macros. */ -#if !defined(CPPUNIT_ENABLE_CU_TEST_MACROS) -# define CPPUNIT_ENABLE_CU_TEST_MACROS 0 -#endif - -/* Define to 1 if the preprocessor expands (#foo) to "foo" (quotes incl.) - I don't think there is any C preprocess that does NOT support this! */ -#if !defined(CPPUNIT_HAVE_CPP_SOURCE_ANNOTATION) -# define CPPUNIT_HAVE_CPP_SOURCE_ANNOTATION 1 -#endif - -/* Assumes that STL and CppUnit are in global space if the compiler does not - support namespace. */ -#if !defined(CPPUNIT_HAVE_NAMESPACES) -# if !defined(CPPUNIT_NO_NAMESPACE) -# define CPPUNIT_NO_NAMESPACE 1 -# endif // !defined(CPPUNIT_NO_NAMESPACE) -# if !defined(CPPUNIT_NO_STD_NAMESPACE) -# define CPPUNIT_NO_STD_NAMESPACE 1 -# endif // !defined(CPPUNIT_NO_STD_NAMESPACE) -#endif // !defined(CPPUNIT_HAVE_NAMESPACES) - -/* Define CPPUNIT_STD_NEED_ALLOCATOR to 1 if you need to specify - * the allocator you used when instantiating STL container. Typically - * used for compilers that do not support template default parameter. - * CPPUNIT_STD_ALLOCATOR will be used as the allocator. Default is - * std::allocator. On some compilers, you may need to change this to - * std::allocator. - */ -#if CPPUNIT_STD_NEED_ALLOCATOR -# if !defined(CPPUNIT_STD_ALLOCATOR) -# define CPPUNIT_STD_ALLOCATOR std::allocator -# endif // !defined(CPPUNIT_STD_ALLOCATOR) -#endif // defined(CPPUNIT_STD_NEED_ALLOCATOR) - - -// Compiler error location format for CompilerOutputter -// If not define, assumes that it's gcc -// See class CompilerOutputter for format. -#if !defined(CPPUNIT_COMPILER_LOCATION_FORMAT) -#if defined(__GNUC__) && ( defined(__APPLE_CPP__) || defined(__APPLE_CC__) ) -// gcc/Xcode integration on Mac OS X -# define CPPUNIT_COMPILER_LOCATION_FORMAT "%p:%l: " -#else -# define CPPUNIT_COMPILER_LOCATION_FORMAT "%f:%l:" -#endif -#endif - -// If CPPUNIT_HAVE_CPP_CAST is defined, then c++ style cast will be used, -// otherwise, C style cast are used. -#if defined( CPPUNIT_HAVE_CPP_CAST ) -# define CPPUNIT_CONST_CAST( TargetType, pointer ) \ - const_cast( pointer ) - -# define CPPUNIT_STATIC_CAST( TargetType, pointer ) \ - static_cast( pointer ) -#else // defined( CPPUNIT_HAVE_CPP_CAST ) -# define CPPUNIT_CONST_CAST( TargetType, pointer ) \ - ((TargetType)( pointer )) -# define CPPUNIT_STATIC_CAST( TargetType, pointer ) \ - ((TargetType)( pointer )) -#endif // defined( CPPUNIT_HAVE_CPP_CAST ) - -// If CPPUNIT_NO_STD_NAMESPACE is defined then STL are in the global space. -// => Define macro 'std' to nothing -#if defined(CPPUNIT_NO_STD_NAMESPACE) -# undef std -# define std -#endif // defined(CPPUNIT_NO_STD_NAMESPACE) - -// If CPPUNIT_NO_NAMESPACE is defined, then put CppUnit classes in the -// global namespace: the compiler does not support namespace. -#if defined(CPPUNIT_NO_NAMESPACE) -# define CPPUNIT_NS_BEGIN -# define CPPUNIT_NS_END -# define CPPUNIT_NS -#else // defined(CPPUNIT_NO_NAMESPACE) -# define CPPUNIT_NS_BEGIN namespace CppUnit { -# define CPPUNIT_NS_END } -# define CPPUNIT_NS CppUnit -#endif // defined(CPPUNIT_NO_NAMESPACE) - -/*! Stringize a symbol. - * - * Use this macro to convert a preprocessor symbol to a string. - * - * Example of usage: - * \code - * #define CPPUNIT_PLUGIN_EXPORTED_NAME cppunitTestPlugIn - * const char *name = CPPUNIT_STRINGIZE( CPPUNIT_PLUGIN_EXPORTED_NAME ); - * \endcode - */ -#define CPPUNIT_STRINGIZE( symbol ) _CPPUNIT_DO_STRINGIZE( symbol ) - -/// \internal -#define _CPPUNIT_DO_STRINGIZE( symbol ) #symbol - -/*! Joins to symbol after expanding them into string. - * - * Use this macro to join two symbols. Example of usage: - * - * \code - * #define MAKE_UNIQUE_NAME(prefix) CPPUNIT_JOIN( prefix, __LINE__ ) - * \endcode - * - * The macro defined in the example concatenate a given prefix with the line number - * to obtain a 'unique' identifier. - * - * \internal From boost documentation: - * The following piece of macro magic joins the two - * arguments together, even when one of the arguments is - * itself a macro (see 16.3.1 in C++ standard). The key - * is that macro expansion of macro arguments does not - * occur in CPPUNIT_JOIN2 but does in CPPUNIT_JOIN. - */ -#define CPPUNIT_JOIN( symbol1, symbol2 ) _CPPUNIT_DO_JOIN( symbol1, symbol2 ) - -/// \internal -#define _CPPUNIT_DO_JOIN( symbol1, symbol2 ) _CPPUNIT_DO_JOIN2( symbol1, symbol2 ) - -/// \internal -#define _CPPUNIT_DO_JOIN2( symbol1, symbol2 ) symbol1##symbol2 - -/*! Adds the line number to the specified string to create a unique identifier. - * \param prefix Prefix added to the line number to create a unique identifier. - * \see CPPUNIT_TEST_SUITE_REGISTRATION for an example of usage. - */ -#define CPPUNIT_MAKE_UNIQUE_NAME( prefix ) CPPUNIT_JOIN( prefix, __LINE__ ) - -/*! Defines wrap colunm for %CppUnit. Used by CompilerOuputter. - */ -#if !defined(CPPUNIT_WRAP_COLUMN) -# define CPPUNIT_WRAP_COLUMN 79 -#endif - -#endif // CPPUNIT_PORTABILITY_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/Protector.h b/contrib/cppunit-1.12.1/include/cppunit/Protector.h deleted file mode 100644 index d14e75f64..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/Protector.h +++ /dev/null @@ -1,94 +0,0 @@ -#ifndef CPPUNIT_PROTECTOR_H -#define CPPUNIT_PROTECTOR_H - -#include - -CPPUNIT_NS_BEGIN - -class Exception; -class Message; -class ProtectorContext; -class TestResult; - - -class CPPUNIT_API Functor -{ -public: - virtual ~Functor(); - - virtual bool operator()() const =0; -}; - - -/*! \brief Protects one or more test case run. - * - * Protector are used to globably 'decorate' a test case. The most common - * usage of Protector is to catch exception that do not subclass std::exception, - * such as MFC CException class or Rogue Wave RWXMsg class, and capture the - * message associated to the exception. In fact, CppUnit capture message from - * Exception and std::exception using a Protector. - * - * Protector are chained. When you add a Protector using - * TestResult::pushProtector(), your protector is in fact passed as a Functor - * to the first protector of the chain. - * - * TestCase protects call to setUp(), runTest() and tearDown() by calling - * TestResult::protect(). - * - * Because the protector chain is handled by TestResult, a protector can be - * active for a single test, or a complete test run. - * - * Here are some possible usages: - * - run all test case in a separate thread and assumes the test failed if it - * did not finish in a given time (infinite loop work around) - * - performance tracing : time only the runTest() time. - * \sa TestResult, TestCase, TestListener. - */ -class CPPUNIT_API Protector -{ -public: - virtual ~Protector(); - - virtual bool protect( const Functor &functor, - const ProtectorContext &context ) =0; - -protected: - void reportError( const ProtectorContext &context, - const Exception &error ) const; - - void reportError( const ProtectorContext &context, - const Message &message, - const SourceLine &sourceLine = SourceLine() ) const; - - void reportFailure( const ProtectorContext &context, - const Exception &failure ) const; - - Message actualMessage( const Message &message, - const ProtectorContext &context ) const; -}; - - -/*! \brief Scoped protector push to TestResult. - * - * Adds the specified Protector to the specified TestResult for the object - * life-time. - */ -class CPPUNIT_API ProtectorGuard -{ -public: - /// Pushes the specified protector. - ProtectorGuard( TestResult *result, - Protector *protector ); - - /// Pops the protector. - ~ProtectorGuard(); - -private: - TestResult *m_result; -}; - -CPPUNIT_NS_END - - -#endif // CPPUNIT_PROTECTOR_H - diff --git a/contrib/cppunit-1.12.1/include/cppunit/SourceLine.h b/contrib/cppunit-1.12.1/include/cppunit/SourceLine.h deleted file mode 100644 index f7a85df7f..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/SourceLine.h +++ /dev/null @@ -1,63 +0,0 @@ -#ifndef CPPUNIT_SOURCELINE_H -#define CPPUNIT_SOURCELINE_H - -#include -#include - -/*! \brief Constructs a SourceLine object initialized with the location where the macro is expanded. - * \ingroup CreatingNewAssertions - * \relates CppUnit::SourceLine - * Used to write your own assertion macros. - * \see Asserter for example of usage. - */ -#define CPPUNIT_SOURCELINE() CPPUNIT_NS::SourceLine( __FILE__, __LINE__ ) - - -CPPUNIT_NS_BEGIN - - -/*! \brief Represents a source line location. - * \ingroup CreatingNewAssertions - * \ingroup BrowsingCollectedTestResult - * - * Used to capture the failure location in assertion. - * - * Use the CPPUNIT_SOURCELINE() macro to construct that object. Typically used when - * writing an assertion macro in association with Asserter. - * - * \see Asserter. - */ -class CPPUNIT_API SourceLine -{ -public: - SourceLine(); - - // Ensure thread-safe copy by detaching the string buffer. - SourceLine( const SourceLine &other ); - - SourceLine( const std::string &fileName, - int lineNumber ); - - SourceLine &operator =( const SourceLine &other ); - - /// Destructor. - virtual ~SourceLine(); - - bool isValid() const; - - int lineNumber() const; - - std::string fileName() const; - - bool operator ==( const SourceLine &other ) const; - bool operator !=( const SourceLine &other ) const; - -private: - std::string m_fileName; - int m_lineNumber; -}; - - -CPPUNIT_NS_END - -#endif // CPPUNIT_SOURCELINE_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/SynchronizedObject.h b/contrib/cppunit-1.12.1/include/cppunit/SynchronizedObject.h deleted file mode 100644 index 0f7d094aa..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/SynchronizedObject.h +++ /dev/null @@ -1,80 +0,0 @@ -#ifndef CPPUNIT_SYNCHRONIZEDOBJECT_H -#define CPPUNIT_SYNCHRONIZEDOBJECT_H - -#include - - -CPPUNIT_NS_BEGIN - - -/*! \brief Base class for synchronized object. - * - * Synchronized object are object which members are used concurrently by mutiple - * threads. - * - * This class define the class SynchronizationObject which must be subclassed - * to implement an actual lock. - * - * Each instance of this class holds a pointer on a lock object. - * - * See src/msvc6/MfcSynchronizedObject.h for an example. - */ -class CPPUNIT_API SynchronizedObject -{ -public: - /*! \brief Abstract synchronization object (mutex) - */ - class SynchronizationObject - { - public: - SynchronizationObject() {} - virtual ~SynchronizationObject() {} - - virtual void lock() {} - virtual void unlock() {} - }; - - /*! Constructs a SynchronizedObject object. - */ - SynchronizedObject( SynchronizationObject *syncObject =0 ); - - /// Destructor. - virtual ~SynchronizedObject(); - -protected: - /*! \brief Locks a synchronization object in the current scope. - */ - class ExclusiveZone - { - SynchronizationObject *m_syncObject; - - public: - ExclusiveZone( SynchronizationObject *syncObject ) - : m_syncObject( syncObject ) - { - m_syncObject->lock(); - } - - ~ExclusiveZone() - { - m_syncObject->unlock (); - } - }; - - virtual void setSynchronizationObject( SynchronizationObject *syncObject ); - -protected: - SynchronizationObject *m_syncObject; - -private: - /// Prevents the use of the copy constructor. - SynchronizedObject( const SynchronizedObject © ); - - /// Prevents the use of the copy operator. - void operator =( const SynchronizedObject © ); -}; - - -CPPUNIT_NS_END - -#endif // CPPUNIT_SYNCHRONIZEDOBJECT_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/Test.h b/contrib/cppunit-1.12.1/include/cppunit/Test.h deleted file mode 100644 index a56be0fbe..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/Test.h +++ /dev/null @@ -1,117 +0,0 @@ -#ifndef CPPUNIT_TEST_H -#define CPPUNIT_TEST_H - -#include -#include - -CPPUNIT_NS_BEGIN - - -class TestResult; -class TestPath; - -/*! \brief Base class for all test objects. - * \ingroup BrowsingCollectedTestResult - * - * All test objects should be a subclass of Test. Some test objects, - * TestCase for example, represent one individual test. Other test - * objects, such as TestSuite, are comprised of several tests. - * - * When a Test is run, the result is collected by a TestResult object. - * - * \see TestCase - * \see TestSuite - */ -class CPPUNIT_API Test -{ -public: - virtual ~Test() {}; - - /*! \brief Run the test, collecting results. - */ - virtual void run( TestResult *result ) =0; - - /*! \brief Return the number of test cases invoked by run(). - * - * The base unit of testing is the class TestCase. This - * method returns the number of TestCase objects invoked by - * the run() method. - */ - virtual int countTestCases () const =0; - - /*! \brief Returns the number of direct child of the test. - */ - virtual int getChildTestCount() const =0; - - /*! \brief Returns the child test of the specified index. - * - * This method test if the index is valid, then call doGetChildTestAt() if - * the index is valid. Otherwise std::out_of_range exception is thrown. - * - * You should override doGetChildTestAt() method. - * - * \param index Zero based index of the child test to return. - * \return Pointer on the test. Never \c NULL. - * \exception std::out_of_range is \a index is < 0 or >= getChildTestCount(). - */ - virtual Test *getChildTestAt( int index ) const; - - /*! \brief Returns the test name. - * - * Each test has a name. This name may be used to find the - * test in a suite or registry of tests. - */ - virtual std::string getName () const =0; - - /*! \brief Finds the test with the specified name and its parents test. - * \param testName Name of the test to find. - * \param testPath If the test is found, then all the tests traversed to access - * \a test are added to \a testPath, including \c this and \a test. - * \return \c true if a test with the specified name is found, \c false otherwise. - */ - virtual bool findTestPath( const std::string &testName, - TestPath &testPath ) const; - - /*! \brief Finds the specified test and its parents test. - * \param test Test to find. - * \param testPath If the test is found, then all the tests traversed to access - * \a test are added to \a testPath, including \c this and \a test. - * \return \c true if the specified test is found, \c false otherwise. - */ - virtual bool findTestPath( const Test *test, - TestPath &testPath ) const; - - /*! \brief Finds the test with the specified name in the hierarchy. - * \param testName Name of the test to find. - * \return Pointer on the first test found that is named \a testName. Never \c NULL. - * \exception std::invalid_argument if no test named \a testName is found. - */ - virtual Test *findTest( const std::string &testName ) const; - - /*! \brief Resolved the specified test path with this test acting as 'root'. - * \param testPath Test path string to resolve. - * \return Resolved TestPath. - * \exception std::invalid_argument if \a testPath could not be resolved. - * \see TestPath. - */ - virtual TestPath resolveTestPath( const std::string &testPath ) const; - -protected: - /*! Throws an exception if the specified index is invalid. - * \param index Zero base index of a child test. - * \exception std::out_of_range is \a index is < 0 or >= getChildTestCount(). - */ - virtual void checkIsValidIndex( int index ) const; - - /*! \brief Returns the child test of the specified valid index. - * \param index Zero based valid index of the child test to return. - * \return Pointer on the test. Never \c NULL. - */ - virtual Test *doGetChildTestAt( int index ) const =0; -}; - - -CPPUNIT_NS_END - -#endif // CPPUNIT_TEST_H - diff --git a/contrib/cppunit-1.12.1/include/cppunit/TestAssert.h b/contrib/cppunit-1.12.1/include/cppunit/TestAssert.h deleted file mode 100644 index f74797b9d..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/TestAssert.h +++ /dev/null @@ -1,428 +0,0 @@ -#ifndef CPPUNIT_TESTASSERT_H -#define CPPUNIT_TESTASSERT_H - -#include -#include -#include -#include -#include -#include // For struct assertion_traits - - -CPPUNIT_NS_BEGIN - - -/*! \brief Traits used by CPPUNIT_ASSERT_EQUAL(). - * - * Here is an example of specialising these traits: - * - * \code - * template<> - * struct assertion_traits // specialization for the std::string type - * { - * static bool equal( const std::string& x, const std::string& y ) - * { - * return x == y; - * } - * - * static std::string toString( const std::string& x ) - * { - * std::string text = '"' + x + '"'; // adds quote around the string to see whitespace - * OStringStream ost; - * ost << text; - * return ost.str(); - * } - * }; - * \endcode - */ -template -struct assertion_traits -{ - static bool equal( const T& x, const T& y ) - { - return x == y; - } - - static std::string toString( const T& x ) - { - OStringStream ost; - ost << x; - return ost.str(); - } -}; - - -/*! \brief Traits used by CPPUNIT_ASSERT_DOUBLES_EQUAL(). - * - * This specialisation from @c struct @c assertion_traits<> ensures that - * doubles are converted in full, instead of being rounded to the default - * 6 digits of precision. Use the system defined ISO C99 macro DBL_DIG - * within float.h is available to define the maximum precision, otherwise - * use the hard-coded maximum precision of 15. - */ -template <> -struct assertion_traits -{ - static bool equal( double x, double y ) - { - return x == y; - } - - static std::string toString( double x ) - { -#ifdef DBL_DIG - const int precision = DBL_DIG; -#else - const int precision = 15; -#endif // #ifdef DBL_DIG - char buffer[128]; -#ifdef __STDC_SECURE_LIB__ // Use secure version with visual studio 2005 to avoid warning. - sprintf_s(buffer, sizeof(buffer), "%.*g", precision, x); -#else - sprintf(buffer, "%.*g", precision, x); -#endif - return buffer; - } -}; - - -/*! \brief (Implementation) Asserts that two objects of the same type are equals. - * Use CPPUNIT_ASSERT_EQUAL instead of this function. - * \sa assertion_traits, Asserter::failNotEqual(). - */ -template -void assertEquals( const T& expected, - const T& actual, - SourceLine sourceLine, - const std::string &message ) -{ - if ( !assertion_traits::equal(expected,actual) ) // lazy toString conversion... - { - Asserter::failNotEqual( assertion_traits::toString(expected), - assertion_traits::toString(actual), - sourceLine, - message ); - } -} - - -/*! \brief (Implementation) Asserts that two double are equals given a tolerance. - * Use CPPUNIT_ASSERT_DOUBLES_EQUAL instead of this function. - * \sa Asserter::failNotEqual(). - * \sa CPPUNIT_ASSERT_DOUBLES_EQUAL for detailed semantic of the assertion. - */ -void CPPUNIT_API assertDoubleEquals( double expected, - double actual, - double delta, - SourceLine sourceLine, - const std::string &message ); - - -/* A set of macros which allow us to get the line number - * and file name at the point of an error. - * Just goes to show that preprocessors do have some - * redeeming qualities. - */ -#if CPPUNIT_HAVE_CPP_SOURCE_ANNOTATION -/** Assertions that a condition is \c true. - * \ingroup Assertions - */ -#define CPPUNIT_ASSERT(condition) \ - ( CPPUNIT_NS::Asserter::failIf( !(condition), \ - CPPUNIT_NS::Message( "assertion failed", \ - "Expression: " #condition), \ - CPPUNIT_SOURCELINE() ) ) -#else -#define CPPUNIT_ASSERT(condition) \ - ( CPPUNIT_NS::Asserter::failIf( !(condition), \ - CPPUNIT_NS::Message( "assertion failed" ), \ - CPPUNIT_SOURCELINE() ) ) -#endif - -/** Assertion with a user specified message. - * \ingroup Assertions - * \param message Message reported in diagnostic if \a condition evaluates - * to \c false. - * \param condition If this condition evaluates to \c false then the - * test failed. - */ -#define CPPUNIT_ASSERT_MESSAGE(message,condition) \ - ( CPPUNIT_NS::Asserter::failIf( !(condition), \ - CPPUNIT_NS::Message( "assertion failed", \ - "Expression: " \ - #condition, \ - message ), \ - CPPUNIT_SOURCELINE() ) ) - -/** Fails with the specified message. - * \ingroup Assertions - * \param message Message reported in diagnostic. - */ -#define CPPUNIT_FAIL( message ) \ - ( CPPUNIT_NS::Asserter::fail( CPPUNIT_NS::Message( "forced failure", \ - message ), \ - CPPUNIT_SOURCELINE() ) ) - -#ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED -/// Generalized macro for primitive value comparisons -#define CPPUNIT_ASSERT_EQUAL(expected,actual) \ - ( CPPUNIT_NS::assertEquals( (expected), \ - (actual), \ - __LINE__, __FILE__ ) ) -#else -/** Asserts that two values are equals. - * \ingroup Assertions - * - * Equality and string representation can be defined with - * an appropriate CppUnit::assertion_traits class. - * - * A diagnostic is printed if actual and expected values disagree. - * - * Requirement for \a expected and \a actual parameters: - * - They are exactly of the same type - * - They are serializable into a std::strstream using operator <<. - * - They can be compared using operator ==. - * - * The last two requirements (serialization and comparison) can be - * removed by specializing the CppUnit::assertion_traits. - */ -#define CPPUNIT_ASSERT_EQUAL(expected,actual) \ - ( CPPUNIT_NS::assertEquals( (expected), \ - (actual), \ - CPPUNIT_SOURCELINE(), \ - "" ) ) - -/** Asserts that two values are equals, provides additional message on failure. - * \ingroup Assertions - * - * Equality and string representation can be defined with - * an appropriate assertion_traits class. - * - * A diagnostic is printed if actual and expected values disagree. - * The message is printed in addition to the expected and actual value - * to provide additional information. - * - * Requirement for \a expected and \a actual parameters: - * - They are exactly of the same type - * - They are serializable into a std::strstream using operator <<. - * - They can be compared using operator ==. - * - * The last two requirements (serialization and comparison) can be - * removed by specializing the CppUnit::assertion_traits. - */ -#define CPPUNIT_ASSERT_EQUAL_MESSAGE(message,expected,actual) \ - ( CPPUNIT_NS::assertEquals( (expected), \ - (actual), \ - CPPUNIT_SOURCELINE(), \ - (message) ) ) -#endif - -/*! \brief Macro for primitive double value comparisons. - * \ingroup Assertions - * - * The assertion pass if both expected and actual are finite and - * \c fabs( \c expected - \c actual ) <= \c delta. - * If either \c expected or actual are infinite (+/- inf), the - * assertion pass if \c expected == \c actual. - * If either \c expected or \c actual is a NaN (not a number), then - * the assertion fails. - */ -#define CPPUNIT_ASSERT_DOUBLES_EQUAL(expected,actual,delta) \ - ( CPPUNIT_NS::assertDoubleEquals( (expected), \ - (actual), \ - (delta), \ - CPPUNIT_SOURCELINE(), \ - "" ) ) - - -/*! \brief Macro for primitive double value comparisons, setting a - * user-supplied message in case of failure. - * \ingroup Assertions - * \sa CPPUNIT_ASSERT_DOUBLES_EQUAL for detailed semantic of the assertion. - */ -#define CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(message,expected,actual,delta) \ - ( CPPUNIT_NS::assertDoubleEquals( (expected), \ - (actual), \ - (delta), \ - CPPUNIT_SOURCELINE(), \ - (message) ) ) - - -/** Asserts that the given expression throws an exception of the specified type. - * \ingroup Assertions - * Example of usage: - * \code - * std::vector v; - * CPPUNIT_ASSERT_THROW( v.at( 50 ), std::out_of_range ); - * \endcode - */ -# define CPPUNIT_ASSERT_THROW( expression, ExceptionType ) \ - CPPUNIT_ASSERT_THROW_MESSAGE( CPPUNIT_NS::AdditionalMessage(), \ - expression, \ - ExceptionType ) - - -// implementation detail -#if CPPUNIT_USE_TYPEINFO_NAME -#define CPPUNIT_EXTRACT_EXCEPTION_TYPE_( exception, no_rtti_message ) \ - CPPUNIT_NS::TypeInfoHelper::getClassName( typeid(exception) ) -#else -#define CPPUNIT_EXTRACT_EXCEPTION_TYPE_( exception, no_rtti_message ) \ - std::string( no_rtti_message ) -#endif // CPPUNIT_USE_TYPEINFO_NAME - -// implementation detail -#define CPPUNIT_GET_PARAMETER_STRING( parameter ) #parameter - -/** Asserts that the given expression throws an exception of the specified type, - * setting a user supplied message in case of failure. - * \ingroup Assertions - * Example of usage: - * \code - * std::vector v; - * CPPUNIT_ASSERT_THROW_MESSAGE( "- std::vector v;", v.at( 50 ), std::out_of_range ); - * \endcode - */ -# define CPPUNIT_ASSERT_THROW_MESSAGE( message, expression, ExceptionType ) \ - do { \ - bool cpputCorrectExceptionThrown_ = false; \ - CPPUNIT_NS::Message cpputMsg_( "expected exception not thrown" ); \ - cpputMsg_.addDetail( message ); \ - cpputMsg_.addDetail( "Expected: " \ - CPPUNIT_GET_PARAMETER_STRING( ExceptionType ) ); \ - \ - try { \ - expression; \ - } catch ( const ExceptionType & ) { \ - cpputCorrectExceptionThrown_ = true; \ - } catch ( const std::exception &e) { \ - cpputMsg_.addDetail( "Actual : " + \ - CPPUNIT_EXTRACT_EXCEPTION_TYPE_( e, \ - "std::exception or derived") ); \ - cpputMsg_.addDetail( std::string("What() : ") + e.what() ); \ - } catch ( ... ) { \ - cpputMsg_.addDetail( "Actual : unknown."); \ - } \ - \ - if ( cpputCorrectExceptionThrown_ ) \ - break; \ - \ - CPPUNIT_NS::Asserter::fail( cpputMsg_, \ - CPPUNIT_SOURCELINE() ); \ - } while ( false ) - - -/** Asserts that the given expression does not throw any exceptions. - * \ingroup Assertions - * Example of usage: - * \code - * std::vector v; - * v.push_back( 10 ); - * CPPUNIT_ASSERT_NO_THROW( v.at( 0 ) ); - * \endcode - */ -# define CPPUNIT_ASSERT_NO_THROW( expression ) \ - CPPUNIT_ASSERT_NO_THROW_MESSAGE( CPPUNIT_NS::AdditionalMessage(), \ - expression ) - - -/** Asserts that the given expression does not throw any exceptions, - * setting a user supplied message in case of failure. - * \ingroup Assertions - * Example of usage: - * \code - * std::vector v; - * v.push_back( 10 ); - * CPPUNIT_ASSERT_NO_THROW( "std::vector v;", v.at( 0 ) ); - * \endcode - */ -# define CPPUNIT_ASSERT_NO_THROW_MESSAGE( message, expression ) \ - do { \ - CPPUNIT_NS::Message cpputMsg_( "unexpected exception caught" ); \ - cpputMsg_.addDetail( message ); \ - \ - try { \ - expression; \ - } catch ( const std::exception &e ) { \ - cpputMsg_.addDetail( "Caught: " + \ - CPPUNIT_EXTRACT_EXCEPTION_TYPE_( e, \ - "std::exception or derived" ) ); \ - cpputMsg_.addDetail( std::string("What(): ") + e.what() ); \ - CPPUNIT_NS::Asserter::fail( cpputMsg_, \ - CPPUNIT_SOURCELINE() ); \ - } catch ( ... ) { \ - cpputMsg_.addDetail( "Caught: unknown." ); \ - CPPUNIT_NS::Asserter::fail( cpputMsg_, \ - CPPUNIT_SOURCELINE() ); \ - } \ - } while ( false ) - - -/** Asserts that an assertion fail. - * \ingroup Assertions - * Use to test assertions. - * Example of usage: - * \code - * CPPUNIT_ASSERT_ASSERTION_FAIL( CPPUNIT_ASSERT( 1 == 2 ) ); - * \endcode - */ -# define CPPUNIT_ASSERT_ASSERTION_FAIL( assertion ) \ - CPPUNIT_ASSERT_THROW( assertion, CPPUNIT_NS::Exception ) - - -/** Asserts that an assertion fail, with a user-supplied message in - * case of error. - * \ingroup Assertions - * Use to test assertions. - * Example of usage: - * \code - * CPPUNIT_ASSERT_ASSERTION_FAIL_MESSAGE( "1 == 2", CPPUNIT_ASSERT( 1 == 2 ) ); - * \endcode - */ -# define CPPUNIT_ASSERT_ASSERTION_FAIL_MESSAGE( message, assertion ) \ - CPPUNIT_ASSERT_THROW_MESSAGE( message, assertion, CPPUNIT_NS::Exception ) - - -/** Asserts that an assertion pass. - * \ingroup Assertions - * Use to test assertions. - * Example of usage: - * \code - * CPPUNIT_ASSERT_ASSERTION_PASS( CPPUNIT_ASSERT( 1 == 1 ) ); - * \endcode - */ -# define CPPUNIT_ASSERT_ASSERTION_PASS( assertion ) \ - CPPUNIT_ASSERT_NO_THROW( assertion ) - - -/** Asserts that an assertion pass, with a user-supplied message in - * case of failure. - * \ingroup Assertions - * Use to test assertions. - * Example of usage: - * \code - * CPPUNIT_ASSERT_ASSERTION_PASS_MESSAGE( "1 != 1", CPPUNIT_ASSERT( 1 == 1 ) ); - * \endcode - */ -# define CPPUNIT_ASSERT_ASSERTION_PASS_MESSAGE( message, assertion ) \ - CPPUNIT_ASSERT_NO_THROW_MESSAGE( message, assertion ) - - - - -// Backwards compatibility - -#if CPPUNIT_ENABLE_NAKED_ASSERT - -#undef assert -#define assert(c) CPPUNIT_ASSERT(c) -#define assertEqual(e,a) CPPUNIT_ASSERT_EQUAL(e,a) -#define assertDoublesEqual(e,a,d) CPPUNIT_ASSERT_DOUBLES_EQUAL(e,a,d) -#define assertLongsEqual(e,a) CPPUNIT_ASSERT_EQUAL(e,a) - -#endif - - -CPPUNIT_NS_END - -#endif // CPPUNIT_TESTASSERT_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/TestCaller.h b/contrib/cppunit-1.12.1/include/cppunit/TestCaller.h deleted file mode 100644 index dc4d82ed9..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/TestCaller.h +++ /dev/null @@ -1,204 +0,0 @@ -#ifndef CPPUNIT_TESTCALLER_H // -*- C++ -*- -#define CPPUNIT_TESTCALLER_H - -#include -#include - - -#if CPPUNIT_USE_TYPEINFO_NAME -# include -#endif - - -CPPUNIT_NS_BEGIN - -#if 0 -/*! \brief Marker class indicating that no exception is expected by TestCaller. - * This class is an implementation detail. You should never use this class directly. - */ -class CPPUNIT_API NoExceptionExpected -{ -private: - //! Prevent class instantiation. - NoExceptionExpected(); -}; - - -/*! \brief (Implementation) Traits used by TestCaller to expect an exception. - * - * This class is an implementation detail. You should never use this class directly. - */ -template -struct ExpectedExceptionTraits -{ - static void expectedException() - { -#if CPPUNIT_USE_TYPEINFO_NAME - throw Exception( Message( - "expected exception not thrown", - "Expected exception type: " + - TypeInfoHelper::getClassName( typeid( ExceptionType ) ) ) ); -#else - throw Exception( "expected exception not thrown" ); -#endif - } -}; - - -/*! \brief (Implementation) Traits specialization used by TestCaller to - * expect no exception. - * - * This class is an implementation detail. You should never use this class directly. - */ -template<> -struct ExpectedExceptionTraits -{ - static void expectedException() - { - } -}; - - -#endif - -//*** FIXME: rework this when class Fixture is implemented. ***// - - -/*! \brief Generate a test case from a fixture method. - * \ingroup WritingTestFixture - * - * A test caller provides access to a test case method - * on a test fixture class. Test callers are useful when - * you want to run an individual test or add it to a - * suite. - * Test Callers invoke only one Test (i.e. test method) on one - * Fixture of a TestFixture. - * - * Here is an example: - * \code - * class MathTest : public CppUnit::TestFixture { - * ... - * public: - * void setUp(); - * void tearDown(); - * - * void testAdd(); - * void testSubtract(); - * }; - * - * CppUnit::Test *MathTest::suite() { - * CppUnit::TestSuite *suite = new CppUnit::TestSuite; - * - * suite->addTest( new CppUnit::TestCaller( "testAdd", testAdd ) ); - * return suite; - * } - * \endcode - * - * You can use a TestCaller to bind any test method on a TestFixture - * class, as long as it accepts void and returns void. - * - * \see TestCase - */ - -template -class TestCaller : public TestCase -{ - typedef void (Fixture::*TestMethod)(); - -public: - /*! - * Constructor for TestCaller. This constructor builds a new Fixture - * instance owned by the TestCaller. - * \param name name of this TestCaller - * \param test the method this TestCaller calls in runTest() - */ - TestCaller( std::string name, TestMethod test ) : - TestCase( name ), - m_ownFixture( true ), - m_fixture( new Fixture() ), - m_test( test ) - { - } - - /*! - * Constructor for TestCaller. - * This constructor does not create a new Fixture instance but accepts - * an existing one as parameter. The TestCaller will not own the - * Fixture object. - * \param name name of this TestCaller - * \param test the method this TestCaller calls in runTest() - * \param fixture the Fixture to invoke the test method on. - */ - TestCaller(std::string name, TestMethod test, Fixture& fixture) : - TestCase( name ), - m_ownFixture( false ), - m_fixture( &fixture ), - m_test( test ) - { - } - - /*! - * Constructor for TestCaller. - * This constructor does not create a new Fixture instance but accepts - * an existing one as parameter. The TestCaller will own the - * Fixture object and delete it in its destructor. - * \param name name of this TestCaller - * \param test the method this TestCaller calls in runTest() - * \param fixture the Fixture to invoke the test method on. - */ - TestCaller(std::string name, TestMethod test, Fixture* fixture) : - TestCase( name ), - m_ownFixture( true ), - m_fixture( fixture ), - m_test( test ) - { - } - - ~TestCaller() - { - if (m_ownFixture) - delete m_fixture; - } - - void runTest() - { -// try { - (m_fixture->*m_test)(); -// } -// catch ( ExpectedException & ) { -// return; -// } - -// ExpectedExceptionTraits::expectedException(); - } - - void setUp() - { - m_fixture->setUp (); - } - - void tearDown() - { - m_fixture->tearDown (); - } - - std::string toString() const - { - return "TestCaller " + getName(); - } - -private: - TestCaller( const TestCaller &other ); - TestCaller &operator =( const TestCaller &other ); - -private: - bool m_ownFixture; - Fixture *m_fixture; - TestMethod m_test; -}; - - - -CPPUNIT_NS_END - -#endif // CPPUNIT_TESTCALLER_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/TestCase.h b/contrib/cppunit-1.12.1/include/cppunit/TestCase.h deleted file mode 100644 index d4b7a46a8..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/TestCase.h +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef CPPUNIT_TESTCASE_H -#define CPPUNIT_TESTCASE_H - -#include -#include -#include -#include -#include - - -CPPUNIT_NS_BEGIN - - -class TestResult; - - -/*! \brief A single test object. - * - * This class is used to implement a simple test case: define a subclass - * that overrides the runTest method. - * - * You don't usually need to use that class, but TestFixture and TestCaller instead. - * - * You are expected to subclass TestCase is you need to write a class similiar - * to TestCaller. - */ -class CPPUNIT_API TestCase : public TestLeaf, - public TestFixture -{ -public: - - TestCase( const std::string &name ); - - TestCase(); - - ~TestCase(); - - virtual void run(TestResult *result); - - std::string getName() const; - - //! FIXME: this should probably be pure virtual. - virtual void runTest(); - -private: - TestCase( const TestCase &other ); - TestCase &operator=( const TestCase &other ); - -private: - const std::string m_name; -}; - -CPPUNIT_NS_END - -#endif // CPPUNIT_TESTCASE_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/TestComposite.h b/contrib/cppunit-1.12.1/include/cppunit/TestComposite.h deleted file mode 100644 index 0ded95fcd..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/TestComposite.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef CPPUNIT_TESTCOMPSITE_H // -*- C++ -*- -#define CPPUNIT_TESTCOMPSITE_H - -#include -#include - -CPPUNIT_NS_BEGIN - - -/*! \brief A Composite of Tests. - * - * Base class for all test composites. Subclass this class if you need to implement - * a custom TestSuite. - * - * \see Test, TestSuite. - */ -class CPPUNIT_API TestComposite : public Test -{ -public: - TestComposite( const std::string &name = "" ); - - ~TestComposite(); - - void run( TestResult *result ); - - int countTestCases() const; - - std::string getName() const; - -private: - TestComposite( const TestComposite &other ); - TestComposite &operator =( const TestComposite &other ); - - virtual void doStartSuite( TestResult *controller ); - virtual void doRunChildTests( TestResult *controller ); - virtual void doEndSuite( TestResult *controller ); - -private: - const std::string m_name; -}; - - -CPPUNIT_NS_END - -#endif // CPPUNIT_TESTCOMPSITE_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/TestFailure.h b/contrib/cppunit-1.12.1/include/cppunit/TestFailure.h deleted file mode 100644 index 64199790d..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/TestFailure.h +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef CPPUNIT_TESTFAILURE_H // -*- C++ -*- -#define CPPUNIT_TESTFAILURE_H - -#include -#include - -CPPUNIT_NS_BEGIN - - -class Exception; -class SourceLine; -class Test; - - -/*! \brief Record of a failed Test execution. - * \ingroup BrowsingCollectedTestResult - * - * A TestFailure collects a failed test together with - * the caught exception. - * - * TestFailure assumes lifetime control for any exception - * passed to it. - */ -class CPPUNIT_API TestFailure -{ -public: - TestFailure( Test *failedTest, - Exception *thrownException, - bool isError ); - - virtual ~TestFailure (); - - virtual Test *failedTest() const; - - virtual Exception *thrownException() const; - - virtual SourceLine sourceLine() const; - - virtual bool isError() const; - - virtual std::string failedTestName() const; - - virtual TestFailure *clone() const; - -protected: - Test *m_failedTest; - Exception *m_thrownException; - bool m_isError; - -private: - TestFailure( const TestFailure &other ); - TestFailure &operator =( const TestFailure& other ); -}; - - -CPPUNIT_NS_END - -#endif // CPPUNIT_TESTFAILURE_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/TestFixture.h b/contrib/cppunit-1.12.1/include/cppunit/TestFixture.h deleted file mode 100644 index 1223adbc9..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/TestFixture.h +++ /dev/null @@ -1,99 +0,0 @@ -#ifndef CPPUNIT_TESTFIXTURE_H // -*- C++ -*- -#define CPPUNIT_TESTFIXTURE_H - -#include - -CPPUNIT_NS_BEGIN - - -/*! \brief Wraps a test case with setUp and tearDown methods. - * \ingroup WritingTestFixture - * - * A TestFixture is used to provide a common environment for a set - * of test cases. - * - * To define a test fixture, do the following: - * - implement a subclass of TestCase - * - the fixture is defined by instance variables - * - initialize the fixture state by overriding setUp - * (i.e. construct the instance variables of the fixture) - * - clean-up after a test by overriding tearDown. - * - * Each test runs in its own fixture so there - * can be no side effects among test runs. - * Here is an example: - * - * \code - * class MathTest : public CppUnit::TestFixture { - * protected: - * int m_value1, m_value2; - * - * public: - * MathTest() {} - * - * void setUp () { - * m_value1 = 2; - * m_value2 = 3; - * } - * } - * \endcode - * - * For each test implement a method which interacts - * with the fixture. Verify the expected results with assertions specified - * by calling CPPUNIT_ASSERT on the expression you want to test: - * - * \code - * public: - * void testAdd () { - * int result = m_value1 + m_value2; - * CPPUNIT_ASSERT( result == 5 ); - * } - * \endcode - * - * Once the methods are defined you can run them. To do this, use - * a TestCaller. - * - * \code - * CppUnit::Test *test = new CppUnit::TestCaller( "testAdd", - * &MathTest::testAdd ); - * test->run(); - * \endcode - * - * - * The tests to be run can be collected into a TestSuite. - * - * \code - * public: - * static CppUnit::TestSuite *MathTest::suite () { - * CppUnit::TestSuite *suiteOfTests = new CppUnit::TestSuite; - * suiteOfTests->addTest(new CppUnit::TestCaller( - * "testAdd", &MathTest::testAdd)); - * suiteOfTests->addTest(new CppUnit::TestCaller( - * "testDivideByZero", &MathTest::testDivideByZero)); - * return suiteOfTests; - * } - * \endcode - * - * A set of macros have been created for convenience. They are located in HelperMacros.h. - * - * \see TestResult, TestSuite, TestCaller, - * \see CPPUNIT_TEST_SUB_SUITE, CPPUNIT_TEST, CPPUNIT_TEST_SUITE_END, - * \see CPPUNIT_TEST_SUITE_REGISTRATION, CPPUNIT_TEST_EXCEPTION, CPPUNIT_TEST_FAIL. - */ -class CPPUNIT_API TestFixture -{ -public: - virtual ~TestFixture() {}; - - //! \brief Set up context before running a test. - virtual void setUp() {}; - - //! Clean up after the test run. - virtual void tearDown() {}; -}; - - -CPPUNIT_NS_END - - -#endif diff --git a/contrib/cppunit-1.12.1/include/cppunit/TestLeaf.h b/contrib/cppunit-1.12.1/include/cppunit/TestLeaf.h deleted file mode 100644 index c83b07597..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/TestLeaf.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef CPPUNIT_TESTLEAF_H -#define CPPUNIT_TESTLEAF_H - -#include - - -CPPUNIT_NS_BEGIN - - -/*! \brief A single test object. - * - * Base class for single test case: a test that doesn't have any children. - * - */ -class CPPUNIT_API TestLeaf: public Test -{ -public: - /*! Returns 1 as the default number of test cases invoked by run(). - * - * You may override this method when many test cases are invoked (RepeatedTest - * for example). - * - * \return 1. - * \see Test::countTestCases(). - */ - int countTestCases() const; - - /*! Returns the number of child of this test case: 0. - * - * You should never override this method: a TestLeaf as no children by definition. - * - * \return 0. - */ - int getChildTestCount() const; - - /*! Always throws std::out_of_range. - * \see Test::doGetChildTestAt(). - */ - Test *doGetChildTestAt( int index ) const; -}; - -CPPUNIT_NS_END - -#endif // CPPUNIT_TESTLEAF_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/TestListener.h b/contrib/cppunit-1.12.1/include/cppunit/TestListener.h deleted file mode 100644 index 330262d33..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/TestListener.h +++ /dev/null @@ -1,148 +0,0 @@ -#ifndef CPPUNIT_TESTLISTENER_H // -*- C++ -*- -#define CPPUNIT_TESTLISTENER_H - -#include - - -CPPUNIT_NS_BEGIN - - -class Exception; -class Test; -class TestFailure; -class TestResult; - - -/*! \brief Listener for test progress and result. - * \ingroup TrackingTestExecution - * - * Implementing the Observer pattern a TestListener may be registered - * to a TestResult to obtain information on the testing progress. Use - * specialized sub classes of TestListener for text output - * (TextTestProgressListener). Do not use the Listener for the test - * result output, use a subclass of Outputter instead. - * - * The test framework distinguishes between failures and errors. - * A failure is anticipated and checked for with assertions. Errors are - * unanticipated problems signified by exceptions that are not generated - * by the framework. - * - * Here is an example to track test time: - * - * - * \code - * #include - * #include - * #include // for clock() - * - * class TimingListener : public CppUnit::TestListener - * { - * public: - * void startTest( CppUnit::Test *test ) - * { - * _chronometer.start(); - * } - * - * void endTest( CppUnit::Test *test ) - * { - * _chronometer.end(); - * addTest( test, _chronometer.elapsedTime() ); - * } - * - * // ... (interface to add/read test timing result) - * - * private: - * Clock _chronometer; - * }; - * \endcode - * - * And another example that track failure/success at test suite level and captures - * the TestPath of each suite: - * \code - * class SuiteTracker : public CppUnit::TestListener - * { - * public: - * void startSuite( CppUnit::Test *suite ) - * { - * m_currentPath.add( suite ); - * } - * - * void addFailure( const TestFailure &failure ) - * { - * m_suiteFailure.top() = false; - * } - * - * void endSuite( CppUnit::Test *suite ) - * { - * m_suiteStatus.insert( std::make_pair( suite, m_suiteFailure.top() ) ); - * m_suitePaths.insert( std::make_pair( suite, m_currentPath ) ); - * - * m_currentPath.up(); - * m_suiteFailure.pop(); - * } - * - * private: - * std::stack m_suiteFailure; - * CppUnit::TestPath m_currentPath; - * std::map m_suiteStatus; - * std::map m_suitePaths; - * }; - * \endcode - * - * \see TestResult - */ -class CPPUNIT_API TestListener -{ -public: - virtual ~TestListener() {} - - /// Called when just before a TestCase is run. - virtual void startTest( Test * /*test*/ ) {} - - /*! \brief Called when a failure occurs while running a test. - * \see TestFailure. - * \warning \a failure is a temporary object that is destroyed after the - * method call. Use TestFailure::clone() to create a duplicate. - */ - virtual void addFailure( const TestFailure & /*failure*/ ) {} - - /// Called just after a TestCase was run (even if a failure occured). - virtual void endTest( Test * /*test*/ ) {} - - /*! \brief Called by a TestComposite just before running its child tests. - */ - virtual void startSuite( Test * /*suite*/ ) {} - - /*! \brief Called by a TestComposite after running its child tests. - */ - virtual void endSuite( Test * /*suite*/ ) {} - - /*! \brief Called by a TestRunner before running the test. - * - * You can use this to do some global initialisation. A listener - * could also use to output a 'prolog' to the test run. - * - * \param test Test that is going to be run. - * \param eventManager Event manager used for the test run. - */ - virtual void startTestRun( Test * /*test*/, - TestResult * /*eventManager*/ ) {} - - /*! \brief Called by a TestRunner after running the test. - * - * TextTestProgressListener use this to emit a line break. You can also use this - * to do some global uninitialisation. - * - * \param test Test that was run. - * \param eventManager Event manager used for the test run. - */ - virtual void endTestRun( Test * /*test*/, - TestResult * /*eventManager*/ ) {} -}; - - -CPPUNIT_NS_END - -#endif // CPPUNIT_TESTLISTENER_H - - diff --git a/contrib/cppunit-1.12.1/include/cppunit/TestPath.h b/contrib/cppunit-1.12.1/include/cppunit/TestPath.h deleted file mode 100644 index c3c851cc5..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/TestPath.h +++ /dev/null @@ -1,211 +0,0 @@ -#ifndef CPPUNIT_TESTPATH_H -#define CPPUNIT_TESTPATH_H - -#include - -#if CPPUNIT_NEED_DLL_DECL -#pragma warning( push ) -#pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z -#endif - -#include -#include - -CPPUNIT_NS_BEGIN - - -class Test; - -#if CPPUNIT_NEED_DLL_DECL -// template class CPPUNIT_API std::deque; -#endif - - -/*! \brief A List of Test representing a path to access a Test. - * \ingroup ExecutingTest - * - * The path can be converted to a string and resolved from a string with toString() - * and TestPath( Test *root, const std::string &pathAsString ). - * - * Pointed tests are not owned by the class. - * - * \see Test::resolvedTestPath() - */ -class CPPUNIT_API TestPath -{ -public: - /*! \brief Constructs an invalid path. - * - * The path is invalid until a test is added with add(). - */ - TestPath(); - - /*! \brief Constructs a valid path. - * - * \param root Test to add. - */ - TestPath( Test *root ); - - /*! \brief Constructs a path using a slice of another path. - * \param otherPath Path the test are copied from. - * \param indexFirst Zero based index of the first test to copy. Adjusted to be in valid - * range. \a count is adjusted with \a indexFirst. - * \param count Number of tests to copy. If < 0 then all test starting from index - * \a indexFirst are copied. - */ - TestPath( const TestPath &otherPath, - int indexFirst, - int count = -1 ); - - /*! \brief Resolves a path from a string returned by toString(). - * - * If \a pathAsString is an absolute path (begins with '/'), then the first test name - * of the path must be the name of \a searchRoot. Otherwise, \a pathAsString is a - * relative path, and the first test found using Test::findTest() matching the first - * test name is used as root. An empty string resolve to a path containing - * \a searchRoot. - * - * The resolved path is always valid. - * - * \param searchRoot Test used to resolve the path. - * \param pathAsString String that contains the path as a string created by toString(). - * \exception std::invalid_argument if one of the test names can not be resolved. - * \see toString(). - */ - TestPath( Test *searchRoot, - const std::string &pathAsString ); - - /*! \brief Copy constructor. - * \param other Object to copy. - */ - TestPath( const TestPath &other ); - - virtual ~TestPath(); - - /*! \brief Tests if the path contains at least one test. - * \return \c true if the path contains at least one test, otherwise returns \c false. - */ - virtual bool isValid() const; - - /*! \brief Adds a test to the path. - * \param test Pointer on the test to add. Must not be \c NULL. - */ - virtual void add( Test *test ); - - /*! \brief Adds all the tests of the specified path. - * \param path Path that contains the test to add. - */ - virtual void add( const TestPath &path ); - - /*! \brief Inserts a test at the specified index. - * \param test Pointer on the test to insert. Must not be \c NULL. - * \param index Zero based index indicating where the test is inserted. - * \exception std::out_of_range is \a index < 0 or \a index > getTestCount(). - */ - virtual void insert( Test *test, int index ); - - /*! \brief Inserts all the tests at the specified path at a given index. - * \param path Path that contains the test to insert. - * \param index Zero based index indicating where the tests are inserted. - * \exception std::out_of_range is \a index < 0 or \a index > getTestCount(), and - * \a path is valid. - */ - virtual void insert( const TestPath &path, int index ); - - /*! \brief Removes all the test from the path. - * - * The path becomes invalid after this call. - */ - virtual void removeTests(); - - /*! \brief Removes the test at the specified index of the path. - * \param index Zero based index of the test to remove. - * \exception std::out_of_range is \a index < 0 or \a index >= getTestCount(). - */ - virtual void removeTest( int index ); - - /*! \brief Removes the last test. - * \exception std::out_of_range is the path is invalid. - * \see isValid(). - */ - virtual void up(); - - /*! \brief Returns the number of tests in the path. - * \return Number of tests in the path. - */ - virtual int getTestCount() const; - - /*! \brief Returns the test of the specified index. - * \param index Zero based index of the test to return. - * \return Pointer on the test at index \a index. Never \c NULL. - * \exception std::out_of_range is \a index < 0 or \a index >= getTestCount(). - */ - virtual Test *getTestAt( int index ) const; - - /*! \brief Get the last test of the path. - * \return Pointer on the last test (test at the bottom of the hierarchy). Never \c NULL. - * \exception std::out_of_range if the path is not valid ( isValid() returns \c false ). - */ - virtual Test *getChildTest() const; - - /*! \brief Returns the path as a string. - * - * For example, if a path is composed of three tests named "All Tests", "Math" and - * "Math::testAdd", toString() will return: - * - * "All Tests/Math/Math::testAdd". - * - * \return A string composed of the test names separated with a '/'. It is a relative - * path. - */ - virtual std::string toString() const; - - /*! \brief Assignment operator. - * \param other Object to copy. - * \return This object. - */ - TestPath &operator =( const TestPath &other ); - -protected: - /*! \brief Checks that the specified test index is within valid range. - * \param index Zero based index to check. - * \exception std::out_of_range is \a index < 0 or \a index >= getTestCount(). - */ - void checkIndexValid( int index ) const; - - /// A list of test names. - typedef CppUnitDeque PathTestNames; - - /*! \brief Splits a path string into its test name components. - * \param pathAsString Path string created with toString(). - * \param testNames Test name components are added to that container. - * \return \c true if the path is relative (does not begin with '/'), \c false - * if it is absolute (begin with '/'). - */ - bool splitPathString( const std::string &pathAsString, - PathTestNames &testNames ); - - /*! \brief Finds the actual root of a path string and get the path string name components. - * \param searchRoot Test used as root if the path string is absolute, or to search - * the root test if the path string is relative. - * \param pathAsString Path string. May be absolute or relative. - * \param testNames Test name components are added to that container. - * \return Pointer on the resolved root test. Never \c NULL. - * \exception std::invalid_argument if either the root name can not be resolved or if - * pathAsString contains no name components. - */ - Test *findActualRoot( Test *searchRoot, - const std::string &pathAsString, - PathTestNames &testNames ); - -protected: - typedef CppUnitDeque Tests; - Tests m_tests; - -}; - - -CPPUNIT_NS_END - -#endif // CPPUNIT_TESTPATH_H - diff --git a/contrib/cppunit-1.12.1/include/cppunit/TestResult.h b/contrib/cppunit-1.12.1/include/cppunit/TestResult.h deleted file mode 100644 index e7e1050a0..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/TestResult.h +++ /dev/null @@ -1,156 +0,0 @@ -#ifndef CPPUNIT_TESTRESULT_H -#define CPPUNIT_TESTRESULT_H - -#include - -#if CPPUNIT_NEED_DLL_DECL -#pragma warning( push ) -#pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z -#endif - -#include -#include -#include - -CPPUNIT_NS_BEGIN - - -class Exception; -class Functor; -class Protector; -class ProtectorChain; -class Test; -class TestFailure; -class TestListener; - - -#if CPPUNIT_NEED_DLL_DECL -// template class CPPUNIT_API std::deque; -#endif - -/*! \brief Manages TestListener. - * \ingroup TrackingTestExecution - * - * A single instance of this class is used when running the test. It is usually - * created by the test runner (TestRunner). - * - * This class shouldn't have to be inherited from. Use a TestListener - * or one of its subclasses to be informed of the ongoing tests. - * Use a Outputter to receive a test summary once it has finished - * - * TestResult supplies a template method 'setSynchronizationObject()' - * so that subclasses can provide mutual exclusion in the face of multiple - * threads. This can be useful when tests execute in one thread and - * they fill a subclass of TestResult which effects change in another - * thread. To have mutual exclusion, override setSynchronizationObject() - * and make sure that you create an instance of ExclusiveZone at the - * beginning of each method. - * - * \see Test, TestListener, TestResultCollector, Outputter. - */ -class CPPUNIT_API TestResult : protected SynchronizedObject -{ -public: - /// Construct a TestResult - TestResult( SynchronizationObject *syncObject = 0 ); - - /// Destroys a test result - virtual ~TestResult(); - - virtual void addListener( TestListener *listener ); - - virtual void removeListener( TestListener *listener ); - - /// Resets the stop flag. - virtual void reset(); - - /// Stop testing - virtual void stop(); - - /// Returns whether testing should be stopped - virtual bool shouldStop() const; - - /// Informs TestListener that a test will be started. - virtual void startTest( Test *test ); - - /*! \brief Adds an error to the list of errors. - * The passed in exception - * caused the error - */ - virtual void addError( Test *test, Exception *e ); - - /*! \brief Adds a failure to the list of failures. The passed in exception - * caused the failure. - */ - virtual void addFailure( Test *test, Exception *e ); - - /// Informs TestListener that a test was completed. - virtual void endTest( Test *test ); - - /// Informs TestListener that a test suite will be started. - virtual void startSuite( Test *test ); - - /// Informs TestListener that a test suite was completed. - virtual void endSuite( Test *test ); - - /*! \brief Run the specified test. - * - * Calls startTestRun(), test->run(this), and finally endTestRun(). - */ - virtual void runTest( Test *test ); - - /*! \brief Protects a call to the specified functor. - * - * See Protector to understand how protector works. A default protector is - * always present. It captures CppUnit::Exception, std::exception and - * any other exceptions, retrieving as much as possible information about - * the exception as possible. - * - * Additional Protector can be added to the chain to support other exception - * types using pushProtector() and popProtector(). - * - * \param functor Functor to call (typically a call to setUp(), runTest() or - * tearDown(). - * \param test Test the functor is associated to (used for failure reporting). - * \param shortDescription Short description override for the failure message. - */ - virtual bool protect( const Functor &functor, - Test *test, - const std::string &shortDescription = std::string("") ); - - /// Adds the specified protector to the protector chain. - virtual void pushProtector( Protector *protector ); - - /// Removes the last protector from the protector chain. - virtual void popProtector(); - -protected: - /*! \brief Called to add a failure to the list of failures. - */ - void addFailure( const TestFailure &failure ); - - virtual void startTestRun( Test *test ); - virtual void endTestRun( Test *test ); - -protected: - typedef CppUnitDeque TestListeners; - TestListeners m_listeners; - ProtectorChain *m_protectorChain; - bool m_stop; - -private: - TestResult( const TestResult &other ); - TestResult &operator =( const TestResult &other ); -}; - - -CPPUNIT_NS_END - - -#if CPPUNIT_NEED_DLL_DECL -#pragma warning( pop ) -#endif - -#endif // CPPUNIT_TESTRESULT_H - - diff --git a/contrib/cppunit-1.12.1/include/cppunit/TestResultCollector.h b/contrib/cppunit-1.12.1/include/cppunit/TestResultCollector.h deleted file mode 100644 index 01b0a547a..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/TestResultCollector.h +++ /dev/null @@ -1,87 +0,0 @@ -#ifndef CPPUNIT_TESTRESULTCOLLECTOR_H -#define CPPUNIT_TESTRESULTCOLLECTOR_H - -#include - -#if CPPUNIT_NEED_DLL_DECL -#pragma warning( push ) -#pragma warning( disable: 4251 4660 ) // X needs to have dll-interface to be used by clients of class Z -#endif - -#include -#include - - -CPPUNIT_NS_BEGIN - -#if CPPUNIT_NEED_DLL_DECL -// template class CPPUNIT_API std::deque; -// template class CPPUNIT_API std::deque; -#endif - - -/*! \brief Collects test result. - * \ingroup WritingTestResult - * \ingroup BrowsingCollectedTestResult - * - * A TestResultCollector is a TestListener which collects the results of executing - * a test case. It is an instance of the Collecting Parameter pattern. - * - * The test framework distinguishes between failures and errors. - * A failure is anticipated and checked for with assertions. Errors are - * unanticipated problems signified by exceptions that are not generated - * by the framework. - * \see TestListener, TestFailure. - */ -class CPPUNIT_API TestResultCollector : public TestSuccessListener -{ -public: - typedef CppUnitDeque TestFailures; - typedef CppUnitDeque Tests; - - - /*! Constructs a TestResultCollector object. - */ - TestResultCollector( SynchronizationObject *syncObject = 0 ); - - /// Destructor. - virtual ~TestResultCollector(); - - void startTest( Test *test ); - void addFailure( const TestFailure &failure ); - - virtual void reset(); - - virtual int runTests() const; - virtual int testErrors() const; - virtual int testFailures() const; - virtual int testFailuresTotal() const; - - virtual const TestFailures& failures() const; - virtual const Tests &tests() const; - -protected: - void freeFailures(); - - Tests m_tests; - TestFailures m_failures; - int m_testErrors; - -private: - /// Prevents the use of the copy constructor. - TestResultCollector( const TestResultCollector © ); - - /// Prevents the use of the copy operator. - void operator =( const TestResultCollector © ); -}; - - - -CPPUNIT_NS_END - -#if CPPUNIT_NEED_DLL_DECL -#pragma warning( pop ) -#endif - - -#endif // CPPUNIT_TESTRESULTCOLLECTOR_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/TestRunner.h b/contrib/cppunit-1.12.1/include/cppunit/TestRunner.h deleted file mode 100644 index 930370ad9..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/TestRunner.h +++ /dev/null @@ -1,135 +0,0 @@ -#ifndef CPPUNIT_TESTRUNNER_H -#define CPPUNIT_TESTRUNNER_H - -#include -#include - -CPPUNIT_NS_BEGIN - - -class Test; -class TestResult; - - -/*! \brief Generic test runner. - * \ingroup ExecutingTest - * - * The TestRunner assumes ownership of all added tests: you can not add test - * or suite that are local variable since they can't be deleted. - * - * Example of usage: - * \code - * #include - * #include - * #include - * #include - * #include - * #include - * - * - * int - * main( int argc, char* argv[] ) - * { - * std::string testPath = (argc > 1) ? std::string(argv[1]) : ""; - * - * // Create the event manager and test controller - * CppUnit::TestResult controller; - * - * // Add a listener that colllects test result - * CppUnit::TestResultCollector result; - * controller.addListener( &result ); - * - * // Add a listener that print dots as test run. - * CppUnit::TextTestProgressListener progress; - * controller.addListener( &progress ); - * - * // Add the top suite to the test runner - * CppUnit::TestRunner runner; - * runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() ); - * try - * { - * std::cout << "Running " << testPath; - * runner.run( controller, testPath ); - * - * std::cerr << std::endl; - * - * // Print test in a compiler compatible format. - * CppUnit::CompilerOutputter outputter( &result, std::cerr ); - * outputter.write(); - * } - * catch ( std::invalid_argument &e ) // Test path not resolved - * { - * std::cerr << std::endl - * << "ERROR: " << e.what() - * << std::endl; - * return 0; - * } - * - * return result.wasSuccessful() ? 0 : 1; - * } - * \endcode - */ -class CPPUNIT_API TestRunner -{ -public: - /*! \brief Constructs a TestRunner object. - */ - TestRunner( ); - - /// Destructor. - virtual ~TestRunner(); - - /*! \brief Adds the specified test. - * \param test Test to add. The TestRunner takes ownership of the test. - */ - virtual void addTest( Test *test ); - - /*! \brief Runs a test using the specified controller. - * \param controller Event manager and controller used for testing - * \param testPath Test path string. See Test::resolveTestPath() for detail. - * \exception std::invalid_argument if no test matching \a testPath is found. - * see TestPath::TestPath( Test*, const std::string &) - * for detail. - */ - virtual void run( TestResult &controller, - const std::string &testPath = "" ); - -protected: - /*! \brief (INTERNAL) Mutating test suite. - */ - class CPPUNIT_API WrappingSuite : public TestSuite - { - public: - WrappingSuite( const std::string &name = "All Tests" ); - - int getChildTestCount() const; - - std::string getName() const; - - void run( TestResult *result ); - - protected: - Test *doGetChildTestAt( int index ) const; - - bool hasOnlyOneTest() const; - - Test *getUniqueChildTest() const; - }; - -protected: - WrappingSuite *m_suite; - -private: - /// Prevents the use of the copy constructor. - TestRunner( const TestRunner © ); - - /// Prevents the use of the copy operator. - void operator =( const TestRunner © ); - -private: -}; - - -CPPUNIT_NS_END - -#endif // CPPUNIT_TESTRUNNER_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/TestSuccessListener.h b/contrib/cppunit-1.12.1/include/cppunit/TestSuccessListener.h deleted file mode 100644 index 60c5ff500..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/TestSuccessListener.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef CPPUNIT_TESTSUCCESSLISTENER_H -#define CPPUNIT_TESTSUCCESSLISTENER_H - -#include -#include - - -CPPUNIT_NS_BEGIN - - -/*! \brief TestListener that checks if any test case failed. - * \ingroup TrackingTestExecution - */ -class CPPUNIT_API TestSuccessListener : public TestListener, - public SynchronizedObject -{ -public: - /*! Constructs a TestSuccessListener object. - */ - TestSuccessListener( SynchronizationObject *syncObject = 0 ); - - /// Destructor. - virtual ~TestSuccessListener(); - - virtual void reset(); - - void addFailure( const TestFailure &failure ); - - /// Returns whether the entire test was successful or not. - virtual bool wasSuccessful() const; - -private: - bool m_success; -}; - - -CPPUNIT_NS_END - -#endif // CPPUNIT_TESTSUCCESSLISTENER_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/TestSuite.h b/contrib/cppunit-1.12.1/include/cppunit/TestSuite.h deleted file mode 100644 index 2b9cd8d49..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/TestSuite.h +++ /dev/null @@ -1,80 +0,0 @@ -#ifndef CPPUNIT_TESTSUITE_H // -*- C++ -*- -#define CPPUNIT_TESTSUITE_H - -#include - -#if CPPUNIT_NEED_DLL_DECL -#pragma warning( push ) -#pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z -#endif - -#include -#include - -CPPUNIT_NS_BEGIN - - -#if CPPUNIT_NEED_DLL_DECL -// template class CPPUNIT_API std::vector; -#endif - - -/*! \brief A Composite of Tests. - * \ingroup CreatingTestSuite - * - * It runs a collection of test cases. Here is an example. - * \code - * CppUnit::TestSuite *suite= new CppUnit::TestSuite(); - * suite->addTest(new CppUnit::TestCaller ( - * "testAdd", testAdd)); - * suite->addTest(new CppUnit::TestCaller ( - * "testDivideByZero", testDivideByZero)); - * \endcode - * Note that \link TestSuite TestSuites \endlink assume lifetime - * control for any tests added to them. - * - * TestSuites do not register themselves in the TestRegistry. - * \see Test - * \see TestCaller - */ -class CPPUNIT_API TestSuite : public TestComposite -{ -public: - /*! Constructs a test suite with the specified name. - */ - TestSuite( std::string name = "" ); - - ~TestSuite(); - - /*! Adds the specified test to the suite. - * \param test Test to add. Must not be \c NULL. - */ - void addTest( Test *test ); - - /*! Returns the list of the tests (DEPRECATED). - * \deprecated Use getChildTestCount() & getChildTestAt() of the - * TestComposite interface instead. - * \return Reference on a vector that contains the tests of the suite. - */ - const CppUnitVector &getTests() const; - - /*! Destroys all the tests of the suite. - */ - virtual void deleteContents(); - - int getChildTestCount() const; - - Test *doGetChildTestAt( int index ) const; - -private: - CppUnitVector m_tests; -}; - - -CPPUNIT_NS_END - -#if CPPUNIT_NEED_DLL_DECL -#pragma warning( pop ) -#endif - -#endif // CPPUNIT_TESTSUITE_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/TextOutputter.h b/contrib/cppunit-1.12.1/include/cppunit/TextOutputter.h deleted file mode 100644 index 6bd9ceaae..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/TextOutputter.h +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef CPPUNIT_TEXTOUTPUTTER_H -#define CPPUNIT_TEXTOUTPUTTER_H - -#include -#include -#include - -CPPUNIT_NS_BEGIN - - -class Exception; -class SourceLine; -class TestResultCollector; -class TestFailure; - - -/*! \brief Prints a TestResultCollector to a text stream. - * \ingroup WritingTestResult - */ -class CPPUNIT_API TextOutputter : public Outputter -{ -public: - TextOutputter( TestResultCollector *result, - OStream &stream ); - - /// Destructor. - virtual ~TextOutputter(); - - void write(); - virtual void printFailures(); - virtual void printHeader(); - - virtual void printFailure( TestFailure *failure, - int failureNumber ); - virtual void printFailureListMark( int failureNumber ); - virtual void printFailureTestName( TestFailure *failure ); - virtual void printFailureType( TestFailure *failure ); - virtual void printFailureLocation( SourceLine sourceLine ); - virtual void printFailureDetail( Exception *thrownException ); - virtual void printFailureWarning(); - virtual void printStatistics(); - -protected: - TestResultCollector *m_result; - OStream &m_stream; - -private: - /// Prevents the use of the copy constructor. - TextOutputter( const TextOutputter © ); - - /// Prevents the use of the copy operator. - void operator =( const TextOutputter © ); -}; - - - -CPPUNIT_NS_END - -#endif // CPPUNIT_TEXTOUTPUTTER_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/TextTestProgressListener.h b/contrib/cppunit-1.12.1/include/cppunit/TextTestProgressListener.h deleted file mode 100644 index 7521c40bc..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/TextTestProgressListener.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef CPPUNIT_TEXTTESTPROGRESSLISTENER_H -#define CPPUNIT_TEXTTESTPROGRESSLISTENER_H - -#include - - -CPPUNIT_NS_BEGIN - - -/*! - * \brief TestListener that show the status of each TestCase test result. - * \ingroup TrackingTestExecution - */ -class CPPUNIT_API TextTestProgressListener : public TestListener -{ -public: - /*! Constructs a TextTestProgressListener object. - */ - TextTestProgressListener(); - - /// Destructor. - virtual ~TextTestProgressListener(); - - void startTest( Test *test ); - - void addFailure( const TestFailure &failure ); - - void endTestRun( Test *test, - TestResult *eventManager ); - -private: - /// Prevents the use of the copy constructor. - TextTestProgressListener( const TextTestProgressListener © ); - - /// Prevents the use of the copy operator. - void operator =( const TextTestProgressListener © ); - -private: -}; - - -CPPUNIT_NS_END - -#endif // CPPUNIT_TEXTTESTPROGRESSLISTENER_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/TextTestResult.h b/contrib/cppunit-1.12.1/include/cppunit/TextTestResult.h deleted file mode 100644 index e7b1fa3ea..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/TextTestResult.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef CPPUNIT_TEXTTESTRESULT_H -#define CPPUNIT_TEXTTESTRESULT_H - -#include -#include -#include - -CPPUNIT_NS_BEGIN - - -class SourceLine; -class Exception; -class Test; - -/*! \brief Holds printable test result (DEPRECATED). - * \ingroup TrackingTestExecution - * - * deprecated Use class TextTestProgressListener and TextOutputter instead. - */ -class CPPUNIT_API TextTestResult : public TestResult, - public TestResultCollector -{ -public: - TextTestResult(); - - virtual void addFailure( const TestFailure &failure ); - virtual void startTest( Test *test ); - virtual void print( OStream &stream ); -}; - -/** insertion operator for easy output */ -CPPUNIT_API OStream &operator <<( OStream &stream, - TextTestResult &result ); - -CPPUNIT_NS_END - -#endif // CPPUNIT_TEXTTESTRESULT_H - - diff --git a/contrib/cppunit-1.12.1/include/cppunit/TextTestRunner.h b/contrib/cppunit-1.12.1/include/cppunit/TextTestRunner.h deleted file mode 100644 index 23890e086..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/TextTestRunner.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef CPPUNIT_TEXTTESTRUNNER_H -#define CPPUNIT_TEXTTESTRUNNER_H - -#include - -#endif // CPPUNIT_TEXTTESTRUNNER_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/XmlOutputter.h b/contrib/cppunit-1.12.1/include/cppunit/XmlOutputter.h deleted file mode 100644 index 0de9676d8..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/XmlOutputter.h +++ /dev/null @@ -1,167 +0,0 @@ -#ifndef CPPUNIT_XMLTESTRESULTOUTPUTTER_H -#define CPPUNIT_XMLTESTRESULTOUTPUTTER_H - -#include - -#if CPPUNIT_NEED_DLL_DECL -#pragma warning( push ) -#pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z -#endif - -#include -#include -#include -#include - - -CPPUNIT_NS_BEGIN - - -class Test; -class TestFailure; -class TestResultCollector; -class XmlDocument; -class XmlElement; -class XmlOutputterHook; - - -/*! \brief Outputs a TestResultCollector in XML format. - * \ingroup WritingTestResult - * - * Save the test result as a XML stream. - * - * Additional datas can be added to the XML document using XmlOutputterHook. - * Hook are not owned by the XmlOutputter. They should be valid until - * destruction of the XmlOutputter. They can be removed with removeHook(). - * - * \see XmlDocument, XmlElement, XmlOutputterHook. - */ -class CPPUNIT_API XmlOutputter : public Outputter -{ -public: - /*! \brief Constructs a XmlOutputter object. - * \param result Result of the test run. - * \param stream Stream used to output the XML output. - * \param encoding Encoding used in the XML file (default is Latin-1). - */ - XmlOutputter( TestResultCollector *result, - OStream &stream, - std::string encoding = std::string("ISO-8859-1") ); - - /// Destructor. - virtual ~XmlOutputter(); - - /*! \brief Adds the specified hook to the outputter. - * \param hook Hook to add. Must not be \c NULL. - */ - virtual void addHook( XmlOutputterHook *hook ); - - /*! \brief Removes the specified hook from the outputter. - * \param hook Hook to remove. - */ - virtual void removeHook( XmlOutputterHook *hook ); - - /*! \brief Writes the specified result as an XML document to the stream. - * - * Refer to examples/cppunittest/XmlOutputterTest.cpp for example - * of use and XML document structure. - */ - virtual void write(); - - /*! \brief Sets the XSL style sheet used. - * - * \param styleSheet Name of the style sheet used. If empty, then no style sheet - * is used (default). - */ - virtual void setStyleSheet( const std::string &styleSheet ); - - /*! \brief set the output document as standalone or not. - * - * For the output document, specify wether it's a standalone XML - * document, or not. - * - * \param standalone if true, the output will be specified as standalone. - * if false, it will be not. - */ - virtual void setStandalone( bool standalone ); - - typedef CppUnitMap > FailedTests; - - /*! \brief Sets the root element and adds its children. - * - * Set the root element of the XML Document and add its child elements. - * - * For all hooks, call beginDocument() just after creating the root element (it - * is empty at this time), and endDocument() once all the datas have been added - * to the root element. - */ - virtual void setRootNode(); - - virtual void addFailedTests( FailedTests &failedTests, - XmlElement *rootNode ); - - virtual void addSuccessfulTests( FailedTests &failedTests, - XmlElement *rootNode ); - - /*! \brief Adds the statics element to the root node. - * - * Creates a new element containing statistics data and adds it to the root element. - * Then, for all hooks, call statisticsAdded(). - * \param rootNode Root element. - */ - virtual void addStatistics( XmlElement *rootNode ); - - /*! \brief Adds a failed test to the failed tests node. - * Creates a new element containing datas about the failed test, and adds it to - * the failed tests element. - * Then, for all hooks, call failTestAdded(). - */ - virtual void addFailedTest( Test *test, - TestFailure *failure, - int testNumber, - XmlElement *testsNode ); - - virtual void addFailureLocation( TestFailure *failure, - XmlElement *testElement ); - - - /*! \brief Adds a successful test to the successful tests node. - * Creates a new element containing datas about the successful test, and adds it to - * the successful tests element. - * Then, for all hooks, call successfulTestAdded(). - */ - virtual void addSuccessfulTest( Test *test, - int testNumber, - XmlElement *testsNode ); -protected: - virtual void fillFailedTestsMap( FailedTests &failedTests ); - -protected: - typedef CppUnitDeque Hooks; - - TestResultCollector *m_result; - OStream &m_stream; - std::string m_encoding; - std::string m_styleSheet; - XmlDocument *m_xml; - Hooks m_hooks; - -private: - /// Prevents the use of the copy constructor. - XmlOutputter( const XmlOutputter © ); - - /// Prevents the use of the copy operator. - void operator =( const XmlOutputter © ); - -private: -}; - - -CPPUNIT_NS_END - -#if CPPUNIT_NEED_DLL_DECL -#pragma warning( pop ) -#endif - - -#endif // CPPUNIT_XMLTESTRESULTOUTPUTTER_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/XmlOutputterHook.h b/contrib/cppunit-1.12.1/include/cppunit/XmlOutputterHook.h deleted file mode 100644 index 5ded3b1ee..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/XmlOutputterHook.h +++ /dev/null @@ -1,163 +0,0 @@ -#ifndef CPPUNIT_XMLOUTPUTTERHOOK_H -#define CPPUNIT_XMLOUTPUTTERHOOK_H - -#include - - -CPPUNIT_NS_BEGIN - - -class Test; -class TestFailure; -class XmlDocument; -class XmlElement; - - - -/*! \brief Hook to customize Xml output. - * - * XmlOutputterHook can be passed to XmlOutputter to customize the XmlDocument. - * - * Common customizations are: - * - adding some datas to successfull or failed test with - * failTestAdded() and successfulTestAdded(), - * - adding some statistics with statisticsAdded(), - * - adding other datas with beginDocument() or endDocument(). - * - * See examples/ClockerPlugIn which makes use of most the hook. - * - * Another simple example of an outputter hook is shown below. It may be - * used to add some meta information to your result files. In the example, - * the author name as well as the project name and test creation date is - * added to the head of the xml file. - * - * In order to make this information stored within the xml file, the virtual - * member function beginDocument() is overriden where a new - * XmlElement object is created. - * - * This element is simply added to the root node of the document which - * makes the information automatically being stored when the xml file - * is written. - * - * \code - * #include - * #include - * #include - * - * ... - * - * class MyXmlOutputterHook : public CppUnit::XmlOutputterHook - * { - * public: - * MyXmlOutputterHook(const std::string projectName, - * const std::string author) - * { - * m_projectName = projectName; - * m_author = author; - * }; - * - * virtual ~MyXmlOutputterHook() - * { - * }; - * - * void beginDocument(CppUnit::XmlDocument* document) - * { - * if (!document) - * return; - * - * // dump current time - * std::string szDate = CppUnit::StringTools::toString( (int)time(0) ); - * CppUnit::XmlElement* metaEl = new CppUnit::XmlElement("SuiteInfo", - * ""); - * - * metaEl->addElement( new CppUnit::XmlElement("Author", m_author) ); - * metaEl->addElement( new CppUnit::XmlElement("Project", m_projectName) ); - * metaEl->addElement( new CppUnit::XmlElement("Date", szDate ) ); - * - * document->rootElement().addElement(metaEl); - * }; - * private: - * std::string m_projectName; - * std::string m_author; - * }; - * \endcode - * - * Within your application's main code, you need to snap the hook - * object into your xml outputter object like shown below: - * - * \code - * CppUnit::TextUi::TestRunner runner; - * std::ofstream outputFile("testResults.xml"); - * - * CppUnit::XmlOutputter* outputter = new CppUnit::XmlOutputter( &runner.result(), - * outputFile ); - * MyXmlOutputterHook hook("myProject", "meAuthor"); - * outputter->addHook(&hook); - * runner.setOutputter(outputter); - * runner.addTest( VectorFixture::suite() ); - * runner.run(); - * outputFile.close(); - * \endcode - * - * This results into the following output: - * - * \code - * - * - * meAuthor - * myProject - * 1028143912 - * - * - * ... - * \endcode - * - * \see XmlOutputter, CppUnitTestPlugIn. - */ -class CPPUNIT_API XmlOutputterHook -{ -public: - /*! Called before any elements is added to the root element. - * \param document XML Document being created. - */ - virtual void beginDocument( XmlDocument *document ); - - /*! Called after adding all elements to the root element. - * \param document XML Document being created. - */ - virtual void endDocument( XmlDocument *document ); - - /*! Called after adding a fail test element. - * \param document XML Document being created. - * \param testElement \ element. - * \param test Test that failed. - * \param failure Test failure data. - */ - virtual void failTestAdded( XmlDocument *document, - XmlElement *testElement, - Test *test, - TestFailure *failure ); - - /*! Called after adding a successful test element. - * \param document XML Document being created. - * \param testElement \ element. - * \param test Test that was successful. - */ - virtual void successfulTestAdded( XmlDocument *document, - XmlElement *testElement, - Test *test ); - - /*! Called after adding the statistic element. - * \param document XML Document being created. - * \param statisticsElement \ element. - */ - virtual void statisticsAdded( XmlDocument *document, - XmlElement *statisticsElement ); - - virtual ~XmlOutputterHook() {} -}; - - -CPPUNIT_NS_END - -#endif // CPPUNIT_XMLOUTPUTTERHOOK_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/config/CppUnitApi.h b/contrib/cppunit-1.12.1/include/cppunit/config/CppUnitApi.h deleted file mode 100644 index a068bbd54..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/config/CppUnitApi.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef CPPUNIT_CONFIG_CPPUNITAPI -#define CPPUNIT_CONFIG_CPPUNITAPI - -#undef CPPUNIT_API - -#ifdef WIN32 - -// define CPPUNIT_DLL_BUILD when building CppUnit dll. -#ifdef CPPUNIT_BUILD_DLL -#define CPPUNIT_API __declspec(dllexport) -#endif - -// define CPPUNIT_DLL when linking to CppUnit dll. -#ifdef CPPUNIT_DLL -#define CPPUNIT_API __declspec(dllimport) -#endif - -#ifdef CPPUNIT_API -#undef CPPUNIT_NEED_DLL_DECL -#define CPPUNIT_NEED_DLL_DECL 1 -#endif - -#endif - - -#ifndef CPPUNIT_API -#define CPPUNIT_API -#undef CPPUNIT_NEED_DLL_DECL -#define CPPUNIT_NEED_DLL_DECL 0 -#endif - - -#endif // CPPUNIT_CONFIG_CPPUNITAPI diff --git a/contrib/cppunit-1.12.1/include/cppunit/config/Makefile.am b/contrib/cppunit-1.12.1/include/cppunit/config/Makefile.am deleted file mode 100644 index 2f0b1f806..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/config/Makefile.am +++ /dev/null @@ -1,10 +0,0 @@ -libcppunitincludedir = $(includedir)/cppunit/config - -libcppunitinclude_HEADERS = \ - config-bcb5.h \ - config-evc4.h \ - config-mac.h \ - config-msvc6.h \ - SelectDllLoader.h \ - CppUnitApi.h \ - SourcePrefix.h diff --git a/contrib/cppunit-1.12.1/include/cppunit/config/Makefile.in b/contrib/cppunit-1.12.1/include/cppunit/config/Makefile.in deleted file mode 100644 index 4c21edb95..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/config/Makefile.in +++ /dev/null @@ -1,438 +0,0 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = include/cppunit/config -DIST_COMMON = $(libcppunitinclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = \ - $(top_srcdir)/config/ac_create_prefix_config_h.m4 \ - $(top_srcdir)/config/ac_cxx_have_sstream.m4 \ - $(top_srcdir)/config/ac_cxx_have_strstream.m4 \ - $(top_srcdir)/config/ac_cxx_namespaces.m4 \ - $(top_srcdir)/config/ac_cxx_rtti.m4 \ - $(top_srcdir)/config/ac_cxx_string_compare_string_first.m4 \ - $(top_srcdir)/config/ac_dll.m4 \ - $(top_srcdir)/config/ax_cxx_gcc_abi_demangle.m4 \ - $(top_srcdir)/config/ax_cxx_have_isfinite.m4 \ - $(top_srcdir)/config/bb_enable_doxygen.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config/config.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(libcppunitincludedir)" -libcppunitincludeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(libcppunitinclude_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@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CPPUNIT_BINARY_AGE = @CPPUNIT_BINARY_AGE@ -CPPUNIT_INTERFACE_AGE = @CPPUNIT_INTERFACE_AGE@ -CPPUNIT_MAJOR_VERSION = @CPPUNIT_MAJOR_VERSION@ -CPPUNIT_MICRO_VERSION = @CPPUNIT_MICRO_VERSION@ -CPPUNIT_MINOR_VERSION = @CPPUNIT_MINOR_VERSION@ -CPPUNIT_VERSION = @CPPUNIT_VERSION@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOT = @DOT@ -DOXYGEN = @DOXYGEN@ -DSYMUTIL = @DSYMUTIL@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBADD_DL = @LIBADD_DL@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -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@ -enable_dot = @enable_dot@ -enable_html_docs = @enable_html_docs@ -enable_latex_docs = @enable_latex_docs@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -libcppunitincludedir = $(includedir)/cppunit/config -libcppunitinclude_HEADERS = \ - config-bcb5.h \ - config-evc4.h \ - config-mac.h \ - config-msvc6.h \ - SelectDllLoader.h \ - CppUnitApi.h \ - SourcePrefix.h - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/cppunit/config/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu include/cppunit/config/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 - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-libcppunitincludeHEADERS: $(libcppunitinclude_HEADERS) - @$(NORMAL_INSTALL) - test -z "$(libcppunitincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libcppunitincludedir)" - @list='$(libcppunitinclude_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(libcppunitincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(libcppunitincludedir)/$$f'"; \ - $(libcppunitincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(libcppunitincludedir)/$$f"; \ - done - -uninstall-libcppunitincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libcppunitinclude_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(libcppunitincludedir)/$$f'"; \ - rm -f "$(DESTDIR)$(libcppunitincludedir)/$$f"; \ - done - -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; nonemtpy = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && 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 $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$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 $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(libcppunitincludedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(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: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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 mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: install-libcppunitincludeHEADERS - -install-dvi: install-dvi-am - -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 - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-libcppunitincludeHEADERS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean 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-libcppunitincludeHEADERS install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-libcppunitincludeHEADERS - -# 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/contrib/cppunit-1.12.1/include/cppunit/config/SelectDllLoader.h b/contrib/cppunit-1.12.1/include/cppunit/config/SelectDllLoader.h deleted file mode 100644 index dc1c01155..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/config/SelectDllLoader.h +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef CPPUNIT_CONFIG_SELECTDLLLOADER_H -#define CPPUNIT_CONFIG_SELECTDLLLOADER_H - -/*! \file - * Selects DynamicLibraryManager implementation. - * - * Don't include this file directly. Include Portability.h instead. - */ - -/*! - * \def CPPUNIT_NO_TESTPLUGIN - * \brief If defined, then plug-in related classes and functions will not be compiled. - * - * \internal - * CPPUNIT_HAVE_WIN32_DLL_LOADER - * If defined, Win32 implementation of DynamicLibraryManager will be used. - * - * CPPUNIT_HAVE_BEOS_DLL_LOADER - * If defined, BeOs implementation of DynamicLibraryManager will be used. - * - * CPPUNIT_HAVE_UNIX_DLL_LOADER - * If defined, Unix implementation (dlfcn.h) of DynamicLibraryManager will be used. - */ - -/*! - * \def CPPUNIT_PLUGIN_EXPORT - * \ingroup WritingTestPlugIn - * \brief A macro to export a function from a dynamic library - * - * This macro export the C function following it from a dynamic library. - * Exporting the function makes it accessible to the DynamicLibraryManager. - * - * Example of usage: - * \code - * #include - * - * CPPUNIT_PLUGIN_EXPORT CppUnitTestPlugIn *CPPUNIT_PLUGIN_EXPORTED_NAME(void) - * { - * ... - * return &myPlugInInterface; - * } - * \endcode - */ - -#if !defined(CPPUNIT_NO_TESTPLUGIN) - -// Is WIN32 platform ? -#if defined(WIN32) -#define CPPUNIT_HAVE_WIN32_DLL_LOADER 1 -#undef CPPUNIT_PLUGIN_EXPORT -#define CPPUNIT_PLUGIN_EXPORT extern "C" __declspec(dllexport) - -// Is BeOS platform ? -#elif defined(__BEOS__) -#define CPPUNIT_HAVE_BEOS_DLL_LOADER 1 - -// Is Unix platform and have shl_load() (hp-ux) -#elif defined(CPPUNIT_HAVE_SHL_LOAD) -#define CPPUNIT_HAVE_UNIX_SHL_LOADER 1 - -// Is Unix platform and have include -#elif defined(CPPUNIT_HAVE_LIBDL) -#define CPPUNIT_HAVE_UNIX_DLL_LOADER 1 - -// Otherwise, disable support for DllLoader -#else -#define CPPUNIT_NO_TESTPLUGIN 1 -#endif - -#if !defined(CPPUNIT_PLUGIN_EXPORT) -#define CPPUNIT_PLUGIN_EXPORT extern "C" -#endif // !defined(CPPUNIT_PLUGIN_EXPORT) - -#endif // !defined(CPPUNIT_NO_TESTPLUGIN) - -#endif // CPPUNIT_CONFIG_SELECTDLLLOADER_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/config/SourcePrefix.h b/contrib/cppunit-1.12.1/include/cppunit/config/SourcePrefix.h deleted file mode 100644 index 2334601b5..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/config/SourcePrefix.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef CPPUNIT_CONFIG_H_INCLUDED -#define CPPUNIT_CONFIG_H_INCLUDED - -#include - -#ifdef _MSC_VER -#pragma warning(disable: 4018 4284 4146) -#if _MSC_VER >= 1400 -#pragma warning(disable: 4996) // sprintf is deprecated -#endif -#endif - - -#endif // CPPUNIT_CONFIG_H_INCLUDED diff --git a/contrib/cppunit-1.12.1/include/cppunit/config/config-bcb5.h b/contrib/cppunit-1.12.1/include/cppunit/config/config-bcb5.h deleted file mode 100644 index d49145206..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/config/config-bcb5.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef _INCLUDE_CPPUNIT_CONFIG_BCB5_H -#define _INCLUDE_CPPUNIT_CONFIG_BCB5_H 1 - -#define HAVE_CMATH 1 - -/* include/cppunit/config-bcb5.h. Manually adapted from - include/cppunit/config-auto.h */ - -/* define to 1 if the compiler implements namespaces */ -#ifndef CPPUNIT_HAVE_NAMESPACES -#define CPPUNIT_HAVE_NAMESPACES 1 -#endif - -/* define if library uses std::string::compare(string,pos,n) */ -#ifndef CPPUNIT_FUNC_STRING_COMPARE_STRING_FIRST -#define CPPUNIT_FUNC_STRING_COMPARE_STRING_FIRST 0 -#endif - -/* Define if you have the header file. */ -#ifdef CPPUNIT_HAVE_DLFCN_H -#undef CPPUNIT_HAVE_DLFCN_H -#endif - -/* define to 1 if the compiler implements namespaces */ -#ifndef CPPUNIT_HAVE_NAMESPACES -#define CPPUNIT_HAVE_NAMESPACES 1 -#endif - -/* define if the compiler supports Run-Time Type Identification */ -#ifndef CPPUNIT_HAVE_RTTI -#define CPPUNIT_HAVE_RTTI 1 -#endif - -/* Define to 1 to use type_info::name() for class names */ -#ifndef CPPUNIT_USE_TYPEINFO_NAME -#define CPPUNIT_USE_TYPEINFO_NAME CPPUNIT_HAVE_RTTI -#endif - -#define CPPUNIT_HAVE_SSTREAM 1 - -/* Name of package */ -#ifndef CPPUNIT_PACKAGE -#define CPPUNIT_PACKAGE "cppunit" -#endif - -/* _INCLUDE_CPPUNIT_CONFIG_BCB5_H */ -#endif diff --git a/contrib/cppunit-1.12.1/include/cppunit/config/config-evc4.h b/contrib/cppunit-1.12.1/include/cppunit/config/config-evc4.h deleted file mode 100644 index a79169812..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/config/config-evc4.h +++ /dev/null @@ -1,78 +0,0 @@ -#ifndef _INCLUDE_CPPUNIT_CONFIG_EVC4_H -#define _INCLUDE_CPPUNIT_CONFIG_EVC4_H 1 - -#if _MSC_VER > 1000 // VC++ -#pragma warning( disable : 4786 ) // disable warning debug symbol > 255... -#endif // _MSC_VER > 1000 - -#define HAVE_CMATH 1 - -/* include/cppunit/config-msvc6.h. Manually adapted from - include/cppunit/config-auto.h */ - -/* define to 1 if the compiler implements namespaces */ -#ifndef CPPUNIT_HAVE_NAMESPACES -#define CPPUNIT_HAVE_NAMESPACES 1 -#endif - -/* define if library uses std::string::compare(string,pos,n) */ -#ifdef CPPUNIT_FUNC_STRING_COMPARE_STRING_FIRST -#undef CPPUNIT_FUNC_STRING_COMPARE_STRING_FIRST -#endif - -/* Define if you have the header file. */ -#ifdef CPPUNIT_HAVE_DLFCN_H -#undef CPPUNIT_HAVE_DLFCN_H -#endif - -/* define to 1 if the compiler implements namespaces */ -#ifndef CPPUNIT_HAVE_NAMESPACES -#define CPPUNIT_HAVE_NAMESPACES 1 -#endif - -/* define if the compiler supports Run-Time Type Identification */ -#ifndef CPPUNIT_HAVE_RTTI -#define CPPUNIT_HAVE_RTTI 0 -#endif - -/* Define to 1 to use type_info::name() for class names */ -#ifndef CPPUNIT_USE_TYPEINFO_NAME -#define CPPUNIT_USE_TYPEINFO_NAME CPPUNIT_HAVE_RTTI -#endif - -#define CPPUNIT_NO_STREAM 1 -#define CPPUNIT_NO_ASSERT 1 - -#define CPPUNIT_HAVE_SSTREAM 0 - -/* Name of package */ -#ifndef CPPUNIT_PACKAGE -#define CPPUNIT_PACKAGE "cppunit" -#endif - - -// Compiler error location format for CompilerOutputter -// See class CompilerOutputter for format. -#undef CPPUNIT_COMPILER_LOCATION_FORMAT -#if _MSC_VER >= 1300 // VS 7.0 -# define CPPUNIT_COMPILER_LOCATION_FORMAT "%p(%l) : error : " -#else -# define CPPUNIT_COMPILER_LOCATION_FORMAT "%p(%l):" -#endif - -/* define to 1 if the compiler has _finite() */ -#ifndef CPPUNIT_HAVE__FINITE -#define CPPUNIT_HAVE__FINITE 1 -#endif - -// Uncomment to turn on STL wrapping => use this to test compilation. -// This will make CppUnit subclass std::vector & co to provide default -// parameter. -/*#define CPPUNIT_STD_NEED_ALLOCATOR 1 -#define CPPUNIT_STD_ALLOCATOR std::allocator -//#define CPPUNIT_NO_NAMESPACE 1 -*/ - - -/* _INCLUDE_CPPUNIT_CONFIG_EVC4_H */ -#endif diff --git a/contrib/cppunit-1.12.1/include/cppunit/config/config-mac.h b/contrib/cppunit-1.12.1/include/cppunit/config/config-mac.h deleted file mode 100644 index 4ace906cf..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/config/config-mac.h +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef _INCLUDE_CPPUNIT_CONFIG_MAC_H -#define _INCLUDE_CPPUNIT_CONFIG_MAC_H 1 - -/* MacOS X should be installed using the configure script. - This file is for other macs. - - It is not integrated into because we don't - know a suitable preprocessor symbol that will distinguish MacOS X - from other MacOS versions. Email us if you know the answer. -*/ - -/* define if library uses std::string::compare(string,pos,n) */ -#ifdef CPPUNIT_FUNC_STRING_COMPARE_STRING_FIRST -#undef CPPUNIT_FUNC_STRING_COMPARE_STRING_FIRST -#endif - -/* define if the library defines strstream */ -#ifndef CPPUNIT_HAVE_CLASS_STRSTREAM -#define CPPUNIT_HAVE_CLASS_STRSTREAM 1 -#endif - -/* Define if you have the header file. */ -#ifdef CPPUNIT_HAVE_CMATH -#undef CPPUNIT_HAVE_CMATH -#endif - -/* Define if you have the header file. */ -#ifdef CPPUNIT_HAVE_DLFCN_H -#undef CPPUNIT_HAVE_DLFCN_H -#endif - -/* define to 1 if the compiler implements namespaces */ -#ifndef CPPUNIT_HAVE_NAMESPACES -#define CPPUNIT_HAVE_NAMESPACES 1 -#endif - -/* define if the compiler supports Run-Time Type Identification */ -#ifndef CPPUNIT_HAVE_RTTI -#define CPPUNIT_HAVE_RTTI 1 -#endif - -/* define if the compiler has stringstream */ -#ifndef CPPUNIT_HAVE_SSTREAM -#define CPPUNIT_HAVE_SSTREAM 1 -#endif - -/* Define if you have the header file. */ -#ifndef CPPUNIT_HAVE_STRSTREAM -#define CPPUNIT_HAVE_STRSTREAM 1 -#endif - -/* Define to 1 to use type_info::name() for class names */ -#ifndef CPPUNIT_USE_TYPEINFO_NAME -#define CPPUNIT_USE_TYPEINFO_NAME CPPUNIT_HAVE_RTTI -#endif - -/* _INCLUDE_CPPUNIT_CONFIG_MAC_H */ -#endif diff --git a/contrib/cppunit-1.12.1/include/cppunit/config/config-msvc6.h b/contrib/cppunit-1.12.1/include/cppunit/config/config-msvc6.h deleted file mode 100644 index d6881711a..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/config/config-msvc6.h +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef _INCLUDE_CPPUNIT_CONFIG_MSVC6_H -#define _INCLUDE_CPPUNIT_CONFIG_MSVC6_H 1 - -#if _MSC_VER > 1000 // VC++ -#pragma warning( disable : 4786 ) // disable warning debug symbol > 255... -#endif // _MSC_VER > 1000 - -#define HAVE_CMATH 1 - -/* include/cppunit/config-msvc6.h. Manually adapted from - include/cppunit/config-auto.h */ - -/* define to 1 if the compiler implements namespaces */ -#ifndef CPPUNIT_HAVE_NAMESPACES -#define CPPUNIT_HAVE_NAMESPACES 1 -#endif - -/* define if library uses std::string::compare(string,pos,n) */ -#ifdef CPPUNIT_FUNC_STRING_COMPARE_STRING_FIRST -#undef CPPUNIT_FUNC_STRING_COMPARE_STRING_FIRST -#endif - -/* Define if you have the header file. */ -#ifdef CPPUNIT_HAVE_DLFCN_H -#undef CPPUNIT_HAVE_DLFCN_H -#endif - -/* define to 1 if the compiler implements namespaces */ -#ifndef CPPUNIT_HAVE_NAMESPACES -#define CPPUNIT_HAVE_NAMESPACES 1 -#endif - -/* define if the compiler supports Run-Time Type Identification */ -#ifndef CPPUNIT_HAVE_RTTI -# ifdef _CPPRTTI // Defined by the compiler option /GR -# define CPPUNIT_HAVE_RTTI 1 -# else -# define CPPUNIT_HAVE_RTTI 0 -# endif -#endif - -/* Define to 1 to use type_info::name() for class names */ -#ifndef CPPUNIT_USE_TYPEINFO_NAME -#define CPPUNIT_USE_TYPEINFO_NAME CPPUNIT_HAVE_RTTI -#endif - -#define CPPUNIT_HAVE_SSTREAM 1 - -/* Name of package */ -#ifndef CPPUNIT_PACKAGE -#define CPPUNIT_PACKAGE "cppunit" -#endif - - -// Compiler error location format for CompilerOutputter -// See class CompilerOutputter for format. -#undef CPPUNIT_COMPILER_LOCATION_FORMAT -#if _MSC_VER >= 1300 // VS 7.0 -# define CPPUNIT_COMPILER_LOCATION_FORMAT "%p(%l) : error : " -#else -# define CPPUNIT_COMPILER_LOCATION_FORMAT "%p(%l):" -#endif - -// Define to 1 if the compiler support C++ style cast. -#define CPPUNIT_HAVE_CPP_CAST 1 - -/* define to 1 if the compiler has _finite() */ -#ifndef CPPUNIT_HAVE__FINITE -#define CPPUNIT_HAVE__FINITE 1 -#endif - - -// Uncomment to turn on STL wrapping => use this to test compilation. -// This will make CppUnit subclass std::vector & co to provide default -// parameter. -/*#define CPPUNIT_STD_NEED_ALLOCATOR 1 -#define CPPUNIT_STD_ALLOCATOR std::allocator -//#define CPPUNIT_NO_NAMESPACE 1 -*/ - - -/* _INCLUDE_CPPUNIT_CONFIG_MSVC6_H */ -#endif diff --git a/contrib/cppunit-1.12.1/include/cppunit/extensions/AutoRegisterSuite.h b/contrib/cppunit-1.12.1/include/cppunit/extensions/AutoRegisterSuite.h deleted file mode 100644 index e04adb5d9..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/extensions/AutoRegisterSuite.h +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef CPPUNIT_EXTENSIONS_AUTOREGISTERSUITE_H -#define CPPUNIT_EXTENSIONS_AUTOREGISTERSUITE_H - -#include -#include -#include - -CPPUNIT_NS_BEGIN - - -/*! \brief (Implementation) Automatically register the test suite of the specified type. - * - * You should not use this class directly. Instead, use the following macros: - * - CPPUNIT_TEST_SUITE_REGISTRATION() - * - CPPUNIT_TEST_SUITE_NAMED_REGISTRATION() - * - * This object will register the test returned by TestCaseType::suite() - * when constructed to the test registry. - * - * This object is intented to be used as a static variable. - * - * - * \param TestCaseType Type of the test case which suite is registered. - * \see CPPUNIT_TEST_SUITE_REGISTRATION, CPPUNIT_TEST_SUITE_NAMED_REGISTRATION - * \see CppUnit::TestFactoryRegistry. - */ -template -class AutoRegisterSuite -{ -public: - /** Auto-register the suite factory in the global registry. - */ - AutoRegisterSuite() - : m_registry( &TestFactoryRegistry::getRegistry() ) - { - m_registry->registerFactory( &m_factory ); - } - - /** Auto-register the suite factory in the specified registry. - * \param name Name of the registry. - */ - AutoRegisterSuite( const std::string &name ) - : m_registry( &TestFactoryRegistry::getRegistry( name ) ) - { - m_registry->registerFactory( &m_factory ); - } - - ~AutoRegisterSuite() - { - if ( TestFactoryRegistry::isValid() ) - m_registry->unregisterFactory( &m_factory ); - } - -private: - TestFactoryRegistry *m_registry; - TestSuiteFactory m_factory; -}; - - -/*! \brief (Implementation) Automatically adds a registry into another registry. - * - * Don't use this class. Use the macros CPPUNIT_REGISTRY_ADD() and - * CPPUNIT_REGISTRY_ADD_TO_DEFAULT() instead. - */ -class AutoRegisterRegistry -{ -public: - AutoRegisterRegistry( const std::string &which, - const std::string &to ) - { - TestFactoryRegistry::getRegistry( to ).addRegistry( which ); - } - - AutoRegisterRegistry( const std::string &which ) - { - TestFactoryRegistry::getRegistry().addRegistry( which ); - } -}; - - -CPPUNIT_NS_END - -#endif // CPPUNIT_EXTENSIONS_AUTOREGISTERSUITE_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/extensions/ExceptionTestCaseDecorator.h b/contrib/cppunit-1.12.1/include/cppunit/extensions/ExceptionTestCaseDecorator.h deleted file mode 100644 index 9c816addb..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/extensions/ExceptionTestCaseDecorator.h +++ /dev/null @@ -1,104 +0,0 @@ -#ifndef CPPUNIT_EXTENSIONS_EXCEPTIONTESTCASEDECORATOR_H -#define CPPUNIT_EXTENSIONS_EXCEPTIONTESTCASEDECORATOR_H - -#include -#include -#include - -CPPUNIT_NS_BEGIN - - -/*! \brief Expected exception test case decorator. - * - * A decorator used to assert that a specific test case should throw an - * exception of a given type. - * - * You should use this class only if you need to check the exception object - * state (that a specific cause is set for example). If you don't need to - * do that, you might consider using CPPUNIT_TEST_EXCEPTION() instead. - * - * Intended use is to subclass and override checkException(). Example: - * - * \code - * - * class NetworkErrorTestCaseDecorator : - * public ExceptionTestCaseDecorator - * { - * public: - * NetworkErrorTestCaseDecorator( NetworkError::Cause expectedCause ) - * : m_expectedCause( expectedCause ) - * { - * } - * private: - * void checkException( ExpectedExceptionType &e ) - * { - * CPPUNIT_ASSERT_EQUAL( m_expectedCause, e.getCause() ); - * } - * - * NetworkError::Cause m_expectedCause; - * }; - * \endcode - * - */ -template -class ExceptionTestCaseDecorator : public TestCaseDecorator -{ -public: - typedef ExpectedException ExpectedExceptionType; - - /*! \brief Decorates the specified test. - * \param test TestCase to decorate. Assumes ownership of the test. - */ - ExceptionTestCaseDecorator( TestCase *test ) - : TestCaseDecorator( test ) - { - } - - /*! \brief Checks that the expected exception is thrown by the decorated test. - * is thrown. - * - * Calls the decorated test runTest() and checks that an exception of - * type ExpectedException is thrown. Call checkException() passing the - * exception that was caught so that some assertions can be made if - * needed. - */ - void runTest() - { - try - { - TestCaseDecorator::runTest(); - } - catch ( ExpectedExceptionType &e ) - { - checkException( e ); - return; - } - - // Moved outside the try{} statement to handle the case where the - // expected exception type is Exception (expecting assertion failure). -#if CPPUNIT_USE_TYPEINFO_NAME - throw Exception( Message( - "expected exception not thrown", - "Expected exception type: " + - TypeInfoHelper::getClassName( - typeid( ExpectedExceptionType ) ) ) ); -#else - throw Exception( Message("expected exception not thrown") ); -#endif - } - -private: - /*! \brief Called when the exception is caught. - * - * Should be overriden to check the exception. - */ - virtual void checkException( ExpectedExceptionType &e ) - { - } -}; - - -CPPUNIT_NS_END - -#endif // CPPUNIT_EXTENSIONS_EXCEPTIONTESTCASEDECORATOR_H - diff --git a/contrib/cppunit-1.12.1/include/cppunit/extensions/HelperMacros.h b/contrib/cppunit-1.12.1/include/cppunit/extensions/HelperMacros.h deleted file mode 100644 index 12431e465..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/extensions/HelperMacros.h +++ /dev/null @@ -1,541 +0,0 @@ -// ////////////////////////////////////////////////////////////////////////// -// Header file HelperMacros.h -// (c)Copyright 2000, Baptiste Lepilleur. -// Created: 2001/04/15 -// ////////////////////////////////////////////////////////////////////////// -#ifndef CPPUNIT_EXTENSIONS_HELPERMACROS_H -#define CPPUNIT_EXTENSIONS_HELPERMACROS_H - -#include -#include -#include -#include -#include -#include -#include -#include - - -/*! \addtogroup WritingTestFixture Writing test fixture - */ -/** @{ - */ - - -/** \file - * Macros intended to ease the definition of test suites. - * - * The macros - * CPPUNIT_TEST_SUITE(), CPPUNIT_TEST(), and CPPUNIT_TEST_SUITE_END() - * are designed to facilitate easy creation of a test suite. - * For example, - * - * \code - * #include - * class MyTest : public CppUnit::TestFixture { - * CPPUNIT_TEST_SUITE( MyTest ); - * CPPUNIT_TEST( testEquality ); - * CPPUNIT_TEST( testSetName ); - * CPPUNIT_TEST_SUITE_END(); - * public: - * void testEquality(); - * void testSetName(); - * }; - * \endcode - * - * The effect of these macros is to define two methods in the - * class MyTest. The first method is an auxiliary function - * named registerTests that you will not need to call directly. - * The second function - * \code static CppUnit::TestSuite *suite()\endcode - * returns a pointer to the suite of tests defined by the CPPUNIT_TEST() - * macros. - * - * Rather than invoking suite() directly, - * the macro CPPUNIT_TEST_SUITE_REGISTRATION() is - * used to create a static variable that automatically - * registers its test suite in a global registry. - * The registry yields a Test instance containing all the - * registered suites. - * \code - * CPPUNIT_TEST_SUITE_REGISTRATION( MyTest ); - * CppUnit::Test* tp = - * CppUnit::TestFactoryRegistry::getRegistry().makeTest(); - * \endcode - * - * The test suite macros can even be used with templated test classes. - * For example: - * - * \code - * template - * class StringTest : public CppUnit::TestFixture { - * CPPUNIT_TEST_SUITE( StringTest ); - * CPPUNIT_TEST( testAppend ); - * CPPUNIT_TEST_SUITE_END(); - * public: - * ... - * }; - * \endcode - * - * You need to add in an implementation file: - * - * \code - * CPPUNIT_TEST_SUITE_REGISTRATION( StringTest ); - * CPPUNIT_TEST_SUITE_REGISTRATION( StringTest ); - * \endcode - */ - - -/*! \brief Begin test suite - * - * This macro starts the declaration of a new test suite. - * Use CPPUNIT_TEST_SUB_SUITE() instead, if you wish to include the - * test suite of the parent class. - * - * \param ATestFixtureType Type of the test case class. This type \b MUST - * be derived from TestFixture. - * \see CPPUNIT_TEST_SUB_SUITE, CPPUNIT_TEST, CPPUNIT_TEST_SUITE_END, - * \see CPPUNIT_TEST_SUITE_REGISTRATION, CPPUNIT_TEST_EXCEPTION, CPPUNIT_TEST_FAIL. - */ -#define CPPUNIT_TEST_SUITE( ATestFixtureType ) \ - public: \ - typedef ATestFixtureType TestFixtureType; \ - \ - private: \ - static const CPPUNIT_NS::TestNamer &getTestNamer__() \ - { \ - static CPPUNIT_TESTNAMER_DECL( testNamer, ATestFixtureType ); \ - return testNamer; \ - } \ - \ - public: \ - typedef CPPUNIT_NS::TestSuiteBuilderContext \ - TestSuiteBuilderContextType; \ - \ - static void \ - addTestsToSuite( CPPUNIT_NS::TestSuiteBuilderContextBase &baseContext ) \ - { \ - TestSuiteBuilderContextType context( baseContext ) - - -/*! \brief Begin test suite (includes parent suite) - * - * This macro may only be used in a class whose parent class - * defines a test suite using CPPUNIT_TEST_SUITE() or CPPUNIT_TEST_SUB_SUITE(). - * - * This macro begins the declaration of a test suite, in the same - * manner as CPPUNIT_TEST_SUITE(). In addition, the test suite of the - * parent is automatically inserted in the test suite being - * defined. - * - * Here is an example: - * - * \code - * #include - * class MySubTest : public MyTest { - * CPPUNIT_TEST_SUB_SUITE( MySubTest, MyTest ); - * CPPUNIT_TEST( testAdd ); - * CPPUNIT_TEST( testSub ); - * CPPUNIT_TEST_SUITE_END(); - * public: - * void testAdd(); - * void testSub(); - * }; - * \endcode - * - * \param ATestFixtureType Type of the test case class. This type \b MUST - * be derived from TestFixture. - * \param ASuperClass Type of the parent class. - * \see CPPUNIT_TEST_SUITE. - */ -#define CPPUNIT_TEST_SUB_SUITE( ATestFixtureType, ASuperClass ) \ - public: \ - typedef ASuperClass ParentTestFixtureType; \ - private: \ - CPPUNIT_TEST_SUITE( ATestFixtureType ); \ - ParentTestFixtureType::addTestsToSuite( baseContext ) - - -/*! \brief End declaration of the test suite. - * - * After this macro, member access is set to "private". - * - * \see CPPUNIT_TEST_SUITE. - * \see CPPUNIT_TEST_SUITE_REGISTRATION. - */ -#define CPPUNIT_TEST_SUITE_END() \ - } \ - \ - static CPPUNIT_NS::TestSuite *suite() \ - { \ - const CPPUNIT_NS::TestNamer &namer = getTestNamer__(); \ - std::auto_ptr suite( \ - new CPPUNIT_NS::TestSuite( namer.getFixtureName() )); \ - CPPUNIT_NS::ConcretTestFixtureFactory factory; \ - CPPUNIT_NS::TestSuiteBuilderContextBase context( *suite.get(), \ - namer, \ - factory ); \ - TestFixtureType::addTestsToSuite( context ); \ - return suite.release(); \ - } \ - private: /* dummy typedef so that the macro can still end with ';'*/ \ - typedef int CppUnitDummyTypedefForSemiColonEnding__ - -/*! \brief End declaration of an abstract test suite. - * - * Use this macro to indicate that the %TestFixture is abstract. No - * static suite() method will be declared. - * - * After this macro, member access is set to "private". - * - * Here is an example of usage: - * - * The abstract test fixture: - * \code - * #include - * class AbstractDocument; - * class AbstractDocumentTest : public CppUnit::TestFixture { - * CPPUNIT_TEST_SUITE( AbstractDocumentTest ); - * CPPUNIT_TEST( testInsertText ); - * CPPUNIT_TEST_SUITE_END_ABSTRACT(); - * public: - * void testInsertText(); - * - * void setUp() - * { - * m_document = makeDocument(); - * } - * - * void tearDown() - * { - * delete m_document; - * } - * protected: - * virtual AbstractDocument *makeDocument() =0; - * - * AbstractDocument *m_document; - * };\endcode - * - * The concret test fixture: - * \code - * class RichTextDocumentTest : public AbstractDocumentTest { - * CPPUNIT_TEST_SUB_SUITE( RichTextDocumentTest, AbstractDocumentTest ); - * CPPUNIT_TEST( testInsertFormatedText ); - * CPPUNIT_TEST_SUITE_END(); - * public: - * void testInsertFormatedText(); - * protected: - * AbstractDocument *makeDocument() - * { - * return new RichTextDocument(); - * } - * };\endcode - * - * \see CPPUNIT_TEST_SUB_SUITE. - * \see CPPUNIT_TEST_SUITE_REGISTRATION. - */ -#define CPPUNIT_TEST_SUITE_END_ABSTRACT() \ - } \ - private: /* dummy typedef so that the macro can still end with ';'*/ \ - typedef int CppUnitDummyTypedefForSemiColonEnding__ - - -/*! \brief Add a test to the suite (for custom test macro). - * - * The specified test will be added to the test suite being declared. This macro - * is intended for \e advanced usage, to extend %CppUnit by creating new macro such - * as CPPUNIT_TEST_EXCEPTION()... - * - * Between macro CPPUNIT_TEST_SUITE() and CPPUNIT_TEST_SUITE_END(), you can assume - * that the following variables can be used: - * \code - * typedef TestSuiteBuilder TestSuiteBuilderType; - * TestSuiteBuilderType &context; - * \endcode - * - * \c context can be used to name test case, create new test fixture instance, - * or add test case to the test fixture suite. - * - * Below is an example that show how to use this macro to create new macro to add - * test to the fixture suite. The macro below show how you would add a new type - * of test case which fails if the execution last more than a given time limit. - * It relies on an imaginary TimeOutTestCaller class which has an interface similar - * to TestCaller. - * - * \code - * #define CPPUNITEX_TEST_TIMELIMIT( testMethod, timeLimit ) \ - * CPPUNIT_TEST_SUITE_ADD_TEST( (new TimeOutTestCaller( \ - * namer.getTestNameFor( #testMethod ), \ - * &TestFixtureType::testMethod, \ - * factory.makeFixture(), \ - * timeLimit ) ) ) - * - * class PerformanceTest : CppUnit::TestFixture - * { - * public: - * CPPUNIT_TEST_SUITE( PerformanceTest ); - * CPPUNITEX_TEST_TIMELIMIT( testSortReverseOrder, 5.0 ); - * CPPUNIT_TEST_SUITE_END(); - * - * void testSortReverseOrder(); - * }; - * \endcode - * - * \param test Test to add to the suite. Must be a subclass of Test. The test name - * should have been obtained using TestNamer::getTestNameFor(). - */ -#define CPPUNIT_TEST_SUITE_ADD_TEST( test ) \ - context.addTest( test ) - -/*! \brief Add a method to the suite. - * \param testMethod Name of the method of the test case to add to the - * suite. The signature of the method must be of - * type: void testMethod(); - * \see CPPUNIT_TEST_SUITE. - */ -#define CPPUNIT_TEST( testMethod ) \ - CPPUNIT_TEST_SUITE_ADD_TEST( \ - ( new CPPUNIT_NS::TestCaller( \ - context.getTestNameFor( #testMethod), \ - &TestFixtureType::testMethod, \ - context.makeFixture() ) ) ) - -/*! \brief Add a test which fail if the specified exception is not caught. - * - * Example: - * \code - * #include - * #include - * class MyTest : public CppUnit::TestFixture { - * CPPUNIT_TEST_SUITE( MyTest ); - * CPPUNIT_TEST_EXCEPTION( testVectorAtThrow, std::invalid_argument ); - * CPPUNIT_TEST_SUITE_END(); - * public: - * void testVectorAtThrow() - * { - * std::vector v; - * v.at( 1 ); // must throw exception std::invalid_argument - * } - * }; - * \endcode - * - * \param testMethod Name of the method of the test case to add to the suite. - * \param ExceptionType Type of the exception that must be thrown by the test - * method. - * \deprecated Use the assertion macro CPPUNIT_ASSERT_THROW instead. - */ -#define CPPUNIT_TEST_EXCEPTION( testMethod, ExceptionType ) \ - CPPUNIT_TEST_SUITE_ADD_TEST( \ - (new CPPUNIT_NS::ExceptionTestCaseDecorator< ExceptionType >( \ - new CPPUNIT_NS::TestCaller< TestFixtureType >( \ - context.getTestNameFor( #testMethod ), \ - &TestFixtureType::testMethod, \ - context.makeFixture() ) ) ) ) - -/*! \brief Adds a test case which is excepted to fail. - * - * The added test case expect an assertion to fail. You usually used that type - * of test case when testing custom assertion macros. - * - * \code - * CPPUNIT_TEST_FAIL( testAssertFalseFail ); - * - * void testAssertFalseFail() - * { - * CPPUNIT_ASSERT( false ); - * } - * \endcode - * \see CreatingNewAssertions. - * \deprecated Use the assertion macro CPPUNIT_ASSERT_ASSERTION_FAIL instead. - */ -#define CPPUNIT_TEST_FAIL( testMethod ) \ - CPPUNIT_TEST_EXCEPTION( testMethod, CPPUNIT_NS::Exception ) - -/*! \brief Adds some custom test cases. - * - * Use this to add one or more test cases to the fixture suite. The specified - * method is called with a context parameter that can be used to name, - * instantiate fixture, and add instantiated test case to the fixture suite. - * The specified method must have the following signature: - * \code - * static void aMethodName( TestSuiteBuilderContextType &context ); - * \endcode - * - * \c TestSuiteBuilderContextType is typedef to - * TestSuiteBuilderContext declared by CPPUNIT_TEST_SUITE(). - * - * Here is an example that add two custom tests: - * - * \code - * #include - * - * class MyTest : public CppUnit::TestFixture { - * CPPUNIT_TEST_SUITE( MyTest ); - * CPPUNIT_TEST_SUITE_ADD_CUSTOM_TESTS( addTimeOutTests ); - * CPPUNIT_TEST_SUITE_END(); - * public: - * static void addTimeOutTests( TestSuiteBuilderContextType &context ) - * { - * context.addTest( new TimeOutTestCaller( context.getTestNameFor( "test1" ) ), - * &MyTest::test1, - * context.makeFixture(), - * 5.0 ); - * context.addTest( new TimeOutTestCaller( context.getTestNameFor( "test2" ) ), - * &MyTest::test2, - * context.makeFixture(), - * 5.0 ); - * } - * - * void test1() - * { - * // Do some test that may never end... - * } - * - * void test2() - * { - * // Do some test that may never end... - * } - * }; - * \endcode - * @param testAdderMethod Name of the method called to add the test cases. - */ -#define CPPUNIT_TEST_SUITE_ADD_CUSTOM_TESTS( testAdderMethod ) \ - testAdderMethod( context ) - -/*! \brief Adds a property to the test suite builder context. - * \param APropertyKey Key of the property to add. - * \param APropertyValue Value for the added property. - * Example: - * \code - * CPPUNIT_TEST_SUITE_PROPERTY("XmlFileName", "paraTest.xml"); \endcode - */ -#define CPPUNIT_TEST_SUITE_PROPERTY( APropertyKey, APropertyValue ) \ - context.addProperty( std::string(APropertyKey), \ - std::string(APropertyValue) ) - -/** @} - */ - - -/*! Adds the specified fixture suite to the unnamed registry. - * \ingroup CreatingTestSuite - * - * This macro declares a static variable whose construction - * causes a test suite factory to be inserted in a global registry - * of such factories. The registry is available by calling - * the static function CppUnit::TestFactoryRegistry::getRegistry(). - * - * \param ATestFixtureType Type of the test case class. - * \warning This macro should be used only once per line of code (the line - * number is used to name a hidden static variable). - * \see CPPUNIT_TEST_SUITE_NAMED_REGISTRATION - * \see CPPUNIT_REGISTRY_ADD_TO_DEFAULT - * \see CPPUNIT_REGISTRY_ADD - * \see CPPUNIT_TEST_SUITE, CppUnit::AutoRegisterSuite, - * CppUnit::TestFactoryRegistry. - */ -#define CPPUNIT_TEST_SUITE_REGISTRATION( ATestFixtureType ) \ - static CPPUNIT_NS::AutoRegisterSuite< ATestFixtureType > \ - CPPUNIT_MAKE_UNIQUE_NAME(autoRegisterRegistry__ ) - - -/** Adds the specified fixture suite to the specified registry suite. - * \ingroup CreatingTestSuite - * - * This macro declares a static variable whose construction - * causes a test suite factory to be inserted in the global registry - * suite of the specified name. The registry is available by calling - * the static function CppUnit::TestFactoryRegistry::getRegistry(). - * - * For the suite name, use a string returned by a static function rather - * than a hardcoded string. That way, you can know what are the name of - * named registry and you don't risk mistyping the registry name. - * - * \code - * // MySuites.h - * namespace MySuites { - * std::string math() { - * return "Math"; - * } - * } - * - * // ComplexNumberTest.cpp - * #include "MySuites.h" - * - * CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( ComplexNumberTest, MySuites::math() ); - * \endcode - * - * \param ATestFixtureType Type of the test case class. - * \param suiteName Name of the global registry suite the test suite is - * registered into. - * \warning This macro should be used only once per line of code (the line - * number is used to name a hidden static variable). - * \see CPPUNIT_TEST_SUITE_REGISTRATION - * \see CPPUNIT_REGISTRY_ADD_TO_DEFAULT - * \see CPPUNIT_REGISTRY_ADD - * \see CPPUNIT_TEST_SUITE, CppUnit::AutoRegisterSuite, - * CppUnit::TestFactoryRegistry.. - */ -#define CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( ATestFixtureType, suiteName ) \ - static CPPUNIT_NS::AutoRegisterSuite< ATestFixtureType > \ - CPPUNIT_MAKE_UNIQUE_NAME(autoRegisterRegistry__ )(suiteName) - -/*! Adds that the specified registry suite to another registry suite. - * \ingroup CreatingTestSuite - * - * Use this macros to automatically create test registry suite hierarchy. For example, - * if you want to create the following hierarchy: - * - Math - * - IntegerMath - * - FloatMath - * - FastFloat - * - StandardFloat - * - * You can do this automatically with: - * \code - * CPPUNIT_REGISTRY_ADD( "FastFloat", "FloatMath" ); - * CPPUNIT_REGISTRY_ADD( "IntegerMath", "Math" ); - * CPPUNIT_REGISTRY_ADD( "FloatMath", "Math" ); - * CPPUNIT_REGISTRY_ADD( "StandardFloat", "FloatMath" ); - * \endcode - * - * There is no specific order of declaration. Think of it as declaring links. - * - * You register the test in each suite using CPPUNIT_TEST_SUITE_NAMED_REGISTRATION. - * - * \param which Name of the registry suite to add to the registry suite named \a to. - * \param to Name of the registry suite \a which is added to. - * \see CPPUNIT_REGISTRY_ADD_TO_DEFAULT, CPPUNIT_TEST_SUITE_NAMED_REGISTRATION. - */ -#define CPPUNIT_REGISTRY_ADD( which, to ) \ - static CPPUNIT_NS::AutoRegisterRegistry \ - CPPUNIT_MAKE_UNIQUE_NAME( autoRegisterRegistry__ )( which, to ) - -/*! Adds that the specified registry suite to the default registry suite. - * \ingroup CreatingTestSuite - * - * This macro is just like CPPUNIT_REGISTRY_ADD except the specified registry - * suite is added to the default suite (root suite). - * - * \param which Name of the registry suite to add to the default registry suite. - * \see CPPUNIT_REGISTRY_ADD. - */ -#define CPPUNIT_REGISTRY_ADD_TO_DEFAULT( which ) \ - static CPPUNIT_NS::AutoRegisterRegistry \ - CPPUNIT_MAKE_UNIQUE_NAME( autoRegisterRegistry__ )( which ) - -// Backwards compatibility -// (Not tested!) - -#if CPPUNIT_ENABLE_CU_TEST_MACROS - -#define CU_TEST_SUITE(tc) CPPUNIT_TEST_SUITE(tc) -#define CU_TEST_SUB_SUITE(tc,sc) CPPUNIT_TEST_SUB_SUITE(tc,sc) -#define CU_TEST(tm) CPPUNIT_TEST(tm) -#define CU_TEST_SUITE_END() CPPUNIT_TEST_SUITE_END() -#define CU_TEST_SUITE_REGISTRATION(tc) CPPUNIT_TEST_SUITE_REGISTRATION(tc) - -#endif - - -#endif // CPPUNIT_EXTENSIONS_HELPERMACROS_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/extensions/Makefile.am b/contrib/cppunit-1.12.1/include/cppunit/extensions/Makefile.am deleted file mode 100644 index ff96de318..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/extensions/Makefile.am +++ /dev/null @@ -1,19 +0,0 @@ -libcppunitincludedir = $(includedir)/cppunit/extensions - -libcppunitinclude_HEADERS = \ - TestFactory.h \ - AutoRegisterSuite.h \ - HelperMacros.h \ - Orthodox.h \ - RepeatedTest.h \ - ExceptionTestCaseDecorator.h \ - TestCaseDecorator.h \ - TestDecorator.h \ - TestFactoryRegistry.h \ - TestFixtureFactory.h \ - TestNamer.h \ - TestSetUp.h \ - TestSuiteBuilderContext.h \ - TestSuiteFactory.h \ - TypeInfoHelper.h - diff --git a/contrib/cppunit-1.12.1/include/cppunit/extensions/Makefile.in b/contrib/cppunit-1.12.1/include/cppunit/extensions/Makefile.in deleted file mode 100644 index c08890478..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/extensions/Makefile.in +++ /dev/null @@ -1,446 +0,0 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = include/cppunit/extensions -DIST_COMMON = $(libcppunitinclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = \ - $(top_srcdir)/config/ac_create_prefix_config_h.m4 \ - $(top_srcdir)/config/ac_cxx_have_sstream.m4 \ - $(top_srcdir)/config/ac_cxx_have_strstream.m4 \ - $(top_srcdir)/config/ac_cxx_namespaces.m4 \ - $(top_srcdir)/config/ac_cxx_rtti.m4 \ - $(top_srcdir)/config/ac_cxx_string_compare_string_first.m4 \ - $(top_srcdir)/config/ac_dll.m4 \ - $(top_srcdir)/config/ax_cxx_gcc_abi_demangle.m4 \ - $(top_srcdir)/config/ax_cxx_have_isfinite.m4 \ - $(top_srcdir)/config/bb_enable_doxygen.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config/config.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(libcppunitincludedir)" -libcppunitincludeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(libcppunitinclude_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@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CPPUNIT_BINARY_AGE = @CPPUNIT_BINARY_AGE@ -CPPUNIT_INTERFACE_AGE = @CPPUNIT_INTERFACE_AGE@ -CPPUNIT_MAJOR_VERSION = @CPPUNIT_MAJOR_VERSION@ -CPPUNIT_MICRO_VERSION = @CPPUNIT_MICRO_VERSION@ -CPPUNIT_MINOR_VERSION = @CPPUNIT_MINOR_VERSION@ -CPPUNIT_VERSION = @CPPUNIT_VERSION@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOT = @DOT@ -DOXYGEN = @DOXYGEN@ -DSYMUTIL = @DSYMUTIL@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBADD_DL = @LIBADD_DL@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -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@ -enable_dot = @enable_dot@ -enable_html_docs = @enable_html_docs@ -enable_latex_docs = @enable_latex_docs@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -libcppunitincludedir = $(includedir)/cppunit/extensions -libcppunitinclude_HEADERS = \ - TestFactory.h \ - AutoRegisterSuite.h \ - HelperMacros.h \ - Orthodox.h \ - RepeatedTest.h \ - ExceptionTestCaseDecorator.h \ - TestCaseDecorator.h \ - TestDecorator.h \ - TestFactoryRegistry.h \ - TestFixtureFactory.h \ - TestNamer.h \ - TestSetUp.h \ - TestSuiteBuilderContext.h \ - TestSuiteFactory.h \ - TypeInfoHelper.h - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/cppunit/extensions/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu include/cppunit/extensions/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 - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-libcppunitincludeHEADERS: $(libcppunitinclude_HEADERS) - @$(NORMAL_INSTALL) - test -z "$(libcppunitincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libcppunitincludedir)" - @list='$(libcppunitinclude_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(libcppunitincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(libcppunitincludedir)/$$f'"; \ - $(libcppunitincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(libcppunitincludedir)/$$f"; \ - done - -uninstall-libcppunitincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libcppunitinclude_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(libcppunitincludedir)/$$f'"; \ - rm -f "$(DESTDIR)$(libcppunitincludedir)/$$f"; \ - done - -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; nonemtpy = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && 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 $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$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 $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(libcppunitincludedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(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: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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 mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: install-libcppunitincludeHEADERS - -install-dvi: install-dvi-am - -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 - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-libcppunitincludeHEADERS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean 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-libcppunitincludeHEADERS install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-libcppunitincludeHEADERS - -# 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/contrib/cppunit-1.12.1/include/cppunit/extensions/Orthodox.h b/contrib/cppunit-1.12.1/include/cppunit/extensions/Orthodox.h deleted file mode 100644 index 722125937..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/extensions/Orthodox.h +++ /dev/null @@ -1,95 +0,0 @@ -#ifndef CPPUNIT_EXTENSIONS_ORTHODOX_H -#define CPPUNIT_EXTENSIONS_ORTHODOX_H - -#include - -CPPUNIT_NS_BEGIN - - -/* - * Orthodox performs a simple set of tests on an arbitary - * class to make sure that it supports at least the - * following operations: - * - * default construction - constructor - * equality/inequality - operator== && operator!= - * assignment - operator= - * negation - operator! - * safe passage - copy construction - * - * If operations for each of these are not declared - * the template will not instantiate. If it does - * instantiate, tests are performed to make sure - * that the operations have correct semantics. - * - * Adding an orthodox test to a suite is very - * easy: - * - * public: Test *suite () { - * TestSuite *suiteOfTests = new TestSuite; - * suiteOfTests->addTest (new ComplexNumberTest ("testAdd"); - * suiteOfTests->addTest (new TestCaller > ()); - * return suiteOfTests; - * } - * - * Templated test cases be very useful when you are want to - * make sure that a group of classes have the same form. - * - * see TestSuite - */ - - -template class Orthodox : public TestCase -{ -public: - Orthodox () : TestCase ("Orthodox") {} - -protected: - ClassUnderTest call (ClassUnderTest object); - void runTest (); - - -}; - - -// Run an orthodoxy test -template void Orthodox::runTest () -{ - // make sure we have a default constructor - ClassUnderTest a, b, c; - - // make sure we have an equality operator - CPPUNIT_ASSERT (a == b); - - // check the inverse - b.operator= (a.operator! ()); - CPPUNIT_ASSERT (a != b); - - // double inversion - b = !!a; - CPPUNIT_ASSERT (a == b); - - // invert again - b = !a; - - // check calls - c = a; - CPPUNIT_ASSERT (c == call (a)); - - c = b; - CPPUNIT_ASSERT (c == call (b)); - -} - - -// Exercise a call -template -ClassUnderTest Orthodox::call (ClassUnderTest object) -{ - return object; -} - - -CPPUNIT_NS_END - -#endif diff --git a/contrib/cppunit-1.12.1/include/cppunit/extensions/RepeatedTest.h b/contrib/cppunit-1.12.1/include/cppunit/extensions/RepeatedTest.h deleted file mode 100644 index 390ce4807..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/extensions/RepeatedTest.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef CPPUNIT_EXTENSIONS_REPEATEDTEST_H -#define CPPUNIT_EXTENSIONS_REPEATEDTEST_H - -#include -#include - -CPPUNIT_NS_BEGIN - - -class Test; -class TestResult; - - -/*! \brief Decorator that runs a test repeatedly. - * - * Does not assume ownership of the test it decorates - */ -class CPPUNIT_API RepeatedTest : public TestDecorator -{ -public: - RepeatedTest( Test *test, - int timesRepeat ) : - TestDecorator( test ), - m_timesRepeat(timesRepeat) - { - } - - void run( TestResult *result ); - - int countTestCases() const; - -private: - RepeatedTest( const RepeatedTest & ); - void operator=( const RepeatedTest & ); - - const int m_timesRepeat; -}; - - -CPPUNIT_NS_END - - -#endif // CPPUNIT_EXTENSIONS_REPEATEDTEST_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/extensions/TestCaseDecorator.h b/contrib/cppunit-1.12.1/include/cppunit/extensions/TestCaseDecorator.h deleted file mode 100644 index 3a15ba974..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/extensions/TestCaseDecorator.h +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef CPPUNIT_EXTENSIONS_TESTCASEDECORATOR_H -#define CPPUNIT_EXTENSIONS_TESTCASEDECORATOR_H - -#include -#include - -CPPUNIT_NS_BEGIN - - -/*! \brief Decorator for Test cases. - * - * TestCaseDecorator provides an alternate means to extend functionality - * of a test class without subclassing the test. Instead, one can - * subclass the decorater and use it to wrap the test class. - * - * Does not assume ownership of the test it decorates - */ -class CPPUNIT_API TestCaseDecorator : public TestCase -{ -public: - TestCaseDecorator( TestCase *test ); - ~TestCaseDecorator(); - - std::string getName() const; - - void setUp(); - - void tearDown(); - - void runTest(); - -protected: - TestCase *m_test; -}; - - -CPPUNIT_NS_END - -#endif - diff --git a/contrib/cppunit-1.12.1/include/cppunit/extensions/TestDecorator.h b/contrib/cppunit-1.12.1/include/cppunit/extensions/TestDecorator.h deleted file mode 100644 index 59d9a302e..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/extensions/TestDecorator.h +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef CPPUNIT_EXTENSIONS_TESTDECORATOR_H -#define CPPUNIT_EXTENSIONS_TESTDECORATOR_H - -#include -#include - -CPPUNIT_NS_BEGIN - - -class TestResult; - - -/*! \brief Decorator for Tests. - * - * TestDecorator provides an alternate means to extend functionality - * of a test class without subclassing the test. Instead, one can - * subclass the decorater and use it to wrap the test class. - * - * Does not assume ownership of the test it decorates - */ -class CPPUNIT_API TestDecorator : public Test -{ -public: - TestDecorator( Test *test ); - ~TestDecorator(); - - int countTestCases() const; - - std::string getName() const; - - void run( TestResult *result ); - - int getChildTestCount() const; - -protected: - Test *doGetChildTestAt( int index ) const; - - Test *m_test; - -private: - TestDecorator( const TestDecorator &); - void operator =( const TestDecorator & ); -}; - - -CPPUNIT_NS_END - -#endif - diff --git a/contrib/cppunit-1.12.1/include/cppunit/extensions/TestFactory.h b/contrib/cppunit-1.12.1/include/cppunit/extensions/TestFactory.h deleted file mode 100644 index 214d35349..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/extensions/TestFactory.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef CPPUNIT_EXTENSIONS_TESTFACTORY_H -#define CPPUNIT_EXTENSIONS_TESTFACTORY_H - -#include - -CPPUNIT_NS_BEGIN - - -class Test; - -/*! \brief Abstract Test factory. - */ -class CPPUNIT_API TestFactory -{ -public: - virtual ~TestFactory() {} - - /*! Makes a new test. - * \return A new Test. - */ - virtual Test* makeTest() = 0; -}; - - -CPPUNIT_NS_END - -#endif // CPPUNIT_EXTENSIONS_TESTFACTORY_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/extensions/TestFactoryRegistry.h b/contrib/cppunit-1.12.1/include/cppunit/extensions/TestFactoryRegistry.h deleted file mode 100644 index fc8723e40..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/extensions/TestFactoryRegistry.h +++ /dev/null @@ -1,182 +0,0 @@ -#ifndef CPPUNIT_EXTENSIONS_TESTFACTORYREGISTRY_H -#define CPPUNIT_EXTENSIONS_TESTFACTORYREGISTRY_H - -#include - -#if CPPUNIT_NEED_DLL_DECL -#pragma warning( push ) -#pragma warning( disable: 4251) // X needs to have dll-interface to be used by clients of class Z -#endif - -#include -#include -#include - -CPPUNIT_NS_BEGIN - - -class TestSuite; - -#if CPPUNIT_NEED_DLL_DECL -// template class CPPUNIT_API std::set; -#endif - - -/*! \brief Registry for TestFactory. - * \ingroup CreatingTestSuite - * - * Notes that the registry \b DON'T assumes lifetime control for any registered tests - * anymore. - * - * The default registry is the registry returned by getRegistry() with the - * default name parameter value. - * - * To register tests, use the macros: - * - CPPUNIT_TEST_SUITE_REGISTRATION(): to add tests in the default registry. - * - CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(): to add tests in a named registry. - * - * Example 1: retreiving a suite that contains all the test registered with - * CPPUNIT_TEST_SUITE_REGISTRATION(). - * \code - * CppUnit::TestFactoryRegistry ®istry = CppUnit::TestFactoryRegistry::getRegistry(); - * CppUnit::TestSuite *suite = registry.makeTest(); - * \endcode - * - * Example 2: retreiving a suite that contains all the test registered with - * \link CPPUNIT_TEST_SUITE_NAMED_REGISTRATION() CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( ..., "Math" )\endlink. - * \code - * CppUnit::TestFactoryRegistry &mathRegistry = CppUnit::TestFactoryRegistry::getRegistry( "Math" ); - * CppUnit::TestSuite *mathSuite = mathRegistry.makeTest(); - * \endcode - * - * Example 3: creating a test suite hierarchy composed of unnamed registration and - * named registration: - * - All Tests - * - tests registered with CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( ..., "Graph" ) - * - tests registered with CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( ..., "Math" ) - * - tests registered with CPPUNIT_TEST_SUITE_REGISTRATION - * - * \code - * CppUnit::TestSuite *rootSuite = new CppUnit::TestSuite( "All tests" ); - * rootSuite->addTest( CppUnit::TestFactoryRegistry::getRegistry( "Graph" ).makeTest() ); - * rootSuite->addTest( CppUnit::TestFactoryRegistry::getRegistry( "Math" ).makeTest() ); - * CppUnit::TestFactoryRegistry::getRegistry().addTestToSuite( rootSuite ); - * \endcode - * - * The same result can be obtained with: - * \code - * CppUnit::TestFactoryRegistry ®istry = CppUnit::TestFactoryRegistry::getRegistry(); - * registry.addRegistry( "Graph" ); - * registry.addRegistry( "Math" ); - * CppUnit::TestSuite *suite = registry.makeTest(); - * \endcode - * - * Since a TestFactoryRegistry is a TestFactory, the named registries can be - * registered in the unnamed registry, creating the hierarchy links. - * - * \see TestSuiteFactory, AutoRegisterSuite - * \see CPPUNIT_TEST_SUITE_REGISTRATION, CPPUNIT_TEST_SUITE_NAMED_REGISTRATION - */ -class CPPUNIT_API TestFactoryRegistry : public TestFactory -{ -public: - /** Constructs the registry with the specified name. - * \param name Name of the registry. It is the name of TestSuite returned by - * makeTest(). - */ - TestFactoryRegistry( std::string name ); - - /// Destructor. - virtual ~TestFactoryRegistry(); - - /** Returns a new TestSuite that contains the registered test. - * \return A new TestSuite which contains all the test added using - * registerFactory(TestFactory *). - */ - virtual Test *makeTest(); - - /** Returns a named registry. - * - * If the \a name is left to its default value, then the registry that is returned is - * the one used by CPPUNIT_TEST_SUITE_REGISTRATION(): the 'top' level registry. - * - * \param name Name of the registry to return. - * \return Registry. If the registry does not exist, it is created with the - * specified name. - */ - static TestFactoryRegistry &getRegistry( const std::string &name = "All Tests" ); - - /** Adds the registered tests to the specified suite. - * \param suite Suite the tests are added to. - */ - void addTestToSuite( TestSuite *suite ); - - /** Adds the specified TestFactory to the registry. - * - * \param factory Factory to register. - */ - void registerFactory( TestFactory *factory ); - - /*! Removes the specified TestFactory from the registry. - * - * The specified factory is not destroyed. - * \param factory Factory to remove from the registry. - * \todo Address case when trying to remove a TestRegistryFactory. - */ - void unregisterFactory( TestFactory *factory ); - - /*! Adds a registry to the registry. - * - * Convenience method to help create test hierarchy. See TestFactoryRegistry detail - * for examples of use. Calling this method is equivalent to: - * \code - * this->registerFactory( TestFactoryRegistry::getRegistry( name ) ); - * \endcode - * - * \param name Name of the registry to add. - */ - void addRegistry( const std::string &name ); - - /*! Tests if the registry is valid. - * - * This method should be used when unregistering test factory on static variable - * destruction to ensure that the registry has not been already destroyed (in - * that case there is no need to unregister the test factory). - * - * You should not concern yourself with this method unless you are writing a class - * like AutoRegisterSuite. - * - * \return \c true if the specified registry has not been destroyed, - * otherwise returns \c false. - * \see AutoRegisterSuite. - */ - static bool isValid(); - - /** Adds the specified TestFactory with a specific name (DEPRECATED). - * \param name Name associated to the factory. - * \param factory Factory to register. - * \deprecated Use registerFactory( TestFactory *) instead. - */ - void registerFactory( const std::string &name, - TestFactory *factory ); - -private: - TestFactoryRegistry( const TestFactoryRegistry © ); - void operator =( const TestFactoryRegistry © ); - -private: - typedef CppUnitSet > Factories; - Factories m_factories; - - std::string m_name; -}; - - -CPPUNIT_NS_END - -#if CPPUNIT_NEED_DLL_DECL -#pragma warning( pop ) -#endif - - -#endif // CPPUNIT_EXTENSIONS_TESTFACTORYREGISTRY_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/extensions/TestFixtureFactory.h b/contrib/cppunit-1.12.1/include/cppunit/extensions/TestFixtureFactory.h deleted file mode 100644 index 45354c62b..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/extensions/TestFixtureFactory.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef CPPUNIT_EXTENSIONS_TESTFIXTUREFACTORY_H -#define CPPUNIT_EXTENSIONS_TESTFIXTUREFACTORY_H - -#include - - -CPPUNIT_NS_BEGIN - - -class TestFixture; - -/*! \brief Abstract TestFixture factory (Implementation). - * - * Implementation detail. Use by HelperMacros to handle TestFixture hierarchy. - */ -class TestFixtureFactory -{ -public: - //! Creates a new TestFixture instance. - virtual TestFixture *makeFixture() =0; - - virtual ~TestFixtureFactory() {} -}; - - -/*! \brief Concret TestFixture factory (Implementation). - * - * Implementation detail. Use by HelperMacros to handle TestFixture hierarchy. - */ -template -class ConcretTestFixtureFactory : public CPPUNIT_NS::TestFixtureFactory -{ - /*! \brief Returns a new TestFixture instance. - * \return A new fixture instance. The fixture instance is returned by - * the TestFixtureFactory passed on construction. The actual type - * is that of the fixture on which the static method suite() - * was called. - */ - TestFixture *makeFixture() - { - return new TestFixtureType(); - } -}; - - -CPPUNIT_NS_END - - -#endif // CPPUNIT_EXTENSIONS_TESTFIXTUREFACTORY_H - diff --git a/contrib/cppunit-1.12.1/include/cppunit/extensions/TestNamer.h b/contrib/cppunit-1.12.1/include/cppunit/extensions/TestNamer.h deleted file mode 100644 index 5a6471c0c..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/extensions/TestNamer.h +++ /dev/null @@ -1,89 +0,0 @@ -#ifndef CPPUNIT_EXTENSIONS_TESTNAMER_H -#define CPPUNIT_EXTENSIONS_TESTNAMER_H - -#include -#include - -#if CPPUNIT_HAVE_RTTI -# include -#endif - - - -/*! \def CPPUNIT_TESTNAMER_DECL( variableName, FixtureType ) - * \brief Declares a TestNamer. - * - * Declares a TestNamer for the specified type, using RTTI if enabled, otherwise - * using macro string expansion. - * - * RTTI is used if CPPUNIT_USE_TYPEINFO_NAME is defined and not null. - * - * \code - * void someMethod() - * { - * CPPUNIT_TESTNAMER_DECL( namer, AFixtureType ); - * std::string fixtureName = namer.getFixtureName(); - * ... - * \endcode - * - * \relates TestNamer - * \see TestNamer - */ -#if CPPUNIT_USE_TYPEINFO_NAME -# define CPPUNIT_TESTNAMER_DECL( variableName, FixtureType ) \ - CPPUNIT_NS::TestNamer variableName( typeid(FixtureType) ) -#else -# define CPPUNIT_TESTNAMER_DECL( variableName, FixtureType ) \ - CPPUNIT_NS::TestNamer variableName( std::string(#FixtureType) ) -#endif - - - -CPPUNIT_NS_BEGIN - - -/*! \brief Names a test or a fixture suite. - * - * TestNamer is usually instantiated using CPPUNIT_TESTNAMER_DECL. - * - */ -class CPPUNIT_API TestNamer -{ -public: -#if CPPUNIT_HAVE_RTTI - /*! \brief Constructs a namer using the fixture's type-info. - * \param typeInfo Type-info of the fixture type. Use to name the fixture suite. - */ - TestNamer( const std::type_info &typeInfo ); -#endif - - /*! \brief Constructs a namer using the specified fixture name. - * \param fixtureName Name of the fixture suite. Usually extracted using a macro. - */ - TestNamer( const std::string &fixtureName ); - - virtual ~TestNamer(); - - /*! \brief Returns the name of the fixture. - * \return Name of the fixture. - */ - virtual std::string getFixtureName() const; - - /*! \brief Returns the name of the test for the specified method. - * \param testMethodName Name of the method that implements a test. - * \return A string that is the concatenation of the test fixture name - * (returned by getFixtureName()) and\a testMethodName, - * separated using '::'. This provides a fairly unique name for a given - * test. - */ - virtual std::string getTestNameFor( const std::string &testMethodName ) const; - -protected: - std::string m_fixtureName; -}; - - -CPPUNIT_NS_END - -#endif // CPPUNIT_EXTENSIONS_TESTNAMER_H - diff --git a/contrib/cppunit-1.12.1/include/cppunit/extensions/TestSetUp.h b/contrib/cppunit-1.12.1/include/cppunit/extensions/TestSetUp.h deleted file mode 100644 index f2128ecd7..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/extensions/TestSetUp.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef CPPUNIT_EXTENSIONS_TESTSETUP_H -#define CPPUNIT_EXTENSIONS_TESTSETUP_H - -#include - -CPPUNIT_NS_BEGIN - - -class Test; -class TestResult; - -/*! \brief Decorates a test by providing a specific setUp() and tearDown(). - */ -class CPPUNIT_API TestSetUp : public TestDecorator -{ -public: - TestSetUp( Test *test ); - - void run( TestResult *result ); - -protected: - virtual void setUp(); - virtual void tearDown(); - -private: - TestSetUp( const TestSetUp & ); - void operator =( const TestSetUp & ); -}; - - -CPPUNIT_NS_END - -#endif // CPPUNIT_EXTENSIONS_TESTSETUP_H - diff --git a/contrib/cppunit-1.12.1/include/cppunit/extensions/TestSuiteBuilderContext.h b/contrib/cppunit-1.12.1/include/cppunit/extensions/TestSuiteBuilderContext.h deleted file mode 100644 index db26926cd..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/extensions/TestSuiteBuilderContext.h +++ /dev/null @@ -1,131 +0,0 @@ -#ifndef CPPUNIT_HELPER_TESTSUITEBUILDERCONTEXT_H -#define CPPUNIT_HELPER_TESTSUITEBUILDERCONTEXT_H - -#include -#include -#include - -#if CPPUNIT_NEED_DLL_DECL -#pragma warning( push ) -#pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z -#endif - - -CPPUNIT_NS_BEGIN - -class TestSuite; -class TestFixture; -class TestFixtureFactory; -class TestNamer; - -/*! \brief Context used when creating test suite in HelperMacros. - * - * Base class for all context used when creating test suite. The - * actual context type during test suite creation is TestSuiteBuilderContext. - * - * \sa CPPUNIT_TEST_SUITE, CPPUNIT_TEST_SUITE_ADD_TEST, - * CPPUNIT_TEST_SUITE_ADD_CUSTOM_TESTS. - */ -class CPPUNIT_API TestSuiteBuilderContextBase -{ -public: - /*! \brief Constructs a new context. - * - * You should not use this. The context is created in - * CPPUNIT_TEST_SUITE(). - */ - TestSuiteBuilderContextBase( TestSuite &suite, - const TestNamer &namer, - TestFixtureFactory &factory ); - - virtual ~TestSuiteBuilderContextBase(); - - /*! \brief Adds a test to the fixture suite. - * - * \param test Test to add to the fixture suite. Must not be \c NULL. - */ - void addTest( Test *test ); - - /*! \brief Returns the fixture name. - * \return Fixture name. It is the name used to name the fixture - * suite. - */ - std::string getFixtureName() const; - - /*! \brief Returns the name of the test for the specified method. - * - * \param testMethodName Name of the method that implements a test. - * \return A string that is the concatenation of the test fixture name - * (returned by getFixtureName()) and\a testMethodName, - * separated using '::'. This provides a fairly unique name for a given - * test. - */ - std::string getTestNameFor( const std::string &testMethodName ) const; - - /*! \brief Adds property pair. - * \param key PropertyKey string to add. - * \param value PropertyValue string to add. - */ - void addProperty( const std::string &key, - const std::string &value ); - - /*! \brief Returns property value assigned to param key. - * \param key PropertyKey string. - */ - const std::string getStringProperty( const std::string &key ) const; - -protected: - TestFixture *makeTestFixture() const; - - // Notes: we use a vector here instead of a map to work-around the - // shared std::map in dll bug in VC6. - // See http://www.dinkumware.com/vc_fixes.html for detail. - typedef std::pair Property; - typedef CppUnitVector Properties; - - TestSuite &m_suite; - const TestNamer &m_namer; - TestFixtureFactory &m_factory; - -private: - Properties m_properties; -}; - - -/*! \brief Type-sage context used when creating test suite in HelperMacros. - * - * \sa TestSuiteBuilderContextBase. - */ -template -class TestSuiteBuilderContext : public TestSuiteBuilderContextBase -{ -public: - typedef Fixture FixtureType; - - TestSuiteBuilderContext( TestSuiteBuilderContextBase &contextBase ) - : TestSuiteBuilderContextBase( contextBase ) - { - } - - /*! \brief Returns a new TestFixture instance. - * \return A new fixture instance. The fixture instance is returned by - * the TestFixtureFactory passed on construction. The actual type - * is that of the fixture on which the static method suite() - * was called. - */ - FixtureType *makeFixture() const - { - return CPPUNIT_STATIC_CAST( FixtureType *, - TestSuiteBuilderContextBase::makeTestFixture() ); - } -}; - - -CPPUNIT_NS_END - -#if CPPUNIT_NEED_DLL_DECL -#pragma warning( pop ) -#endif - -#endif // CPPUNIT_HELPER_TESTSUITEBUILDERCONTEXT_H - diff --git a/contrib/cppunit-1.12.1/include/cppunit/extensions/TestSuiteFactory.h b/contrib/cppunit-1.12.1/include/cppunit/extensions/TestSuiteFactory.h deleted file mode 100644 index 260b48315..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/extensions/TestSuiteFactory.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef CPPUNIT_EXTENSIONS_TESTSUITEFACTORY_H -#define CPPUNIT_EXTENSIONS_TESTSUITEFACTORY_H - -#include - -CPPUNIT_NS_BEGIN - - - class Test; - - /*! \brief TestFactory for TestFixture that implements a static suite() method. - * \see AutoRegisterSuite. - */ - template - class TestSuiteFactory : public TestFactory - { - public: - virtual Test *makeTest() - { - return TestCaseType::suite(); - } - }; - - -CPPUNIT_NS_END - -#endif // CPPUNIT_EXTENSIONS_TESTSUITEFACTORY_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/extensions/TypeInfoHelper.h b/contrib/cppunit-1.12.1/include/cppunit/extensions/TypeInfoHelper.h deleted file mode 100644 index c0ecdbc6e..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/extensions/TypeInfoHelper.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef CPPUNIT_TYPEINFOHELPER_H -#define CPPUNIT_TYPEINFOHELPER_H - -#include - -#if CPPUNIT_HAVE_RTTI - -#include -#include - -CPPUNIT_NS_BEGIN - - - /**! \brief Helper to use type_info. - */ - class CPPUNIT_API TypeInfoHelper - { - public: - /*! \brief Get the class name of the specified type_info. - * \param info Info which the class name is extracted from. - * \return The string returned by type_info::name() without - * the "class" prefix. If the name is not prefixed - * by "class", it is returned as this. - */ - static std::string getClassName( const std::type_info &info ); - }; - - -CPPUNIT_NS_END - -#endif // CPPUNIT_HAVE_RTTI - -#endif // CPPUNIT_TYPEINFOHELPER_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/plugin/DynamicLibraryManager.h b/contrib/cppunit-1.12.1/include/cppunit/plugin/DynamicLibraryManager.h deleted file mode 100644 index d70ccde46..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/plugin/DynamicLibraryManager.h +++ /dev/null @@ -1,121 +0,0 @@ -#ifndef CPPUNIT_PLUGIN_DYNAMICLIBRARYMANAGER_H -#define CPPUNIT_PLUGIN_DYNAMICLIBRARYMANAGER_H - -#include -#include - -#if !defined(CPPUNIT_NO_TESTPLUGIN) - -CPPUNIT_NS_BEGIN - - -/*! \brief Manages dynamic libraries. - * - * The Dynamic Library Manager provides a platform independent way to work with - * dynamic library. It load a specific dynamic library, and can returns specific - * symbol exported by the dynamic library. - * - * If an error occurs, a DynamicLibraryManagerException is thrown. - * - * \internal Implementation of the OS independent methods is in - * DynamicLibraryManager.cpp. - * - * \internal Porting to a new platform: - * - Adds platform detection in config/SelectDllLoader.h. Should define a specific - * macro for that platform of the form: CPPUNIT_HAVE_XYZ_DLL_LOADER, where - * XYZ is the platform. - * - Makes a copy of UnixDynamicLibraryManager.cpp and named it after the platform. - * - Updated the 'guard' in your file (CPPUNIT_HAVE_XYZ_DLL_LOADER) so that it is - * only processed if the matching platform has been detected. - * - Change the implementation of methods doLoadLibrary(), doReleaseLibrary(), - * doFindSymbol() in your copy. Those methods usually maps directly to OS calls. - * - Adds the file to the project. - */ -class DynamicLibraryManager -{ -public: - typedef void *Symbol; - typedef void *LibraryHandle; - - /*! \brief Loads the specified library. - * \param libraryFileName Name of the library to load. - * \exception DynamicLibraryManagerException if a failure occurs while loading - * the library (fail to found or load the library). - */ - DynamicLibraryManager( const std::string &libraryFileName ); - - /// Releases the loaded library.. - ~DynamicLibraryManager(); - - /*! \brief Returns a pointer on the specified symbol exported by the library. - * \param symbol Name of the symbol exported by the library. - * \return Pointer on the symbol. Should be casted to the actual type. Never \c NULL. - * \exception DynamicLibraryManagerException if the symbol is not found. - */ - Symbol findSymbol( const std::string &symbol ); - -private: - /*! Loads the specified library. - * \param libraryName Name of the library to load. - * \exception DynamicLibraryManagerException if a failure occurs while loading - * the library (fail to found or load the library). - */ - void loadLibrary( const std::string &libraryName ); - - /*! Releases the loaded library. - * - * \warning Must NOT throw any exceptions (called from destructor). - */ - void releaseLibrary(); - - /*! Loads the specified library. - * - * May throw any exceptions (indicates failure). - * \param libraryName Name of the library to load. - * \return Handle of the loaded library. \c NULL indicates failure. - */ - LibraryHandle doLoadLibrary( const std::string &libraryName ); - - /*! Releases the loaded library. - * - * The handle of the library to free is in \c m_libraryHandle. It is never - * \c NULL. - * \warning Must NOT throw any exceptions (called from destructor). - */ - void doReleaseLibrary(); - - /*! Returns a pointer on the specified symbol exported by the library. - * - * May throw any exceptions (indicates failure). - * \param symbol Name of the symbol exported by the library. - * \return Pointer on the symbol. \c NULL indicates failure. - */ - Symbol doFindSymbol( const std::string &symbol ); - - /*! Returns detailed information about doLoadLibrary() failure. - * - * Called just after a failed call to doLoadLibrary() to get extra - * error information. - * - * \return Detailed information about the failure of the call to - * doLoadLibrary() that just failed. - */ - std::string getLastErrorDetail() const; - - /// Prevents the use of the copy constructor. - DynamicLibraryManager( const DynamicLibraryManager © ); - - /// Prevents the use of the copy operator. - void operator =( const DynamicLibraryManager © ); - -private: - LibraryHandle m_libraryHandle; - std::string m_libraryName; -}; - - -CPPUNIT_NS_END - -#endif // !defined(CPPUNIT_NO_TESTPLUGIN) - -#endif // CPPUNIT_PLUGIN_DYNAMICLIBRARYMANAGER_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/plugin/DynamicLibraryManagerException.h b/contrib/cppunit-1.12.1/include/cppunit/plugin/DynamicLibraryManagerException.h deleted file mode 100644 index 11ebbd9da..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/plugin/DynamicLibraryManagerException.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef CPPUNIT_PLUGIN_DYNAMICLIBRARYMANAGEREXCEPTION_H -#define CPPUNIT_PLUGIN_DYNAMICLIBRARYMANAGEREXCEPTION_H - -#include - -#if !defined(CPPUNIT_NO_TESTPLUGIN) -#include -#include - - -CPPUNIT_NS_BEGIN - - -/*! \brief Exception thrown by DynamicLibraryManager when a failure occurs. - * - * Use getCause() to know what function caused the failure. - * - */ -class DynamicLibraryManagerException : public std::runtime_error -{ -public: - enum Cause - { - /// Failed to load the dynamic library - loadingFailed =0, - /// Symbol not found in the dynamic library - symbolNotFound - }; - - /// Failed to load the dynamic library or Symbol not found in the dynamic library. - DynamicLibraryManagerException( const std::string &libraryName, - const std::string &errorDetail, - Cause cause ); - - ~DynamicLibraryManagerException() throw() - { - } - - Cause getCause() const; - - const char *what() const throw(); - -private: - std::string m_message; - Cause m_cause; -}; - - -CPPUNIT_NS_END - -#endif // !defined(CPPUNIT_NO_TESTPLUGIN) - -#endif // CPPUNIT_PLUGIN_DYNAMICLIBRARYMANAGEREXCEPTION_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/plugin/Makefile.am b/contrib/cppunit-1.12.1/include/cppunit/plugin/Makefile.am deleted file mode 100644 index 5221a6693..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/plugin/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -libcppunitincludedir = $(includedir)/cppunit/plugin - -libcppunitinclude_HEADERS = \ - DynamicLibraryManager.h \ - DynamicLibraryManagerException.h \ - TestPlugIn.h \ - TestPlugInDefaultImpl.h \ - PlugInManager.h \ - PlugInParameters.h diff --git a/contrib/cppunit-1.12.1/include/cppunit/plugin/Makefile.in b/contrib/cppunit-1.12.1/include/cppunit/plugin/Makefile.in deleted file mode 100644 index c97e6e4d9..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/plugin/Makefile.in +++ /dev/null @@ -1,437 +0,0 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = include/cppunit/plugin -DIST_COMMON = $(libcppunitinclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = \ - $(top_srcdir)/config/ac_create_prefix_config_h.m4 \ - $(top_srcdir)/config/ac_cxx_have_sstream.m4 \ - $(top_srcdir)/config/ac_cxx_have_strstream.m4 \ - $(top_srcdir)/config/ac_cxx_namespaces.m4 \ - $(top_srcdir)/config/ac_cxx_rtti.m4 \ - $(top_srcdir)/config/ac_cxx_string_compare_string_first.m4 \ - $(top_srcdir)/config/ac_dll.m4 \ - $(top_srcdir)/config/ax_cxx_gcc_abi_demangle.m4 \ - $(top_srcdir)/config/ax_cxx_have_isfinite.m4 \ - $(top_srcdir)/config/bb_enable_doxygen.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config/config.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(libcppunitincludedir)" -libcppunitincludeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(libcppunitinclude_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@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CPPUNIT_BINARY_AGE = @CPPUNIT_BINARY_AGE@ -CPPUNIT_INTERFACE_AGE = @CPPUNIT_INTERFACE_AGE@ -CPPUNIT_MAJOR_VERSION = @CPPUNIT_MAJOR_VERSION@ -CPPUNIT_MICRO_VERSION = @CPPUNIT_MICRO_VERSION@ -CPPUNIT_MINOR_VERSION = @CPPUNIT_MINOR_VERSION@ -CPPUNIT_VERSION = @CPPUNIT_VERSION@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOT = @DOT@ -DOXYGEN = @DOXYGEN@ -DSYMUTIL = @DSYMUTIL@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBADD_DL = @LIBADD_DL@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -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@ -enable_dot = @enable_dot@ -enable_html_docs = @enable_html_docs@ -enable_latex_docs = @enable_latex_docs@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -libcppunitincludedir = $(includedir)/cppunit/plugin -libcppunitinclude_HEADERS = \ - DynamicLibraryManager.h \ - DynamicLibraryManagerException.h \ - TestPlugIn.h \ - TestPlugInDefaultImpl.h \ - PlugInManager.h \ - PlugInParameters.h - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/cppunit/plugin/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu include/cppunit/plugin/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 - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-libcppunitincludeHEADERS: $(libcppunitinclude_HEADERS) - @$(NORMAL_INSTALL) - test -z "$(libcppunitincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libcppunitincludedir)" - @list='$(libcppunitinclude_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(libcppunitincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(libcppunitincludedir)/$$f'"; \ - $(libcppunitincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(libcppunitincludedir)/$$f"; \ - done - -uninstall-libcppunitincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libcppunitinclude_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(libcppunitincludedir)/$$f'"; \ - rm -f "$(DESTDIR)$(libcppunitincludedir)/$$f"; \ - done - -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; nonemtpy = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && 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 $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$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 $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(libcppunitincludedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(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: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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 mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: install-libcppunitincludeHEADERS - -install-dvi: install-dvi-am - -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 - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-libcppunitincludeHEADERS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean 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-libcppunitincludeHEADERS install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-libcppunitincludeHEADERS - -# 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/contrib/cppunit-1.12.1/include/cppunit/plugin/PlugInManager.h b/contrib/cppunit-1.12.1/include/cppunit/plugin/PlugInManager.h deleted file mode 100644 index 6ecedc89b..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/plugin/PlugInManager.h +++ /dev/null @@ -1,113 +0,0 @@ -#ifndef CPPUNIT_PLUGIN_PLUGINMANAGER_H -#define CPPUNIT_PLUGIN_PLUGINMANAGER_H - -#include - -#if !defined(CPPUNIT_NO_TESTPLUGIN) - -#if CPPUNIT_NEED_DLL_DECL -#pragma warning( push ) -#pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z -#endif - -#include -struct CppUnitTestPlugIn; - -CPPUNIT_NS_BEGIN - - -class DynamicLibraryManager; -class TestResult; -class XmlOutputter; - - -/*! \brief Manges TestPlugIn. - */ -class CPPUNIT_API PlugInManager -{ -public: - /*! Constructs a PlugInManager object. - */ - PlugInManager(); - - /// Destructor. - virtual ~PlugInManager(); - - /*! \brief Loads the specified plug-in. - * - * After being loaded, the CppUnitTestPlugIn::initialize() is called. - * - * \param libraryFileName Name of the file that contains the TestPlugIn. - * \param parameters List of string passed to the plug-in. - * \return Pointer on the DynamicLibraryManager associated to the library. - * Valid until the library is unloaded. Never \c NULL. - * \exception DynamicLibraryManagerException is thrown if an error occurs during loading. - */ - void load( const std::string &libraryFileName, - const PlugInParameters ¶meters = PlugInParameters() ); - - /*! \brief Unloads the specified plug-in. - * \param libraryFileName Name of the file that contains the TestPlugIn passed - * to a previous call to load(). - */ - void unload( const std::string &libraryFileName ); - - /*! \brief Gives a chance to each loaded plug-in to register TestListener. - * - * For each plug-in, call CppUnitTestPlugIn::addListener(). - */ - void addListener( TestResult *eventManager ); - - /*! \brief Gives a chance to each loaded plug-in to unregister TestListener. - * For each plug-in, call CppUnitTestPlugIn::removeListener(). - */ - void removeListener( TestResult *eventManager ); - - /*! \brief Provides a way for the plug-in to register some XmlOutputterHook. - */ - void addXmlOutputterHooks( XmlOutputter *outputter ); - - /*! \brief Called when the XmlOutputter is destroyed. - * - * Can be used to free some resources allocated by addXmlOutputterHooks(). - */ - void removeXmlOutputterHooks(); - -protected: - /*! \brief (INTERNAL) Information about a specific plug-in. - */ - struct PlugInInfo - { - std::string m_fileName; - DynamicLibraryManager *m_manager; - CppUnitTestPlugIn *m_interface; - }; - - /*! Unloads the specified plug-in. - * \param plugIn Information about the plug-in. - */ - void unload( PlugInInfo &plugIn ); - -private: - /// Prevents the use of the copy constructor. - PlugInManager( const PlugInManager © ); - - /// Prevents the use of the copy operator. - void operator =( const PlugInManager © ); - -private: - typedef CppUnitDeque PlugIns; - PlugIns m_plugIns; -}; - - -CPPUNIT_NS_END - -#if CPPUNIT_NEED_DLL_DECL -#pragma warning( pop ) -#endif - -#endif // !defined(CPPUNIT_NO_TESTPLUGIN) - - -#endif // CPPUNIT_PLUGIN_PLUGINMANAGER_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/plugin/PlugInParameters.h b/contrib/cppunit-1.12.1/include/cppunit/plugin/PlugInParameters.h deleted file mode 100644 index c67d0f1d2..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/plugin/PlugInParameters.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef CPPUNIT_PLUGIN_PARAMETERS -#define CPPUNIT_PLUGIN_PARAMETERS - -#include - -#if !defined(CPPUNIT_NO_TESTPLUGIN) - -#include -#include - -CPPUNIT_NS_BEGIN - -/*! \brief Test plug-ins parameters. - */ -class CPPUNIT_API PlugInParameters -{ -public: - /// Constructs plug-in parameters from the specified command-line. - PlugInParameters( const std::string &commandLine = "" ); - - virtual ~PlugInParameters(); - - /// Returns the command line that was passed on construction. - std::string getCommandLine() const; - -private: - std::string m_commandLine; -}; - - -CPPUNIT_NS_END - -#endif // !defined(CPPUNIT_NO_TESTPLUGIN) - - -#endif // CPPUNIT_PLUGIN_PARAMETERS diff --git a/contrib/cppunit-1.12.1/include/cppunit/plugin/TestPlugIn.h b/contrib/cppunit-1.12.1/include/cppunit/plugin/TestPlugIn.h deleted file mode 100644 index 1c9b929a5..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/plugin/TestPlugIn.h +++ /dev/null @@ -1,200 +0,0 @@ -#ifndef CPPUNIT_PLUGIN_TESTPLUGIN -#define CPPUNIT_PLUGIN_TESTPLUGIN - -#include - -#if !defined(CPPUNIT_NO_TESTPLUGIN) - -#include - -CPPUNIT_NS_BEGIN - - -class Test; -class TestFactoryRegistry; -class TestResult; -class XmlOutputter; - -CPPUNIT_NS_END - -/*! \file - */ - - -/*! \brief Test plug-in interface. - * \ingroup WritingTestPlugIn - * - * This class define the interface implemented by test plug-in. A pointer to that - * interface is returned by the function exported by the test plug-in. - * - * Plug-in are loaded/unloaded by PlugInManager. When a plug-in is loaded, - * initialize() is called. Before unloading the plug-in, the PlugInManager - * call uninitialize(). - * - * addListener() and removeListener() are called respectively before and after - * the test run. - * - * addXmlOutputterHooks() and removeXmlOutputterHooks() are called respectively - * before and after writing the XML output using a XmlOutputter. - * - * \see CPPUNIT_PLUGIN_IMPLEMENT, CPPUNIT_PLUGIN_EXPORTED_FUNCTION_IMPL - * \see CppUnit::TestPlugInDefaultImpl, CppUnit::XmlOutputter. - */ -struct CppUnitTestPlugIn -{ - /*! \brief Called just after loading the dynamic library. - * - * Override this method to add additional suite to the registry, though this - * is preferably done using the macros (CPPUNIT_TEST_SUITE_REGISTRATION...). - * If you are creating a custom listener to extends the plug-in runner, - * you can use this to configure the listener using the \a parameters. - * - * You could also use the parameters to specify some global parameter, such - * as test datas location, database name... - * - * N.B.: Parameters interface is not define yet, and the plug-in runner does - * not yet support plug-in parameter. - */ - virtual void initialize( CPPUNIT_NS::TestFactoryRegistry *registry, - const CPPUNIT_NS::PlugInParameters ¶meters ) =0; - - /*! \brief Gives a chance to the plug-in to register TestListener. - * - * Override this method to add a TestListener for the test run. This is useful - * if you are writing a custom TestListener, but also if you need to - * setUp some global resource: listen to TestListener::startTestRun(), - * and TestListener::endTestRun(). - */ - virtual void addListener( CPPUNIT_NS::TestResult *eventManager ) =0; - - /*! \brief Gives a chance to the plug-in to remove its registered TestListener. - * - * Override this method to remove a TestListener that has been added. - */ - virtual void removeListener( CPPUNIT_NS::TestResult *eventManager ) =0; - - /*! \brief Provides a way for the plug-in to register some XmlOutputterHook. - */ - virtual void addXmlOutputterHooks( CPPUNIT_NS::XmlOutputter *outputter ) =0; - - /*! \brief Called when the XmlOutputter is destroyed. - * - * Can be used to free some resources allocated by addXmlOutputterHooks(). - */ - virtual void removeXmlOutputterHooks() = 0; - - /*! \brief Called just before unloading the dynamic library. - * - * Override this method to unregister test factory added in initialize(). - * This is necessary to keep the TestFactoryRegistry 'clean'. When - * the plug-in is unloaded from memory, the TestFactoryRegistry will hold - * reference on test that are no longer available if they are not - * unregistered. - */ - virtual void uninitialize( CPPUNIT_NS::TestFactoryRegistry *registry ) =0; - - virtual ~CppUnitTestPlugIn() {} -}; - - - -/*! \brief Name of the function exported by a test plug-in. - * \ingroup WritingTestPlugIn - * - * The signature of the exported function is: - * \code - * CppUnitTestPlugIn *CPPUNIT_PLUGIN_EXPORTED_NAME(void); - * \endcode - */ -#define CPPUNIT_PLUGIN_EXPORTED_NAME cppunitTestPlugIn - -/*! \brief Type of the function exported by a plug-in. - * \ingroup WritingTestPlugIn - */ -typedef CppUnitTestPlugIn *(*TestPlugInSignature)(); - - -/*! \brief Implements the function exported by the test plug-in - * \ingroup WritingTestPlugIn - */ -#define CPPUNIT_PLUGIN_EXPORTED_FUNCTION_IMPL( TestPlugInInterfaceType ) \ - CPPUNIT_PLUGIN_EXPORT CppUnitTestPlugIn *CPPUNIT_PLUGIN_EXPORTED_NAME(void) \ - { \ - static TestPlugInInterfaceType plugIn; \ - return &plugIn; \ - } \ - typedef char __CppUnitPlugInExportFunctionDummyTypeDef // dummy typedef so it can end with ';' - - -// Note: This include should remain after definition of CppUnitTestPlugIn -#include - - -/*! \def CPPUNIT_PLUGIN_IMPLEMENT_MAIN() - * \brief Implements the 'main' function for the plug-in. - * - * This macros implements the main() function for dynamic library. - * For example, WIN32 requires a DllMain function, while some Unix - * requires a main() function. This macros takes care of the implementation. - */ - -// Win32 -#if defined(CPPUNIT_HAVE_WIN32_DLL_LOADER) -#if !defined(APIENTRY) -#define WIN32_LEAN_AND_MEAN -#define NOGDI -#define NOUSER -#define NOKERNEL -#define NOSOUND -#define NOMINMAX -#define BLENDFUNCTION void // for mingw & gcc -#include -#endif -#define CPPUNIT_PLUGIN_IMPLEMENT_MAIN() \ - BOOL APIENTRY DllMain( HANDLE hModule, \ - DWORD ul_reason_for_call, \ - LPVOID lpReserved ) \ - { \ - return TRUE; \ - } \ - typedef char __CppUnitPlugInImplementMainDummyTypeDef - -// Unix -#elif defined(CPPUNIT_HAVE_UNIX_DLL_LOADER) || defined(CPPUNIT_HAVE_UNIX_SHL_LOADER) -#define CPPUNIT_PLUGIN_IMPLEMENT_MAIN() \ - int main( int argc, char *argv[] ) \ - { \ - return 0; \ - } \ - typedef char __CppUnitPlugInImplementMainDummyTypeDef - - -// Other -#else // other platforms don't require anything specifics -#endif - - - -/*! \brief Implements and exports the test plug-in interface. - * \ingroup WritingTestPlugIn - * - * This macro exports the test plug-in function using the subclass, - * and implements the 'main' function for the plug-in using - * CPPUNIT_PLUGIN_IMPLEMENT_MAIN(). - * - * When using this macro, CppUnit must be linked as a DLL (shared library). - * Otherwise, tests registered to the TestFactoryRegistry in the DLL will - * not be visible to the DllPlugInTester. - * - * \see CppUnitTestPlugIn - * \see CPPUNIT_PLUGIN_EXPORTED_FUNCTION_IMPL(), CPPUNIT_PLUGIN_IMPLEMENT_MAIN(). - */ -#define CPPUNIT_PLUGIN_IMPLEMENT() \ - CPPUNIT_PLUGIN_EXPORTED_FUNCTION_IMPL( CPPUNIT_NS::TestPlugInDefaultImpl ); \ - CPPUNIT_PLUGIN_IMPLEMENT_MAIN() - - -#endif // !defined(CPPUNIT_NO_TESTPLUGIN) - - -#endif // CPPUNIT_PLUGIN_TESTPLUGIN diff --git a/contrib/cppunit-1.12.1/include/cppunit/plugin/TestPlugInDefaultImpl.h b/contrib/cppunit-1.12.1/include/cppunit/plugin/TestPlugInDefaultImpl.h deleted file mode 100644 index fa4b8078f..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/plugin/TestPlugInDefaultImpl.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef CPPUNIT_PLUGIN_TESTPLUGINADAPTER -#define CPPUNIT_PLUGIN_TESTPLUGINADAPTER - -#include - -#if !defined(CPPUNIT_NO_TESTPLUGIN) - -#include - -CPPUNIT_NS_BEGIN - - -class TestSuite; - - -/*! \brief Default implementation of test plug-in interface. - * \ingroup WritingTestPlugIn - * - * Override getSuiteName() to specify the suite name. Default is "All Tests". - * - * CppUnitTestPlugIn::getTestSuite() returns a suite that contains - * all the test registered to the default test factory registry - * ( TestFactoryRegistry::getRegistry() ). - * - */ -class CPPUNIT_API TestPlugInDefaultImpl : public CppUnitTestPlugIn -{ -public: - TestPlugInDefaultImpl(); - - virtual ~TestPlugInDefaultImpl(); - - void initialize( TestFactoryRegistry *registry, - const PlugInParameters ¶meters ); - - void addListener( TestResult *eventManager ); - - void removeListener( TestResult *eventManager ); - - void addXmlOutputterHooks( XmlOutputter *outputter ); - - void removeXmlOutputterHooks(); - - void uninitialize( TestFactoryRegistry *registry ); -}; - - -CPPUNIT_NS_END - -#endif // !defined(CPPUNIT_NO_TESTPLUGIN) - -#endif // CPPUNIT_PLUGIN_TESTPLUGINADAPTER diff --git a/contrib/cppunit-1.12.1/include/cppunit/portability/CppUnitDeque.h b/contrib/cppunit-1.12.1/include/cppunit/portability/CppUnitDeque.h deleted file mode 100644 index bbab21f56..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/portability/CppUnitDeque.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef CPPUNIT_PORTABILITY_CPPUNITDEQUE_H -#define CPPUNIT_PORTABILITY_CPPUNITDEQUE_H - -// The technic used is similar to the wrapper of STLPort. - -#include -#include - - -#if CPPUNIT_STD_NEED_ALLOCATOR - -template -class CppUnitDeque : public std::deque -{ -public: -}; - -#else // CPPUNIT_STD_NEED_ALLOCATOR - -#define CppUnitDeque std::deque - -#endif - -#endif // CPPUNIT_PORTABILITY_CPPUNITDEQUE_H - diff --git a/contrib/cppunit-1.12.1/include/cppunit/portability/CppUnitMap.h b/contrib/cppunit-1.12.1/include/cppunit/portability/CppUnitMap.h deleted file mode 100644 index 0cdc723a2..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/portability/CppUnitMap.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef CPPUNIT_PORTABILITY_CPPUNITMAP_H -#define CPPUNIT_PORTABILITY_CPPUNITMAP_H - -// The technic used is similar to the wrapper of STLPort. - -#include -#include -#include - - -#if CPPUNIT_STD_NEED_ALLOCATOR - -template -class CppUnitMap : public std::map - ,CPPUNIT_STD_ALLOCATOR> -{ -public: -}; - -#else // CPPUNIT_STD_NEED_ALLOCATOR - -#define CppUnitMap std::map - -#endif - -#endif // CPPUNIT_PORTABILITY_CPPUNITMAP_H - diff --git a/contrib/cppunit-1.12.1/include/cppunit/portability/CppUnitSet.h b/contrib/cppunit-1.12.1/include/cppunit/portability/CppUnitSet.h deleted file mode 100644 index 18b8662eb..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/portability/CppUnitSet.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef CPPUNIT_PORTABILITY_CPPUNITSET_H -#define CPPUNIT_PORTABILITY_CPPUNITSET_H - -// The technic used is similar to the wrapper of STLPort. - -#include -#include -#include - - -#if CPPUNIT_STD_NEED_ALLOCATOR - -template -class CppUnitSet : public std::set - ,CPPUNIT_STD_ALLOCATOR> -{ -public: -}; - -#else // CPPUNIT_STD_NEED_ALLOCATOR - -#define CppUnitSet std::set - -#endif - -#endif // CPPUNIT_PORTABILITY_CPPUNITSET_H - diff --git a/contrib/cppunit-1.12.1/include/cppunit/portability/CppUnitStack.h b/contrib/cppunit-1.12.1/include/cppunit/portability/CppUnitStack.h deleted file mode 100644 index bc7785b03..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/portability/CppUnitStack.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef CPPUNIT_PORTABILITY_CPPUNITSTACK_H -#define CPPUNIT_PORTABILITY_CPPUNITSTACK_H - -// The technic used is similar to the wrapper of STLPort. - -#include -#include -#include - - -#if CPPUNIT_STD_NEED_ALLOCATOR - -template -class CppUnitStack : public std::stack > -{ -public: -}; - -#else // CPPUNIT_STD_NEED_ALLOCATOR - -#define CppUnitStack std::stack - -#endif - -#endif // CPPUNIT_PORTABILITY_CPPUNITSTACK_H \ No newline at end of file diff --git a/contrib/cppunit-1.12.1/include/cppunit/portability/CppUnitVector.h b/contrib/cppunit-1.12.1/include/cppunit/portability/CppUnitVector.h deleted file mode 100644 index 6666a63b0..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/portability/CppUnitVector.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef CPPUNIT_PORTABILITY_CPPUNITVECTOR_H -#define CPPUNIT_PORTABILITY_CPPUNITVECTOR_H - -// The technic used is similar to the wrapper of STLPort. - -#include -#include - - -#if CPPUNIT_STD_NEED_ALLOCATOR - -template -class CppUnitVector : public std::vector -{ -public: -}; - -#else // CPPUNIT_STD_NEED_ALLOCATOR - -#define CppUnitVector std::vector - -#endif - -#endif // CPPUNIT_PORTABILITY_CPPUNITVECTOR_H - diff --git a/contrib/cppunit-1.12.1/include/cppunit/portability/FloatingPoint.h b/contrib/cppunit-1.12.1/include/cppunit/portability/FloatingPoint.h deleted file mode 100644 index e8c91b3f5..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/portability/FloatingPoint.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef CPPUNIT_PORTABILITY_FLOATINGPOINT_H_INCLUDED -#define CPPUNIT_PORTABILITY_FLOATINGPOINT_H_INCLUDED - -#include -#include - -CPPUNIT_NS_BEGIN - -/// \brief Tests if a floating-point is a NaN. -// According to IEEE-754 floating point standard, -// (see e.g. page 8 of -// http://www.cs.berkeley.edu/~wkahan/ieee754status/ieee754.ps) -// all comparisons with NaN are false except "x != x", which is true. -// -// At least Microsoft Visual Studio 6 is known not to implement this test correctly. -// It emits the following code to test equality: -// fcomp qword ptr [nan] -// fnstsw ax // copie fp (floating-point) status register to ax -// test ah,40h // test bit 14 of ax (0x4000) => C3 of fp status register -// According to the following documentation on the x86 floating point status register, -// the C2 bit should be tested to test for NaN value. -// http://webster.cs.ucr.edu/AoA/Windows/HTML/RealArithmetic.html#1000117 -// In Microsoft Visual Studio 2003 & 2005, the test is implemented with: -// test ah,44h // Visual Studio 2005 test both C2 & C3... -// -// To work around this, a NaN is assumed to be detected if no strict ordering is found. -inline bool floatingPointIsUnordered( double x ) -{ - // x != x will detect a NaN on conformant platform - // (2.0 < x && x < 1.0) will detect a NaN on non conformant platform: - // => no ordering can be found for x. - return (x != x) || (2.0 < x && x < 1.0); -} - - -/// \brief Tests if a floating-point is finite. -/// @return \c true if x is neither a NaN, nor +inf, nor -inf, \c false otherwise. -inline int floatingPointIsFinite( double x ) -{ -#if defined(CPPUNIT_HAVE_ISFINITE) - return isfinite( x ); -#elif defined(CPPUNIT_HAVE_FINITE) - return finite( x ); -#elif defined(CPPUNIT_HAVE__FINITE) - return _finite(x); -#else - double testInf = x * 0.0; // Produce 0.0 if x is finite, a NaN otherwise. - return testInf == 0.0 && !floatingPointIsUnordered(testInf); -#endif -} - -CPPUNIT_NS_END - -#endif // CPPUNIT_PORTABILITY_FLOATINGPOINT_H_INCLUDED diff --git a/contrib/cppunit-1.12.1/include/cppunit/portability/Makefile.am b/contrib/cppunit-1.12.1/include/cppunit/portability/Makefile.am deleted file mode 100644 index 2caeb321a..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/portability/Makefile.am +++ /dev/null @@ -1,10 +0,0 @@ -libcppunitincludedir = $(includedir)/cppunit/portability - -libcppunitinclude_HEADERS = \ - CppUnitDeque.h \ - CppUnitMap.h \ - CppUnitSet.h \ - CppUnitStack.h \ - CppUnitVector.h \ - FloatingPoint.h \ - Stream.h diff --git a/contrib/cppunit-1.12.1/include/cppunit/portability/Makefile.in b/contrib/cppunit-1.12.1/include/cppunit/portability/Makefile.in deleted file mode 100644 index 80278e976..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/portability/Makefile.in +++ /dev/null @@ -1,438 +0,0 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = include/cppunit/portability -DIST_COMMON = $(libcppunitinclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = \ - $(top_srcdir)/config/ac_create_prefix_config_h.m4 \ - $(top_srcdir)/config/ac_cxx_have_sstream.m4 \ - $(top_srcdir)/config/ac_cxx_have_strstream.m4 \ - $(top_srcdir)/config/ac_cxx_namespaces.m4 \ - $(top_srcdir)/config/ac_cxx_rtti.m4 \ - $(top_srcdir)/config/ac_cxx_string_compare_string_first.m4 \ - $(top_srcdir)/config/ac_dll.m4 \ - $(top_srcdir)/config/ax_cxx_gcc_abi_demangle.m4 \ - $(top_srcdir)/config/ax_cxx_have_isfinite.m4 \ - $(top_srcdir)/config/bb_enable_doxygen.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config/config.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(libcppunitincludedir)" -libcppunitincludeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(libcppunitinclude_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@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CPPUNIT_BINARY_AGE = @CPPUNIT_BINARY_AGE@ -CPPUNIT_INTERFACE_AGE = @CPPUNIT_INTERFACE_AGE@ -CPPUNIT_MAJOR_VERSION = @CPPUNIT_MAJOR_VERSION@ -CPPUNIT_MICRO_VERSION = @CPPUNIT_MICRO_VERSION@ -CPPUNIT_MINOR_VERSION = @CPPUNIT_MINOR_VERSION@ -CPPUNIT_VERSION = @CPPUNIT_VERSION@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOT = @DOT@ -DOXYGEN = @DOXYGEN@ -DSYMUTIL = @DSYMUTIL@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBADD_DL = @LIBADD_DL@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -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@ -enable_dot = @enable_dot@ -enable_html_docs = @enable_html_docs@ -enable_latex_docs = @enable_latex_docs@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -libcppunitincludedir = $(includedir)/cppunit/portability -libcppunitinclude_HEADERS = \ - CppUnitDeque.h \ - CppUnitMap.h \ - CppUnitSet.h \ - CppUnitStack.h \ - CppUnitVector.h \ - FloatingPoint.h \ - Stream.h - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/cppunit/portability/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu include/cppunit/portability/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 - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-libcppunitincludeHEADERS: $(libcppunitinclude_HEADERS) - @$(NORMAL_INSTALL) - test -z "$(libcppunitincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libcppunitincludedir)" - @list='$(libcppunitinclude_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(libcppunitincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(libcppunitincludedir)/$$f'"; \ - $(libcppunitincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(libcppunitincludedir)/$$f"; \ - done - -uninstall-libcppunitincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libcppunitinclude_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(libcppunitincludedir)/$$f'"; \ - rm -f "$(DESTDIR)$(libcppunitincludedir)/$$f"; \ - done - -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; nonemtpy = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && 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 $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$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 $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(libcppunitincludedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(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: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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 mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: install-libcppunitincludeHEADERS - -install-dvi: install-dvi-am - -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 - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-libcppunitincludeHEADERS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean 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-libcppunitincludeHEADERS install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-libcppunitincludeHEADERS - -# 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/contrib/cppunit-1.12.1/include/cppunit/portability/Stream.h b/contrib/cppunit-1.12.1/include/cppunit/portability/Stream.h deleted file mode 100644 index e9beb8c1b..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/portability/Stream.h +++ /dev/null @@ -1,347 +0,0 @@ -#ifndef CPPUNIT_PORTABILITY_STREAM_H_INCLUDED -#define CPPUNIT_PORTABILITY_STREAM_H_INCLUDED - -// This module define: -// Type CppUT::Stream (either std::stream or a custom type) -// Type CppUT::OStringStream (eitjer std::ostringstream, older alternate or a custom type) -// Functions stdCOut() & stdCErr() which returns a reference on cout & cerr stream (or our -// custom stream). - -#include - - -#if defined( CPPUNIT_NO_STREAM ) - -#include -#include -#include - -CPPUNIT_NS_BEGIN - -class StreamBuffer -{ -public: - virtual ~StreamBuffer() {} - - virtual void write( const char *text, unsigned int length ) = 0; - - virtual void flush() {} -}; - - -class StringStreamBuffer : public StreamBuffer -{ -public: - std::string str() const - { - return str_; - } - -public: // overridden from StreamBuffer - void write( const char *text, unsigned int length ) - { - str_.append( text, length ); - } - -private: - std::string str_; -}; - - -class FileStreamBuffer : public StreamBuffer -{ -public: - FileStreamBuffer( FILE *file ) - : file_( file ) - { - } - - FILE *file() const - { - return file_; - } - -public: // overridden from StreamBuffer - void write( const char *text, unsigned int length ) - { - if ( file_ ) - fwrite( text, sizeof(char), length, file_ ); - } - - void flush() - { - if ( file_ ) - fflush( file_ ); - } - -private: - FILE *file_; -}; - - -class OStream -{ -public: - OStream() - : buffer_( 0 ) - { - } - - OStream( StreamBuffer *buffer ) - : buffer_( buffer ) - { - } - - virtual ~OStream() - { - flush(); - } - - OStream &flush() - { - if ( buffer_ ) - buffer_->flush(); - return *this; - } - - void setBuffer( StreamBuffer *buffer ) - { - buffer_ = buffer; - } - - OStream &write( const char *text, unsigned int length ) - { - if ( buffer_ ) - buffer_->write( text, length ); - return *this; - } - - OStream &write( const char *text ) - { - return write( text, strlen(text) ); - } - - OStream &operator <<( bool v ) - { - const char *out = v ? "true" : "false"; - return write( out ); - } - - OStream &operator <<( short v ) - { - char buffer[64]; - sprintf( buffer, "%hd", v ); - return write( buffer ); - } - - OStream &operator <<( unsigned short v ) - { - char buffer[64]; - sprintf( buffer, "%hu", v ); - return write( buffer ); - } - - OStream &operator <<( int v ) - { - char buffer[64]; - sprintf( buffer, "%d", v ); - return write( buffer ); - } - - OStream &operator <<( unsigned int v ) - { - char buffer[64]; - sprintf( buffer, "%u", v ); - return write( buffer ); - } - - OStream &operator <<( long v ) - { - char buffer[64]; - sprintf( buffer, "%ld", v ); - return write( buffer ); - } - - OStream &operator <<( unsigned long v ) - { - char buffer[64]; - sprintf( buffer, "%lu", v ); - return write( buffer ); - } - - OStream &operator <<( float v ) - { - char buffer[128]; - sprintf( buffer, "%.16g", double(v) ); - return write( buffer ); - } - - OStream &operator <<( double v ) - { - char buffer[128]; - sprintf( buffer, "%.16g", v ); - return write( buffer ); - } - - OStream &operator <<( long double v ) - { - char buffer[128]; - sprintf( buffer, "%.16g", double(v) ); - return write( buffer ); - } - - OStream &operator <<( const void *v ) - { - char buffer[64]; - sprintf( buffer, "%p", v ); - return write( buffer ); - } - - OStream &operator <<( const char *v ) - { - return write( v ? v : "NULL" ); - } - - OStream &operator <<( char c ) - { - char buffer[16]; - sprintf( buffer, "%c", c ); - return write( buffer ); - } - - OStream &operator <<( const std::string &s ) - { - return write( s.c_str(), s.length() ); - } - -private: - StreamBuffer *buffer_; -}; - - -class OStringStream : public OStream -{ -public: - OStringStream() - : OStream( &buffer_ ) - { - } - - std::string str() const - { - return buffer_.str(); - } - -private: - StringStreamBuffer buffer_; -}; - - -class OFileStream : public OStream -{ -public: - OFileStream( FILE *file ) - : OStream( &buffer_ ) - , buffer_( file ) - , ownFile_( false ) - { - } - - OFileStream( const char *path ) - : OStream( &buffer_ ) - , buffer_( fopen( path, "wt" ) ) - , ownFile_( true ) - { - } - - virtual ~OFileStream() - { - if ( ownFile_ && buffer_.file() ) - fclose( buffer_.file() ); - } - -private: - FileStreamBuffer buffer_; - bool ownFile_; -}; - -inline OStream &stdCOut() -{ - static OFileStream stream( stdout ); - return stream; -} - -inline OStream &stdCErr() -{ - static OFileStream stream( stderr ); - return stream; -} - -CPPUNIT_NS_END - -#elif CPPUNIT_HAVE_SSTREAM // #if defined( CPPUNIT_NO_STREAM ) -# include -# include - - CPPUNIT_NS_BEGIN - typedef std::ostringstream OStringStream; // The standard C++ way - typedef std::ofstream OFileStream; - CPPUNIT_NS_END - - -#elif CPPUNIT_HAVE_CLASS_STRSTREAM -# include -# if CPPUNIT_HAVE_STRSTREAM -# include -# else // CPPUNIT_HAVE_STRSTREAM -# include -# endif // CPPUNIT_HAVE_CLASS_STRSTREAM - - CPPUNIT_NS_BEGIN - - class OStringStream : public std::ostrstream - { - public: - std::string str() - { -// (*this) << '\0'; -// std::string msg(std::ostrstream::str()); -// std::ostrstream::freeze(false); -// return msg; -// Alternative implementation that don't rely on freeze which is not -// available on some platforms: - return std::string( std::ostrstream::str(), pcount() ); - } - }; - - CPPUNIT_NS_END -#else // CPPUNIT_HAVE_CLASS_STRSTREAM -# error Cannot define CppUnit::OStringStream. -#endif // #if defined( CPPUNIT_NO_STREAM ) - - - -#if !defined( CPPUNIT_NO_STREAM ) - -#include - - CPPUNIT_NS_BEGIN - - typedef std::ostream OStream; - - inline OStream &stdCOut() - { - return std::cout; - } - - inline OStream &stdCErr() - { - return std::cerr; - } - - CPPUNIT_NS_END - -#endif // #if !defined( CPPUNIT_NO_STREAM ) - -#endif // CPPUNIT_PORTABILITY_STREAM_H_INCLUDED - diff --git a/contrib/cppunit-1.12.1/include/cppunit/tools/Algorithm.h b/contrib/cppunit-1.12.1/include/cppunit/tools/Algorithm.h deleted file mode 100644 index e5746a2bf..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/tools/Algorithm.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef CPPUNIT_TOOLS_ALGORITHM_H_INCLUDED -#define CPPUNIT_TOOLS_ALGORITHM_H_INCLUDED - -#include - -CPPUNIT_NS_BEGIN - -template -void -removeFromSequence( SequenceType &sequence, - const ValueType &valueToRemove ) -{ - for ( unsigned int index =0; index < sequence.size(); ++index ) - { - if ( sequence[ index ] == valueToRemove ) - sequence.erase( sequence.begin() + index ); - } -} - -CPPUNIT_NS_END - - -#endif // CPPUNIT_TOOLS_ALGORITHM_H_INCLUDED diff --git a/contrib/cppunit-1.12.1/include/cppunit/tools/Makefile.am b/contrib/cppunit-1.12.1/include/cppunit/tools/Makefile.am deleted file mode 100644 index 8ce080867..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/tools/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -libcppunitincludedir = $(includedir)/cppunit/tools - -libcppunitinclude_HEADERS = \ - Algorithm.h \ - StringTools.h \ - XmlElement.h \ - XmlDocument.h \ No newline at end of file diff --git a/contrib/cppunit-1.12.1/include/cppunit/tools/Makefile.in b/contrib/cppunit-1.12.1/include/cppunit/tools/Makefile.in deleted file mode 100644 index 5b7d3e6c1..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/tools/Makefile.in +++ /dev/null @@ -1,435 +0,0 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = include/cppunit/tools -DIST_COMMON = $(libcppunitinclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = \ - $(top_srcdir)/config/ac_create_prefix_config_h.m4 \ - $(top_srcdir)/config/ac_cxx_have_sstream.m4 \ - $(top_srcdir)/config/ac_cxx_have_strstream.m4 \ - $(top_srcdir)/config/ac_cxx_namespaces.m4 \ - $(top_srcdir)/config/ac_cxx_rtti.m4 \ - $(top_srcdir)/config/ac_cxx_string_compare_string_first.m4 \ - $(top_srcdir)/config/ac_dll.m4 \ - $(top_srcdir)/config/ax_cxx_gcc_abi_demangle.m4 \ - $(top_srcdir)/config/ax_cxx_have_isfinite.m4 \ - $(top_srcdir)/config/bb_enable_doxygen.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config/config.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(libcppunitincludedir)" -libcppunitincludeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(libcppunitinclude_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@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CPPUNIT_BINARY_AGE = @CPPUNIT_BINARY_AGE@ -CPPUNIT_INTERFACE_AGE = @CPPUNIT_INTERFACE_AGE@ -CPPUNIT_MAJOR_VERSION = @CPPUNIT_MAJOR_VERSION@ -CPPUNIT_MICRO_VERSION = @CPPUNIT_MICRO_VERSION@ -CPPUNIT_MINOR_VERSION = @CPPUNIT_MINOR_VERSION@ -CPPUNIT_VERSION = @CPPUNIT_VERSION@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOT = @DOT@ -DOXYGEN = @DOXYGEN@ -DSYMUTIL = @DSYMUTIL@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBADD_DL = @LIBADD_DL@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -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@ -enable_dot = @enable_dot@ -enable_html_docs = @enable_html_docs@ -enable_latex_docs = @enable_latex_docs@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -libcppunitincludedir = $(includedir)/cppunit/tools -libcppunitinclude_HEADERS = \ - Algorithm.h \ - StringTools.h \ - XmlElement.h \ - XmlDocument.h - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/cppunit/tools/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu include/cppunit/tools/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(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 - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-libcppunitincludeHEADERS: $(libcppunitinclude_HEADERS) - @$(NORMAL_INSTALL) - test -z "$(libcppunitincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libcppunitincludedir)" - @list='$(libcppunitinclude_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(libcppunitincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(libcppunitincludedir)/$$f'"; \ - $(libcppunitincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(libcppunitincludedir)/$$f"; \ - done - -uninstall-libcppunitincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libcppunitinclude_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(libcppunitincludedir)/$$f'"; \ - rm -f "$(DESTDIR)$(libcppunitincludedir)/$$f"; \ - done - -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; nonemtpy = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && 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 $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$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 $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(libcppunitincludedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(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: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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 mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: install-libcppunitincludeHEADERS - -install-dvi: install-dvi-am - -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 - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-libcppunitincludeHEADERS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean 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-libcppunitincludeHEADERS install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-libcppunitincludeHEADERS - -# 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/contrib/cppunit-1.12.1/include/cppunit/tools/StringTools.h b/contrib/cppunit-1.12.1/include/cppunit/tools/StringTools.h deleted file mode 100644 index 7a6b6d710..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/tools/StringTools.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef CPPUNIT_TOOLS_STRINGTOOLS_H -#define CPPUNIT_TOOLS_STRINGTOOLS_H - -#include -#include -#include - - -CPPUNIT_NS_BEGIN - - -/*! \brief Tool functions to manipulate string. - */ -struct StringTools -{ - - typedef CppUnitVector Strings; - - static std::string CPPUNIT_API toString( int value ); - - static std::string CPPUNIT_API toString( double value ); - - static Strings CPPUNIT_API split( const std::string &text, - char separator ); - - static std::string CPPUNIT_API wrap( const std::string &text, - int wrapColumn = CPPUNIT_WRAP_COLUMN ); - -}; - - -CPPUNIT_NS_END - -#endif // CPPUNIT_TOOLS_STRINGTOOLS_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/tools/XmlDocument.h b/contrib/cppunit-1.12.1/include/cppunit/tools/XmlDocument.h deleted file mode 100644 index 4ee73257a..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/tools/XmlDocument.h +++ /dev/null @@ -1,86 +0,0 @@ -#ifndef CPPUNIT_TOOLS_XMLDOCUMENT_H -#define CPPUNIT_TOOLS_XMLDOCUMENT_H - -#include - -#if CPPUNIT_NEED_DLL_DECL -#pragma warning( push ) -#pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z -#endif - -#include - - -CPPUNIT_NS_BEGIN - - -class XmlElement; - - -/*! \brief A XML Document. - * - * A XmlDocument represents a XML file. It holds a pointer on the root XmlElement - * of the document. It also holds the encoding and style sheet used. - * - * By default, the XML document is stand-alone and tagged with enconding "ISO-8859-1". - */ -class CPPUNIT_API XmlDocument -{ -public: - /*! \brief Constructs a XmlDocument object. - * \param encoding Encoding used in the XML file (default is Latin-1, ISO-8859-1 ). - * \param styleSheet Name of the XSL style sheet file used. If empty then no - * style sheet will be specified in the output. - */ - XmlDocument( const std::string &encoding = "", - const std::string &styleSheet = "" ); - - /// Destructor. - virtual ~XmlDocument(); - - std::string encoding() const; - void setEncoding( const std::string &encoding = "" ); - - std::string styleSheet() const; - void setStyleSheet( const std::string &styleSheet = "" ); - - bool standalone() const; - - /*! \brief set the output document as standalone or not. - * - * For the output document, specify wether it's a standalone XML - * document, or not. - * - * \param standalone if true, the output will be specified as standalone. - * if false, it will be not. - */ - void setStandalone( bool standalone ); - - void setRootElement( XmlElement *rootElement ); - XmlElement &rootElement() const; - - std::string toString() const; - -private: - /// Prevents the use of the copy constructor. - XmlDocument( const XmlDocument © ); - - /// Prevents the use of the copy operator. - void operator =( const XmlDocument © ); - -protected: - std::string m_encoding; - std::string m_styleSheet; - XmlElement *m_rootElement; - bool m_standalone; -}; - - -#if CPPUNIT_NEED_DLL_DECL -#pragma warning( pop ) -#endif - - -CPPUNIT_NS_END - -#endif // CPPUNIT_TOOLS_XMLDOCUMENT_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/tools/XmlElement.h b/contrib/cppunit-1.12.1/include/cppunit/tools/XmlElement.h deleted file mode 100644 index 0b36bd238..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/tools/XmlElement.h +++ /dev/null @@ -1,149 +0,0 @@ -#ifndef CPPUNIT_TOOLS_XMLELEMENT_H -#define CPPUNIT_TOOLS_XMLELEMENT_H - -#include - -#if CPPUNIT_NEED_DLL_DECL -#pragma warning( push ) -#pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z -#endif - -#include -#include - - -CPPUNIT_NS_BEGIN - - -class XmlElement; - -#if CPPUNIT_NEED_DLL_DECL -// template class CPPUNIT_API std::deque; -#endif - - -/*! \brief A XML Element. - * - * A XML element has: - * - a name, specified on construction, - * - a content, specified on construction (may be empty), - * - zero or more attributes, added with addAttribute(), - * - zero or more child elements, added with addElement(). - */ -class CPPUNIT_API XmlElement -{ -public: - /*! \brief Constructs an element with the specified name and string content. - * \param elementName Name of the element. Must not be empty. - * \param content Content of the element. - */ - XmlElement( std::string elementName, - std::string content ="" ); - - /*! \brief Constructs an element with the specified name and numeric content. - * \param elementName Name of the element. Must not be empty. - * \param numericContent Content of the element. - */ - XmlElement( std::string elementName, - int numericContent ); - - /*! \brief Destructs the element and its child elements. - */ - virtual ~XmlElement(); - - /*! \brief Returns the name of the element. - * \return Name of the element. - */ - std::string name() const; - - /*! \brief Returns the content of the element. - * \return Content of the element. - */ - std::string content() const; - - /*! \brief Sets the name of the element. - * \param name New name for the element. - */ - void setName( const std::string &name ); - - /*! \brief Sets the content of the element. - * \param content New content for the element. - */ - void setContent( const std::string &content ); - - /*! \overload void setContent( const std::string &content ) - */ - void setContent( int numericContent ); - - /*! \brief Adds an attribute with the specified string value. - * \param attributeName Name of the attribute. Must not be an empty. - * \param value Value of the attribute. - */ - void addAttribute( std::string attributeName, - std::string value ); - - /*! \brief Adds an attribute with the specified numeric value. - * \param attributeName Name of the attribute. Must not be empty. - * \param numericValue Numeric value of the attribute. - */ - void addAttribute( std::string attributeName, - int numericValue ); - - /*! \brief Adds a child element to the element. - * \param element Child element to add. Must not be \c NULL. - */ - void addElement( XmlElement *element ); - - /*! \brief Returns the number of child elements. - * \return Number of child elements (element added with addElement()). - */ - int elementCount() const; - - /*! \brief Returns the child element at the specified index. - * \param index Zero based index of the element to return. - * \returns Element at the specified index. Never \c NULL. - * \exception std::invalid_argument if \a index < 0 or index >= elementCount(). - */ - XmlElement *elementAt( int index ) const; - - /*! \brief Returns the first child element with the specified name. - * \param name Name of the child element to return. - * \return First child element found which is named \a name. - * \exception std::invalid_argument if there is no child element with the specified - * name. - */ - XmlElement *elementFor( const std::string &name ) const; - - /*! \brief Returns a XML string that represents the element. - * \param indent String of spaces representing the amount of 'indent'. - * \return XML string that represents the element, its attributes and its - * child elements. - */ - std::string toString( const std::string &indent = "" ) const; - -private: - typedef std::pair Attribute; - - std::string attributesAsString() const; - std::string escape( std::string value ) const; - -private: - std::string m_name; - std::string m_content; - - typedef CppUnitDeque Attributes; - Attributes m_attributes; - - typedef CppUnitDeque Elements; - Elements m_elements; -}; - - -CPPUNIT_NS_END - -#if CPPUNIT_NEED_DLL_DECL -#pragma warning( pop ) -#endif - - -#endif // CPPUNIT_TOOLS_XMLELEMENT_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/ui/Makefile.am b/contrib/cppunit-1.12.1/include/cppunit/ui/Makefile.am deleted file mode 100644 index 1b9f08efe..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/ui/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -SUBDIRS = text mfc qt diff --git a/contrib/cppunit-1.12.1/include/cppunit/ui/Makefile.in b/contrib/cppunit-1.12.1/include/cppunit/ui/Makefile.in deleted file mode 100644 index e8a9d5903..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/ui/Makefile.in +++ /dev/null @@ -1,511 +0,0 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = include/cppunit/ui -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = \ - $(top_srcdir)/config/ac_create_prefix_config_h.m4 \ - $(top_srcdir)/config/ac_cxx_have_sstream.m4 \ - $(top_srcdir)/config/ac_cxx_have_strstream.m4 \ - $(top_srcdir)/config/ac_cxx_namespaces.m4 \ - $(top_srcdir)/config/ac_cxx_rtti.m4 \ - $(top_srcdir)/config/ac_cxx_string_compare_string_first.m4 \ - $(top_srcdir)/config/ac_dll.m4 \ - $(top_srcdir)/config/ax_cxx_gcc_abi_demangle.m4 \ - $(top_srcdir)/config/ax_cxx_have_isfinite.m4 \ - $(top_srcdir)/config/bb_enable_doxygen.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config/config.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -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@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CPPUNIT_BINARY_AGE = @CPPUNIT_BINARY_AGE@ -CPPUNIT_INTERFACE_AGE = @CPPUNIT_INTERFACE_AGE@ -CPPUNIT_MAJOR_VERSION = @CPPUNIT_MAJOR_VERSION@ -CPPUNIT_MICRO_VERSION = @CPPUNIT_MICRO_VERSION@ -CPPUNIT_MINOR_VERSION = @CPPUNIT_MINOR_VERSION@ -CPPUNIT_VERSION = @CPPUNIT_VERSION@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOT = @DOT@ -DOXYGEN = @DOXYGEN@ -DSYMUTIL = @DSYMUTIL@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBADD_DL = @LIBADD_DL@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -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@ -enable_dot = @enable_dot@ -enable_html_docs = @enable_html_docs@ -enable_latex_docs = @enable_latex_docs@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -SUBDIRS = text mfc qt -all: all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/cppunit/ui/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu include/cppunit/ui/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 - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -$(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -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; nonemtpy = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - 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; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && 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 $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(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: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: - -install-dvi: install-dvi-recursive - -install-exec-am: - -install-html: install-html-recursive - -install-info: install-info-recursive - -install-man: - -install-pdf: install-pdf-recursive - -install-ps: install-ps-recursive - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: - -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ - install-strip - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean 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 installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/contrib/cppunit-1.12.1/include/cppunit/ui/mfc/Makefile.am b/contrib/cppunit-1.12.1/include/cppunit/ui/mfc/Makefile.am deleted file mode 100644 index 1ea8b5edf..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/ui/mfc/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -libcppunitincludedir = $(includedir)/cppunit/ui/mfc - -libcppunitinclude_HEADERS = \ - TestRunner.h \ - MfcTestRunner.h diff --git a/contrib/cppunit-1.12.1/include/cppunit/ui/mfc/Makefile.in b/contrib/cppunit-1.12.1/include/cppunit/ui/mfc/Makefile.in deleted file mode 100644 index abe488a11..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/ui/mfc/Makefile.in +++ /dev/null @@ -1,433 +0,0 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = include/cppunit/ui/mfc -DIST_COMMON = $(libcppunitinclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = \ - $(top_srcdir)/config/ac_create_prefix_config_h.m4 \ - $(top_srcdir)/config/ac_cxx_have_sstream.m4 \ - $(top_srcdir)/config/ac_cxx_have_strstream.m4 \ - $(top_srcdir)/config/ac_cxx_namespaces.m4 \ - $(top_srcdir)/config/ac_cxx_rtti.m4 \ - $(top_srcdir)/config/ac_cxx_string_compare_string_first.m4 \ - $(top_srcdir)/config/ac_dll.m4 \ - $(top_srcdir)/config/ax_cxx_gcc_abi_demangle.m4 \ - $(top_srcdir)/config/ax_cxx_have_isfinite.m4 \ - $(top_srcdir)/config/bb_enable_doxygen.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config/config.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(libcppunitincludedir)" -libcppunitincludeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(libcppunitinclude_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@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CPPUNIT_BINARY_AGE = @CPPUNIT_BINARY_AGE@ -CPPUNIT_INTERFACE_AGE = @CPPUNIT_INTERFACE_AGE@ -CPPUNIT_MAJOR_VERSION = @CPPUNIT_MAJOR_VERSION@ -CPPUNIT_MICRO_VERSION = @CPPUNIT_MICRO_VERSION@ -CPPUNIT_MINOR_VERSION = @CPPUNIT_MINOR_VERSION@ -CPPUNIT_VERSION = @CPPUNIT_VERSION@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOT = @DOT@ -DOXYGEN = @DOXYGEN@ -DSYMUTIL = @DSYMUTIL@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBADD_DL = @LIBADD_DL@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -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@ -enable_dot = @enable_dot@ -enable_html_docs = @enable_html_docs@ -enable_latex_docs = @enable_latex_docs@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -libcppunitincludedir = $(includedir)/cppunit/ui/mfc -libcppunitinclude_HEADERS = \ - TestRunner.h \ - MfcTestRunner.h - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/cppunit/ui/mfc/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu include/cppunit/ui/mfc/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 - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-libcppunitincludeHEADERS: $(libcppunitinclude_HEADERS) - @$(NORMAL_INSTALL) - test -z "$(libcppunitincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libcppunitincludedir)" - @list='$(libcppunitinclude_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(libcppunitincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(libcppunitincludedir)/$$f'"; \ - $(libcppunitincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(libcppunitincludedir)/$$f"; \ - done - -uninstall-libcppunitincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libcppunitinclude_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(libcppunitincludedir)/$$f'"; \ - rm -f "$(DESTDIR)$(libcppunitincludedir)/$$f"; \ - done - -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; nonemtpy = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && 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 $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$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 $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(libcppunitincludedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(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: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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 mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: install-libcppunitincludeHEADERS - -install-dvi: install-dvi-am - -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 - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-libcppunitincludeHEADERS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean 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-libcppunitincludeHEADERS install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-libcppunitincludeHEADERS - -# 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/contrib/cppunit-1.12.1/include/cppunit/ui/mfc/MfcTestRunner.h b/contrib/cppunit-1.12.1/include/cppunit/ui/mfc/MfcTestRunner.h deleted file mode 100644 index 6a5f7b770..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/ui/mfc/MfcTestRunner.h +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef CPPUNITUI_MFC_MFCTESTRUNNER_H -#define CPPUNITUI_MFC_MFCTESTRUNNER_H - -#if _MSC_VER >= 1000 -#pragma once -#endif // _MSC_VER >= 1000 - -#include -#include - -/* Refer to MSDN documentation to know how to write and use MFC extension DLL: - mk:@MSITStore:h:\DevStudio\MSDN\98VSa\1036\vcmfc.chm::/html/_mfcnotes_tn033.htm#_mfcnotes_how_to_write_an_mfc_extension_dll - - This can be found in the index with "mfc extension" - The basic: - Using: - - your application must use MFC DLL - - memory allocation is done using the same heap - - you must define the symbol _AFX_DLL - - Building: - - you must define the symbol _AFX_DLL and _AFX_EXT - - export class using AFX_EXT_CLASS - */ - -CPPUNIT_NS_BEGIN - - class Test; - class TestSuite; - - -/*! \brief MFC test runner. - * \ingroup ExecutingTest - * - * Use this to launch the MFC TestRunner. Usually called from you CWinApp subclass: - * - * \code - * #include - * #include - * - * void - * CHostAppApp::RunUnitTests() - * { - * CppUnit::MfcTestRunner runner; - * runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() ); - * - * runner.run(); - * } - * \endcode - * \see CppUnit::TextTestRunner, CppUnit::TestFactoryRegistry. - */ -class AFX_EXT_CLASS MfcTestRunner -{ -public: - MfcTestRunner(); - virtual ~MfcTestRunner(); - - void run(); - - void addTest( Test *test ); - - void addTests( const CppUnitVector &tests ); - -protected: - Test *getRootTest(); - - TestSuite *m_suite; - - typedef CppUnitVector Tests; - Tests m_tests; -}; - - -CPPUNIT_NS_END - -#endif // CPPUNITUI_MFC_MFCTESTRUNNER_H \ No newline at end of file diff --git a/contrib/cppunit-1.12.1/include/cppunit/ui/mfc/TestRunner.h b/contrib/cppunit-1.12.1/include/cppunit/ui/mfc/TestRunner.h deleted file mode 100644 index c4d6affac..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/ui/mfc/TestRunner.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef CPPUNITUI_MFC_TESTRUNNER_H -#define CPPUNITUI_MFC_TESTRUNNER_H - -#include - -CPPUNIT_NS_BEGIN - -#if defined(CPPUNIT_HAVE_NAMESPACES) -namespace MfcUi -{ - /*! Mfc TestRunner (DEPRECATED). - * \deprecated Use CppUnit::MfcTestRunner instead. - */ - typedef CPPUNIT_NS::MfcTestRunner TestRunner; -} -#endif // defined(CPPUNIT_HAVE_NAMESPACES) - -CPPUNIT_NS_END - - -#endif // CPPUNITUI_MFC_TESTRUNNER_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/ui/qt/Config.h b/contrib/cppunit-1.12.1/include/cppunit/ui/qt/Config.h deleted file mode 100644 index beaf9ad4e..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/ui/qt/Config.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef CPPUNIT_QTUI_CONFIG_H -#define CPPUNIT_QTUI_CONFIG_H - -/*! Macro to export symbol to DLL with VC++. - * - * - QTTESTRUNNER_DLL_BUILD must be defined when building the DLL. - * - QTTESTRUNNER_DLL must be defined if linking against the DLL. - * - If none of the above are defined then you are building or linking against - * the static library. - */ - -#if defined( QTTESTRUNNER_DLL_BUILD ) -# define QTTESTRUNNER_API __declspec(dllexport) -#elif defined ( QTTESTRUNNER_DLL ) -# define QTTESTRUNNER_API __declspec(dllimport) -#else -# define QTTESTRUNNER_API -#endif - - -#endif // CPPUNIT_QTUI_CONFIG_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/ui/qt/Makefile.am b/contrib/cppunit-1.12.1/include/cppunit/ui/qt/Makefile.am deleted file mode 100644 index 7d4fb46c0..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/ui/qt/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -libcppunitincludedir = $(includedir)/cppunit/ui/qt - -libcppunitinclude_HEADERS = \ - TestRunner.h \ - QtTestRunner.h \ - Config.h diff --git a/contrib/cppunit-1.12.1/include/cppunit/ui/qt/Makefile.in b/contrib/cppunit-1.12.1/include/cppunit/ui/qt/Makefile.in deleted file mode 100644 index 1154d4008..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/ui/qt/Makefile.in +++ /dev/null @@ -1,434 +0,0 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = include/cppunit/ui/qt -DIST_COMMON = $(libcppunitinclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = \ - $(top_srcdir)/config/ac_create_prefix_config_h.m4 \ - $(top_srcdir)/config/ac_cxx_have_sstream.m4 \ - $(top_srcdir)/config/ac_cxx_have_strstream.m4 \ - $(top_srcdir)/config/ac_cxx_namespaces.m4 \ - $(top_srcdir)/config/ac_cxx_rtti.m4 \ - $(top_srcdir)/config/ac_cxx_string_compare_string_first.m4 \ - $(top_srcdir)/config/ac_dll.m4 \ - $(top_srcdir)/config/ax_cxx_gcc_abi_demangle.m4 \ - $(top_srcdir)/config/ax_cxx_have_isfinite.m4 \ - $(top_srcdir)/config/bb_enable_doxygen.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config/config.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(libcppunitincludedir)" -libcppunitincludeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(libcppunitinclude_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@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CPPUNIT_BINARY_AGE = @CPPUNIT_BINARY_AGE@ -CPPUNIT_INTERFACE_AGE = @CPPUNIT_INTERFACE_AGE@ -CPPUNIT_MAJOR_VERSION = @CPPUNIT_MAJOR_VERSION@ -CPPUNIT_MICRO_VERSION = @CPPUNIT_MICRO_VERSION@ -CPPUNIT_MINOR_VERSION = @CPPUNIT_MINOR_VERSION@ -CPPUNIT_VERSION = @CPPUNIT_VERSION@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOT = @DOT@ -DOXYGEN = @DOXYGEN@ -DSYMUTIL = @DSYMUTIL@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBADD_DL = @LIBADD_DL@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -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@ -enable_dot = @enable_dot@ -enable_html_docs = @enable_html_docs@ -enable_latex_docs = @enable_latex_docs@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -libcppunitincludedir = $(includedir)/cppunit/ui/qt -libcppunitinclude_HEADERS = \ - TestRunner.h \ - QtTestRunner.h \ - Config.h - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/cppunit/ui/qt/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu include/cppunit/ui/qt/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 - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-libcppunitincludeHEADERS: $(libcppunitinclude_HEADERS) - @$(NORMAL_INSTALL) - test -z "$(libcppunitincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libcppunitincludedir)" - @list='$(libcppunitinclude_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(libcppunitincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(libcppunitincludedir)/$$f'"; \ - $(libcppunitincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(libcppunitincludedir)/$$f"; \ - done - -uninstall-libcppunitincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libcppunitinclude_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(libcppunitincludedir)/$$f'"; \ - rm -f "$(DESTDIR)$(libcppunitincludedir)/$$f"; \ - done - -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; nonemtpy = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && 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 $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$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 $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(libcppunitincludedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(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: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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 mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: install-libcppunitincludeHEADERS - -install-dvi: install-dvi-am - -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 - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-libcppunitincludeHEADERS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean 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-libcppunitincludeHEADERS install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-libcppunitincludeHEADERS - -# 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/contrib/cppunit-1.12.1/include/cppunit/ui/qt/QtTestRunner.h b/contrib/cppunit-1.12.1/include/cppunit/ui/qt/QtTestRunner.h deleted file mode 100644 index 4b6ab4e4e..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/ui/qt/QtTestRunner.h +++ /dev/null @@ -1,85 +0,0 @@ -// ////////////////////////////////////////////////////////////////////////// -// Header file TestRunner.h for class TestRunner -// (c)Copyright 2000, Baptiste Lepilleur. -// Created: 2001/09/19 -// ////////////////////////////////////////////////////////////////////////// -#ifndef CPPUNIT_QTUI_QTTESTRUNNER_H -#define CPPUNIT_QTUI_QTTESTRUNNER_H - -#include -#include "Config.h" - -CPPUNIT_NS_BEGIN - - - class Test; - class TestSuite; - - -/*! - * \brief QT test runner. - * \ingroup ExecutingTest - * - * Here is an example of usage: - * \code - * #include - * #include - * - * [...] - * - * void - * QDepWindow::runTests() - * { - * CppUnit::QtUi::TestRunner runner; - * runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() ); - * runner.run( true ); - * } - * \endcode - * - */ -class QTTESTRUNNER_API QtTestRunner -{ -public: - /*! Constructs a TestRunner object. - */ - QtTestRunner(); - - /*! Destructor. - */ - virtual ~QtTestRunner(); - - void run( bool autoRun =false ); - - void addTest( Test *test ); - -private: - /// Prevents the use of the copy constructor. - QtTestRunner( const QtTestRunner © ); - - /// Prevents the use of the copy operator. - void operator =( const QtTestRunner © ); - - Test *getRootTest(); - -private: - typedef CppUnitVector Tests; - Tests *_tests; - - TestSuite *_suite; -}; - - -#if CPPUNIT_HAVE_NAMESPACES - namespace QtUi - { - /*! Qt TestRunner (DEPRECATED). - * \deprecated Use CppUnit::QtTestRunner instead. - */ - typedef CPPUNIT_NS::QtTestRunner TestRunner; - } -#endif - - -CPPUNIT_NS_END - -#endif // CPPUNIT_QTUI_QTTESTRUNNER_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/ui/qt/TestRunner.h b/contrib/cppunit-1.12.1/include/cppunit/ui/qt/TestRunner.h deleted file mode 100644 index 9c53e4ba6..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/ui/qt/TestRunner.h +++ /dev/null @@ -1,11 +0,0 @@ -// ////////////////////////////////////////////////////////////////////////// -// Header file TestRunner.h for class TestRunner -// (c)Copyright 2000, Baptiste Lepilleur. -// Created: 2001/09/19 -// ////////////////////////////////////////////////////////////////////////// -#ifndef CPPUNIT_QTUI_TESTRUNNER_H -#define CPPUNIT_QTUI_TESTRUNNER_H - -#include - -#endif // CPPUNIT_QTUI_TESTRUNNER_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/ui/text/Makefile.am b/contrib/cppunit-1.12.1/include/cppunit/ui/text/Makefile.am deleted file mode 100644 index 5f01d8146..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/ui/text/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -libcppunitincludedir = $(includedir)/cppunit/ui/text - -libcppunitinclude_HEADERS = \ - TestRunner.h \ - TextTestRunner.h diff --git a/contrib/cppunit-1.12.1/include/cppunit/ui/text/Makefile.in b/contrib/cppunit-1.12.1/include/cppunit/ui/text/Makefile.in deleted file mode 100644 index db794f694..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/ui/text/Makefile.in +++ /dev/null @@ -1,433 +0,0 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = include/cppunit/ui/text -DIST_COMMON = $(libcppunitinclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = \ - $(top_srcdir)/config/ac_create_prefix_config_h.m4 \ - $(top_srcdir)/config/ac_cxx_have_sstream.m4 \ - $(top_srcdir)/config/ac_cxx_have_strstream.m4 \ - $(top_srcdir)/config/ac_cxx_namespaces.m4 \ - $(top_srcdir)/config/ac_cxx_rtti.m4 \ - $(top_srcdir)/config/ac_cxx_string_compare_string_first.m4 \ - $(top_srcdir)/config/ac_dll.m4 \ - $(top_srcdir)/config/ax_cxx_gcc_abi_demangle.m4 \ - $(top_srcdir)/config/ax_cxx_have_isfinite.m4 \ - $(top_srcdir)/config/bb_enable_doxygen.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config/config.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(libcppunitincludedir)" -libcppunitincludeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(libcppunitinclude_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@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CPPUNIT_BINARY_AGE = @CPPUNIT_BINARY_AGE@ -CPPUNIT_INTERFACE_AGE = @CPPUNIT_INTERFACE_AGE@ -CPPUNIT_MAJOR_VERSION = @CPPUNIT_MAJOR_VERSION@ -CPPUNIT_MICRO_VERSION = @CPPUNIT_MICRO_VERSION@ -CPPUNIT_MINOR_VERSION = @CPPUNIT_MINOR_VERSION@ -CPPUNIT_VERSION = @CPPUNIT_VERSION@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOT = @DOT@ -DOXYGEN = @DOXYGEN@ -DSYMUTIL = @DSYMUTIL@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBADD_DL = @LIBADD_DL@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -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@ -enable_dot = @enable_dot@ -enable_html_docs = @enable_html_docs@ -enable_latex_docs = @enable_latex_docs@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -libcppunitincludedir = $(includedir)/cppunit/ui/text -libcppunitinclude_HEADERS = \ - TestRunner.h \ - TextTestRunner.h - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/cppunit/ui/text/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu include/cppunit/ui/text/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 - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-libcppunitincludeHEADERS: $(libcppunitinclude_HEADERS) - @$(NORMAL_INSTALL) - test -z "$(libcppunitincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libcppunitincludedir)" - @list='$(libcppunitinclude_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(libcppunitincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(libcppunitincludedir)/$$f'"; \ - $(libcppunitincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(libcppunitincludedir)/$$f"; \ - done - -uninstall-libcppunitincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libcppunitinclude_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(libcppunitincludedir)/$$f'"; \ - rm -f "$(DESTDIR)$(libcppunitincludedir)/$$f"; \ - done - -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; nonemtpy = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && 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 $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$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 $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(libcppunitincludedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(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: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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 mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: install-libcppunitincludeHEADERS - -install-dvi: install-dvi-am - -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 - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-libcppunitincludeHEADERS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean 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-libcppunitincludeHEADERS install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-libcppunitincludeHEADERS - -# 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/contrib/cppunit-1.12.1/include/cppunit/ui/text/TestRunner.h b/contrib/cppunit-1.12.1/include/cppunit/ui/text/TestRunner.h deleted file mode 100644 index 023eb8348..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/ui/text/TestRunner.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef CPPUNIT_UI_TEXT_TESTRUNNER_H -#define CPPUNIT_UI_TEXT_TESTRUNNER_H - -#include - - -#if defined(CPPUNIT_HAVE_NAMESPACES) - -CPPUNIT_NS_BEGIN -namespace TextUi -{ - - /*! Text TestRunner (DEPRECATED). - * \deprecated Use TextTestRunner instead. - */ - typedef TextTestRunner TestRunner; - -} -CPPUNIT_NS_END - -#endif // defined(CPPUNIT_HAVE_NAMESPACES) - - -#endif // CPPUNIT_UI_TEXT_TESTRUNNER_H diff --git a/contrib/cppunit-1.12.1/include/cppunit/ui/text/TextTestRunner.h b/contrib/cppunit-1.12.1/include/cppunit/ui/text/TextTestRunner.h deleted file mode 100644 index 86da4d4b3..000000000 --- a/contrib/cppunit-1.12.1/include/cppunit/ui/text/TextTestRunner.h +++ /dev/null @@ -1,97 +0,0 @@ -#ifndef CPPUNIT_UI_TEXT_TEXTTESTRUNNER_H -#define CPPUNIT_UI_TEXT_TEXTTESTRUNNER_H - - -#include -#include -#include - -CPPUNIT_NS_BEGIN - - -class Outputter; -class Test; -class TestSuite; -class TextOutputter; -class TestResult; -class TestResultCollector; - - - -/*! - * \brief A text mode test runner. - * \ingroup WritingTestResult - * \ingroup ExecutingTest - * - * The test runner manage the life cycle of the added tests. - * - * The test runner can run only one of the added tests or all the tests. - * - * TestRunner prints out a trace as the tests are executed followed by a - * summary at the end. The trace and summary print are optional. - * - * Here is an example of use: - * - * \code - * CppUnit::TextTestRunner runner; - * runner.addTest( ExampleTestCase::suite() ); - * runner.run( "", true ); // Run all tests and wait - * \endcode - * - * The trace is printed using a TextTestProgressListener. The summary is printed - * using a TextOutputter. - * - * You can specify an alternate Outputter at construction - * or later with setOutputter(). - * - * After construction, you can register additional TestListener to eventManager(), - * for a custom progress trace, for example. - * - * \code - * CppUnit::TextTestRunner runner; - * runner.addTest( ExampleTestCase::suite() ); - * runner.setOutputter( CppUnit::CompilerOutputter::defaultOutputter( - * &runner.result(), - * std::cerr ) ); - * MyCustomProgressTestListener progress; - * runner.eventManager().addListener( &progress ); - * runner.run( "", true ); // Run all tests and wait - * \endcode - * - * \see CompilerOutputter, XmlOutputter, TextOutputter. - */ -class CPPUNIT_API TextTestRunner : public CPPUNIT_NS::TestRunner -{ -public: - TextTestRunner( Outputter *outputter =NULL ); - - virtual ~TextTestRunner(); - - bool run( std::string testPath ="", - bool doWait = false, - bool doPrintResult = true, - bool doPrintProgress = true ); - - void setOutputter( Outputter *outputter ); - - TestResultCollector &result() const; - - TestResult &eventManager() const; - -public: // overridden from TestRunner (to avoid hidden virtual function warning) - virtual void run( TestResult &controller, - const std::string &testPath = "" ); - -protected: - virtual void wait( bool doWait ); - virtual void printResult( bool doPrintResult ); - - TestResultCollector *m_result; - TestResult *m_eventManager; - Outputter *m_outputter; -}; - - -CPPUNIT_NS_END - -#endif // CPPUNIT_UI_TEXT_TEXTTESTRUNNER_H diff --git a/contrib/cppunit-1.12.1/src/CppUnitLibraries.sln b/contrib/cppunit-1.12.1/src/CppUnitLibraries.sln deleted file mode 100644 index 5dbeb6193..000000000 --- a/contrib/cppunit-1.12.1/src/CppUnitLibraries.sln +++ /dev/null @@ -1,50 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cppunit", "cppunit\cppunit.vcproj", "{98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug Static|Win32 = Debug Static|Win32 - Debug Static|x64 = Debug Static|x64 - Debug Unicode|Win32 = Debug Unicode|Win32 - Debug Unicode|x64 = Debug Unicode|x64 - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release Static|Win32 = Release Static|Win32 - Release Static|x64 = Release Static|x64 - Release Unicode|Win32 = Release Unicode|Win32 - Release Unicode|x64 = Release Unicode|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Static|Win32.ActiveCfg = Debug|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Static|Win32.Build.0 = Debug|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Static|x64.ActiveCfg = Debug|x64 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Static|x64.Build.0 = Debug|x64 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Unicode|Win32.ActiveCfg = Debug|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Unicode|Win32.Build.0 = Debug|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Unicode|x64.ActiveCfg = Debug|x64 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Unicode|x64.Build.0 = Debug|x64 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug|Win32.ActiveCfg = Debug|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug|Win32.Build.0 = Debug|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug|x64.ActiveCfg = Debug|x64 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug|x64.Build.0 = Debug|x64 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Static|Win32.ActiveCfg = Release|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Static|Win32.Build.0 = Release|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Static|x64.ActiveCfg = Release|x64 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Static|x64.Build.0 = Release|x64 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Unicode|Win32.ActiveCfg = Release|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Unicode|Win32.Build.0 = Release|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Unicode|x64.ActiveCfg = Release|x64 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Unicode|x64.Build.0 = Release|x64 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release|Win32.ActiveCfg = Release|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release|Win32.Build.0 = Release|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release|x64.ActiveCfg = Release|x64 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/contrib/cppunit-1.12.1/src/CppUnitLibrariesVC9.sln b/contrib/cppunit-1.12.1/src/CppUnitLibrariesVC9.sln deleted file mode 100644 index 62417d477..000000000 --- a/contrib/cppunit-1.12.1/src/CppUnitLibrariesVC9.sln +++ /dev/null @@ -1,50 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual C++ Express 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cppunit", "cppunit\cppunitvc9.vcproj", "{98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug Static|Win32 = Debug Static|Win32 - Debug Static|x64 = Debug Static|x64 - Debug Unicode|Win32 = Debug Unicode|Win32 - Debug Unicode|x64 = Debug Unicode|x64 - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release Static|Win32 = Release Static|Win32 - Release Static|x64 = Release Static|x64 - Release Unicode|Win32 = Release Unicode|Win32 - Release Unicode|x64 = Release Unicode|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Static|Win32.ActiveCfg = Debug|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Static|Win32.Build.0 = Debug|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Static|x64.ActiveCfg = Debug|x64 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Static|x64.Build.0 = Debug|x64 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Unicode|Win32.ActiveCfg = Debug|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Unicode|Win32.Build.0 = Debug|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Unicode|x64.ActiveCfg = Debug|x64 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Unicode|x64.Build.0 = Debug|x64 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug|Win32.ActiveCfg = Debug|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug|Win32.Build.0 = Debug|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug|x64.ActiveCfg = Debug|x64 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug|x64.Build.0 = Debug|x64 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Static|Win32.ActiveCfg = Release|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Static|Win32.Build.0 = Release|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Static|x64.ActiveCfg = Release|x64 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Static|x64.Build.0 = Release|x64 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Unicode|Win32.ActiveCfg = Release|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Unicode|Win32.Build.0 = Release|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Unicode|x64.ActiveCfg = Release|x64 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Unicode|x64.Build.0 = Release|x64 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release|Win32.ActiveCfg = Release|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release|Win32.Build.0 = Release|Win32 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release|x64.ActiveCfg = Release|x64 - {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/contrib/cppunit-1.12.1/src/Makefile.am b/contrib/cppunit-1.12.1/src/Makefile.am deleted file mode 100644 index 81430b4e3..000000000 --- a/contrib/cppunit-1.12.1/src/Makefile.am +++ /dev/null @@ -1,4 +0,0 @@ -SUBDIRS = cppunit DllPlugInTester - -# already handled by toplevel dist-hook. -# DIST_SUBDIRS = msvc6 \ No newline at end of file diff --git a/contrib/cppunit-1.12.1/src/Makefile.in b/contrib/cppunit-1.12.1/src/Makefile.in deleted file mode 100644 index 089cc494f..000000000 --- a/contrib/cppunit-1.12.1/src/Makefile.in +++ /dev/null @@ -1,514 +0,0 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = src -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = \ - $(top_srcdir)/config/ac_create_prefix_config_h.m4 \ - $(top_srcdir)/config/ac_cxx_have_sstream.m4 \ - $(top_srcdir)/config/ac_cxx_have_strstream.m4 \ - $(top_srcdir)/config/ac_cxx_namespaces.m4 \ - $(top_srcdir)/config/ac_cxx_rtti.m4 \ - $(top_srcdir)/config/ac_cxx_string_compare_string_first.m4 \ - $(top_srcdir)/config/ac_dll.m4 \ - $(top_srcdir)/config/ax_cxx_gcc_abi_demangle.m4 \ - $(top_srcdir)/config/ax_cxx_have_isfinite.m4 \ - $(top_srcdir)/config/bb_enable_doxygen.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config/config.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -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@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CPPUNIT_BINARY_AGE = @CPPUNIT_BINARY_AGE@ -CPPUNIT_INTERFACE_AGE = @CPPUNIT_INTERFACE_AGE@ -CPPUNIT_MAJOR_VERSION = @CPPUNIT_MAJOR_VERSION@ -CPPUNIT_MICRO_VERSION = @CPPUNIT_MICRO_VERSION@ -CPPUNIT_MINOR_VERSION = @CPPUNIT_MINOR_VERSION@ -CPPUNIT_VERSION = @CPPUNIT_VERSION@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOT = @DOT@ -DOXYGEN = @DOXYGEN@ -DSYMUTIL = @DSYMUTIL@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBADD_DL = @LIBADD_DL@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -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@ -enable_dot = @enable_dot@ -enable_html_docs = @enable_html_docs@ -enable_latex_docs = @enable_latex_docs@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -SUBDIRS = cppunit DllPlugInTester -all: all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -$(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -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; nonemtpy = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - 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; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && 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 $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(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: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: - -install-dvi: install-dvi-recursive - -install-exec-am: - -install-html: install-html-recursive - -install-info: install-info-recursive - -install-man: - -install-pdf: install-pdf-recursive - -install-ps: install-ps-recursive - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: - -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ - install-strip - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean 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 installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am - - -# already handled by toplevel dist-hook. -# DIST_SUBDIRS = msvc6 -# 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/contrib/cppunit-1.12.1/src/cppunit/AdditionalMessage.cpp b/contrib/cppunit-1.12.1/src/cppunit/AdditionalMessage.cpp deleted file mode 100644 index 9f3da1392..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/AdditionalMessage.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include - - -CPPUNIT_NS_BEGIN - - -AdditionalMessage::AdditionalMessage() -{ -} - - -AdditionalMessage::AdditionalMessage( const std::string &detail1 ) -{ - if ( !detail1.empty() ) - addDetail( detail1 ); -} - - -AdditionalMessage::AdditionalMessage( const char *detail1 ) -{ - if ( detail1 && !std::string( detail1 ).empty() ) - addDetail( std::string(detail1) ); -} - - -AdditionalMessage::AdditionalMessage( const Message &other ) - : SuperClass( other ) -{ -} - - -AdditionalMessage & -AdditionalMessage::operator =( const Message &other ) -{ - SuperClass::operator =( other ); - - return *this; -} - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/Asserter.cpp b/contrib/cppunit-1.12.1/src/cppunit/Asserter.cpp deleted file mode 100644 index a9cf95cb4..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/Asserter.cpp +++ /dev/null @@ -1,101 +0,0 @@ -#include -#include -#include - - -CPPUNIT_NS_BEGIN - - -void -Asserter::fail( std::string message, - const SourceLine &sourceLine ) -{ - fail( Message( "assertion failed", message ), sourceLine ); -} - - -void -Asserter::fail( const Message &message, - const SourceLine &sourceLine ) -{ - throw Exception( message, sourceLine ); -} - - -void -Asserter::failIf( bool shouldFail, - const Message &message, - const SourceLine &sourceLine ) -{ - if ( shouldFail ) - fail( message, sourceLine ); -} - - -void -Asserter::failIf( bool shouldFail, - std::string message, - const SourceLine &sourceLine ) -{ - failIf( shouldFail, Message( "assertion failed", message ), sourceLine ); -} - - -std::string -Asserter::makeExpected( const std::string &expectedValue ) -{ - return "Expected: " + expectedValue; -} - - -std::string -Asserter::makeActual( const std::string &actualValue ) -{ - return "Actual : " + actualValue; -} - - -Message -Asserter::makeNotEqualMessage( const std::string &expectedValue, - const std::string &actualValue, - const AdditionalMessage &additionalMessage, - const std::string &shortDescription ) -{ - Message message( shortDescription, - makeExpected( expectedValue ), - makeActual( actualValue ) ); - message.addDetail( additionalMessage ); - - return message; -} - - -void -Asserter::failNotEqual( std::string expected, - std::string actual, - const SourceLine &sourceLine, - const AdditionalMessage &additionalMessage, - std::string shortDescription ) -{ - fail( makeNotEqualMessage( expected, - actual, - additionalMessage, - shortDescription ), - sourceLine ); -} - - -void -Asserter::failNotEqualIf( bool shouldFail, - std::string expected, - std::string actual, - const SourceLine &sourceLine, - const AdditionalMessage &additionalMessage, - std::string shortDescription ) -{ - if ( shouldFail ) - failNotEqual( expected, actual, sourceLine, additionalMessage, shortDescription ); -} - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/BeOsDynamicLibraryManager.cpp b/contrib/cppunit-1.12.1/src/cppunit/BeOsDynamicLibraryManager.cpp deleted file mode 100644 index b8568be0c..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/BeOsDynamicLibraryManager.cpp +++ /dev/null @@ -1,49 +0,0 @@ -#include - -#if defined(CPPUNIT_HAVE_BEOS_DLL_LOADER) -#include - -#include - - -CPPUNIT_NS_BEGIN - - -DynamicLibraryManager::LibraryHandle -DynamicLibraryManager::doLoadLibrary( const std::string &libraryName ) -{ - return (LibraryHandle)::load_add_on( libraryName.c_str() ); -} - - -void -DynamicLibraryManager::doReleaseLibrary() -{ - ::unload_add_on( (image_id)m_libraryHandle ); -} - - -DynamicLibraryManager::Symbol -DynamicLibraryManager::doFindSymbol( const std::string &symbol ) -{ - void *symbolPointer; - if ( ::get_image_symbol( (image_id)m_libraryHandle, - symbol.c_str(), - B_SYMBOL_TYPE_TEXT, - &symbolPointer ) == B_OK ) - return symnolPointer; - return NULL; -} - - -std::string -DynamicLibraryManager::getLastErrorDetail() const -{ - return ""; -} - - -CPPUNIT_NS_END - - -#endif // defined(CPPUNIT_HAVE_BEOS_DLL_LOADER) diff --git a/contrib/cppunit-1.12.1/src/cppunit/BriefTestProgressListener.cpp b/contrib/cppunit-1.12.1/src/cppunit/BriefTestProgressListener.cpp deleted file mode 100644 index c38cea067..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/BriefTestProgressListener.cpp +++ /dev/null @@ -1,49 +0,0 @@ -#include -#include -#include -#include - - -CPPUNIT_NS_BEGIN - - -BriefTestProgressListener::BriefTestProgressListener() - : m_lastTestFailed( false ) -{ -} - - -BriefTestProgressListener::~BriefTestProgressListener() -{ -} - - -void -BriefTestProgressListener::startTest( Test *test ) -{ - stdCOut() << test->getName(); - stdCOut().flush(); - - m_lastTestFailed = false; -} - - -void -BriefTestProgressListener::addFailure( const TestFailure &failure ) -{ - stdCOut() << " : " << (failure.isError() ? "error" : "assertion"); - m_lastTestFailed = true; -} - - -void -BriefTestProgressListener::endTest( Test *test ) -{ - if ( !m_lastTestFailed ) - stdCOut() << " : OK"; - stdCOut() << "\n"; -} - - -CPPUNIT_NS_END - diff --git a/contrib/cppunit-1.12.1/src/cppunit/CompilerOutputter.cpp b/contrib/cppunit-1.12.1/src/cppunit/CompilerOutputter.cpp deleted file mode 100644 index 8196a5f87..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/CompilerOutputter.cpp +++ /dev/null @@ -1,216 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include - - -CPPUNIT_NS_BEGIN - - -CompilerOutputter::CompilerOutputter( TestResultCollector *result, - OStream &stream, - const std::string &locationFormat ) - : m_result( result ) - , m_stream( stream ) - , m_locationFormat( locationFormat ) - , m_wrapColumn( CPPUNIT_WRAP_COLUMN ) -{ -} - - -CompilerOutputter::~CompilerOutputter() -{ -} - - -void -CompilerOutputter::setLocationFormat( const std::string &locationFormat ) -{ - m_locationFormat = locationFormat; -} - - -CompilerOutputter * -CompilerOutputter::defaultOutputter( TestResultCollector *result, - OStream &stream ) -{ - return new CompilerOutputter( result, stream ); -} - - -void -CompilerOutputter::write() -{ - if ( m_result->wasSuccessful() ) - printSuccess(); - else - printFailureReport(); -} - - -void -CompilerOutputter::printSuccess() -{ - m_stream << "OK (" << m_result->runTests() << ")\n"; -} - - -void -CompilerOutputter::printFailureReport() -{ - printFailuresList(); - printStatistics(); -} - - -void -CompilerOutputter::printFailuresList() -{ - for ( int index =0; index < m_result->testFailuresTotal(); ++index) - { - printFailureDetail( m_result->failures()[ index ] ); - } -} - - -void -CompilerOutputter::printFailureDetail( TestFailure *failure ) -{ - printFailureLocation( failure->sourceLine() ); - printFailureType( failure ); - printFailedTestName( failure ); - printFailureMessage( failure ); -} - - -void -CompilerOutputter::printFailureLocation( SourceLine sourceLine ) -{ - if ( !sourceLine.isValid() ) - { - m_stream << "##Failure Location unknown## : "; - return; - } - - std::string location; - for ( unsigned int index = 0; index < m_locationFormat.length(); ++index ) - { - char c = m_locationFormat[ index ]; - if ( c == '%' && ( index+1 < m_locationFormat.length() ) ) - { - char command = m_locationFormat[index+1]; - if ( processLocationFormatCommand( command, sourceLine ) ) - { - ++index; - continue; - } - } - - m_stream << c; - } -} - - -bool -CompilerOutputter::processLocationFormatCommand( char command, - const SourceLine &sourceLine ) -{ - switch ( command ) - { - case 'p': - m_stream << sourceLine.fileName(); - return true; - case 'l': - m_stream << sourceLine.lineNumber(); - return true; - case 'f': - m_stream << extractBaseName( sourceLine.fileName() ); - return true; - } - - return false; -} - - -std::string -CompilerOutputter::extractBaseName( const std::string &fileName ) const -{ - int indexLastDirectorySeparator = fileName.find_last_of( '/' ); - - if ( indexLastDirectorySeparator < 0 ) - indexLastDirectorySeparator = fileName.find_last_of( '\\' ); - - if ( indexLastDirectorySeparator < 0 ) - return fileName; - - return fileName.substr( indexLastDirectorySeparator +1 ); -} - - -void -CompilerOutputter::printFailureType( TestFailure *failure ) -{ - m_stream << (failure->isError() ? "Error" : "Assertion"); -} - - -void -CompilerOutputter::printFailedTestName( TestFailure *failure ) -{ - m_stream << "\nTest name: " << failure->failedTestName(); -} - - -void -CompilerOutputter::printFailureMessage( TestFailure *failure ) -{ - m_stream << "\n"; - Exception *thrownException = failure->thrownException(); - m_stream << thrownException->message().shortDescription() << "\n"; - - std::string message = thrownException->message().details(); - if ( m_wrapColumn > 0 ) - message = StringTools::wrap( message, m_wrapColumn ); - - m_stream << message << "\n"; -} - - -void -CompilerOutputter::printStatistics() -{ - m_stream << "Failures !!!\n"; - m_stream << "Run: " << m_result->runTests() << " " - << "Failure total: " << m_result->testFailuresTotal() << " " - << "Failures: " << m_result->testFailures() << " " - << "Errors: " << m_result->testErrors() - << "\n"; -} - - -void -CompilerOutputter::setWrapColumn( int wrapColumn ) -{ - m_wrapColumn = wrapColumn; -} - - -void -CompilerOutputter::setNoWrap() -{ - m_wrapColumn = 0; -} - - -int -CompilerOutputter::wrapColumn() const -{ - return m_wrapColumn; -} - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/DefaultProtector.cpp b/contrib/cppunit-1.12.1/src/cppunit/DefaultProtector.cpp deleted file mode 100644 index 6fb306b25..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/DefaultProtector.cpp +++ /dev/null @@ -1,42 +0,0 @@ -#include -#include -#include "DefaultProtector.h" - - -CPPUNIT_NS_BEGIN - - -bool -DefaultProtector::protect( const Functor &functor, - const ProtectorContext &context ) -{ - try - { - return functor(); - } - catch ( Exception &failure ) - { - reportFailure( context, failure ); - } - catch ( std::exception &e ) - { - std::string shortDescription( "uncaught exception of type " ); -#if CPPUNIT_USE_TYPEINFO_NAME - shortDescription += TypeInfoHelper::getClassName( typeid(e) ); -#else - shortDescription += "std::exception (or derived)."; -#endif - Message message( shortDescription, e.what() ); - reportError( context, message ); - } - catch ( ... ) - { - reportError( context, - Message( "uncaught exception of unknown type") ); - } - - return false; -} - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/DefaultProtector.h b/contrib/cppunit-1.12.1/src/cppunit/DefaultProtector.h deleted file mode 100644 index 4a76ea013..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/DefaultProtector.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef CPPUNIT_DEFAULTPROTECTOR_H -#define CPPUNIT_DEFAULTPROTECTOR_H - -#include - -CPPUNIT_NS_BEGIN - -/*! \brief Default protector that catch all exceptions (Implementation). - * - * Implementation detail. - * \internal This protector catch and generate a failure for the following - * exception types: - * - Exception - * - std::exception - * - ... - */ -class DefaultProtector : public Protector -{ -public: - bool protect( const Functor &functor, - const ProtectorContext &context ); -}; - -CPPUNIT_NS_END - -#endif // CPPUNIT_DEFAULTPROTECTOR_H - diff --git a/contrib/cppunit-1.12.1/src/cppunit/DllMain.cpp b/contrib/cppunit-1.12.1/src/cppunit/DllMain.cpp deleted file mode 100644 index 51fe31ece..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/DllMain.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#define WIN32_LEAN_AND_MEAN -#define NOGDI -#define NOUSER -#define NOKERNEL -#define NOSOUND -#define BLENDFUNCTION void // for mingw & gcc - -#include - -BOOL APIENTRY -DllMain( HANDLE hModule, - DWORD ul_reason_for_call, - LPVOID lpReserved ) -{ - return TRUE; -} diff --git a/contrib/cppunit-1.12.1/src/cppunit/DynamicLibraryManager.cpp b/contrib/cppunit-1.12.1/src/cppunit/DynamicLibraryManager.cpp deleted file mode 100644 index e6f629455..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/DynamicLibraryManager.cpp +++ /dev/null @@ -1,77 +0,0 @@ -#include - -#if !defined(CPPUNIT_NO_TESTPLUGIN) -#include - -CPPUNIT_NS_BEGIN - - -DynamicLibraryManager::DynamicLibraryManager( const std::string &libraryFileName ) - : m_libraryHandle( NULL ) - , m_libraryName( libraryFileName ) -{ - loadLibrary( libraryFileName ); -} - - -DynamicLibraryManager::~DynamicLibraryManager() -{ - releaseLibrary(); -} - - -DynamicLibraryManager::Symbol -DynamicLibraryManager::findSymbol( const std::string &symbol ) -{ - try - { - Symbol symbolPointer = doFindSymbol( symbol ); - if ( symbolPointer != NULL ) - return symbolPointer; - } - catch ( ... ) - { - } - - throw DynamicLibraryManagerException( m_libraryName, - symbol, - DynamicLibraryManagerException::symbolNotFound ); - return NULL; // keep compiler happy -} - - -void -DynamicLibraryManager::loadLibrary( const std::string &libraryName ) -{ - try - { - releaseLibrary(); - m_libraryHandle = doLoadLibrary( libraryName ); - if ( m_libraryHandle != NULL ) - return; - } - catch (...) - { - } - - throw DynamicLibraryManagerException( m_libraryName, - getLastErrorDetail(), - DynamicLibraryManagerException::loadingFailed ); -} - - -void -DynamicLibraryManager::releaseLibrary() -{ - if ( m_libraryHandle != NULL ) - { - doReleaseLibrary(); - m_libraryHandle = NULL; - } -} - - -CPPUNIT_NS_END - - -#endif // !defined(CPPUNIT_NO_TESTPLUGIN) diff --git a/contrib/cppunit-1.12.1/src/cppunit/DynamicLibraryManagerException.cpp b/contrib/cppunit-1.12.1/src/cppunit/DynamicLibraryManagerException.cpp deleted file mode 100644 index 8498652e0..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/DynamicLibraryManagerException.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include - -#if !defined(CPPUNIT_NO_TESTPLUGIN) - -CPPUNIT_NS_BEGIN - - -DynamicLibraryManagerException::DynamicLibraryManagerException( - const std::string &libraryName, - const std::string &errorDetail, - Cause cause ) - : std::runtime_error( "" ), - m_cause( cause ) -{ - if ( cause == loadingFailed ) - m_message = "Failed to load dynamic library: " + libraryName + "\n" + - errorDetail; - else - m_message = "Symbol [" + errorDetail + "] not found in dynamic libary:" + - libraryName; -} - - -DynamicLibraryManagerException::Cause -DynamicLibraryManagerException::getCause() const -{ - return m_cause; -} - - -const char * -DynamicLibraryManagerException::what() const throw() -{ - return m_message.c_str(); -} - - -CPPUNIT_NS_END - - -#endif // !defined(CPPUNIT_NO_TESTPLUGIN) diff --git a/contrib/cppunit-1.12.1/src/cppunit/Exception.cpp b/contrib/cppunit-1.12.1/src/cppunit/Exception.cpp deleted file mode 100644 index 3bbe24b9b..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/Exception.cpp +++ /dev/null @@ -1,126 +0,0 @@ -#include - - -CPPUNIT_NS_BEGIN - - -#ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED -/*! - * \deprecated Use SourceLine::isValid() instead. - */ -const std::string Exception::UNKNOWNFILENAME = ""; - -/*! - * \deprecated Use SourceLine::isValid() instead. - */ -const long Exception::UNKNOWNLINENUMBER = -1; -#endif - - -Exception::Exception( const Exception &other ) - : std::exception( other ) -{ - m_message = other.m_message; - m_sourceLine = other.m_sourceLine; -} - - -Exception::Exception( const Message &message, - const SourceLine &sourceLine ) - : m_message( message ) - , m_sourceLine( sourceLine ) -{ -} - - -#ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED -Exception::Exception( std::string message, - long lineNumber, - std::string fileName ) - : m_message( message ) - , m_sourceLine( fileName, lineNumber ) -{ -} -#endif - - -Exception::~Exception() throw() -{ -} - - -Exception & -Exception::operator =( const Exception& other ) -{ -// Don't call superclass operator =(). VC++ STL implementation -// has a bug. It calls the destructor and copy constructor of -// std::exception() which reset the virtual table to std::exception. -// SuperClass::operator =(other); - - if ( &other != this ) - { - m_message = other.m_message; - m_sourceLine = other.m_sourceLine; - } - - return *this; -} - - -const char* -Exception::what() const throw() -{ - Exception *mutableThis = CPPUNIT_CONST_CAST( Exception *, this ); - mutableThis->m_whatMessage = m_message.shortDescription() + "\n" + - m_message.details(); - return m_whatMessage.c_str(); -} - - -SourceLine -Exception::sourceLine() const -{ - return m_sourceLine; -} - - -Message -Exception::message() const -{ - return m_message; -} - - -void -Exception::setMessage( const Message &message ) -{ - m_message = message; -} - - -#ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED -long -Exception::lineNumber() const -{ - return m_sourceLine.isValid() ? m_sourceLine.lineNumber() : - UNKNOWNLINENUMBER; -} - - -std::string -Exception::fileName() const -{ - return m_sourceLine.isValid() ? m_sourceLine.fileName() : - UNKNOWNFILENAME; -} -#endif - - -Exception * -Exception::clone() const -{ - return new Exception( *this ); -} - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/Makefile.am b/contrib/cppunit-1.12.1/src/cppunit/Makefile.am deleted file mode 100644 index d5a60bf73..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/Makefile.am +++ /dev/null @@ -1,67 +0,0 @@ -# -# $Id: Makefile.am,v 1.44 2005/06/14 21:28:46 blep Exp $ -# - -EXTRA_DIST = cppunit.dsp cppunit_dll.dsp DllMain.cpp -INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include - -lib_LTLIBRARIES = libcppunit.la - -libcppunit_la_SOURCES = \ - AdditionalMessage.cpp \ - Asserter.cpp \ - BeOsDynamicLibraryManager.cpp \ - BriefTestProgressListener.cpp \ - CompilerOutputter.cpp \ - DefaultProtector.h \ - DefaultProtector.cpp \ - DynamicLibraryManager.cpp \ - DynamicLibraryManagerException.cpp \ - Exception.cpp \ - Message.cpp \ - RepeatedTest.cpp \ - PlugInManager.cpp \ - PlugInParameters.cpp \ - Protector.cpp \ - ProtectorChain.h \ - ProtectorContext.h \ - ProtectorChain.cpp \ - SourceLine.cpp \ - StringTools.cpp \ - SynchronizedObject.cpp \ - Test.cpp \ - TestAssert.cpp \ - TestCase.cpp \ - TestCaseDecorator.cpp \ - TestComposite.cpp \ - TestDecorator.cpp \ - TestFactoryRegistry.cpp \ - TestFailure.cpp \ - TestLeaf.cpp \ - TestNamer.cpp \ - TestPath.cpp \ - TestPlugInDefaultImpl.cpp \ - TestResult.cpp \ - TestResultCollector.cpp \ - TestRunner.cpp \ - TestSetUp.cpp \ - TestSuccessListener.cpp \ - TestSuite.cpp \ - TestSuiteBuilderContext.cpp \ - TextOutputter.cpp \ - TextTestProgressListener.cpp \ - TextTestResult.cpp \ - TextTestRunner.cpp \ - TypeInfoHelper.cpp \ - UnixDynamicLibraryManager.cpp \ - ShlDynamicLibraryManager.cpp \ - XmlDocument.cpp \ - XmlElement.cpp \ - XmlOutputter.cpp \ - XmlOutputterHook.cpp \ - Win32DynamicLibraryManager.cpp - -libcppunit_la_LDFLAGS= \ - -no-undefined -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ - -release $(LT_RELEASE) - diff --git a/contrib/cppunit-1.12.1/src/cppunit/Makefile.in b/contrib/cppunit-1.12.1/src/cppunit/Makefile.in deleted file mode 100644 index aa68cb040..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/Makefile.in +++ /dev/null @@ -1,632 +0,0 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 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@ - -# -# $Id: Makefile.am,v 1.44 2005/06/14 21:28:46 blep Exp $ -# - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = src/cppunit -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = \ - $(top_srcdir)/config/ac_create_prefix_config_h.m4 \ - $(top_srcdir)/config/ac_cxx_have_sstream.m4 \ - $(top_srcdir)/config/ac_cxx_have_strstream.m4 \ - $(top_srcdir)/config/ac_cxx_namespaces.m4 \ - $(top_srcdir)/config/ac_cxx_rtti.m4 \ - $(top_srcdir)/config/ac_cxx_string_compare_string_first.m4 \ - $(top_srcdir)/config/ac_dll.m4 \ - $(top_srcdir)/config/ax_cxx_gcc_abi_demangle.m4 \ - $(top_srcdir)/config/ax_cxx_have_isfinite.m4 \ - $(top_srcdir)/config/bb_enable_doxygen.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config/config.h -CONFIG_CLEAN_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(libdir)" -libLTLIBRARIES_INSTALL = $(INSTALL) -LTLIBRARIES = $(lib_LTLIBRARIES) -libcppunit_la_LIBADD = -am_libcppunit_la_OBJECTS = AdditionalMessage.lo Asserter.lo \ - BeOsDynamicLibraryManager.lo BriefTestProgressListener.lo \ - CompilerOutputter.lo DefaultProtector.lo \ - DynamicLibraryManager.lo DynamicLibraryManagerException.lo \ - Exception.lo Message.lo RepeatedTest.lo PlugInManager.lo \ - PlugInParameters.lo Protector.lo ProtectorChain.lo \ - SourceLine.lo StringTools.lo SynchronizedObject.lo Test.lo \ - TestAssert.lo TestCase.lo TestCaseDecorator.lo \ - TestComposite.lo TestDecorator.lo TestFactoryRegistry.lo \ - TestFailure.lo TestLeaf.lo TestNamer.lo TestPath.lo \ - TestPlugInDefaultImpl.lo TestResult.lo TestResultCollector.lo \ - TestRunner.lo TestSetUp.lo TestSuccessListener.lo TestSuite.lo \ - TestSuiteBuilderContext.lo TextOutputter.lo \ - TextTestProgressListener.lo TextTestResult.lo \ - TextTestRunner.lo TypeInfoHelper.lo \ - UnixDynamicLibraryManager.lo ShlDynamicLibraryManager.lo \ - XmlDocument.lo XmlElement.lo XmlOutputter.lo \ - XmlOutputterHook.lo Win32DynamicLibraryManager.lo -libcppunit_la_OBJECTS = $(am_libcppunit_la_OBJECTS) -libcppunit_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ - $(CXXFLAGS) $(libcppunit_la_LDFLAGS) $(LDFLAGS) -o $@ -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/config -depcomp = $(SHELL) $(top_srcdir)/config/depcomp -am__depfiles_maybe = depfiles -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(libcppunit_la_SOURCES) -DIST_SOURCES = $(libcppunit_la_SOURCES) -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@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CPPUNIT_BINARY_AGE = @CPPUNIT_BINARY_AGE@ -CPPUNIT_INTERFACE_AGE = @CPPUNIT_INTERFACE_AGE@ -CPPUNIT_MAJOR_VERSION = @CPPUNIT_MAJOR_VERSION@ -CPPUNIT_MICRO_VERSION = @CPPUNIT_MICRO_VERSION@ -CPPUNIT_MINOR_VERSION = @CPPUNIT_MINOR_VERSION@ -CPPUNIT_VERSION = @CPPUNIT_VERSION@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOT = @DOT@ -DOXYGEN = @DOXYGEN@ -DSYMUTIL = @DSYMUTIL@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBADD_DL = @LIBADD_DL@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -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@ -enable_dot = @enable_dot@ -enable_html_docs = @enable_html_docs@ -enable_latex_docs = @enable_latex_docs@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -EXTRA_DIST = cppunit.dsp cppunit_dll.dsp DllMain.cpp -INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -lib_LTLIBRARIES = libcppunit.la -libcppunit_la_SOURCES = \ - AdditionalMessage.cpp \ - Asserter.cpp \ - BeOsDynamicLibraryManager.cpp \ - BriefTestProgressListener.cpp \ - CompilerOutputter.cpp \ - DefaultProtector.h \ - DefaultProtector.cpp \ - DynamicLibraryManager.cpp \ - DynamicLibraryManagerException.cpp \ - Exception.cpp \ - Message.cpp \ - RepeatedTest.cpp \ - PlugInManager.cpp \ - PlugInParameters.cpp \ - Protector.cpp \ - ProtectorChain.h \ - ProtectorContext.h \ - ProtectorChain.cpp \ - SourceLine.cpp \ - StringTools.cpp \ - SynchronizedObject.cpp \ - Test.cpp \ - TestAssert.cpp \ - TestCase.cpp \ - TestCaseDecorator.cpp \ - TestComposite.cpp \ - TestDecorator.cpp \ - TestFactoryRegistry.cpp \ - TestFailure.cpp \ - TestLeaf.cpp \ - TestNamer.cpp \ - TestPath.cpp \ - TestPlugInDefaultImpl.cpp \ - TestResult.cpp \ - TestResultCollector.cpp \ - TestRunner.cpp \ - TestSetUp.cpp \ - TestSuccessListener.cpp \ - TestSuite.cpp \ - TestSuiteBuilderContext.cpp \ - TextOutputter.cpp \ - TextTestProgressListener.cpp \ - TextTestResult.cpp \ - TextTestRunner.cpp \ - TypeInfoHelper.cpp \ - UnixDynamicLibraryManager.cpp \ - ShlDynamicLibraryManager.cpp \ - XmlDocument.cpp \ - XmlElement.cpp \ - XmlOutputter.cpp \ - XmlOutputterHook.cpp \ - Win32DynamicLibraryManager.cpp - -libcppunit_la_LDFLAGS = \ - -no-undefined -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ - -release $(LT_RELEASE) - -all: all-am - -.SUFFIXES: -.SUFFIXES: .cpp .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/cppunit/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/cppunit/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 -install-libLTLIBRARIES: $(lib_LTLIBRARIES) - @$(NORMAL_INSTALL) - test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - if test -f $$p; then \ - f=$(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ - else :; fi; \ - done - -uninstall-libLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - p=$(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ - done - -clean-libLTLIBRARIES: - -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -libcppunit.la: $(libcppunit_la_OBJECTS) $(libcppunit_la_DEPENDENCIES) - $(libcppunit_la_LINK) -rpath $(libdir) $(libcppunit_la_OBJECTS) $(libcppunit_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AdditionalMessage.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Asserter.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BeOsDynamicLibraryManager.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BriefTestProgressListener.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CompilerOutputter.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultProtector.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DynamicLibraryManager.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DynamicLibraryManagerException.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Exception.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Message.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PlugInManager.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PlugInParameters.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Protector.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ProtectorChain.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RepeatedTest.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ShlDynamicLibraryManager.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SourceLine.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StringTools.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SynchronizedObject.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Test.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestAssert.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestCase.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestCaseDecorator.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestComposite.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestDecorator.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestFactoryRegistry.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestFailure.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestLeaf.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestNamer.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestPath.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestPlugInDefaultImpl.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestResult.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestResultCollector.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestRunner.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestSetUp.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestSuccessListener.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestSuite.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestSuiteBuilderContext.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TextOutputter.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TextTestProgressListener.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TextTestResult.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TextTestRunner.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TypeInfoHelper.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UnixDynamicLibraryManager.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Win32DynamicLibraryManager.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XmlDocument.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XmlElement.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XmlOutputter.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XmlOutputterHook.Plo@am__quote@ - -.cpp.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ mv -f $(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@ mv -f $(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@ mv -f $(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; nonemtpy = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - 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)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && 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 $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(LTLIBRARIES) -installdirs: - for dir in "$(DESTDIR)$(libdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(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: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ - mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-exec-am: install-libLTLIBRARIES - -install-html: install-html-am - -install-info: install-info-am - -install-man: - -install-pdf: install-pdf-am - -install-ps: install-ps-am - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-libLTLIBRARIES - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libLTLIBRARIES clean-libtool 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-libLTLIBRARIES install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-libLTLIBRARIES - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/contrib/cppunit-1.12.1/src/cppunit/Message.cpp b/contrib/cppunit-1.12.1/src/cppunit/Message.cpp deleted file mode 100644 index 9d6a0e92b..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/Message.cpp +++ /dev/null @@ -1,170 +0,0 @@ -#include -#include - - -CPPUNIT_NS_BEGIN - - -Message::Message() -{ -} - -Message::Message( const Message &other ) -{ - *this = other; -} - - -Message::Message( const std::string &shortDescription ) - : m_shortDescription( shortDescription ) -{ -} - - -Message::Message( const std::string &shortDescription, - const std::string &detail1 ) - : m_shortDescription( shortDescription ) -{ - addDetail( detail1 ); -} - - -Message::Message( const std::string &shortDescription, - const std::string &detail1, - const std::string &detail2 ) - : m_shortDescription( shortDescription ) -{ - addDetail( detail1, detail2 ); -} - - -Message::Message( const std::string &shortDescription, - const std::string &detail1, - const std::string &detail2, - const std::string &detail3 ) - : m_shortDescription( shortDescription ) -{ - addDetail( detail1, detail2, detail3 ); -} - -Message & -Message::operator =( const Message &other ) -{ - if ( this != &other ) - { - m_shortDescription = other.m_shortDescription.c_str(); - m_details.clear(); - Details::const_iterator it = other.m_details.begin(); - Details::const_iterator itEnd = other.m_details.end(); - while ( it != itEnd ) - m_details.push_back( (*it++).c_str() ); - } - - return *this; -} - - -const std::string & -Message::shortDescription() const -{ - return m_shortDescription; -} - - -int -Message::detailCount() const -{ - return m_details.size(); -} - - -std::string -Message::detailAt( int index ) const -{ - if ( index < 0 || index >= detailCount() ) - throw std::invalid_argument( "Message::detailAt() : invalid index" ); - - return m_details[ index ]; -} - - -std::string -Message::details() const -{ - std::string details; - for ( Details::const_iterator it = m_details.begin(); it != m_details.end(); ++it ) - { - details += "- "; - details += *it; - details += '\n'; - } - return details; -} - - -void -Message::clearDetails() -{ - m_details.clear(); -} - - -void -Message::addDetail( const std::string &detail ) -{ - m_details.push_back( detail ); -} - - -void -Message::addDetail( const std::string &detail1, - const std::string &detail2 ) -{ - addDetail( detail1 ); - addDetail( detail2 ); -} - - -void -Message::addDetail( const std::string &detail1, - const std::string &detail2, - const std::string &detail3 ) -{ - addDetail( detail1, detail2 ); - addDetail( detail3 ); -} - - -void -Message::addDetail( const Message &message ) -{ - m_details.insert( m_details.end(), - message.m_details.begin(), - message.m_details.end() ); -} - - -void -Message::setShortDescription( const std::string &shortDescription ) -{ - m_shortDescription = shortDescription; -} - - -bool -Message::operator ==( const Message &other ) const -{ - return m_shortDescription == other.m_shortDescription && - m_details == other.m_details; -} - - -bool -Message::operator !=( const Message &other ) const -{ - return !( *this == other ); -} - - -CPPUNIT_NS_END - diff --git a/contrib/cppunit-1.12.1/src/cppunit/PlugInManager.cpp b/contrib/cppunit-1.12.1/src/cppunit/PlugInManager.cpp deleted file mode 100644 index b595deefb..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/PlugInManager.cpp +++ /dev/null @@ -1,110 +0,0 @@ -#include -#include - -#if !defined(CPPUNIT_NO_TESTPLUGIN) -#include -#include -#include -#include - - -CPPUNIT_NS_BEGIN - - -PlugInManager::PlugInManager() -{ -} - - -PlugInManager::~PlugInManager() -{ - for ( PlugIns::iterator it = m_plugIns.begin(); it != m_plugIns.end(); ++it ) - unload( *it ); -} - - -void -PlugInManager::load( const std::string &libraryFileName, - const PlugInParameters ¶meters ) -{ - PlugInInfo info; - info.m_fileName = libraryFileName; - info.m_manager = new DynamicLibraryManager( libraryFileName ); - - TestPlugInSignature plug = (TestPlugInSignature)info.m_manager->findSymbol( - CPPUNIT_STRINGIZE( CPPUNIT_PLUGIN_EXPORTED_NAME ) ); - info.m_interface = (*plug)(); - - m_plugIns.push_back( info ); - - info.m_interface->initialize( &TestFactoryRegistry::getRegistry(), parameters ); -} - - -void -PlugInManager::unload( const std::string &libraryFileName ) -{ - for ( PlugIns::iterator it = m_plugIns.begin(); it != m_plugIns.end(); ++it ) - { - if ( (*it).m_fileName == libraryFileName ) - { - unload( *it ); - m_plugIns.erase( it ); - break; - } - } -} - - -void -PlugInManager::addListener( TestResult *eventManager ) -{ - for ( PlugIns::iterator it = m_plugIns.begin(); it != m_plugIns.end(); ++it ) - (*it).m_interface->addListener( eventManager ); -} - - -void -PlugInManager::removeListener( TestResult *eventManager ) -{ - for ( PlugIns::iterator it = m_plugIns.begin(); it != m_plugIns.end(); ++it ) - (*it).m_interface->removeListener( eventManager ); -} - - -void -PlugInManager::unload( PlugInInfo &plugIn ) -{ - try - { - plugIn.m_interface->uninitialize( &TestFactoryRegistry::getRegistry() ); - delete plugIn.m_manager; - } - catch (...) - { - delete plugIn.m_manager; - plugIn.m_manager = NULL; - throw; - } -} - - -void -PlugInManager::addXmlOutputterHooks( XmlOutputter *outputter ) -{ - for ( PlugIns::iterator it = m_plugIns.begin(); it != m_plugIns.end(); ++it ) - (*it).m_interface->addXmlOutputterHooks( outputter ); -} - - -void -PlugInManager::removeXmlOutputterHooks() -{ - for ( PlugIns::iterator it = m_plugIns.begin(); it != m_plugIns.end(); ++it ) - (*it).m_interface->removeXmlOutputterHooks(); -} - - -CPPUNIT_NS_END - -#endif // !defined(CPPUNIT_NO_TESTPLUGIN) diff --git a/contrib/cppunit-1.12.1/src/cppunit/PlugInParameters.cpp b/contrib/cppunit-1.12.1/src/cppunit/PlugInParameters.cpp deleted file mode 100644 index 1b532f9fa..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/PlugInParameters.cpp +++ /dev/null @@ -1,28 +0,0 @@ -#include - -#if !defined(CPPUNIT_NO_TESTPLUGIN) - -CPPUNIT_NS_BEGIN - - -PlugInParameters::PlugInParameters( const std::string &commandLine ) - : m_commandLine( commandLine ) -{ -} - - -PlugInParameters::~PlugInParameters() -{ -} - - -std::string -PlugInParameters::getCommandLine() const -{ - return m_commandLine; -} - - -CPPUNIT_NS_END - -#endif // !defined(CPPUNIT_NO_TESTPLUGIN) diff --git a/contrib/cppunit-1.12.1/src/cppunit/Protector.cpp b/contrib/cppunit-1.12.1/src/cppunit/Protector.cpp deleted file mode 100644 index 5c171ec46..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/Protector.cpp +++ /dev/null @@ -1,86 +0,0 @@ -#include -#include -#include -#include -#include "ProtectorContext.h" -#include - -CPPUNIT_NS_BEGIN - -Functor::~Functor() -{ -} - - -Protector::~Protector() -{ -} - - -void -Protector::reportError( const ProtectorContext &context, - const Exception &error ) const -{ - std::auto_ptr actualError( error.clone() ); - actualError->setMessage( actualMessage( actualError->message(), context ) ); - context.m_result->addError( context.m_test, - actualError.release() ); -} - - - -void -Protector::reportError( const ProtectorContext &context, - const Message &message, - const SourceLine &sourceLine ) const -{ - reportError( context, Exception( message, sourceLine ) ); -} - - -void -Protector::reportFailure( const ProtectorContext &context, - const Exception &failure ) const -{ - std::auto_ptr actualFailure( failure.clone() ); - actualFailure->setMessage( actualMessage( actualFailure->message(), context ) ); - context.m_result->addFailure( context.m_test, - actualFailure.release() ); -} - - -Message -Protector::actualMessage( const Message &message, - const ProtectorContext &context ) const -{ - Message theActualMessage; - if ( context.m_shortDescription.empty() ) - theActualMessage = message; - else - { - theActualMessage = Message( context.m_shortDescription, - message.shortDescription() ); - theActualMessage.addDetail( message ); - } - - return theActualMessage; -} - - - - -ProtectorGuard::ProtectorGuard( TestResult *result, - Protector *protector ) - : m_result( result ) -{ - m_result->pushProtector( protector ); -} - - -ProtectorGuard::~ProtectorGuard() -{ - m_result->popProtector(); -} - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/ProtectorChain.cpp b/contrib/cppunit-1.12.1/src/cppunit/ProtectorChain.cpp deleted file mode 100644 index f528341eb..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/ProtectorChain.cpp +++ /dev/null @@ -1,86 +0,0 @@ -#include "ProtectorChain.h" - -CPPUNIT_NS_BEGIN - - -class ProtectorChain::ProtectFunctor : public Functor -{ -public: - ProtectFunctor( Protector *protector, - const Functor &functor, - const ProtectorContext &context ) - : m_protector( protector ) - , m_functor( functor ) - , m_context( context ) - { - } - - bool operator()() const - { - return m_protector->protect( m_functor, m_context ); - } - -private: - Protector *m_protector; - const Functor &m_functor; - const ProtectorContext &m_context; -}; - - -ProtectorChain::~ProtectorChain() -{ - while ( count() > 0 ) - pop(); -} - - -void -ProtectorChain::push( Protector *protector ) -{ - m_protectors.push_back( protector ); -} - - -void -ProtectorChain::pop() -{ - delete m_protectors.back(); - m_protectors.pop_back(); -} - -int -ProtectorChain::count() const -{ - return m_protectors.size(); -} - - -bool -ProtectorChain::protect( const Functor &functor, - const ProtectorContext &context ) -{ - if ( m_protectors.empty() ) - return functor(); - - Functors functors; - for ( int index = m_protectors.size()-1; index >= 0; --index ) - { - const Functor &protectedFunctor = - functors.empty() ? functor : *functors.back(); - - functors.push_back( new ProtectFunctor( m_protectors[index], - protectedFunctor, - context ) ); - } - - const Functor &outermostFunctor = *functors.back(); - bool succeed = outermostFunctor(); - - for ( unsigned int deletingIndex = 0; deletingIndex < m_protectors.size(); ++deletingIndex ) - delete functors[deletingIndex]; - - return succeed; -} - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/ProtectorChain.h b/contrib/cppunit-1.12.1/src/cppunit/ProtectorChain.h deleted file mode 100644 index 711b56fbc..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/ProtectorChain.h +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef CPPUNIT_PROTECTORCHAIN_H -#define CPPUNIT_PROTECTORCHAIN_H - -#include -#include - -#if CPPUNIT_NEED_DLL_DECL -#pragma warning( push ) -#pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z -#endif - - -CPPUNIT_NS_BEGIN - -/*! \brief Protector chain (Implementation). - * Implementation detail. - * \internal Protector that protect a Functor using a chain of nested Protector. - */ -class CPPUNIT_API ProtectorChain : public Protector -{ -public: - ~ProtectorChain(); - - void push( Protector *protector ); - - void pop(); - - int count() const; - - bool protect( const Functor &functor, - const ProtectorContext &context ); - -private: - class ProtectFunctor; - -private: - typedef CppUnitDeque Protectors; - Protectors m_protectors; - - typedef CppUnitDeque Functors; -}; - - -CPPUNIT_NS_END - -#if CPPUNIT_NEED_DLL_DECL -#pragma warning( pop ) -#endif - -#endif // CPPUNIT_PROTECTORCHAIN_H - diff --git a/contrib/cppunit-1.12.1/src/cppunit/ProtectorContext.h b/contrib/cppunit-1.12.1/src/cppunit/ProtectorContext.h deleted file mode 100644 index c3d496c49..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/ProtectorContext.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef CPPUNIT_PROTECTORCONTEXT_H -#define CPPUNIT_PROTECTORCONTEXT_H - -#include -#include - -CPPUNIT_NS_BEGIN - -class Test; -class TestResult; - - -/*! \brief Protector context (Implementation). - * Implementation detail. - * \internal Context use to report failure in Protector. - */ -class CPPUNIT_API ProtectorContext -{ -public: - ProtectorContext( Test *test, - TestResult *result, - const std::string &shortDescription ) - : m_test( test ) - , m_result( result ) - , m_shortDescription( shortDescription ) - { - } - - Test *m_test; - TestResult *m_result; - std::string m_shortDescription; -}; - - -CPPUNIT_NS_END - -#endif // CPPUNIT_PROTECTORCONTEXT_H - diff --git a/contrib/cppunit-1.12.1/src/cppunit/RepeatedTest.cpp b/contrib/cppunit-1.12.1/src/cppunit/RepeatedTest.cpp deleted file mode 100644 index 2533ca1d9..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/RepeatedTest.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -CPPUNIT_NS_BEGIN - - -// Counts the number of test cases that will be run by this test. -int -RepeatedTest::countTestCases() const -{ - return TestDecorator::countTestCases() * m_timesRepeat; -} - - -// Runs a repeated test -void -RepeatedTest::run( TestResult *result ) -{ - for ( int n = 0; n < m_timesRepeat; n++ ) - { - if ( result->shouldStop() ) - break; - - TestDecorator::run( result ); - } -} - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/ShlDynamicLibraryManager.cpp b/contrib/cppunit-1.12.1/src/cppunit/ShlDynamicLibraryManager.cpp deleted file mode 100644 index 9f4be2277..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/ShlDynamicLibraryManager.cpp +++ /dev/null @@ -1,53 +0,0 @@ -#include - -#if defined(CPPUNIT_HAVE_UNIX_SHL_LOADER) -#include - -#include -#include - - -CPPUNIT_NS_BEGIN - - -DynamicLibraryManager::LibraryHandle -DynamicLibraryManager::doLoadLibrary( const std::string &libraryName ) -{ - return ::shl_load(libraryName.c_str(), BIND_IMMEDIATE, 0L); -} - - -void -DynamicLibraryManager::doReleaseLibrary() -{ - ::shl_unload( (shl_t)m_libraryHandle); -} - - -DynamicLibraryManager::Symbol -DynamicLibraryManager::doFindSymbol( const std::string &symbol ) -{ - DynamicLibraryManager::Symbol L_symaddr = 0; - if ( ::shl_findsym( (shl_t*)(&m_libraryHandle), - symbol.c_str(), - TYPE_UNDEFINED, - &L_symaddr ) == 0 ) - { - return L_symaddr; - } - - return 0; -} - - -std::string -DynamicLibraryManager::getLastErrorDetail() const -{ - return ""; -} - - -CPPUNIT_NS_END - - -#endif // defined(CPPUNIT_HAVE_UNIX_SHL_LOADER) diff --git a/contrib/cppunit-1.12.1/src/cppunit/SourceLine.cpp b/contrib/cppunit-1.12.1/src/cppunit/SourceLine.cpp deleted file mode 100644 index dfadae3f0..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/SourceLine.cpp +++ /dev/null @@ -1,81 +0,0 @@ -#include - - -CPPUNIT_NS_BEGIN - - -SourceLine::SourceLine() : - m_lineNumber( -1 ) -{ -} - - -SourceLine::SourceLine( const SourceLine &other ) - : m_fileName( other.m_fileName.c_str() ) - , m_lineNumber( other.m_lineNumber ) -{ -} - - -SourceLine::SourceLine( const std::string &fileName, - int lineNumber ) - : m_fileName( fileName.c_str() ) - , m_lineNumber( lineNumber ) -{ -} - - -SourceLine & -SourceLine::operator =( const SourceLine &other ) -{ - if ( this != &other ) - { - m_fileName = other.m_fileName.c_str(); - m_lineNumber = other.m_lineNumber; - } - return *this; -} - - -SourceLine::~SourceLine() -{ -} - - -bool -SourceLine::isValid() const -{ - return !m_fileName.empty(); -} - - -int -SourceLine::lineNumber() const -{ - return m_lineNumber; -} - - -std::string -SourceLine::fileName() const -{ - return m_fileName; -} - - -bool -SourceLine::operator ==( const SourceLine &other ) const -{ - return m_fileName == other.m_fileName && - m_lineNumber == other.m_lineNumber; -} - - -bool -SourceLine::operator !=( const SourceLine &other ) const -{ - return !( *this == other ); -} - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/StringTools.cpp b/contrib/cppunit-1.12.1/src/cppunit/StringTools.cpp deleted file mode 100644 index 584a5c0bc..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/StringTools.cpp +++ /dev/null @@ -1,80 +0,0 @@ -#include -#include -#include - - -CPPUNIT_NS_BEGIN - - -std::string -StringTools::toString( int value ) -{ - OStringStream stream; - stream << value; - return stream.str(); -} - - -std::string -StringTools::toString( double value ) -{ - OStringStream stream; - stream << value; - return stream.str(); -} - - -StringTools::Strings -StringTools::split( const std::string &text, - char separator ) -{ - Strings splitText; - - std::string::const_iterator itStart = text.begin(); - while ( !text.empty() ) - { - std::string::const_iterator itSeparator = std::find( itStart, - text.end(), - separator ); - splitText.push_back( text.substr( itStart - text.begin(), - itSeparator - itStart ) ); - if ( itSeparator == text.end() ) - break; - itStart = itSeparator +1; - } - - return splitText; -} - - -std::string -StringTools::wrap( const std::string &text, - int wrapColumn ) -{ - const char lineBreak = '\n'; - Strings lines = split( text, lineBreak ); - - std::string wrapped; - for ( Strings::const_iterator it = lines.begin(); it != lines.end(); ++it ) - { - if ( it != lines.begin() ) - wrapped += lineBreak; - - const std::string &line = *it; - unsigned int index =0; - while ( index < line.length() ) - { - std::string lineSlice( line.substr( index, wrapColumn ) ); - wrapped += lineSlice; - index += wrapColumn; - if ( index < line.length() ) - wrapped += lineBreak; - } - } - - return wrapped; -} - - -CPPUNIT_NS_END - diff --git a/contrib/cppunit-1.12.1/src/cppunit/SynchronizedObject.cpp b/contrib/cppunit-1.12.1/src/cppunit/SynchronizedObject.cpp deleted file mode 100644 index 1764538e5..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/SynchronizedObject.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include - - -CPPUNIT_NS_BEGIN - - -SynchronizedObject::SynchronizedObject( SynchronizationObject *syncObject ) - : m_syncObject( syncObject == 0 ? new SynchronizationObject() : - syncObject ) -{ -} - - -SynchronizedObject::~SynchronizedObject() -{ - delete m_syncObject; -} - - -/** Accept a new synchronization object for protection of this instance - * TestResult assumes ownership of the object - */ -void -SynchronizedObject::setSynchronizationObject( SynchronizationObject *syncObject ) -{ - delete m_syncObject; - m_syncObject = syncObject; -} - - -CPPUNIT_NS_END - diff --git a/contrib/cppunit-1.12.1/src/cppunit/Test.cpp b/contrib/cppunit-1.12.1/src/cppunit/Test.cpp deleted file mode 100644 index fef8be793..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/Test.cpp +++ /dev/null @@ -1,97 +0,0 @@ -#include -#include -#include -#include - - -CPPUNIT_NS_BEGIN - - -Test * -Test::getChildTestAt( int index ) const -{ - checkIsValidIndex( index ); - return doGetChildTestAt( index ); -} - - -Test * -Test::findTest( const std::string &testName ) const -{ - TestPath path; - Test *mutableThis = CPPUNIT_CONST_CAST( Test *, this ); - mutableThis->findTestPath( testName, path ); - if ( !path.isValid() ) - throw std::invalid_argument( "No test named <" + testName + "> found in test <" - + getName() + ">." ); - return path.getChildTest(); -} - - -bool -Test::findTestPath( const std::string &testName, - TestPath &testPath ) const -{ - Test *mutableThis = CPPUNIT_CONST_CAST( Test *, this ); - if ( getName() == testName ) - { - testPath.add( mutableThis ); - return true; - } - - int childCount = getChildTestCount(); - for ( int childIndex =0; childIndex < childCount; ++childIndex ) - { - if ( getChildTestAt( childIndex )->findTestPath( testName, testPath ) ) - { - testPath.insert( mutableThis, 0 ); - return true; - } - } - - return false; -} - - -bool -Test::findTestPath( const Test *test, - TestPath &testPath ) const -{ - Test *mutableThis = CPPUNIT_CONST_CAST( Test *, this ); - if ( this == test ) - { - testPath.add( mutableThis ); - return true; - } - - int childCount = getChildTestCount(); - for ( int childIndex =0; childIndex < childCount; ++childIndex ) - { - if ( getChildTestAt( childIndex )->findTestPath( test, testPath ) ) - { - testPath.insert( mutableThis, 0 ); - return true; - } - } - - return false; -} - - -TestPath -Test::resolveTestPath( const std::string &testPath ) const -{ - Test *mutableThis = CPPUNIT_CONST_CAST( Test *, this ); - return TestPath( mutableThis, testPath ); -} - - -void -Test::checkIsValidIndex( int index ) const -{ - if ( index < 0 || index >= getChildTestCount() ) - throw std::out_of_range( "Test::checkValidIndex(): invalid index" ); -} - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/TestAssert.cpp b/contrib/cppunit-1.12.1/src/cppunit/TestAssert.cpp deleted file mode 100644 index 6e4e794b2..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/TestAssert.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include -#include - -CPPUNIT_NS_BEGIN - - -void -assertDoubleEquals( double expected, - double actual, - double delta, - SourceLine sourceLine, - const std::string &message ) -{ - AdditionalMessage msg( "Delta : " + - assertion_traits::toString(delta) ); - msg.addDetail( AdditionalMessage(message) ); - - bool equal; - if ( floatingPointIsFinite(expected) && floatingPointIsFinite(actual) ) - equal = fabs( expected - actual ) <= delta; - else - { - // If expected or actual is not finite, it may be +inf, -inf or NaN (Not a Number). - // Value of +inf or -inf leads to a true equality regardless of delta if both - // expected and actual have the same value (infinity sign). - // NaN Value should always lead to a failed equality. - if ( floatingPointIsUnordered(expected) || floatingPointIsUnordered(actual) ) - { - equal = false; // expected or actual is a NaN - } - else // ordered values, +inf or -inf comparison - { - equal = expected == actual; - } - } - - Asserter::failNotEqualIf( !equal, - assertion_traits::toString(expected), - assertion_traits::toString(actual), - sourceLine, - msg, - "double equality assertion failed" ); -} - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/TestCase.cpp b/contrib/cppunit-1.12.1/src/cppunit/TestCase.cpp deleted file mode 100644 index 13c05257f..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/TestCase.cpp +++ /dev/null @@ -1,137 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#if CPPUNIT_USE_TYPEINFO_NAME -# include -#endif - -CPPUNIT_NS_BEGIN - -/*! \brief Functor to call test case method (Implementation). - * - * Implementation detail. - */ -class TestCaseMethodFunctor : public Functor -{ -public: - typedef void (TestCase::*Method)(); - - TestCaseMethodFunctor( TestCase *target, - Method method ) - : m_target( target ) - , m_method( method ) - { - } - - bool operator()() const - { - (m_target->*m_method)(); - return true; - } - -private: - TestCase *m_target; - Method m_method; -}; - - -/** Constructs a test case. - * \param name the name of the TestCase. - **/ -TestCase::TestCase( const std::string &name ) - : m_name(name) -{ -} - - -/// Run the test and catch any exceptions that are triggered by it -void -TestCase::run( TestResult *result ) -{ - result->startTest(this); -/* - try { - setUp(); - - try { - runTest(); - } - catch ( Exception &e ) { - Exception *copy = e.clone(); - result->addFailure( this, copy ); - } - catch ( std::exception &e ) { - result->addError( this, new Exception( Message( "uncaught std::exception", - e.what() ) ) ); - } - catch (...) { - Exception *e = new Exception( Message( "uncaught unknown exception" ) ); - result->addError( this, e ); - } - - try { - tearDown(); - } - catch (...) { - result->addError( this, new Exception( Message( "tearDown() failed" ) ) ); - } - } - catch (...) { - result->addError( this, new Exception( Message( "setUp() failed" ) ) ); - } -*/ - if ( result->protect( TestCaseMethodFunctor( this, &TestCase::setUp ), - this, - "setUp() failed" ) ) - { - result->protect( TestCaseMethodFunctor( this, &TestCase::runTest ), - this ); - } - - result->protect( TestCaseMethodFunctor( this, &TestCase::tearDown ), - this, - "tearDown() failed" ); - - result->endTest( this ); -} - - -/// All the work for runTest is deferred to subclasses -void -TestCase::runTest() -{ -} - - -/** Constructs a test case for a suite. - * \deprecated This constructor was used by fixture when TestFixture did not exist. - * Have your fixture inherits TestFixture instead of TestCase. - * \internal - * This TestCase was intended for use by the TestCaller and should not - * be used by a test case for which run() is called. - **/ -TestCase::TestCase() - : m_name( "" ) -{ -} - - -/// Destructs a test case -TestCase::~TestCase() -{ -} - - -/// Returns the name of the test case -std::string -TestCase::getName() const -{ - return m_name; -} - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/TestCaseDecorator.cpp b/contrib/cppunit-1.12.1/src/cppunit/TestCaseDecorator.cpp deleted file mode 100644 index a7229f4b2..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/TestCaseDecorator.cpp +++ /dev/null @@ -1,47 +0,0 @@ -#include - -CPPUNIT_NS_BEGIN - - -TestCaseDecorator::TestCaseDecorator( TestCase *test ) - : TestCase( test->getName() ), - m_test( test ) -{ -} - - -TestCaseDecorator::~TestCaseDecorator() -{ - delete m_test; -} - - -std::string -TestCaseDecorator::getName() const -{ - return m_test->getName(); -} - - -void -TestCaseDecorator::setUp() -{ - m_test->setUp(); -} - - -void -TestCaseDecorator::tearDown() -{ - m_test->tearDown(); -} - - -void -TestCaseDecorator::runTest() -{ - m_test->runTest(); -} - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/TestComposite.cpp b/contrib/cppunit-1.12.1/src/cppunit/TestComposite.cpp deleted file mode 100644 index 4768791b5..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/TestComposite.cpp +++ /dev/null @@ -1,77 +0,0 @@ -#include -#include - - -CPPUNIT_NS_BEGIN - - -TestComposite::TestComposite( const std::string &name ) - : m_name( name ) -{ -} - - -TestComposite::~TestComposite() -{ -} - - -void -TestComposite::run( TestResult *result ) -{ - doStartSuite( result ); - doRunChildTests( result ); - doEndSuite( result ); -} - - -int -TestComposite::countTestCases() const -{ - int count = 0; - - int childCount = getChildTestCount(); - for ( int index =0; index < childCount; ++index ) - count += getChildTestAt( index )->countTestCases(); - - return count; -} - - -std::string -TestComposite::getName() const -{ - return m_name; -} - - -void -TestComposite::doStartSuite( TestResult *controller ) -{ - controller->startSuite( this ); -} - - -void -TestComposite::doRunChildTests( TestResult *controller ) -{ - int childCount = getChildTestCount(); - for ( int index =0; index < childCount; ++index ) - { - if ( controller->shouldStop() ) - break; - - getChildTestAt( index )->run( controller ); - } -} - - -void -TestComposite::doEndSuite( TestResult *controller ) -{ - controller->endSuite( this ); -} - - -CPPUNIT_NS_END - diff --git a/contrib/cppunit-1.12.1/src/cppunit/TestDecorator.cpp b/contrib/cppunit-1.12.1/src/cppunit/TestDecorator.cpp deleted file mode 100644 index 4e25a6af9..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/TestDecorator.cpp +++ /dev/null @@ -1,53 +0,0 @@ -#include - -CPPUNIT_NS_BEGIN - - -TestDecorator::TestDecorator( Test *test ) - : m_test( test) -{ -} - - -TestDecorator::~TestDecorator() -{ - delete m_test; -} - - -int -TestDecorator::countTestCases() const -{ - return m_test->countTestCases(); -} - - -void -TestDecorator::run( TestResult *result ) -{ - m_test->run(result); -} - - -std::string -TestDecorator::getName() const -{ - return m_test->getName(); -} - - -int -TestDecorator::getChildTestCount() const -{ - return m_test->getChildTestCount(); -} - - -Test * -TestDecorator::doGetChildTestAt( int index ) const -{ - return m_test->getChildTestAt( index ); -} - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/TestFactoryRegistry.cpp b/contrib/cppunit-1.12.1/src/cppunit/TestFactoryRegistry.cpp deleted file mode 100644 index afe10bb4b..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/TestFactoryRegistry.cpp +++ /dev/null @@ -1,161 +0,0 @@ -#include -#include -#include -#include -#include - - -CPPUNIT_NS_BEGIN - -/*! \brief (INTERNAL) List of all TestFactoryRegistry. - */ -class TestFactoryRegistryList -{ -private: - typedef CppUnitMap > Registries; - Registries m_registries; - - enum State { - doNotChange =0, - notCreated, - exist, - destroyed - }; - - static State stateFlag( State newState = doNotChange ) - { - static State state = notCreated; - if ( newState != doNotChange ) - state = newState; - return state; - } - - static TestFactoryRegistryList *getInstance() - { - static TestFactoryRegistryList list; - return &list; - } - - TestFactoryRegistry *getInternalRegistry( const std::string &name ) - { - Registries::const_iterator foundIt = m_registries.find( name ); - if ( foundIt == m_registries.end() ) - { - TestFactoryRegistry *factory = new TestFactoryRegistry( name ); - m_registries.insert( std::pair( name, factory ) ); - return factory; - } - return (*foundIt).second; - } - -public: - TestFactoryRegistryList() - { - stateFlag( exist ); - } - - ~TestFactoryRegistryList() - { - for ( Registries::iterator it = m_registries.begin(); it != m_registries.end(); ++it ) - delete (*it).second; - - stateFlag( destroyed ); - } - - static TestFactoryRegistry *getRegistry( const std::string &name ) - { - // If the following assertion failed, then TestFactoryRegistry::getRegistry() - // was called during static variable destruction without checking the registry - // validity beforehand using TestFactoryRegistry::isValid() beforehand. - assert( isValid() ); - if ( !isValid() ) // release mode - return NULL; // => force CRASH - - return getInstance()->getInternalRegistry( name ); - } - - static bool isValid() - { - return stateFlag() != destroyed; - } -}; - - - -TestFactoryRegistry::TestFactoryRegistry( std::string name ) : - m_name( name ) -{ -} - - -TestFactoryRegistry::~TestFactoryRegistry() -{ -} - - -TestFactoryRegistry & -TestFactoryRegistry::getRegistry( const std::string &name ) -{ - return *TestFactoryRegistryList::getRegistry( name ); -} - - -void -TestFactoryRegistry::registerFactory( const std::string &name, - TestFactory *factory ) -{ - registerFactory( factory ); -} - - -void -TestFactoryRegistry::registerFactory( TestFactory *factory ) -{ - m_factories.insert( factory ); -} - - -void -TestFactoryRegistry::unregisterFactory( TestFactory *factory ) -{ - m_factories.erase( factory ); -} - - -void -TestFactoryRegistry::addRegistry( const std::string &name ) -{ - registerFactory( &getRegistry( name ) ); -} - - -Test * -TestFactoryRegistry::makeTest() -{ - TestSuite *suite = new TestSuite( m_name ); - addTestToSuite( suite ); - return suite; -} - - -void -TestFactoryRegistry::addTestToSuite( TestSuite *suite ) -{ - for ( Factories::iterator it = m_factories.begin(); - it != m_factories.end(); - ++it ) - { - TestFactory *factory = *it; - suite->addTest( factory->makeTest() ); - } -} - - -bool -TestFactoryRegistry::isValid() -{ - return TestFactoryRegistryList::isValid(); -} - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/TestFailure.cpp b/contrib/cppunit-1.12.1/src/cppunit/TestFailure.cpp deleted file mode 100644 index e31e13893..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/TestFailure.cpp +++ /dev/null @@ -1,71 +0,0 @@ -#include -#include -#include - -CPPUNIT_NS_BEGIN - - -/// Constructs a TestFailure with the given test and exception. -TestFailure::TestFailure( Test *failedTest, - Exception *thrownException, - bool isError ) : - m_failedTest( failedTest ), - m_thrownException( thrownException ), - m_isError( isError ) -{ -} - -/// Deletes the owned exception. -TestFailure::~TestFailure() -{ - delete m_thrownException; -} - -/// Gets the failed test. -Test * -TestFailure::failedTest() const -{ - return m_failedTest; -} - - -/// Gets the thrown exception. Never \c NULL. -Exception * -TestFailure::thrownException() const -{ - return m_thrownException; -} - - -/// Gets the failure location. -SourceLine -TestFailure::sourceLine() const -{ - return m_thrownException->sourceLine(); -} - - -/// Indicates if the failure is a failed assertion or an error. -bool -TestFailure::isError() const -{ - return m_isError; -} - - -/// Gets the name of the failed test. -std::string -TestFailure::failedTestName() const -{ - return m_failedTest->getName(); -} - - -TestFailure * -TestFailure::clone() const -{ - return new TestFailure( m_failedTest, m_thrownException->clone(), m_isError ); -} - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/TestLeaf.cpp b/contrib/cppunit-1.12.1/src/cppunit/TestLeaf.cpp deleted file mode 100644 index 3d8767cf5..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/TestLeaf.cpp +++ /dev/null @@ -1,28 +0,0 @@ -#include - - -CPPUNIT_NS_BEGIN - - -int -TestLeaf::countTestCases() const -{ - return 1; -} - - -int -TestLeaf::getChildTestCount() const -{ - return 0; -} - - -Test * -TestLeaf::doGetChildTestAt( int index ) const -{ - checkIsValidIndex( index ); - return NULL; // never called, checkIsValidIndex() always throw. -} - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/TestNamer.cpp b/contrib/cppunit-1.12.1/src/cppunit/TestNamer.cpp deleted file mode 100644 index eec9be973..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/TestNamer.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include -#include -#include - - -CPPUNIT_NS_BEGIN - - -#if CPPUNIT_HAVE_RTTI -TestNamer::TestNamer( const std::type_info &typeInfo ) -{ - m_fixtureName = TypeInfoHelper::getClassName( typeInfo ); -} -#endif - - -TestNamer::TestNamer( const std::string &fixtureName ) - : m_fixtureName( fixtureName ) -{ -} - - -TestNamer::~TestNamer() -{ -} - - -std::string -TestNamer::getFixtureName() const -{ - return m_fixtureName; -} - - -std::string -TestNamer::getTestNameFor( const std::string &testMethodName ) const -{ - return getFixtureName() + "::" + testMethodName; -} - - - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/TestPath.cpp b/contrib/cppunit-1.12.1/src/cppunit/TestPath.cpp deleted file mode 100644 index a2783a293..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/TestPath.cpp +++ /dev/null @@ -1,254 +0,0 @@ -#include -#include -#include -#include - - -CPPUNIT_NS_BEGIN - - -TestPath::TestPath() -{ -} - - -TestPath::TestPath( Test *root ) -{ - add( root ); -} - - -TestPath::TestPath( const TestPath &other, - int indexFirst, - int count ) -{ - int countAdjustment = 0; - if ( indexFirst < 0 ) - { - countAdjustment = indexFirst; - indexFirst = 0; - } - - if ( count < 0 ) - count = other.getTestCount(); - else - count += countAdjustment; - - int index = indexFirst; - while ( count-- > 0 && index < other.getTestCount() ) - add( other.getTestAt( index++ ) ); -} - - -TestPath::TestPath( Test *searchRoot, - const std::string &pathAsString ) -{ - PathTestNames testNames; - - Test *parentTest = findActualRoot( searchRoot, pathAsString, testNames ); - add( parentTest ); - - for ( unsigned int index = 1; index < testNames.size(); ++index ) - { - bool childFound = false; - for ( int childIndex =0; childIndex < parentTest->getChildTestCount(); ++childIndex ) - { - if ( parentTest->getChildTestAt( childIndex )->getName() == testNames[index] ) - { - childFound = true; - parentTest = parentTest->getChildTestAt( childIndex ); - break; - } - } - - if ( !childFound ) - throw std::invalid_argument( "TestPath::TestPath(): failed to resolve test name <"+ - testNames[index] + "> of path <" + pathAsString + ">" ); - - add( parentTest ); - } -} - - -TestPath::TestPath( const TestPath &other ) - : m_tests( other.m_tests ) -{ -} - - -TestPath::~TestPath() -{ -} - - -TestPath & -TestPath::operator =( const TestPath &other ) -{ - if ( &other != this ) - m_tests = other.m_tests; - return *this; -} - - -bool -TestPath::isValid() const -{ - return getTestCount() > 0; -} - - -void -TestPath::add( Test *test ) -{ - m_tests.push_back( test ); -} - - -void -TestPath::add( const TestPath &path ) -{ - for ( int index =0; index < path.getTestCount(); ++index ) - add( path.getTestAt( index ) ); -} - - -void -TestPath::insert( Test *test, - int index ) -{ - if ( index < 0 || index > getTestCount() ) - throw std::out_of_range( "TestPath::insert(): index out of range" ); - m_tests.insert( m_tests.begin() + index, test ); -} - -void -TestPath::insert( const TestPath &path, - int index ) -{ - int itemIndex = path.getTestCount() -1; - while ( itemIndex >= 0 ) - insert( path.getTestAt( itemIndex-- ), index ); -} - - -void -TestPath::removeTests() -{ - while ( isValid() ) - removeTest( 0 ); -} - - -void -TestPath::removeTest( int index ) -{ - checkIndexValid( index ); - m_tests.erase( m_tests.begin() + index ); -} - - -void -TestPath::up() -{ - checkIndexValid( 0 ); - removeTest( getTestCount() -1 ); -} - - -int -TestPath::getTestCount() const -{ - return m_tests.size(); -} - - -Test * -TestPath::getTestAt( int index ) const -{ - checkIndexValid( index ); - return m_tests[index]; -} - - -Test * -TestPath::getChildTest() const -{ - return getTestAt( getTestCount() -1 ); -} - - -void -TestPath::checkIndexValid( int index ) const -{ - if ( index < 0 || index >= getTestCount() ) - throw std::out_of_range( "TestPath::checkIndexValid(): index out of range" ); -} - - -std::string -TestPath::toString() const -{ - std::string asString( "/" ); - for ( int index =0; index < getTestCount(); ++index ) - { - if ( index > 0 ) - asString += '/'; - asString += getTestAt(index)->getName(); - } - - return asString; -} - - -Test * -TestPath::findActualRoot( Test *searchRoot, - const std::string &pathAsString, - PathTestNames &testNames ) -{ - bool isRelative = splitPathString( pathAsString, testNames ); - - if ( isRelative && pathAsString.empty() ) - return searchRoot; - - if ( testNames.empty() ) - throw std::invalid_argument( "TestPath::TestPath(): invalid root or root name in absolute path" ); - - Test *root = isRelative ? searchRoot->findTest( testNames[0] ) // throw if bad test name - : searchRoot; - if ( root->getName() != testNames[0] ) - throw std::invalid_argument( "TestPath::TestPath(): searchRoot does not match path root name" ); - - return root; -} - - -bool -TestPath::splitPathString( const std::string &pathAsString, - PathTestNames &testNames ) -{ - if ( pathAsString.empty() ) - return true; - - bool isRelative = pathAsString[0] != '/'; - - int index = (isRelative ? 0 : 1); - while ( true ) - { - int separatorIndex = pathAsString.find( '/', index ); - if ( separatorIndex >= 0 ) - { - testNames.push_back( pathAsString.substr( index, separatorIndex - index ) ); - index = separatorIndex + 1; - } - else - { - testNames.push_back( pathAsString.substr( index ) ); - break; - } - } - - return isRelative; -} - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/TestPlugInDefaultImpl.cpp b/contrib/cppunit-1.12.1/src/cppunit/TestPlugInDefaultImpl.cpp deleted file mode 100644 index 1e3982586..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/TestPlugInDefaultImpl.cpp +++ /dev/null @@ -1,63 +0,0 @@ -#include - -#if !defined(CPPUNIT_NO_TESTPLUGIN) - -#include -#include -#include - - -CPPUNIT_NS_BEGIN - - -TestPlugInDefaultImpl::TestPlugInDefaultImpl() -{ -} - - -TestPlugInDefaultImpl::~TestPlugInDefaultImpl() -{ -} - - -void -TestPlugInDefaultImpl::initialize( TestFactoryRegistry *registry, - const PlugInParameters ¶meters ) -{ -} - - -void -TestPlugInDefaultImpl::addListener( TestResult *eventManager ) -{ -} - - -void -TestPlugInDefaultImpl::removeListener( TestResult *eventManager ) -{ -} - - -void -TestPlugInDefaultImpl::addXmlOutputterHooks( XmlOutputter *outputter ) -{ -} - - -void -TestPlugInDefaultImpl::removeXmlOutputterHooks() -{ -} - - -void -TestPlugInDefaultImpl::uninitialize( TestFactoryRegistry *registry ) -{ -} - - -CPPUNIT_NS_END - - -#endif // !defined(CPPUNIT_NO_TESTPLUGIN) diff --git a/contrib/cppunit-1.12.1/src/cppunit/TestResult.cpp b/contrib/cppunit-1.12.1/src/cppunit/TestResult.cpp deleted file mode 100644 index 6be19f1a1..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/TestResult.cpp +++ /dev/null @@ -1,196 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include "DefaultProtector.h" -#include "ProtectorChain.h" -#include "ProtectorContext.h" - -CPPUNIT_NS_BEGIN - - -TestResult::TestResult( SynchronizationObject *syncObject ) - : SynchronizedObject( syncObject ) - , m_protectorChain( new ProtectorChain() ) - , m_stop( false ) -{ - m_protectorChain->push( new DefaultProtector() ); -} - - -TestResult::~TestResult() -{ - delete m_protectorChain; -} - - -void -TestResult::reset() -{ - ExclusiveZone zone( m_syncObject ); - m_stop = false; -} - - -void -TestResult::addError( Test *test, - Exception *e ) -{ - TestFailure failure( test, e, true ); - addFailure( failure ); -} - - -void -TestResult::addFailure( Test *test, Exception *e ) -{ - TestFailure failure( test, e, false ); - addFailure( failure ); -} - - -void -TestResult::addFailure( const TestFailure &failure ) -{ - ExclusiveZone zone( m_syncObject ); - for ( TestListeners::iterator it = m_listeners.begin(); - it != m_listeners.end(); - ++it ) - (*it)->addFailure( failure ); -} - - -void -TestResult::startTest( Test *test ) -{ - ExclusiveZone zone( m_syncObject ); - for ( TestListeners::iterator it = m_listeners.begin(); - it != m_listeners.end(); - ++it ) - (*it)->startTest( test ); -} - - -void -TestResult::endTest( Test *test ) -{ - ExclusiveZone zone( m_syncObject ); - for ( TestListeners::iterator it = m_listeners.begin(); - it != m_listeners.end(); - ++it ) - (*it)->endTest( test ); -} - - -void -TestResult::startSuite( Test *test ) -{ - ExclusiveZone zone( m_syncObject ); - for ( TestListeners::iterator it = m_listeners.begin(); - it != m_listeners.end(); - ++it ) - (*it)->startSuite( test ); -} - - -void -TestResult::endSuite( Test *test ) -{ - ExclusiveZone zone( m_syncObject ); - for ( TestListeners::iterator it = m_listeners.begin(); - it != m_listeners.end(); - ++it ) - (*it)->endSuite( test ); -} - - -bool -TestResult::shouldStop() const -{ - ExclusiveZone zone( m_syncObject ); - return m_stop; -} - - -void -TestResult::stop() -{ - ExclusiveZone zone( m_syncObject ); - m_stop = true; -} - - -void -TestResult::addListener( TestListener *listener ) -{ - ExclusiveZone zone( m_syncObject ); - m_listeners.push_back( listener ); -} - - -void -TestResult::removeListener ( TestListener *listener ) -{ - ExclusiveZone zone( m_syncObject ); - removeFromSequence( m_listeners, listener ); -} - - -void -TestResult::runTest( Test *test ) -{ - startTestRun( test ); - test->run( this ); - endTestRun( test ); -} - - -void -TestResult::startTestRun( Test *test ) -{ - ExclusiveZone zone( m_syncObject ); - for ( TestListeners::iterator it = m_listeners.begin(); - it != m_listeners.end(); - ++it ) - (*it)->startTestRun( test, this ); -} - - -void -TestResult::endTestRun( Test *test ) -{ - ExclusiveZone zone( m_syncObject ); - for ( TestListeners::iterator it = m_listeners.begin(); - it != m_listeners.end(); - ++it ) - (*it)->endTestRun( test, this ); -} - - -bool -TestResult::protect( const Functor &functor, - Test *test, - const std::string &shortDescription ) -{ - ProtectorContext context( test, this, shortDescription ); - return m_protectorChain->protect( functor, context ); -} - - -void -TestResult::pushProtector( Protector *protector ) -{ - m_protectorChain->push( protector ); -} - - -void -TestResult::popProtector() -{ - m_protectorChain->pop(); -} - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/TestResultCollector.cpp b/contrib/cppunit-1.12.1/src/cppunit/TestResultCollector.cpp deleted file mode 100644 index 4371c5030..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/TestResultCollector.cpp +++ /dev/null @@ -1,117 +0,0 @@ -#include -#include - - -CPPUNIT_NS_BEGIN - - -TestResultCollector::TestResultCollector( SynchronizationObject *syncObject ) - : TestSuccessListener( syncObject ) -{ - reset(); -} - - -TestResultCollector::~TestResultCollector() -{ - freeFailures(); -} - - -void -TestResultCollector::freeFailures() -{ - TestFailures::iterator itFailure = m_failures.begin(); - while ( itFailure != m_failures.end() ) - delete *itFailure++; - m_failures.clear(); -} - - -void -TestResultCollector::reset() -{ - TestSuccessListener::reset(); - - ExclusiveZone zone( m_syncObject ); - freeFailures(); - m_testErrors = 0; - m_tests.clear(); -} - - -void -TestResultCollector::startTest( Test *test ) -{ - ExclusiveZone zone (m_syncObject); - m_tests.push_back( test ); -} - - -void -TestResultCollector::addFailure( const TestFailure &failure ) -{ - TestSuccessListener::addFailure( failure ); - - ExclusiveZone zone( m_syncObject ); - if ( failure.isError() ) - ++m_testErrors; - m_failures.push_back( failure.clone() ); -} - - -/// Gets the number of run tests. -int -TestResultCollector::runTests() const -{ - ExclusiveZone zone( m_syncObject ); - return m_tests.size(); -} - - -/// Gets the number of detected errors (uncaught exception). -int -TestResultCollector::testErrors() const -{ - ExclusiveZone zone( m_syncObject ); - return m_testErrors; -} - - -/// Gets the number of detected failures (failed assertion). -int -TestResultCollector::testFailures() const -{ - ExclusiveZone zone( m_syncObject ); - return m_failures.size() - m_testErrors; -} - - -/// Gets the total number of detected failures. -int -TestResultCollector::testFailuresTotal() const -{ - ExclusiveZone zone( m_syncObject ); - return m_failures.size(); -} - - -/// Returns a the list failures (random access collection). -const TestResultCollector::TestFailures & -TestResultCollector::failures() const -{ - ExclusiveZone zone( m_syncObject ); - return m_failures; -} - - -const TestResultCollector::Tests & -TestResultCollector::tests() const -{ - ExclusiveZone zone( m_syncObject ); - return m_tests; -} - - -CPPUNIT_NS_END - diff --git a/contrib/cppunit-1.12.1/src/cppunit/TestRunner.cpp b/contrib/cppunit-1.12.1/src/cppunit/TestRunner.cpp deleted file mode 100644 index 8d95a6308..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/TestRunner.cpp +++ /dev/null @@ -1,101 +0,0 @@ -#include -#include -#include -#include - - -CPPUNIT_NS_BEGIN - - -TestRunner::WrappingSuite::WrappingSuite( const std::string &name ) - : TestSuite( name ) -{ -} - - -int -TestRunner::WrappingSuite::getChildTestCount() const -{ - if ( hasOnlyOneTest() ) - return getUniqueChildTest()->getChildTestCount(); - return TestSuite::getChildTestCount(); -} - - -std::string -TestRunner::WrappingSuite::getName() const -{ - if ( hasOnlyOneTest() ) - return getUniqueChildTest()->getName(); - return TestSuite::getName(); -} - - -Test * -TestRunner::WrappingSuite::doGetChildTestAt( int index ) const -{ - if ( hasOnlyOneTest() ) - return getUniqueChildTest()->getChildTestAt( index ); - return TestSuite::doGetChildTestAt( index ); -} - - -void -TestRunner::WrappingSuite::run( TestResult *result ) -{ - if ( hasOnlyOneTest() ) - getUniqueChildTest()->run( result ); - else - TestSuite::run( result ); -} - - -bool -TestRunner::WrappingSuite::hasOnlyOneTest() const -{ - return TestSuite::getChildTestCount() == 1; -} - - -Test * -TestRunner::WrappingSuite::getUniqueChildTest() const -{ - return TestSuite::doGetChildTestAt( 0 ); -} - - - - - -TestRunner::TestRunner() - : m_suite( new WrappingSuite() ) -{ -} - - -TestRunner::~TestRunner() -{ - delete m_suite; -} - - -void -TestRunner::addTest( Test *test ) -{ - m_suite->addTest( test ); -} - - -void -TestRunner::run( TestResult &controller, - const std::string &testPath ) -{ - TestPath path = m_suite->resolveTestPath( testPath ); - Test *testToRun = path.getChildTest(); - - controller.runTest( testToRun ); -} - - -CPPUNIT_NS_END - diff --git a/contrib/cppunit-1.12.1/src/cppunit/TestSetUp.cpp b/contrib/cppunit-1.12.1/src/cppunit/TestSetUp.cpp deleted file mode 100644 index d4d853089..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/TestSetUp.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include - -CPPUNIT_NS_BEGIN - - -TestSetUp::TestSetUp( Test *test ) : TestDecorator( test ) -{ -} - - -void -TestSetUp::setUp() -{ -} - - -void -TestSetUp::tearDown() -{ -} - - -void -TestSetUp::run( TestResult *result ) -{ - setUp(); - TestDecorator::run(result); - tearDown(); -} - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/TestSuccessListener.cpp b/contrib/cppunit-1.12.1/src/cppunit/TestSuccessListener.cpp deleted file mode 100644 index 3c9c8214c..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/TestSuccessListener.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include - - -CPPUNIT_NS_BEGIN - - -TestSuccessListener::TestSuccessListener( SynchronizationObject *syncObject ) - : SynchronizedObject( syncObject ) - , m_success( true ) -{ -} - - -TestSuccessListener::~TestSuccessListener() -{ -} - - -void -TestSuccessListener::reset() -{ - ExclusiveZone zone( m_syncObject ); - m_success = true; -} - - -void -TestSuccessListener::addFailure( const TestFailure &failure ) -{ - ExclusiveZone zone( m_syncObject ); - m_success = false; -} - - -bool -TestSuccessListener::wasSuccessful() const -{ - ExclusiveZone zone( m_syncObject ); - return m_success; -} - - -CPPUNIT_NS_END - diff --git a/contrib/cppunit-1.12.1/src/cppunit/TestSuite.cpp b/contrib/cppunit-1.12.1/src/cppunit/TestSuite.cpp deleted file mode 100644 index 8dd2ea6e7..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/TestSuite.cpp +++ /dev/null @@ -1,64 +0,0 @@ -#include -#include -#include - -CPPUNIT_NS_BEGIN - - -/// Default constructor -TestSuite::TestSuite( std::string name ) - : TestComposite( name ) -{ -} - - -/// Destructor -TestSuite::~TestSuite() -{ - deleteContents(); -} - - -/// Deletes all tests in the suite. -void -TestSuite::deleteContents() -{ - int childCount = getChildTestCount(); - for ( int index =0; index < childCount; ++index ) - delete getChildTestAt( index ); - - m_tests.clear(); -} - - -/// Adds a test to the suite. -void -TestSuite::addTest( Test *test ) -{ - m_tests.push_back( test ); -} - - -const CppUnitVector & -TestSuite::getTests() const -{ - return m_tests; -} - - -int -TestSuite::getChildTestCount() const -{ - return m_tests.size(); -} - - -Test * -TestSuite::doGetChildTestAt( int index ) const -{ - return m_tests[index]; -} - - -CPPUNIT_NS_END - diff --git a/contrib/cppunit-1.12.1/src/cppunit/TestSuiteBuilderContext.cpp b/contrib/cppunit-1.12.1/src/cppunit/TestSuiteBuilderContext.cpp deleted file mode 100644 index ff71b52c1..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/TestSuiteBuilderContext.cpp +++ /dev/null @@ -1,85 +0,0 @@ -#include -#include -#include -#include - - -CPPUNIT_NS_BEGIN - -TestSuiteBuilderContextBase::TestSuiteBuilderContextBase( - TestSuite &suite, - const TestNamer &namer, - TestFixtureFactory &factory ) - : m_suite( suite ) - , m_namer( namer ) - , m_factory( factory ) -{ -} - - -TestSuiteBuilderContextBase::~TestSuiteBuilderContextBase() -{ -} - - -void -TestSuiteBuilderContextBase::addTest( Test *test ) -{ - m_suite.addTest( test ); -} - - -std::string -TestSuiteBuilderContextBase::getFixtureName() const -{ - return m_namer.getFixtureName(); -} - - -std::string -TestSuiteBuilderContextBase::getTestNameFor( - const std::string &testMethodName ) const -{ - return m_namer.getTestNameFor( testMethodName ); -} - - -TestFixture * -TestSuiteBuilderContextBase::makeTestFixture() const -{ - return m_factory.makeFixture(); -} - - -void -TestSuiteBuilderContextBase::addProperty( const std::string &key, - const std::string &value ) -{ - Properties::iterator it = m_properties.begin(); - for ( ; it != m_properties.end(); ++it ) - { - if ( (*it).first == key ) - { - (*it).second = value; - return; - } - } - - Property property( key, value ); - m_properties.push_back( property ); -} - -const std::string -TestSuiteBuilderContextBase::getStringProperty( const std::string &key ) const -{ - Properties::const_iterator it = m_properties.begin(); - for ( ; it != m_properties.end(); ++it ) - { - if ( (*it).first == key ) - return (*it).second; - } - return ""; -} - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/TextOutputter.cpp b/contrib/cppunit-1.12.1/src/cppunit/TextOutputter.cpp deleted file mode 100644 index f74214fc6..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/TextOutputter.cpp +++ /dev/null @@ -1,140 +0,0 @@ -#include -#include -#include -#include -#include - - -CPPUNIT_NS_BEGIN - - -TextOutputter::TextOutputter( TestResultCollector *result, - OStream &stream ) - : m_result( result ) - , m_stream( stream ) -{ -} - - -TextOutputter::~TextOutputter() -{ -} - - -void -TextOutputter::write() -{ - printHeader(); - m_stream << "\n"; - printFailures(); - m_stream << "\n"; -} - - -void -TextOutputter::printFailures() -{ - TestResultCollector::TestFailures::const_iterator itFailure = m_result->failures().begin(); - int failureNumber = 1; - while ( itFailure != m_result->failures().end() ) - { - m_stream << "\n"; - printFailure( *itFailure++, failureNumber++ ); - } -} - - -void -TextOutputter::printFailure( TestFailure *failure, - int failureNumber ) -{ - printFailureListMark( failureNumber ); - m_stream << ' '; - printFailureTestName( failure ); - m_stream << ' '; - printFailureType( failure ); - m_stream << ' '; - printFailureLocation( failure->sourceLine() ); - m_stream << "\n"; - printFailureDetail( failure->thrownException() ); - m_stream << "\n"; -} - - -void -TextOutputter::printFailureListMark( int failureNumber ) -{ - m_stream << failureNumber << ")"; -} - - -void -TextOutputter::printFailureTestName( TestFailure *failure ) -{ - m_stream << "test: " << failure->failedTestName(); -} - - -void -TextOutputter::printFailureType( TestFailure *failure ) -{ - m_stream << "(" - << (failure->isError() ? "E" : "F") - << ")"; -} - - -void -TextOutputter::printFailureLocation( SourceLine sourceLine ) -{ - if ( !sourceLine.isValid() ) - return; - - m_stream << "line: " << sourceLine.lineNumber() - << ' ' << sourceLine.fileName(); -} - - -void -TextOutputter::printFailureDetail( Exception *thrownException ) -{ - m_stream << thrownException->message().shortDescription() << "\n"; - m_stream << thrownException->message().details(); -} - - -void -TextOutputter::printHeader() -{ - if ( m_result->wasSuccessful() ) - m_stream << "\nOK (" << m_result->runTests () << " tests)\n" ; - else - { - m_stream << "\n"; - printFailureWarning(); - printStatistics(); - } -} - - -void -TextOutputter::printFailureWarning() -{ - m_stream << "!!!FAILURES!!!\n"; -} - - -void -TextOutputter::printStatistics() -{ - m_stream << "Test Results:\n"; - - m_stream << "Run: " << m_result->runTests() - << " Failures: " << m_result->testFailures() - << " Errors: " << m_result->testErrors() - << "\n"; -} - - -CPPUNIT_NS_END - diff --git a/contrib/cppunit-1.12.1/src/cppunit/TextTestProgressListener.cpp b/contrib/cppunit-1.12.1/src/cppunit/TextTestProgressListener.cpp deleted file mode 100644 index 7fa92ce39..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/TextTestProgressListener.cpp +++ /dev/null @@ -1,43 +0,0 @@ -#include -#include -#include - - -CPPUNIT_NS_BEGIN - - -TextTestProgressListener::TextTestProgressListener() -{ -} - - -TextTestProgressListener::~TextTestProgressListener() -{ -} - - -void -TextTestProgressListener::startTest( Test *test ) -{ - stdCOut() << "."; -} - - -void -TextTestProgressListener::addFailure( const TestFailure &failure ) -{ - stdCOut() << ( failure.isError() ? "E" : "F" ); -} - - -void -TextTestProgressListener::endTestRun( Test *test, - TestResult *eventManager ) -{ - stdCOut() << "\n"; - stdCOut().flush(); -} - - -CPPUNIT_NS_END - diff --git a/contrib/cppunit-1.12.1/src/cppunit/TextTestResult.cpp b/contrib/cppunit-1.12.1/src/cppunit/TextTestResult.cpp deleted file mode 100644 index 871eb6da3..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/TextTestResult.cpp +++ /dev/null @@ -1,50 +0,0 @@ -#include -#include -#include -#include -#include -#include - - -CPPUNIT_NS_BEGIN - - -TextTestResult::TextTestResult() -{ - addListener( this ); -} - - -void -TextTestResult::addFailure( const TestFailure &failure ) -{ - TestResultCollector::addFailure( failure ); - stdCOut() << ( failure.isError() ? "E" : "F" ); -} - - -void -TextTestResult::startTest( Test *test ) -{ - TestResultCollector::startTest (test); - stdCOut() << "."; -} - - -void -TextTestResult::print( OStream &stream ) -{ - TextOutputter outputter( this, stream ); - outputter.write(); -} - - -OStream & -operator <<( OStream &stream, - TextTestResult &result ) -{ - result.print (stream); return stream; -} - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/TextTestRunner.cpp b/contrib/cppunit-1.12.1/src/cppunit/TextTestRunner.cpp deleted file mode 100644 index 1534ec0cc..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/TextTestRunner.cpp +++ /dev/null @@ -1,144 +0,0 @@ -// ==> Implementation of cppunit/ui/text/TestRunner.h - -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -CPPUNIT_NS_BEGIN - - -/*! Constructs a new text runner. - * \param outputter used to print text result. Owned by the runner. - */ -TextTestRunner::TextTestRunner( Outputter *outputter ) - : m_result( new TestResultCollector() ) - , m_eventManager( new TestResult() ) - , m_outputter( outputter ) -{ - if ( !m_outputter ) - m_outputter = new TextOutputter( m_result, stdCOut() ); - m_eventManager->addListener( m_result ); -} - - -TextTestRunner::~TextTestRunner() -{ - delete m_eventManager; - delete m_outputter; - delete m_result; -} - - -/*! Runs the named test case. - * - * \param testName Name of the test case to run. If an empty is given, then - * all added tests are run. The name can be the name of any - * test in the hierarchy. - * \param doWait if \c true then the user must press the RETURN key - * before the run() method exit. - * \param doPrintResult if \c true (default) then the test result are printed - * on the standard output. - * \param doPrintProgress if \c true (default) then TextTestProgressListener is - * used to show the progress. - * \return \c true is the test was successful, \c false if the test - * failed or was not found. - */ -bool -TextTestRunner::run( std::string testName, - bool doWait, - bool doPrintResult, - bool doPrintProgress ) -{ - TextTestProgressListener progress; - if ( doPrintProgress ) - m_eventManager->addListener( &progress ); - - TestRunner *pThis = this; - pThis->run( *m_eventManager, testName ); - - if ( doPrintProgress ) - m_eventManager->removeListener( &progress ); - - printResult( doPrintResult ); - wait( doWait ); - - return m_result->wasSuccessful(); -} - - -void -TextTestRunner::wait( bool doWait ) -{ -#if !defined( CPPUNIT_NO_STREAM ) - if ( doWait ) - { - stdCOut() << " to continue\n"; - stdCOut().flush(); - std::cin.get (); - } -#endif -} - - -void -TextTestRunner::printResult( bool doPrintResult ) -{ - stdCOut() << "\n"; - if ( doPrintResult ) - m_outputter->write(); -} - - -/*! Returns the result of the test run. - * Use this after calling run() to access the result of the test run. - */ -TestResultCollector & -TextTestRunner::result() const -{ - return *m_result; -} - - -/*! Returns the event manager. - * The instance of TestResult results returned is the one that is used to run the - * test. Use this to register additional TestListener before running the tests. - */ -TestResult & -TextTestRunner::eventManager() const -{ - return *m_eventManager; -} - - -/*! Specifies an alternate outputter. - * - * Notes that the outputter will be use after the test run only if \a printResult was - * \c true. - * \param outputter New outputter to use. The previous outputter is destroyed. - * The TextTestRunner assumes ownership of the outputter. - * \see CompilerOutputter, XmlOutputter, TextOutputter. - */ -void -TextTestRunner::setOutputter( Outputter *outputter ) -{ - delete m_outputter; - m_outputter = outputter; -} - - -void -TextTestRunner::run( TestResult &controller, - const std::string &testPath ) -{ - TestRunner::run( controller, testPath ); -} - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/TypeInfoHelper.cpp b/contrib/cppunit-1.12.1/src/cppunit/TypeInfoHelper.cpp deleted file mode 100644 index bd01001b4..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/TypeInfoHelper.cpp +++ /dev/null @@ -1,53 +0,0 @@ -#include -#include - -#if CPPUNIT_HAVE_RTTI - -#include - -#if CPPUNIT_HAVE_GCC_ABI_DEMANGLE -#include -#endif - - -CPPUNIT_NS_BEGIN - - -std::string -TypeInfoHelper::getClassName( const std::type_info &info ) -{ -#if defined(CPPUNIT_HAVE_GCC_ABI_DEMANGLE) && CPPUNIT_HAVE_GCC_ABI_DEMANGLE - - int status = 0; - char* c_name = 0; - - c_name = abi::__cxa_demangle( info.name(), 0, 0, &status ); - - std::string name( c_name ); - free( c_name ); - -#else // CPPUNIT_HAVE_GCC_ABI_DEMANGLE - - static std::string classPrefix( "class " ); - std::string name( info.name() ); - - // Work around gcc 3.0 bug: strip number before type name. - unsigned int firstNotDigitIndex = 0; - while ( firstNotDigitIndex < name.length() && - name[firstNotDigitIndex] >= '0' && - name[firstNotDigitIndex] <= '9' ) - ++firstNotDigitIndex; - name = name.substr( firstNotDigitIndex ); - - if ( name.substr( 0, classPrefix.length() ) == classPrefix ) - return name.substr( classPrefix.length() ); - -#endif // CPPUNIT_HAVE_GCC_ABI_DEMANGLE - - return name; -} - - -CPPUNIT_NS_END - -#endif // CPPUNIT_HAVE_RTTI diff --git a/contrib/cppunit-1.12.1/src/cppunit/UnixDynamicLibraryManager.cpp b/contrib/cppunit-1.12.1/src/cppunit/UnixDynamicLibraryManager.cpp deleted file mode 100644 index f235cce5a..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/UnixDynamicLibraryManager.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include - -#if defined(CPPUNIT_HAVE_UNIX_DLL_LOADER) -#include - -#include -#include - - -CPPUNIT_NS_BEGIN - - -DynamicLibraryManager::LibraryHandle -DynamicLibraryManager::doLoadLibrary( const std::string &libraryName ) -{ - return ::dlopen( libraryName.c_str(), RTLD_NOW | RTLD_GLOBAL ); -} - - -void -DynamicLibraryManager::doReleaseLibrary() -{ - ::dlclose( m_libraryHandle); -} - - -DynamicLibraryManager::Symbol -DynamicLibraryManager::doFindSymbol( const std::string &symbol ) -{ - return ::dlsym ( m_libraryHandle, symbol.c_str() ); -} - - -std::string -DynamicLibraryManager::getLastErrorDetail() const -{ - return ""; -} - - -CPPUNIT_NS_END - - -#endif // defined(CPPUNIT_HAVE_UNIX_DLL_LOADER) diff --git a/contrib/cppunit-1.12.1/src/cppunit/Win32DynamicLibraryManager.cpp b/contrib/cppunit-1.12.1/src/cppunit/Win32DynamicLibraryManager.cpp deleted file mode 100644 index acadf4627..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/Win32DynamicLibraryManager.cpp +++ /dev/null @@ -1,73 +0,0 @@ -#include - -#if defined(CPPUNIT_HAVE_WIN32_DLL_LOADER) -#include - -#define WIN32_LEAN_AND_MEAN -#define NOGDI -#define NOUSER -#define NOKERNEL -#define NOSOUND -#define NOMINMAX -#define BLENDFUNCTION void // for mingw & gcc -#include - - -CPPUNIT_NS_BEGIN - - -DynamicLibraryManager::LibraryHandle -DynamicLibraryManager::doLoadLibrary( const std::string &libraryName ) -{ - return ::LoadLibraryA( libraryName.c_str() ); -} - - -void -DynamicLibraryManager::doReleaseLibrary() -{ - ::FreeLibrary( (HINSTANCE)m_libraryHandle ); -} - - -DynamicLibraryManager::Symbol -DynamicLibraryManager::doFindSymbol( const std::string &symbol ) -{ - return (DynamicLibraryManager::Symbol)::GetProcAddress( - (HINSTANCE)m_libraryHandle, - symbol.c_str() ); -} - - -std::string -DynamicLibraryManager::getLastErrorDetail() const -{ - LPVOID lpMsgBuf; - ::FormatMessageA( - FORMAT_MESSAGE_ALLOCATE_BUFFER | - FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, - GetLastError(), - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language - (LPSTR) &lpMsgBuf, - 0, - NULL - ); - - std::string message = (LPCSTR)lpMsgBuf; - - // Display the string. -// ::MessageBoxA( NULL, (LPCSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION ); - - // Free the buffer. - ::LocalFree( lpMsgBuf ); - - return message; -} - - -CPPUNIT_NS_END - - -#endif // defined(CPPUNIT_HAVE_WIN32_DLL_LOADER) diff --git a/contrib/cppunit-1.12.1/src/cppunit/XmlDocument.cpp b/contrib/cppunit-1.12.1/src/cppunit/XmlDocument.cpp deleted file mode 100644 index 31f9115a7..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/XmlDocument.cpp +++ /dev/null @@ -1,106 +0,0 @@ -#include -#include -#include - - -CPPUNIT_NS_BEGIN - - -XmlDocument::XmlDocument( const std::string &encoding, - const std::string &styleSheet ) - : m_styleSheet( styleSheet ) - , m_rootElement( new XmlElement( "DummyRoot" ) ) - , m_standalone( true ) -{ - setEncoding( encoding ); -} - - -XmlDocument::~XmlDocument() -{ - delete m_rootElement; -} - - - -std::string -XmlDocument::encoding() const -{ - return m_encoding; -} - - -void -XmlDocument::setEncoding( const std::string &encoding ) -{ - m_encoding = encoding.empty() ? std::string("ISO-8859-1") : encoding; -} - - -std::string -XmlDocument::styleSheet() const -{ - return m_styleSheet; -} - - -void -XmlDocument::setStyleSheet( const std::string &styleSheet ) -{ - m_styleSheet = styleSheet; -} - - -bool -XmlDocument::standalone() const -{ - return m_standalone; -} - - -void -XmlDocument::setStandalone( bool standalone ) -{ - m_standalone = standalone; -} - - -void -XmlDocument::setRootElement( XmlElement *rootElement ) -{ - if ( rootElement == m_rootElement ) - return; - - delete m_rootElement; - m_rootElement = rootElement; -} - - -XmlElement & -XmlDocument::rootElement() const -{ - return *m_rootElement; -} - - -std::string -XmlDocument::toString() const -{ - std::string asString = "\n"; - - if ( !m_styleSheet.empty() ) - asString += "\n"; - - asString += m_rootElement->toString(); - - return asString; -} - - -CPPUNIT_NS_END - diff --git a/contrib/cppunit-1.12.1/src/cppunit/XmlElement.cpp b/contrib/cppunit-1.12.1/src/cppunit/XmlElement.cpp deleted file mode 100644 index f930ad4e9..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/XmlElement.cpp +++ /dev/null @@ -1,226 +0,0 @@ -#include -#include -#include - - -CPPUNIT_NS_BEGIN - - -XmlElement::XmlElement( std::string elementName, - std::string content ) - : m_name( elementName ) - , m_content( content ) -{ -} - - -XmlElement::XmlElement( std::string elementName, - int numericContent ) - : m_name( elementName ) -{ - setContent( numericContent ); -} - - -XmlElement::~XmlElement() -{ - Elements::iterator itNode = m_elements.begin(); - while ( itNode != m_elements.end() ) - { - XmlElement *element = *itNode++; - delete element; - } -} - - -std::string -XmlElement::name() const -{ - return m_name; -} - - -std::string -XmlElement::content() const -{ - return m_content; -} - - -void -XmlElement::setName( const std::string &name ) -{ - m_name = name; -} - - -void -XmlElement::setContent( const std::string &content ) -{ - m_content = content; -} - - -void -XmlElement::setContent( int numericContent ) -{ - m_content = StringTools::toString( numericContent ); -} - - -void -XmlElement::addAttribute( std::string attributeName, - std::string value ) -{ - m_attributes.push_back( Attribute( attributeName, value ) ); -} - - -void -XmlElement::addAttribute( std::string attributeName, - int numericValue ) -{ - addAttribute( attributeName, StringTools::toString( numericValue ) ); -} - - -void -XmlElement::addElement( XmlElement *node ) -{ - m_elements.push_back( node ); -} - - -int -XmlElement::elementCount() const -{ - return m_elements.size(); -} - - -XmlElement * -XmlElement::elementAt( int index ) const -{ - if ( index < 0 || index >= elementCount() ) - throw std::invalid_argument( "XmlElement::elementAt(), out of range index" ); - - return m_elements[ index ]; -} - - -XmlElement * -XmlElement::elementFor( const std::string &name ) const -{ - Elements::const_iterator itElement = m_elements.begin(); - for ( ; itElement != m_elements.end(); ++itElement ) - { - if ( (*itElement)->name() == name ) - return *itElement; - } - - throw std::invalid_argument( "XmlElement::elementFor(), not matching child element found" ); - return NULL; // make some compilers happy. -} - - -std::string -XmlElement::toString( const std::string &indent ) const -{ - std::string element( indent ); - element += "<"; - element += m_name; - if ( !m_attributes.empty() ) - { - element += " "; - element += attributesAsString(); - } - element += ">"; - - if ( !m_elements.empty() ) - { - element += "\n"; - - std::string subNodeIndent( indent + " " ); - Elements::const_iterator itNode = m_elements.begin(); - while ( itNode != m_elements.end() ) - { - const XmlElement *node = *itNode++; - element += node->toString( subNodeIndent ); - } - - element += indent; - } - - if ( !m_content.empty() ) - { - element += escape( m_content ); - if ( !m_elements.empty() ) - { - element += "\n"; - element += indent; - } - } - - element += "\n"; - - return element; -} - - -std::string -XmlElement::attributesAsString() const -{ - std::string attributes; - Attributes::const_iterator itAttribute = m_attributes.begin(); - while ( itAttribute != m_attributes.end() ) - { - if ( !attributes.empty() ) - attributes += " "; - - const Attribute &attribute = *itAttribute++; - attributes += attribute.first; - attributes += "=\""; - attributes += escape( attribute.second ); - attributes += "\""; - } - return attributes; -} - - -std::string -XmlElement::escape( std::string value ) const -{ - std::string escaped; - for ( unsigned int index =0; index < value.length(); ++index ) - { - char c = value[index ]; - switch ( c ) // escape all predefined XML entity (safe?) - { - case '<': - escaped += "<"; - break; - case '>': - escaped += ">"; - break; - case '&': - escaped += "&"; - break; - case '\'': - escaped += "'"; - break; - case '"': - escaped += """; - break; - default: - escaped += c; - } - } - - return escaped; -} - - -CPPUNIT_NS_END - diff --git a/contrib/cppunit-1.12.1/src/cppunit/XmlOutputter.cpp b/contrib/cppunit-1.12.1/src/cppunit/XmlOutputter.cpp deleted file mode 100644 index c605e335c..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/XmlOutputter.cpp +++ /dev/null @@ -1,205 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -CPPUNIT_NS_BEGIN - - -XmlOutputter::XmlOutputter( TestResultCollector *result, - OStream &stream, - std::string encoding ) - : m_result( result ) - , m_stream( stream ) - , m_xml( new XmlDocument( encoding ) ) -{ -} - - -XmlOutputter::~XmlOutputter() -{ - delete m_xml; -} - - -void -XmlOutputter::addHook( XmlOutputterHook *hook ) -{ - m_hooks.push_back( hook ); -} - - -void -XmlOutputter::removeHook( XmlOutputterHook *hook ) -{ - m_hooks.erase( std::find( m_hooks.begin(), m_hooks.end(), hook ) ); -} - - -void -XmlOutputter::write() -{ - setRootNode(); - m_stream << m_xml->toString(); -} - - -void -XmlOutputter::setStyleSheet( const std::string &styleSheet ) -{ - m_xml->setStyleSheet( styleSheet ); -} - - -void -XmlOutputter::setStandalone( bool standalone ) -{ - m_xml->setStandalone( standalone ); -} - - -void -XmlOutputter::setRootNode() -{ - XmlElement *rootNode = new XmlElement( "TestRun" ); - m_xml->setRootElement( rootNode ); - - for ( Hooks::iterator it = m_hooks.begin(); it != m_hooks.end(); ++it ) - (*it)->beginDocument( m_xml ); - - FailedTests failedTests; - fillFailedTestsMap( failedTests ); - - addFailedTests( failedTests, rootNode ); - addSuccessfulTests( failedTests, rootNode ); - addStatistics( rootNode ); - - for ( Hooks::iterator itEnd = m_hooks.begin(); itEnd != m_hooks.end(); ++itEnd ) - (*itEnd)->endDocument( m_xml ); -} - - -void -XmlOutputter::fillFailedTestsMap( FailedTests &failedTests ) -{ - const TestResultCollector::TestFailures &failures = m_result->failures(); - TestResultCollector::TestFailures::const_iterator itFailure = failures.begin(); - while ( itFailure != failures.end() ) - { - TestFailure *failure = *itFailure++; - failedTests.insert( std::pair(failure->failedTest(), failure ) ); - } -} - - -void -XmlOutputter::addFailedTests( FailedTests &failedTests, - XmlElement *rootNode ) -{ - XmlElement *testsNode = new XmlElement( "FailedTests" ); - rootNode->addElement( testsNode ); - - const TestResultCollector::Tests &tests = m_result->tests(); - for ( unsigned int testNumber = 0; testNumber < tests.size(); ++testNumber ) - { - Test *test = tests[testNumber]; - if ( failedTests.find( test ) != failedTests.end() ) - addFailedTest( test, failedTests[test], testNumber+1, testsNode ); - } -} - - -void -XmlOutputter::addSuccessfulTests( FailedTests &failedTests, - XmlElement *rootNode ) -{ - XmlElement *testsNode = new XmlElement( "SuccessfulTests" ); - rootNode->addElement( testsNode ); - - const TestResultCollector::Tests &tests = m_result->tests(); - for ( unsigned int testNumber = 0; testNumber < tests.size(); ++testNumber ) - { - Test *test = tests[testNumber]; - if ( failedTests.find( test ) == failedTests.end() ) - addSuccessfulTest( test, testNumber+1, testsNode ); - } -} - - -void -XmlOutputter::addStatistics( XmlElement *rootNode ) -{ - XmlElement *statisticsElement = new XmlElement( "Statistics" ); - rootNode->addElement( statisticsElement ); - statisticsElement->addElement( new XmlElement( "Tests", m_result->runTests() ) ); - statisticsElement->addElement( new XmlElement( "FailuresTotal", - m_result->testFailuresTotal() ) ); - statisticsElement->addElement( new XmlElement( "Errors", m_result->testErrors() ) ); - statisticsElement->addElement( new XmlElement( "Failures", m_result->testFailures() ) ); - - for ( Hooks::iterator it = m_hooks.begin(); it != m_hooks.end(); ++it ) - (*it)->statisticsAdded( m_xml, statisticsElement ); -} - - -void -XmlOutputter::addFailedTest( Test *test, - TestFailure *failure, - int testNumber, - XmlElement *testsNode ) -{ - Exception *thrownException = failure->thrownException(); - - XmlElement *testElement = new XmlElement( "FailedTest" ); - testsNode->addElement( testElement ); - testElement->addAttribute( "id", testNumber ); - testElement->addElement( new XmlElement( "Name", test->getName() ) ); - testElement->addElement( new XmlElement( "FailureType", - failure->isError() ? "Error" : - "Assertion" ) ); - - if ( failure->sourceLine().isValid() ) - addFailureLocation( failure, testElement ); - - testElement->addElement( new XmlElement( "Message", thrownException->what() ) ); - - for ( Hooks::iterator it = m_hooks.begin(); it != m_hooks.end(); ++it ) - (*it)->failTestAdded( m_xml, testElement, test, failure ); -} - - -void -XmlOutputter::addFailureLocation( TestFailure *failure, - XmlElement *testElement ) -{ - XmlElement *locationNode = new XmlElement( "Location" ); - testElement->addElement( locationNode ); - SourceLine sourceLine = failure->sourceLine(); - locationNode->addElement( new XmlElement( "File", sourceLine.fileName() ) ); - locationNode->addElement( new XmlElement( "Line", sourceLine.lineNumber() ) ); -} - - -void -XmlOutputter::addSuccessfulTest( Test *test, - int testNumber, - XmlElement *testsNode ) -{ - XmlElement *testElement = new XmlElement( "Test" ); - testsNode->addElement( testElement ); - testElement->addAttribute( "id", testNumber ); - testElement->addElement( new XmlElement( "Name", test->getName() ) ); - - for ( Hooks::iterator it = m_hooks.begin(); it != m_hooks.end(); ++it ) - (*it)->successfulTestAdded( m_xml, testElement, test ); -} - - -CPPUNIT_NS_END diff --git a/contrib/cppunit-1.12.1/src/cppunit/XmlOutputterHook.cpp b/contrib/cppunit-1.12.1/src/cppunit/XmlOutputterHook.cpp deleted file mode 100644 index 4b4e8d8e5..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/XmlOutputterHook.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include - - -CPPUNIT_NS_BEGIN - - -void -XmlOutputterHook::beginDocument( XmlDocument *document ) -{ -} - - -void -XmlOutputterHook::endDocument( XmlDocument *document ) -{ -} - - -void -XmlOutputterHook::failTestAdded( XmlDocument *document, - XmlElement *testElement, - Test *test, - TestFailure *failure ) -{ -} - - -void -XmlOutputterHook::successfulTestAdded( XmlDocument *document, - XmlElement *testElement, - Test *test ) -{ -} - - -void -XmlOutputterHook::statisticsAdded( XmlDocument *document, - XmlElement *statisticsElement ) -{ -} - - -CPPUNIT_NS_END - diff --git a/contrib/cppunit-1.12.1/src/cppunit/cppunit.dsp b/contrib/cppunit-1.12.1/src/cppunit/cppunit.dsp deleted file mode 100644 index 1f588f518..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/cppunit.dsp +++ /dev/null @@ -1,707 +0,0 @@ -# Microsoft Developer Studio Project File - Name="cppunit" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=CPPUNIT - WIN32 DEBUG -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "cppunit.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "cppunit.mak" CFG="CPPUNIT - WIN32 DEBUG" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "cppunit - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "cppunit - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "cppunit - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GR /GX /Zd /O2 /I "..\..\include" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "WIN32" /YX /FD /c -# ADD BASE RSC /l 0x40c /d "NDEBUG" -# ADD RSC /l 0x40c /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo -# Begin Special Build Tool -TargetPath=.\Release\cppunit.lib -TargetName=cppunit -SOURCE="$(InputPath)" -PostBuild_Desc=Copying target to lib/ -PostBuild_Cmds=copy "$(TargetPath)" ..\..\lib\$(TargetName).lib -# End Special Build Tool - -!ELSEIF "$(CFG)" == "cppunit - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MDd /W3 /Gm /GR /GX /Zi /Od /I "..\..\include" /D "_DEBUG" /D "_MBCS" /D "_LIB" /D "WIN32" /YX /FD /GZ /c -# ADD BASE RSC /l 0x40c /d "_DEBUG" -# ADD RSC /l 0x40c /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"Debug\cppunitd.lib" -# Begin Special Build Tool -TargetPath=.\Debug\cppunitd.lib -TargetName=cppunitd -SOURCE="$(InputPath)" -PostBuild_Desc=Copying target to lib/ -PostBuild_Cmds=copy "$(TargetPath)" ..\..\lib\$(TargetName).lib -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "cppunit - Win32 Release" -# Name "cppunit - Win32 Debug" -# Begin Group "documentation" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\ChangeLog -# End Source File -# Begin Source File - -SOURCE=..\..\CodingGuideLines.txt -# End Source File -# Begin Source File - -SOURCE=..\..\doc\cookbook.dox -# End Source File -# Begin Source File - -SOURCE=..\..\doc\FAQ -# End Source File -# Begin Source File - -SOURCE="..\..\INSTALL-unix" -# End Source File -# Begin Source File - -SOURCE="..\..\INSTALL-WIN32.txt" -# End Source File -# Begin Source File - -SOURCE=..\..\doc\Money.dox -# End Source File -# Begin Source File - -SOURCE=..\..\NEWS -# End Source File -# Begin Source File - -SOURCE=..\..\doc\other_documentation.dox -# End Source File -# Begin Source File - -SOURCE=..\..\THANKS -# End Source File -# Begin Source File - -SOURCE=..\..\TODO -# End Source File -# End Group -# Begin Group "listener" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\BriefTestProgressListener.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\BriefTestProgressListener.h -# End Source File -# Begin Source File - -SOURCE=.\TestResultCollector.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestResultCollector.h -# End Source File -# Begin Source File - -SOURCE=.\TestSuccessListener.cpp -# End Source File -# Begin Source File - -SOURCE=.\TextTestProgressListener.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TextTestProgressListener.h -# End Source File -# Begin Source File - -SOURCE=.\TextTestResult.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TextTestResult.h -# End Source File -# End Group -# Begin Group "textui" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\include\cppunit\ui\text\TestRunner.h -# End Source File -# Begin Source File - -SOURCE=.\TextTestRunner.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TextTestRunner.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\ui\text\TextTestRunner.h -# End Source File -# End Group -# Begin Group "portability" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE="..\..\include\cppunit\config\config-bcb5.h" -# End Source File -# Begin Source File - -SOURCE="..\..\include\cppunit\config\config-evc4.h" -# End Source File -# Begin Source File - -SOURCE="..\..\include\cppunit\config\config-mac.h" -# End Source File -# Begin Source File - -SOURCE="..\..\include\cppunit\config\config-msvc6.h" -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\config\CppUnitApi.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\portability\CppUnitDeque.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\portability\CppUnitMap.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\portability\CppUnitSet.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\portability\CppUnitStack.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\portability\CppUnitVector.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\portability\FloatingPoint.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\Portability.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\config\SelectDllLoader.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\config\SourcePrefix.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\portability\Stream.h -# End Source File -# End Group -# Begin Group "output" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\CompilerOutputter.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\CompilerOutputter.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\Outputter.h -# End Source File -# Begin Source File - -SOURCE=.\TextOutputter.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TextOutputter.h -# End Source File -# Begin Source File - -SOURCE=.\XmlOutputter.cpp - -!IF "$(CFG)" == "cppunit - Win32 Release" - -!ELSEIF "$(CFG)" == "cppunit - Win32 Debug" - -# ADD CPP /W3 - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\XmlOutputter.h -# End Source File -# Begin Source File - -SOURCE=.\XmlOutputterHook.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\XmlOutputterHook.h -# End Source File -# End Group -# Begin Group "core" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\AdditionalMessage.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\AdditionalMessage.h -# End Source File -# Begin Source File - -SOURCE=.\Asserter.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\Asserter.h -# End Source File -# Begin Source File - -SOURCE=.\Exception.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\Exception.h -# End Source File -# Begin Source File - -SOURCE=.\Message.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\Message.h -# End Source File -# Begin Source File - -SOURCE=.\SourceLine.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\SourceLine.h -# End Source File -# Begin Source File - -SOURCE=.\SynchronizedObject.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\SynchronizedObject.h -# End Source File -# Begin Source File - -SOURCE=.\Test.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\Test.h -# End Source File -# Begin Source File - -SOURCE=.\TestAssert.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestAssert.h -# End Source File -# Begin Source File - -SOURCE=.\TestCase.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestCase.h -# End Source File -# Begin Source File - -SOURCE=.\TestComposite.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestComposite.h -# End Source File -# Begin Source File - -SOURCE=.\TestFailure.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestFailure.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestFixture.h -# End Source File -# Begin Source File - -SOURCE=.\TestLeaf.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestLeaf.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestListener.h -# End Source File -# Begin Source File - -SOURCE=.\TestPath.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestPath.h -# End Source File -# Begin Source File - -SOURCE=.\TestResult.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestResult.h -# End Source File -# Begin Source File - -SOURCE=.\TestRunner.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestRunner.h -# End Source File -# Begin Source File - -SOURCE=.\TestSuite.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestSuite.h -# End Source File -# End Group -# Begin Group "helper" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\AutoRegisterSuite.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\HelperMacros.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestCaller.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\TestFactory.h -# End Source File -# Begin Source File - -SOURCE=.\TestFactoryRegistry.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\TestFactoryRegistry.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\TestFixtureFactory.h -# End Source File -# Begin Source File - -SOURCE=.\TestNamer.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\TestNamer.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\TestSuiteBuilder.h -# End Source File -# Begin Source File - -SOURCE=.\TestSuiteBuilderContext.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\TestSuiteBuilderContext.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\TestSuiteFactory.h -# End Source File -# Begin Source File - -SOURCE=.\TypeInfoHelper.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\TypeInfoHelper.h -# End Source File -# End Group -# Begin Group "extension" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\ExceptionTestCaseDecorator.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\Orthodox.h -# End Source File -# Begin Source File - -SOURCE=.\RepeatedTest.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\RepeatedTest.h -# End Source File -# Begin Source File - -SOURCE=.\TestCaseDecorator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\TestCaseDecorator.h -# End Source File -# Begin Source File - -SOURCE=.\TestDecorator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\TestDecorator.h -# End Source File -# Begin Source File - -SOURCE=.\TestSetUp.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\TestSetUp.h -# End Source File -# End Group -# Begin Group "plugin" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\BeOsDynamicLibraryManager.cpp -# End Source File -# Begin Source File - -SOURCE=.\DynamicLibraryManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\plugin\DynamicLibraryManager.h -# End Source File -# Begin Source File - -SOURCE=.\DynamicLibraryManagerException.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\plugin\DynamicLibraryManagerException.h -# End Source File -# Begin Source File - -SOURCE=.\PlugInManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\plugin\PlugInManager.h -# End Source File -# Begin Source File - -SOURCE=.\PlugInParameters.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\plugin\PlugInParameters.h -# End Source File -# Begin Source File - -SOURCE=.\ShlDynamicLibraryManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\plugin\TestPlugIn.h -# End Source File -# Begin Source File - -SOURCE=.\TestPlugInDefaultImpl.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\plugin\TestPlugInDefaultImpl.h -# End Source File -# Begin Source File - -SOURCE=.\UnixDynamicLibraryManager.cpp -# End Source File -# Begin Source File - -SOURCE=.\Win32DynamicLibraryManager.cpp -# End Source File -# End Group -# Begin Group "tools" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\include\cppunit\tools\Algorithm.h -# End Source File -# Begin Source File - -SOURCE=.\StringTools.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\tools\StringTools.h -# End Source File -# Begin Source File - -SOURCE=.\XmlDocument.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\tools\XmlDocument.h -# End Source File -# Begin Source File - -SOURCE=.\XmlElement.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\tools\XmlElement.h -# End Source File -# End Group -# Begin Group "protector" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\DefaultProtector.cpp -# End Source File -# Begin Source File - -SOURCE=.\DefaultProtector.h -# End Source File -# Begin Source File - -SOURCE=.\Protector.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\Protector.h -# End Source File -# Begin Source File - -SOURCE=.\ProtectorChain.cpp -# End Source File -# Begin Source File - -SOURCE=.\ProtectorChain.h -# End Source File -# Begin Source File - -SOURCE=.\ProtectorContext.h -# End Source File -# End Group -# Begin Source File - -SOURCE=..\..\configure.in -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\Makefile.am -# End Source File -# Begin Source File - -SOURCE=.\Makefile.am -# End Source File -# End Target -# End Project diff --git a/contrib/cppunit-1.12.1/src/cppunit/cppunit.vcproj b/contrib/cppunit-1.12.1/src/cppunit/cppunit.vcproj deleted file mode 100644 index e8247acbb..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/cppunit.vcproj +++ /dev/null @@ -1,2707 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/contrib/cppunit-1.12.1/src/cppunit/cppunit_dll.dsp b/contrib/cppunit-1.12.1/src/cppunit/cppunit_dll.dsp deleted file mode 100644 index 805fec3b0..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/cppunit_dll.dsp +++ /dev/null @@ -1,682 +0,0 @@ -# Microsoft Developer Studio Project File - Name="cppunit_dll" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=cppunit_dll - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "cppunit_dll.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "cppunit_dll.mak" CFG="cppunit_dll - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "cppunit_dll - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "cppunit_dll - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "cppunit_dll - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "cppunit_dll___Win32_Release" -# PROP BASE Intermediate_Dir "cppunit_dll___Win32_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "ReleaseDll" -# PROP Intermediate_Dir "ReleaseDll" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CPPUNIT_DLL_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GR /GX /Zd /O2 /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CPPUNIT_BUILD_DLL" /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x40c /d "NDEBUG" -# ADD RSC /l 0x40c /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:"..\..\lib\cppunit_dll.pdb" /machine:I386 -# SUBTRACT LINK32 /pdb:none -# Begin Special Build Tool -TargetDir=.\ReleaseDll -TargetPath=.\ReleaseDll\cppunit_dll.dll -TargetName=cppunit_dll -SOURCE="$(InputPath)" -PostBuild_Desc=Copying target to lib/ -PostBuild_Cmds=copy "$(TargetPath)" ..\..\lib\$(TargetName).dll copy "$(TargetDir)\$(TargetName).lib" ..\..\lib\$(TargetName).lib -# End Special Build Tool - -!ELSEIF "$(CFG)" == "cppunit_dll - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "cppunit_dll___Win32_Debug" -# PROP BASE Intermediate_Dir "cppunit_dll___Win32_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "DebugDll" -# PROP Intermediate_Dir "DebugDll" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CPPUNIT_DLL_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MDd /W3 /Gm /GR /GX /Zi /Od /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CPPUNIT_BUILD_DLL" /FD /GZ /c -# SUBTRACT CPP /YX -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x40c /d "_DEBUG" -# ADD RSC /l 0x40c /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:"..\..\lib\cppunitd_dll.pdb" /debug /machine:I386 /out:"DebugDll\cppunitd_dll.dll" /pdbtype:sept -# SUBTRACT LINK32 /pdb:none -# Begin Special Build Tool -TargetDir=.\DebugDll -TargetPath=.\DebugDll\cppunitd_dll.dll -TargetName=cppunitd_dll -SOURCE="$(InputPath)" -PostBuild_Desc=Copying target to lib/ -PostBuild_Cmds=copy "$(TargetPath)" ..\..\lib\$(TargetName).dll copy "$(TargetDir)\$(TargetName).lib" ..\..\lib\$(TargetName).lib -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "cppunit_dll - Win32 Release" -# Name "cppunit_dll - Win32 Debug" -# Begin Group "DllSpecific" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\DllMain.cpp -# End Source File -# End Group -# Begin Group "extension" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\ExceptionTestCaseDecorator.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\Orthodox.h -# End Source File -# Begin Source File - -SOURCE=.\RepeatedTest.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\RepeatedTest.h -# End Source File -# Begin Source File - -SOURCE=.\TestCaseDecorator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\TestCaseDecorator.h -# End Source File -# Begin Source File - -SOURCE=.\TestDecorator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\TestDecorator.h -# End Source File -# Begin Source File - -SOURCE=.\TestSetUp.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\TestSetUp.h -# End Source File -# End Group -# Begin Group "helper" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\AutoRegisterSuite.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\HelperMacros.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestCaller.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\TestFactory.h -# End Source File -# Begin Source File - -SOURCE=.\TestFactoryRegistry.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\TestFactoryRegistry.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\TestFixtureFactory.h -# End Source File -# Begin Source File - -SOURCE=.\TestNamer.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\TestNamer.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\TestSuiteBuilder.h -# End Source File -# Begin Source File - -SOURCE=.\TestSuiteBuilderContext.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\TestSuiteBuilderContext.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\TestSuiteFactory.h -# End Source File -# Begin Source File - -SOURCE=.\TypeInfoHelper.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\TypeInfoHelper.h -# End Source File -# End Group -# Begin Group "core" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\AdditionalMessage.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\AdditionalMessage.h -# End Source File -# Begin Source File - -SOURCE=.\Asserter.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\Asserter.h -# End Source File -# Begin Source File - -SOURCE=.\Exception.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\Exception.h -# End Source File -# Begin Source File - -SOURCE=.\Message.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\Message.h -# End Source File -# Begin Source File - -SOURCE=.\SourceLine.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\SourceLine.h -# End Source File -# Begin Source File - -SOURCE=.\SynchronizedObject.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\SynchronizedObject.h -# End Source File -# Begin Source File - -SOURCE=.\Test.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\Test.h -# End Source File -# Begin Source File - -SOURCE=.\TestAssert.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestAssert.h -# End Source File -# Begin Source File - -SOURCE=.\TestCase.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestCase.h -# End Source File -# Begin Source File - -SOURCE=.\TestComposite.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestComposite.h -# End Source File -# Begin Source File - -SOURCE=.\TestFailure.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestFailure.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestFixture.h -# End Source File -# Begin Source File - -SOURCE=.\TestLeaf.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestLeaf.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestListener.h -# End Source File -# Begin Source File - -SOURCE=.\TestPath.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestPath.h -# End Source File -# Begin Source File - -SOURCE=.\TestResult.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestResult.h -# End Source File -# Begin Source File - -SOURCE=.\TestRunner.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestRunner.h -# End Source File -# Begin Source File - -SOURCE=.\TestSuite.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestSuite.h -# End Source File -# End Group -# Begin Group "output" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\CompilerOutputter.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\CompilerOutputter.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\Outputter.h -# End Source File -# Begin Source File - -SOURCE=.\TestResultCollector.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TestResultCollector.h -# End Source File -# Begin Source File - -SOURCE=.\TextOutputter.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TextOutputter.h -# End Source File -# Begin Source File - -SOURCE=.\XmlOutputter.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\XmlOutputter.h -# End Source File -# Begin Source File - -SOURCE=.\XmlOutputterHook.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\XmlOutputterHook.h -# End Source File -# End Group -# Begin Group "portability" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE="..\..\include\cppunit\config\config-bcb5.h" -# End Source File -# Begin Source File - -SOURCE="..\..\include\cppunit\config\config-mac.h" -# End Source File -# Begin Source File - -SOURCE="..\..\include\cppunit\config\config-msvc6.h" -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\config\CppUnitApi.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\portability\CppUnitDeque.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\portability\CppUnitMap.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\portability\CppUnitSet.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\portability\CppUnitStack.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\portability\CppUnitVector.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\Portability.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\config\SelectDllLoader.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\config\SourcePrefix.h -# End Source File -# End Group -# Begin Group "textui" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\include\cppunit\ui\text\TestRunner.h -# End Source File -# Begin Source File - -SOURCE=.\TextTestRunner.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TextTestRunner.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\ui\text\TextTestRunner.h -# End Source File -# End Group -# Begin Group "listener" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\BriefTestProgressListener.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\BriefTestProgressListener.h -# End Source File -# Begin Source File - -SOURCE=.\TestSuccessListener.cpp -# End Source File -# Begin Source File - -SOURCE=.\TextTestProgressListener.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TextTestProgressListener.h -# End Source File -# Begin Source File - -SOURCE=.\TextTestResult.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\TextTestResult.h -# End Source File -# End Group -# Begin Group "documentation" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\ChangeLog -# End Source File -# Begin Source File - -SOURCE=..\..\doc\cookbook.dox -# End Source File -# Begin Source File - -SOURCE=..\..\doc\FAQ -# End Source File -# Begin Source File - -SOURCE=..\..\NEWS -# End Source File -# Begin Source File - -SOURCE=..\..\doc\other_documentation.dox -# End Source File -# Begin Source File - -SOURCE=..\..\TODO -# End Source File -# End Group -# Begin Group "plugin" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\BeosDynamicLibraryManager.cpp -# End Source File -# Begin Source File - -SOURCE=.\DynamicLibraryManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\plugin\DynamicLibraryManager.h -# End Source File -# Begin Source File - -SOURCE=.\DynamicLibraryManagerException.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\plugin\DynamicLibraryManagerException.h -# End Source File -# Begin Source File - -SOURCE=.\PlugInManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\plugin\PlugInManager.h -# End Source File -# Begin Source File - -SOURCE=.\PlugInParameters.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\plugin\PlugInParameters.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\plugin\TestPlugIn.h -# End Source File -# Begin Source File - -SOURCE=.\TestPlugInDefaultImpl.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\plugin\TestPlugInDefaultImpl.h -# End Source File -# Begin Source File - -SOURCE=.\UnixDynamicLibraryManager.cpp -# End Source File -# Begin Source File - -SOURCE=.\Win32DynamicLibraryManager.cpp -# End Source File -# End Group -# Begin Group "tools" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\StringTools.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\tools\StringTools.h -# End Source File -# Begin Source File - -SOURCE=.\XmlDocument.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\tools\XmlDocument.h -# End Source File -# Begin Source File - -SOURCE=.\XmlElement.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\tools\XmlElement.h -# End Source File -# End Group -# Begin Group "protector" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\DefaultProtector.cpp -# End Source File -# Begin Source File - -SOURCE=.\DefaultProtector.h -# End Source File -# Begin Source File - -SOURCE=.\Protector.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\Protector.h -# End Source File -# Begin Source File - -SOURCE=.\ProtectorChain.cpp -# End Source File -# Begin Source File - -SOURCE=.\ProtectorChain.h -# End Source File -# Begin Source File - -SOURCE=.\ProtectorContext.h -# End Source File -# End Group -# Begin Source File - -SOURCE="..\..\INSTALL-WIN32.txt" -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\Makefile.am -# End Source File -# Begin Source File - -SOURCE=.\Makefile.am -# End Source File -# Begin Source File - -SOURCE=..\..\include\cppunit\extensions\XmlInputHelper.h -# End Source File -# End Target -# End Project diff --git a/contrib/cppunit-1.12.1/src/cppunit/cppunit_dll.vcproj b/contrib/cppunit-1.12.1/src/cppunit/cppunit_dll.vcproj deleted file mode 100644 index bc701ecf7..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/cppunit_dll.vcproj +++ /dev/null @@ -1,1673 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/contrib/cppunit-1.12.1/src/cppunit/cppunitvc9.vcproj b/contrib/cppunit-1.12.1/src/cppunit/cppunitvc9.vcproj deleted file mode 100644 index 6022d51ec..000000000 --- a/contrib/cppunit-1.12.1/src/cppunit/cppunitvc9.vcproj +++ /dev/null @@ -1,2708 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/contrib/cppunit_note.txt b/contrib/cppunit_note.txt deleted file mode 100644 index cf1e02608..000000000 --- a/contrib/cppunit_note.txt +++ /dev/null @@ -1,8 +0,0 @@ -This is a "slim" version of CPPunit. It contains everything we need, but nothing more. - -- Tools have been removed -- x64-Build configs have been added -- VC6 build & headers have been removed (Assimp can't be compiled with vc6) -- vc9 solution has been added, vc8 solution uses Assimp 'FastSTL' settings - ---- Alex \ No newline at end of file diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 92b618558..ae6ace59d 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,138 +1,59 @@ cmake_minimum_required( VERSION 2.6 ) +INCLUDE( AddGTest ) + INCLUDE_DIRECTORIES( ${Assimp_SOURCE_DIR}/include ${Assimp_SOURCE_DIR}/code - ${Assimp_SOURCE_DIR}/contrib/cppunit-1.12.1/include ) # Add the temporary output directories to the library path to make sure the # Assimp library can be found, even if it is not installed system-wide yet. LINK_DIRECTORIES( ${Assimp_BINARY_DIR} ${AssetImporter_BINARY_DIR}/lib ) -SOURCE_GROUP( unit FILES +SOURCE_GROUP( unit FILES unit/CCompilerTest.c - unit/BoostWorkaround/tupletest.cpp ) -if(WIN32) -SET( CPPUNIT_SRCS - ../contrib/cppunit-1.12.1/src/cppunit/AdditionalMessage.cpp - ../contrib/cppunit-1.12.1/src/cppunit/Asserter.cpp - ../contrib/cppunit-1.12.1/src/cppunit/BeOsDynamicLibraryManager.cpp - ../contrib/cppunit-1.12.1/src/cppunit/BriefTestProgressListener.cpp - ../contrib/cppunit-1.12.1/src/cppunit/CompilerOutputter.cpp - ../contrib/cppunit-1.12.1/src/cppunit/DefaultProtector.cpp - ../contrib/cppunit-1.12.1/src/cppunit/DefaultProtector.h - ../contrib/cppunit-1.12.1/src/cppunit/DllMain.cpp - ../contrib/cppunit-1.12.1/src/cppunit/DynamicLibraryManager.cpp - ../contrib/cppunit-1.12.1/src/cppunit/DynamicLibraryManagerException.cpp - ../contrib/cppunit-1.12.1/src/cppunit/Exception.cpp - ../contrib/cppunit-1.12.1/src/cppunit/Message.cpp - ../contrib/cppunit-1.12.1/src/cppunit/PlugInManager.cpp - ../contrib/cppunit-1.12.1/src/cppunit/PlugInParameters.cpp - ../contrib/cppunit-1.12.1/src/cppunit/Protector.cpp - ../contrib/cppunit-1.12.1/src/cppunit/ProtectorChain.cpp - ../contrib/cppunit-1.12.1/src/cppunit/ProtectorChain.h - ../contrib/cppunit-1.12.1/src/cppunit/ProtectorContext.h - ../contrib/cppunit-1.12.1/src/cppunit/RepeatedTest.cpp - ../contrib/cppunit-1.12.1/src/cppunit/ShlDynamicLibraryManager.cpp - ../contrib/cppunit-1.12.1/src/cppunit/SourceLine.cpp - ../contrib/cppunit-1.12.1/src/cppunit/StringTools.cpp - ../contrib/cppunit-1.12.1/src/cppunit/SynchronizedObject.cpp - ../contrib/cppunit-1.12.1/src/cppunit/Test.cpp - ../contrib/cppunit-1.12.1/src/cppunit/TestAssert.cpp - ../contrib/cppunit-1.12.1/src/cppunit/TestCase.cpp - ../contrib/cppunit-1.12.1/src/cppunit/TestCaseDecorator.cpp - ../contrib/cppunit-1.12.1/src/cppunit/TestComposite.cpp - ../contrib/cppunit-1.12.1/src/cppunit/TestDecorator.cpp - ../contrib/cppunit-1.12.1/src/cppunit/TestFactoryRegistry.cpp - ../contrib/cppunit-1.12.1/src/cppunit/TestFailure.cpp - ../contrib/cppunit-1.12.1/src/cppunit/TestLeaf.cpp - ../contrib/cppunit-1.12.1/src/cppunit/TestNamer.cpp - ../contrib/cppunit-1.12.1/src/cppunit/TestPath.cpp - ../contrib/cppunit-1.12.1/src/cppunit/TestPlugInDefaultImpl.cpp - ../contrib/cppunit-1.12.1/src/cppunit/TestResult.cpp - ../contrib/cppunit-1.12.1/src/cppunit/TestResultCollector.cpp - ../contrib/cppunit-1.12.1/src/cppunit/TestRunner.cpp - ../contrib/cppunit-1.12.1/src/cppunit/TestSetUp.cpp - ../contrib/cppunit-1.12.1/src/cppunit/TestSuccessListener.cpp - ../contrib/cppunit-1.12.1/src/cppunit/TestSuite.cpp - ../contrib/cppunit-1.12.1/src/cppunit/TestSuiteBuilderContext.cpp - ../contrib/cppunit-1.12.1/src/cppunit/TextOutputter.cpp - ../contrib/cppunit-1.12.1/src/cppunit/TextTestProgressListener.cpp - ../contrib/cppunit-1.12.1/src/cppunit/TextTestResult.cpp - ../contrib/cppunit-1.12.1/src/cppunit/TextTestRunner.cpp - ../contrib/cppunit-1.12.1/src/cppunit/TypeInfoHelper.cpp - ../contrib/cppunit-1.12.1/src/cppunit/UnixDynamicLibraryManager.cpp - ../contrib/cppunit-1.12.1/src/cppunit/Win32DynamicLibraryManager.cpp - ../contrib/cppunit-1.12.1/src/cppunit/XmlDocument.cpp - ../contrib/cppunit-1.12.1/src/cppunit/XmlElement.cpp - ../contrib/cppunit-1.12.1/src/cppunit/XmlOutputter.cpp - ../contrib/cppunit-1.12.1/src/cppunit/XmlOutputterHook.cpp -) -SOURCE_GROUP(cppunit FILES ${CPPUNIT_SRCS}) -else() - find_library(CPPUNIT_LIBRARY cppunit) -endif() - SET( TEST_SRCS unit/utFindDegenerates.cpp - unit/utFindDegenerates.h unit/utFindInvalidData.cpp - unit/utFindInvalidData.h unit/utFixInfacingNormals.cpp unit/utGenNormals.cpp - unit/utGenNormals.h unit/utImporter.cpp - unit/utImporter.h unit/utImproveCacheLocality.cpp unit/utJoinVertices.cpp - unit/utJoinVertices.h unit/utLimitBoneWeights.cpp - unit/utLimitBoneWeights.h unit/utMaterialSystem.cpp - unit/utMaterialSystem.h unit/utPretransformVertices.cpp - unit/utPretransformVertices.h unit/utRemoveComments.cpp - unit/utRemoveComments.h unit/utRemoveComponent.cpp - unit/utRemoveComponent.h unit/utRemoveRedundantMaterials.cpp - unit/utRemoveRedundantMaterials.h unit/utScenePreprocessor.cpp - unit/utScenePreprocessor.h unit/utSharedPPData.cpp - unit/utSharedPPData.h unit/utSortByPType.cpp - unit/utSortByPType.h unit/utSplitLargeMeshes.cpp - unit/utSplitLargeMeshes.h unit/utTargetAnimation.cpp - unit/utTargetAnimation.h unit/utTextureTransform.cpp unit/utTriangulate.cpp - unit/utTriangulate.h unit/utVertexTriangleAdjacency.cpp - unit/utVertexTriangleAdjacency.h unit/utNoBoostTest.cpp - unit/utNoBoostTest.h - unit/BoostWorkaround/tupletest.cpp ) -SOURCE_GROUP(tests FILES ${TEST_SRCS}) +SOURCE_GROUP( tests FILES ${TEST_SRCS} ) - -add_executable( unit +add_executable( unit unit/CCompilerTest.c unit/Main.cpp unit/UnitTestPCH.cpp unit/UnitTestPCH.h ${TEST_SRCS} - ${CPPUNIT_SRCS} ) -SET_PROPERTY(TARGET assimp PROPERTY DEBUG_POSTFIX ${ASSIMP_DEBUG_POSTFIX}) +SET_PROPERTY( TARGET assimp PROPERTY DEBUG_POSTFIX ${ASSIMP_DEBUG_POSTFIX} ) -target_link_libraries ( unit assimp ${CPPUNIT_LIBRARY} ) +add_dependencies( unit gtest ) +target_link_libraries( unit assimp + debug ${GTEST_DEBUG_LIBRARIES} + optimized ${GTEST_RELEASE_LIBRARIES} +) diff --git a/test/unit/BoostWorkaround/tupletest.cpp b/test/unit/BoostWorkaround/tupletest.cpp deleted file mode 100644 index 75f06ffcb..000000000 --- a/test/unit/BoostWorkaround/tupletest.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include "BoostWorkaround/boost/tuple/tuple.hpp" - -struct another -{int dummy;}; - -boost::tuple first; -boost::tuple second; -boost::tuple<> third; -boost::tuple last; - -void test () { - - // Implicit conversion - first = boost::make_tuple(4,4,4); - - // FIXME: Explicit conversion not really required yet - last = (boost::tuple)boost::make_tuple(4.,4.,4.); - - // Non-const access - first.get<0>() = 1; - first.get<1>() = 2; - first.get<2>() = 3; - - float f = last.get<2>(); - bool b = second.get<3>(); - - // Const cases - const boost::tuple constant = boost::make_tuple(4,4,4); - first.get<0>() = constant.get<0>(); - - // Direct assignment w. explicit conversion - last = first; -} diff --git a/test/unit/Main.cpp b/test/unit/Main.cpp index 33840a3c0..4c9b52cb6 100644 --- a/test/unit/Main.cpp +++ b/test/unit/Main.cpp @@ -1,26 +1,19 @@ - #include "UnitTestPCH.h" -//#include -#include -#include -#include -#include -#include -#include - #include #include -int main (int argc, char* argv[]) +int main(int argc, char* argv[]) { + ::testing::InitGoogleTest(&argc, argv); + // seed the randomizer with the current system time time_t t;time(&t); srand((unsigned int)t); // ............................................................................ - // create a logger from both CPP + // create a logger from both CPP Assimp::DefaultLogger::create("AssimpLog_Cpp.txt",Assimp::Logger::VERBOSE, aiDefaultLogStream_DEBUGGER | aiDefaultLogStream_FILE); @@ -29,40 +22,11 @@ int main (int argc, char* argv[]) aiLogStream logstream= aiGetPredefinedLogStream(aiDefaultLogStream_FILE, "AssimpLog_C.txt"); aiAttachLogStream(&logstream); - - // ............................................................................ - - // Informiert Test-Listener ueber Testresultate - CPPUNIT_NS :: TestResult testresult; - - // Listener zum Sammeln der Testergebnisse registrieren - CPPUNIT_NS :: TestResultCollector collectedresults; - testresult.addListener (&collectedresults); - - // Listener zur Ausgabe der Ergebnisse einzelner Tests - CPPUNIT_NS :: BriefTestProgressListener progress; - testresult.addListener (&progress); - - // Test-Suite ueber die Registry im Test-Runner einfuegen - CPPUNIT_NS :: TestRunner testrunner; - testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ()); - testrunner.run (testresult); - - // Resultate im Compiler-Format ausgeben - CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr); - compileroutputter.write (); - -#if 0 - // Resultate im XML-Format ausgeben - std::ofstream of("output.xml"); - CPPUNIT_NS :: XmlOutputter xml (&collectedresults, of); - xml.write (); -#endif + int result = RUN_ALL_TESTS(); // ............................................................................ // but shutdown must be done from C to ensure proper deallocation aiDetachAllLogStreams(); - // Rueckmeldung, ob Tests erfolgreich waren - return collectedresults.wasSuccessful () ? 0 : 1; + return result; } diff --git a/test/unit/UnitTestPCH.h b/test/unit/UnitTestPCH.h index edc4be0bf..b57f523f0 100644 --- a/test/unit/UnitTestPCH.h +++ b/test/unit/UnitTestPCH.h @@ -8,11 +8,9 @@ #include #include -// CPPUNIT -#include -#include +#include #include #undef min -#undef max \ No newline at end of file +#undef max diff --git a/test/unit/utExport.cpp b/test/unit/utExport.cpp index ec5088510..e444b7af5 100644 --- a/test/unit/utExport.cpp +++ b/test/unit/utExport.cpp @@ -1,74 +1,82 @@ - #include "UnitTestPCH.h" -#include "utExport.h" + +#include +#include + #ifndef ASSIMP_BUILD_NO_EXPORT -CPPUNIT_TEST_SUITE_REGISTRATION (ExporterTest); +class ExporterTest : public ::testing::Test { +public: -void ExporterTest :: setUp (void) -{ - - ex = new Assimp::Exporter(); - im = new Assimp::Importer(); + virtual void SetUp() + { + ex = new Assimp::Exporter(); + im = new Assimp::Importer(); - pTest = im->ReadFile("../../test/models/X/test.x",0); -} + pTest = im->ReadFile("../../test/models/X/test.x",0); + } + virtual void TearDown() + { + delete ex; + delete im; + } -void ExporterTest :: tearDown (void) -{ - delete ex; - delete im; -} +protected: + const aiScene* pTest; + Assimp::Exporter* ex; + Assimp::Importer* im; +}; -void ExporterTest :: testExportToFile (void) +// ------------------------------------------------------------------------------------------------ +TEST_F(ExporterTest, testExportToFile) { const char* file = "unittest_output.dae"; - CPPUNIT_ASSERT_EQUAL(AI_SUCCESS,ex->Export(pTest,"collada",file)); + EXPECT_EQ(AI_SUCCESS,ex->Export(pTest,"collada",file)); // check if we can read it again - CPPUNIT_ASSERT(im->ReadFile(file,0)); + EXPECT_TRUE(im->ReadFile(file,0)); } - -void ExporterTest :: testExportToBlob (void) +// ------------------------------------------------------------------------------------------------ +TEST_F(ExporterTest, testExportToBlob) { const aiExportDataBlob* blob = ex->ExportToBlob(pTest,"collada"); - CPPUNIT_ASSERT(blob); - CPPUNIT_ASSERT(blob->data); - CPPUNIT_ASSERT(blob->size > 0); - CPPUNIT_ASSERT(!blob->name.length); + ASSERT_TRUE(blob); + EXPECT_TRUE(blob->data); + EXPECT_GT(blob->size, 0U); + EXPECT_EQ(0U, blob->name.length); // XXX test chained blobs (i.e. obj file with accompanying mtl script) // check if we can read it again - CPPUNIT_ASSERT(im->ReadFileFromMemory(blob->data,blob->size,0,"dae")); + EXPECT_TRUE(im->ReadFileFromMemory(blob->data,blob->size,0,"dae")); } - -void ExporterTest :: testCppExportInterface (void) +// ------------------------------------------------------------------------------------------------ +TEST_F(ExporterTest, testCppExportInterface) { - CPPUNIT_ASSERT(ex->GetExportFormatCount() > 0); + EXPECT_TRUE(ex->GetExportFormatCount() > 0); for(size_t i = 0; i < ex->GetExportFormatCount(); ++i) { const aiExportFormatDesc* const desc = ex->GetExportFormatDescription(i); - CPPUNIT_ASSERT(desc); - CPPUNIT_ASSERT(desc->description && strlen(desc->description)); - CPPUNIT_ASSERT(desc->fileExtension && strlen(desc->fileExtension)); - CPPUNIT_ASSERT(desc->id && strlen(desc->id)); + ASSERT_TRUE(desc); + EXPECT_TRUE(desc->description && strlen(desc->description)); + EXPECT_TRUE(desc->fileExtension && strlen(desc->fileExtension)); + EXPECT_TRUE(desc->id && strlen(desc->id)); } - CPPUNIT_ASSERT(ex->IsDefaultIOHandler()); + EXPECT_TRUE(ex->IsDefaultIOHandler()); } - -void ExporterTest :: testCExportInterface (void) +// ------------------------------------------------------------------------------------------------ +TEST_F(ExporterTest, testCExportInterface) { - CPPUNIT_ASSERT(aiGetExportFormatCount() > 0); + EXPECT_TRUE(aiGetExportFormatCount() > 0); for(size_t i = 0; i < aiGetExportFormatCount(); ++i) { const aiExportFormatDesc* const desc = aiGetExportFormatDescription(i); - CPPUNIT_ASSERT(desc); + EXPECT_TRUE(desc); // rest has aleady been validated by testCppExportInterface } } diff --git a/test/unit/utExport.h b/test/unit/utExport.h deleted file mode 100644 index 722d19e2e..000000000 --- a/test/unit/utExport.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef INCLUDED_UT_EXPORT_H -#define INCLUDED_UT_EXPORT_H - -#ifndef ASSIMP_BUILD_NO_EXPORT - -#include -#include - -using namespace Assimp; - -class ExporterTest : public CPPUNIT_NS :: TestFixture -{ - CPPUNIT_TEST_SUITE (ExporterTest); - CPPUNIT_TEST (testExportToFile); - CPPUNIT_TEST (testExportToBlob); - CPPUNIT_TEST (testCppExportInterface); - CPPUNIT_TEST (testCExportInterface); - CPPUNIT_TEST_SUITE_END (); - - public: - void setUp (void); - void tearDown (void); - - protected: - - void testExportToFile (void); - void testExportToBlob (void); - void testCppExportInterface (void); - void testCExportInterface (void); - - private: - - - const aiScene* pTest; - Assimp::Exporter* ex; - Assimp::Importer* im; -}; - -#endif - -#endif diff --git a/test/unit/utFindDegenerates.cpp b/test/unit/utFindDegenerates.cpp index 11fd47ad8..71b6fb5e8 100644 --- a/test/unit/utFindDegenerates.cpp +++ b/test/unit/utFindDegenerates.cpp @@ -1,12 +1,26 @@ - #include "UnitTestPCH.h" -#include "utFindDegenerates.h" + +#include -CPPUNIT_TEST_SUITE_REGISTRATION (FindDegeneratesProcessTest); +using namespace std; +using namespace Assimp; + +class FindDegeneratesProcessTest : public ::testing::Test +{ +public: + + virtual void SetUp(); + virtual void TearDown(); + +protected: + + aiMesh* mesh; + FindDegeneratesProcess* process; +}; // ------------------------------------------------------------------------------------------------ -void FindDegeneratesProcessTest :: setUp (void) +void FindDegeneratesProcessTest::SetUp() { mesh = new aiMesh(); process = new FindDegeneratesProcess(); @@ -22,31 +36,30 @@ void FindDegeneratesProcessTest :: setUp (void) } mesh->mPrimitiveTypes = aiPrimitiveType_LINE | aiPrimitiveType_POINT | - aiPrimitiveType_POLYGON | aiPrimitiveType_TRIANGLE; + aiPrimitiveType_POLYGON | aiPrimitiveType_TRIANGLE; unsigned int numOut = 0, numFaces = 0; for (unsigned int i = 0; i < 1000; ++i) { aiFace& f = mesh->mFaces[i]; - f.mNumIndices = (i % 5)+1; // between 1 and 5 - f.mIndices = new unsigned int[f.mNumIndices]; - bool had = false; - for (unsigned int n = 0; n < f.mNumIndices;++n) { - - // FIXME + f.mNumIndices = (i % 5)+1; // between 1 and 5 + f.mIndices = new unsigned int[f.mNumIndices]; + bool had = false; + for (unsigned int n = 0; n < f.mNumIndices;++n) { + // FIXME #if 0 - // some duplicate indices - if ( n && n == (i / 200)+1) { - f.mIndices[n] = f.mIndices[n-1]; - had = true; - } - // and some duplicate vertices + // some duplicate indices + if ( n && n == (i / 200)+1) { + f.mIndices[n] = f.mIndices[n-1]; + had = true; + } + // and some duplicate vertices #endif - if (n && i % 2 && 0 == n % 2) { - f.mIndices[n] = f.mIndices[n-1]+5000; - had = true; - } - else { - f.mIndices[n] = numOut++; + if (n && i % 2 && 0 == n % 2) { + f.mIndices[n] = f.mIndices[n-1]+5000; + had = true; + } + else { + f.mIndices[n] = numOut++; } } if (!had) @@ -57,14 +70,14 @@ void FindDegeneratesProcessTest :: setUp (void) } // ------------------------------------------------------------------------------------------------ -void FindDegeneratesProcessTest :: tearDown (void) +void FindDegeneratesProcessTest::TearDown() { delete mesh; delete process; } // ------------------------------------------------------------------------------------------------ -void FindDegeneratesProcessTest :: testDegeneratesDetection( void ) +TEST_F(FindDegeneratesProcessTest, testDegeneratesDetection) { process->EnableInstantRemoval(false); process->ExecuteOnMesh(mesh); @@ -75,18 +88,21 @@ void FindDegeneratesProcessTest :: testDegeneratesDetection( void ) out += f.mNumIndices; } - CPPUNIT_ASSERT(mesh->mNumFaces == 1000 && mesh->mNumVertices == 10000); - CPPUNIT_ASSERT(mesh->mNumUVComponents[0] == out); - CPPUNIT_ASSERT(mesh->mPrimitiveTypes == (aiPrimitiveType_LINE | aiPrimitiveType_POINT | - aiPrimitiveType_POLYGON | aiPrimitiveType_TRIANGLE)); + EXPECT_EQ(1000U, mesh->mNumFaces); + EXPECT_EQ(10000U, mesh->mNumVertices); + EXPECT_EQ(out, mesh->mNumUVComponents[0]); + EXPECT_EQ(static_cast( + aiPrimitiveType_LINE | aiPrimitiveType_POINT | + aiPrimitiveType_POLYGON | aiPrimitiveType_TRIANGLE), + mesh->mPrimitiveTypes); } // ------------------------------------------------------------------------------------------------ -void FindDegeneratesProcessTest :: testDegeneratesRemoval( void ) +TEST_F(FindDegeneratesProcessTest, testDegeneratesRemoval) { process->EnableInstantRemoval(true); process->ExecuteOnMesh(mesh); - CPPUNIT_ASSERT(mesh->mNumUVComponents[1] == mesh->mNumFaces); + EXPECT_EQ(mesh->mNumUVComponents[1], mesh->mNumFaces); } diff --git a/test/unit/utFindDegenerates.h b/test/unit/utFindDegenerates.h deleted file mode 100644 index a1d05c5fa..000000000 --- a/test/unit/utFindDegenerates.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef TESTDEGENERATES_H -#define TESTDEGENERATES_H - - -#include - -using namespace std; -using namespace Assimp; - -class FindDegeneratesProcessTest : public CPPUNIT_NS :: TestFixture -{ - CPPUNIT_TEST_SUITE (FindDegeneratesProcessTest); - CPPUNIT_TEST (testDegeneratesDetection); - CPPUNIT_TEST (testDegeneratesRemoval); - CPPUNIT_TEST_SUITE_END (); - - public: - void setUp (void); - void tearDown (void); - - protected: - - void testDegeneratesDetection (void); - void testDegeneratesRemoval (void); - - private: - - aiMesh* mesh; - FindDegeneratesProcess* process; - -}; - -#endif diff --git a/test/unit/utFindInvalidData.cpp b/test/unit/utFindInvalidData.cpp index 08efd0906..5c94ae6e7 100644 --- a/test/unit/utFindInvalidData.cpp +++ b/test/unit/utFindInvalidData.cpp @@ -1,14 +1,28 @@ - #include "UnitTestPCH.h" -#include "utFindInvalidData.h" + +#include -CPPUNIT_TEST_SUITE_REGISTRATION (FindInvalidDataProcessTest); +using namespace std; +using namespace Assimp; + +class FindInvalidDataProcessTest : public ::testing::Test +{ +public: + + virtual void SetUp(); + virtual void TearDown(); + +protected: + + aiMesh* pcMesh; + FindInvalidDataProcess* piProcess; +}; // ------------------------------------------------------------------------------------------------ -void FindInvalidDataProcessTest :: setUp (void) +void FindInvalidDataProcessTest::SetUp() { - CPPUNIT_ASSERT( AI_MAX_NUMBER_OF_TEXTURECOORDS >= 3); + ASSERT_TRUE( AI_MAX_NUMBER_OF_TEXTURECOORDS >= 3); piProcess = new FindInvalidDataProcess(); pcMesh = new aiMesh(); @@ -39,46 +53,45 @@ void FindInvalidDataProcessTest :: setUp (void) } // ------------------------------------------------------------------------------------------------ -void FindInvalidDataProcessTest :: tearDown (void) +void FindInvalidDataProcessTest::TearDown() { delete piProcess; delete pcMesh; } // ------------------------------------------------------------------------------------------------ -void FindInvalidDataProcessTest :: testStepNegativeResult (void) +TEST_F(FindInvalidDataProcessTest, testStepNegativeResult) { ::memset(pcMesh->mNormals,0,pcMesh->mNumVertices*sizeof(aiVector3D)); ::memset(pcMesh->mBitangents,0,pcMesh->mNumVertices*sizeof(aiVector3D)); pcMesh->mTextureCoords[2][455] = aiVector3D( std::numeric_limits::quiet_NaN() ); - + piProcess->ProcessMesh(pcMesh); - CPPUNIT_ASSERT(NULL != pcMesh->mVertices); - CPPUNIT_ASSERT(NULL == pcMesh->mNormals); - CPPUNIT_ASSERT(NULL == pcMesh->mTangents); - CPPUNIT_ASSERT(NULL == pcMesh->mBitangents); + EXPECT_TRUE(NULL != pcMesh->mVertices); + EXPECT_TRUE(NULL == pcMesh->mNormals); + EXPECT_TRUE(NULL == pcMesh->mTangents); + EXPECT_TRUE(NULL == pcMesh->mBitangents); - for (unsigned int i = 0; i < 2;++i) - CPPUNIT_ASSERT(NULL != pcMesh->mTextureCoords[i]); - + EXPECT_TRUE(NULL != pcMesh->mTextureCoords[i]); + for (unsigned int i = 2; i < AI_MAX_NUMBER_OF_TEXTURECOORDS;++i) - CPPUNIT_ASSERT(NULL == pcMesh->mTextureCoords[i]); + EXPECT_TRUE(NULL == pcMesh->mTextureCoords[i]); } // ------------------------------------------------------------------------------------------------ -void FindInvalidDataProcessTest :: testStepPositiveResult (void) +TEST_F(FindInvalidDataProcessTest, testStepPositiveResult) { piProcess->ProcessMesh(pcMesh); - CPPUNIT_ASSERT(NULL != pcMesh->mVertices); + EXPECT_TRUE(NULL != pcMesh->mVertices); - CPPUNIT_ASSERT(NULL != pcMesh->mNormals); - CPPUNIT_ASSERT(NULL != pcMesh->mTangents); - CPPUNIT_ASSERT(NULL != pcMesh->mBitangents); + EXPECT_TRUE(NULL != pcMesh->mNormals); + EXPECT_TRUE(NULL != pcMesh->mTangents); + EXPECT_TRUE(NULL != pcMesh->mBitangents); for (unsigned int i = 0; i < AI_MAX_NUMBER_OF_TEXTURECOORDS;++i) - CPPUNIT_ASSERT(NULL != pcMesh->mTextureCoords[i]); -} \ No newline at end of file + EXPECT_TRUE(NULL != pcMesh->mTextureCoords[i]); +} diff --git a/test/unit/utFindInvalidData.h b/test/unit/utFindInvalidData.h deleted file mode 100644 index 76f4d85c0..000000000 --- a/test/unit/utFindInvalidData.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef TESTNORMALS_H -#define TESTNORMALS_H - - -#include - -using namespace std; -using namespace Assimp; - -class FindInvalidDataProcessTest : public CPPUNIT_NS :: TestFixture -{ - CPPUNIT_TEST_SUITE (FindInvalidDataProcessTest); - CPPUNIT_TEST (testStepNegativeResult); - CPPUNIT_TEST (testStepPositiveResult); - CPPUNIT_TEST_SUITE_END (); - - public: - void setUp (void); - void tearDown (void); - - protected: - - void testStepPositiveResult (void); - void testStepNegativeResult (void); - - private: - - - aiMesh* pcMesh; - FindInvalidDataProcess* piProcess; -}; - -#endif diff --git a/test/unit/utFixInfacingNormals.cpp b/test/unit/utFixInfacingNormals.cpp index 3e9e49b91..8d2bbf64b 100644 --- a/test/unit/utFixInfacingNormals.cpp +++ b/test/unit/utFixInfacingNormals.cpp @@ -1,2 +1 @@ - -#include "UnitTestPCH.h" \ No newline at end of file +#include "UnitTestPCH.h" diff --git a/test/unit/utGenNormals.cpp b/test/unit/utGenNormals.cpp index c25bd3464..3d812e232 100644 --- a/test/unit/utGenNormals.cpp +++ b/test/unit/utGenNormals.cpp @@ -1,11 +1,25 @@ - #include "UnitTestPCH.h" -#include "utGenNormals.h" + +#include -CPPUNIT_TEST_SUITE_REGISTRATION (GenNormalsTest); +using namespace std; +using namespace Assimp; -void GenNormalsTest :: setUp (void) +class GenNormalsTest : public ::testing::Test +{ +public: + + virtual void SetUp(); + virtual void TearDown(); + +protected: + aiMesh* pcMesh; + GenVertexNormalsProcess* piProcess; +}; + +// ------------------------------------------------------------------------------------------------ +void GenNormalsTest::SetUp() { piProcess = new GenVertexNormalsProcess(); pcMesh = new aiMesh(); @@ -23,14 +37,16 @@ void GenNormalsTest :: setUp (void) pcMesh->mVertices[2] = aiVector3D(3.0f,2.0f,4.0f); } -void GenNormalsTest :: tearDown (void) +// ------------------------------------------------------------------------------------------------ +void GenNormalsTest::TearDown() { delete this->pcMesh; delete this->piProcess; } -void GenNormalsTest :: testSimpleTriangle (void) +// ------------------------------------------------------------------------------------------------ +TEST_F(GenNormalsTest, testSimpleTriangle) { - piProcess->GenMeshVertexNormals(pcMesh,0); - CPPUNIT_ASSERT(0 != pcMesh->mNormals); + piProcess->GenMeshVertexNormals(pcMesh, 0); + EXPECT_TRUE(pcMesh->mNormals != NULL); } diff --git a/test/unit/utGenNormals.h b/test/unit/utGenNormals.h deleted file mode 100644 index 6de09e043..000000000 --- a/test/unit/utGenNormals.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef TESTNORMALS_H -#define TESTNORMALS_H - -#include -#include - -#include -#include - - -using namespace std; -using namespace Assimp; - -class GenNormalsTest : public CPPUNIT_NS :: TestFixture -{ - CPPUNIT_TEST_SUITE (GenNormalsTest); - CPPUNIT_TEST (testSimpleTriangle); - CPPUNIT_TEST_SUITE_END (); - - public: - void setUp (void); - void tearDown (void); - - protected: - - void testSimpleTriangle (void); - - private: - - - aiMesh* pcMesh; - GenVertexNormalsProcess* piProcess; -}; - -#endif diff --git a/test/unit/utImporter.cpp b/test/unit/utImporter.cpp index a3b9a6fe1..d55791c81 100644 --- a/test/unit/utImporter.cpp +++ b/test/unit/utImporter.cpp @@ -1,6 +1,22 @@ - #include "UnitTestPCH.h" -#include "utImporter.h" + +#include +#include + + +using namespace std; +using namespace Assimp; + +class ImporterTest : public ::testing::Test +{ +public: + + virtual void SetUp() { pImp = new Importer(); } + virtual void TearDown() { delete pImp; } + +protected: + Importer* pImp; +}; #define InputData_BLOCK_SIZE 1310 @@ -49,10 +65,6 @@ static unsigned char InputData_abRawBlock[1310] = { 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,96,233,20,194,67,196,97,190,147,56,182,65, }; - - -CPPUNIT_TEST_SUITE_REGISTRATION (ImporterTest); - #define AIUT_DEF_ERROR_TEXT "sorry, this is a test" @@ -66,108 +78,108 @@ static const aiImporterDesc desc = { 0, 0, 0, - "apple mac linux windows" + "apple mac linux windows" }; - -bool TestPlugin :: CanRead( const std::string& pFile, - IOSystem* /*pIOHandler*/, bool /*test*/) const +class TestPlugin : public BaseImporter { - std::string::size_type pos = pFile.find_last_of('.'); - // no file extension - can't read - if( pos == std::string::npos) - return false; - std::string extension = pFile.substr( pos); +public: - // todo ... make case-insensitive - return (extension == ".apple" || extension == ".mac" || - extension == ".linux" || extension == ".windows" ); -} + virtual bool CanRead( + const std::string& pFile, IOSystem* /*pIOHandler*/, bool /*test*/) const + { + std::string::size_type pos = pFile.find_last_of('.'); + // no file extension - can't read + if( pos == std::string::npos) + return false; + std::string extension = pFile.substr( pos); -const aiImporterDesc* TestPlugin :: GetInfo() const -{ - return & desc; -} + // todo ... make case-insensitive + return (extension == ".apple" || extension == ".mac" || + extension == ".linux" || extension == ".windows" ); -void TestPlugin :: InternReadFile( const std::string& /*pFile*/, - aiScene* /*pScene*/, IOSystem* /*pIOHandler*/) -{ - throw DeadlyImportError(AIUT_DEF_ERROR_TEXT); -} + } + virtual const aiImporterDesc* GetInfo () const + { + return & desc; + } -void ImporterTest :: setUp (void) -{ - pImp = new Importer(); -} + virtual void InternReadFile( + const std::string& /*pFile*/, aiScene* /*pScene*/, IOSystem* /*pIOHandler*/) + { + throw DeadlyImportError(AIUT_DEF_ERROR_TEXT); + } +}; -void ImporterTest :: tearDown (void) -{ - delete pImp; -} - -void ImporterTest :: testMemoryRead (void) +// ------------------------------------------------------------------------------------------------ +TEST_F(ImporterTest, testMemoryRead) { const aiScene* sc = pImp->ReadFileFromMemory(InputData_abRawBlock,InputData_BLOCK_SIZE, aiProcessPreset_TargetRealtime_Quality,"3ds"); - CPPUNIT_ASSERT(sc != NULL); - CPPUNIT_ASSERT(sc->mRootNode->mName == aiString("<3DSRoot>")); - CPPUNIT_ASSERT(sc->mNumMeshes == 1 && sc->mMeshes[0]->mNumVertices ==24 && sc->mMeshes[0]->mNumFaces ==12); + ASSERT_TRUE(sc != NULL); + EXPECT_EQ(aiString("<3DSRoot>"), sc->mRootNode->mName); + EXPECT_EQ(1U, sc->mNumMeshes); + EXPECT_EQ(24U, sc->mMeshes[0]->mNumVertices); + EXPECT_EQ(12U, sc->mMeshes[0]->mNumFaces); } -void ImporterTest :: testIntProperty (void) +// ------------------------------------------------------------------------------------------------ +TEST_F(ImporterTest, testIntProperty) { bool b; pImp->SetPropertyInteger("quakquak",1503,&b); - CPPUNIT_ASSERT(!b); - CPPUNIT_ASSERT(1503 == pImp->GetPropertyInteger("quakquak",0)); - CPPUNIT_ASSERT(314159 == pImp->GetPropertyInteger("not_there",314159)); + EXPECT_FALSE(b); + EXPECT_EQ(1503, pImp->GetPropertyInteger("quakquak",0)); + EXPECT_EQ(314159, pImp->GetPropertyInteger("not_there",314159)); pImp->SetPropertyInteger("quakquak",1504,&b); - CPPUNIT_ASSERT(b); + EXPECT_TRUE(b); } -void ImporterTest :: testFloatProperty (void) +// ------------------------------------------------------------------------------------------------ +TEST_F(ImporterTest, testFloatProperty) { bool b; pImp->SetPropertyFloat("quakquak",1503.f,&b); - CPPUNIT_ASSERT(!b); - CPPUNIT_ASSERT(1503.f == pImp->GetPropertyFloat("quakquak",0.f)); - CPPUNIT_ASSERT(314159.f == pImp->GetPropertyFloat("not_there",314159.f)); + EXPECT_TRUE(!b); + EXPECT_EQ(1503.f, pImp->GetPropertyFloat("quakquak",0.f)); + EXPECT_EQ(314159.f, pImp->GetPropertyFloat("not_there",314159.f)); } -void ImporterTest :: testStringProperty (void) +// ------------------------------------------------------------------------------------------------ +TEST_F(ImporterTest, testStringProperty) { bool b; pImp->SetPropertyString("quakquak","test",&b); - CPPUNIT_ASSERT(!b); - CPPUNIT_ASSERT("test" == pImp->GetPropertyString("quakquak","weghwekg")); - CPPUNIT_ASSERT("ILoveYou" == pImp->GetPropertyString("not_there","ILoveYou")); + EXPECT_TRUE(!b); + EXPECT_EQ("test", pImp->GetPropertyString("quakquak","weghwekg")); + EXPECT_EQ("ILoveYou", pImp->GetPropertyString("not_there","ILoveYou")); } -void ImporterTest :: testPluginInterface (void) +// ------------------------------------------------------------------------------------------------ +TEST_F(ImporterTest, testPluginInterface) { - pImp->RegisterLoader(new TestPlugin()); - CPPUNIT_ASSERT(pImp->IsExtensionSupported(".apple")); - CPPUNIT_ASSERT(pImp->IsExtensionSupported(".mac")); - CPPUNIT_ASSERT(pImp->IsExtensionSupported("*.linux")); - CPPUNIT_ASSERT(pImp->IsExtensionSupported("windows")); - CPPUNIT_ASSERT(pImp->IsExtensionSupported(".x")); /* x and 3ds must be available in this Assimp build, of course! */ - CPPUNIT_ASSERT(pImp->IsExtensionSupported(".3ds")); - CPPUNIT_ASSERT(!pImp->IsExtensionSupported(".")); + EXPECT_TRUE(pImp->IsExtensionSupported(".apple")); + EXPECT_TRUE(pImp->IsExtensionSupported(".mac")); + EXPECT_TRUE(pImp->IsExtensionSupported("*.linux")); + EXPECT_TRUE(pImp->IsExtensionSupported("windows")); + EXPECT_TRUE(pImp->IsExtensionSupported(".x")); /* x and 3ds must be available in this Assimp build, of course! */ + EXPECT_TRUE(pImp->IsExtensionSupported(".3ds")); + EXPECT_FALSE(pImp->IsExtensionSupported(".")); TestPlugin* p = (TestPlugin*) pImp->GetImporter(".windows"); - CPPUNIT_ASSERT(NULL != p); + ASSERT_TRUE(NULL != p); try { - p->InternReadFile("",0,NULL); + p->InternReadFile("",0,NULL); } catch ( const DeadlyImportError& dead) { - CPPUNIT_ASSERT(!strcmp(dead.what(),AIUT_DEF_ERROR_TEXT)); + EXPECT_TRUE(!strcmp(dead.what(),AIUT_DEF_ERROR_TEXT)); // unregister the plugin and delete it pImp->UnregisterLoader(p); @@ -175,25 +187,27 @@ void ImporterTest :: testPluginInterface (void) return; } - CPPUNIT_ASSERT(false); // control shouldn't reach this point + EXPECT_TRUE(false); // control shouldn't reach this point } -void ImporterTest :: testExtensionCheck (void) +// ------------------------------------------------------------------------------------------------ +TEST_F(ImporterTest, testExtensionCheck) { std::string s; pImp->GetExtensionList(s); - // TODO + // TODO } -void ImporterTest :: testMultipleReads (void) +// ------------------------------------------------------------------------------------------------ +TEST_F(ImporterTest, testMultipleReads) { // see http://sourceforge.net/projects/assimp/forums/forum/817654/topic/3591099 // Check whether reading and post-processing multiple times using - // the same objects is *generally* fine. This test doesn't target + // the same objects is *generally* fine. This test doesn't target // importers. Testing post-processing stability is the main point. - const unsigned int flags = + const unsigned int flags = aiProcess_Triangulate | aiProcess_JoinIdenticalVertices | aiProcess_GenSmoothNormals | @@ -206,13 +220,13 @@ void ImporterTest :: testMultipleReads (void) aiProcess_OptimizeMeshes | aiProcess_OptimizeGraph; - CPPUNIT_ASSERT(pImp->ReadFile("../../test/models/X/test.x",flags)); - //CPPUNIT_ASSERT(pImp->ReadFile("../../test/models/X/dwarf.x",flags)); # is in nonbsd - CPPUNIT_ASSERT(pImp->ReadFile("../../test/models/X/Testwuson.X",flags)); - CPPUNIT_ASSERT(pImp->ReadFile("../../test/models/X/anim_test.x",flags)); - //CPPUNIT_ASSERT(pImp->ReadFile("../../test/models/X/dwarf.x",flags)); # is in nonbsd + EXPECT_TRUE(pImp->ReadFile("../../test/models/X/test.x",flags)); + //EXPECT_TRUE(pImp->ReadFile("../../test/models/X/dwarf.x",flags)); # is in nonbsd + EXPECT_TRUE(pImp->ReadFile("../../test/models/X/Testwuson.X",flags)); + EXPECT_TRUE(pImp->ReadFile("../../test/models/X/anim_test.x",flags)); + //EXPECT_TRUE(pImp->ReadFile("../../test/models/X/dwarf.x",flags)); # is in nonbsd - CPPUNIT_ASSERT(pImp->ReadFile("../../test/models/X/anim_test.x",flags)); - CPPUNIT_ASSERT(pImp->ReadFile("../../test/models/X/BCN_Epileptic.X",flags)); - //CPPUNIT_ASSERT(pImp->ReadFile("../../test/models/X/dwarf.x",flags)); # is in nonbsd + EXPECT_TRUE(pImp->ReadFile("../../test/models/X/anim_test.x",flags)); + EXPECT_TRUE(pImp->ReadFile("../../test/models/X/BCN_Epileptic.X",flags)); + //EXPECT_TRUE(pImp->ReadFile("../../test/models/X/dwarf.x",flags)); # is in nonbsd } diff --git a/test/unit/utImporter.h b/test/unit/utImporter.h deleted file mode 100644 index aa4b56301..000000000 --- a/test/unit/utImporter.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef TESTIMPORTER_H -#define TESTIMPORTER_H - -#include -#include - -#include -#include - -using namespace std; -using namespace Assimp; - -class ImporterTest : public CPPUNIT_NS :: TestFixture -{ - CPPUNIT_TEST_SUITE (ImporterTest); - CPPUNIT_TEST (testIntProperty); - CPPUNIT_TEST (testFloatProperty); - CPPUNIT_TEST (testStringProperty); - CPPUNIT_TEST (testPluginInterface); - CPPUNIT_TEST (testExtensionCheck); - CPPUNIT_TEST (testMemoryRead); - CPPUNIT_TEST (testMultipleReads); - CPPUNIT_TEST_SUITE_END (); - - public: - void setUp (void); - void tearDown (void); - - protected: - - void testIntProperty (void); - void testFloatProperty (void); - void testStringProperty (void); - - void testPluginInterface (void); - void testExtensionCheck (void); - void testMemoryRead (void); - - void testMultipleReads (void); - - private: - - Importer* pImp; -}; - -class TestPlugin : public BaseImporter -{ -public: - - // overriden - bool CanRead( const std::string& pFile, - IOSystem* pIOHandler, bool test) const; - - // overriden - const aiImporterDesc* GetInfo () const; - - // overriden - void InternReadFile( const std::string& pFile, - aiScene* pScene, IOSystem* pIOHandler); -}; - -#endif diff --git a/test/unit/utJoinVertices.cpp b/test/unit/utJoinVertices.cpp index e8c2ea9db..1c192f65c 100644 --- a/test/unit/utJoinVertices.cpp +++ b/test/unit/utJoinVertices.cpp @@ -1,11 +1,27 @@ - #include "UnitTestPCH.h" -#include "utJoinVertices.h" -CPPUNIT_TEST_SUITE_REGISTRATION (JoinVerticesTest); +#include +#include + + +using namespace std; +using namespace Assimp; + +class JoinVerticesTest : public ::testing::Test +{ +public: + + virtual void SetUp(); + virtual void TearDown(); + +protected: + + JoinVerticesProcess* piProcess; + aiMesh* pcMesh; +}; // ------------------------------------------------------------------------------------------------ -void JoinVerticesTest :: setUp (void) +void JoinVerticesTest::SetUp() { // construct the process piProcess = new JoinVerticesProcess(); @@ -38,39 +54,39 @@ void JoinVerticesTest :: setUp (void) // generate extra members - set them to zero to make sure they're identical pcMesh->mTextureCoords[0] = new aiVector3D[900]; - for (unsigned int i = 0; i < 900;++i)pcMesh->mTextureCoords[0][i] = aiVector3D( 0.f ); + for (unsigned int i = 0; i < 900;++i)pcMesh->mTextureCoords[0][i] = aiVector3D( 0.f ); pcMesh->mNormals = new aiVector3D[900]; - for (unsigned int i = 0; i < 900;++i)pcMesh->mNormals[i] = aiVector3D( 0.f ); + for (unsigned int i = 0; i < 900;++i)pcMesh->mNormals[i] = aiVector3D( 0.f ); pcMesh->mTangents = new aiVector3D[900]; - for (unsigned int i = 0; i < 900;++i)pcMesh->mTangents[i] = aiVector3D( 0.f ); + for (unsigned int i = 0; i < 900;++i)pcMesh->mTangents[i] = aiVector3D( 0.f ); pcMesh->mBitangents = new aiVector3D[900]; - for (unsigned int i = 0; i < 900;++i)pcMesh->mBitangents[i] = aiVector3D( 0.f ); + for (unsigned int i = 0; i < 900;++i)pcMesh->mBitangents[i] = aiVector3D( 0.f ); } // ------------------------------------------------------------------------------------------------ -void JoinVerticesTest :: tearDown (void) +void JoinVerticesTest::TearDown() { delete this->pcMesh; delete this->piProcess; } // ------------------------------------------------------------------------------------------------ -void JoinVerticesTest :: testProcess(void) +TEST_F(JoinVerticesTest, testProcess) { // execute the step on the given data piProcess->ProcessMesh(pcMesh,0); // the number of faces shouldn't change - CPPUNIT_ASSERT(pcMesh->mNumFaces == 300); - CPPUNIT_ASSERT(pcMesh->mNumVertices == 300); + ASSERT_EQ(300U, pcMesh->mNumFaces); + ASSERT_EQ(300U, pcMesh->mNumVertices); - CPPUNIT_ASSERT(NULL != pcMesh->mNormals); - CPPUNIT_ASSERT(NULL != pcMesh->mTangents); - CPPUNIT_ASSERT(NULL != pcMesh->mBitangents); - CPPUNIT_ASSERT(NULL != pcMesh->mTextureCoords[0]); + ASSERT_TRUE(NULL != pcMesh->mNormals); + ASSERT_TRUE(NULL != pcMesh->mTangents); + ASSERT_TRUE(NULL != pcMesh->mBitangents); + ASSERT_TRUE(NULL != pcMesh->mTextureCoords[0]); // the order doesn't care float fSum = 0.f; @@ -79,11 +95,11 @@ void JoinVerticesTest :: testProcess(void) aiVector3D& v = pcMesh->mVertices[i]; fSum += v.x + v.y + v.z; - CPPUNIT_ASSERT(!pcMesh->mNormals[i].x); - CPPUNIT_ASSERT(!pcMesh->mTangents[i].x); - CPPUNIT_ASSERT(!pcMesh->mBitangents[i].x); - CPPUNIT_ASSERT(!pcMesh->mTextureCoords[0][i].x); + EXPECT_FALSE(pcMesh->mNormals[i].x); + EXPECT_FALSE(pcMesh->mTangents[i].x); + EXPECT_FALSE(pcMesh->mBitangents[i].x); + EXPECT_FALSE(pcMesh->mTextureCoords[0][i].x); } - CPPUNIT_ASSERT(fSum == 150.f*299.f*3.f); // gaussian sum equation + EXPECT_EQ(150.f*299.f*3.f, fSum); // gaussian sum equation } diff --git a/test/unit/utJoinVertices.h b/test/unit/utJoinVertices.h deleted file mode 100644 index 6dcf44bae..000000000 --- a/test/unit/utJoinVertices.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef TESTLBW_H -#define TESTLBW_H - -#include -#include - -#include -#include - - -using namespace std; -using namespace Assimp; -namespace Assimp { -class JoinVerticesTest : public CPPUNIT_NS :: TestFixture -{ - CPPUNIT_TEST_SUITE (JoinVerticesTest); - CPPUNIT_TEST (testProcess); - CPPUNIT_TEST_SUITE_END (); - - public: - void setUp (void); - void tearDown (void); - - protected: - - void testProcess (void); - - - private: - - JoinVerticesProcess* piProcess; - aiMesh* pcMesh; - -}; -} -#endif diff --git a/test/unit/utLimitBoneWeights.cpp b/test/unit/utLimitBoneWeights.cpp index 01e8125e5..7028ef83f 100644 --- a/test/unit/utLimitBoneWeights.cpp +++ b/test/unit/utLimitBoneWeights.cpp @@ -1,12 +1,26 @@ - #include "UnitTestPCH.h" -#include "utLimitBoneWeights.h" + +#include +#include -CPPUNIT_TEST_SUITE_REGISTRATION (LimitBoneWeightsTest); +using namespace std; +using namespace Assimp; + +class LimitBoneWeightsTest : public ::testing::Test { +public: + + virtual void SetUp(); + virtual void TearDown(); + +protected: + + LimitBoneWeightsProcess* piProcess; + aiMesh* pcMesh; +}; // ------------------------------------------------------------------------------------------------ -void LimitBoneWeightsTest :: setUp (void) +void LimitBoneWeightsTest::SetUp() { // construct the process this->piProcess = new LimitBoneWeightsProcess(); @@ -35,14 +49,14 @@ void LimitBoneWeightsTest :: setUp (void) } // ------------------------------------------------------------------------------------------------ -void LimitBoneWeightsTest :: tearDown (void) +void LimitBoneWeightsTest::TearDown() { delete pcMesh; delete piProcess; } // ------------------------------------------------------------------------------------------------ -void LimitBoneWeightsTest :: testProcess(void) +TEST_F(LimitBoneWeightsTest, testProcess) { // execute the step on the given data piProcess->ProcessMesh(pcMesh); @@ -68,7 +82,7 @@ void LimitBoneWeightsTest :: testProcess(void) // now validate the size of the lists and check whether all weights sum to 1.0f for (unsigned int i = 0; i < pcMesh->mNumVertices;++i) { - CPPUNIT_ASSERT( asWeights[i].size() <= 4 ); + EXPECT_LE(asWeights[i].size(), 4U); float fSum = 0.0f; for (VertexWeightList::const_iterator iter = asWeights[i].begin(); @@ -76,11 +90,12 @@ void LimitBoneWeightsTest :: testProcess(void) { fSum += (*iter).mWeight; } - CPPUNIT_ASSERT( fSum >= 0.95 && fSum <= 1.04); + EXPECT_GE(fSum, 0.95F); + EXPECT_LE(fSum, 1.04F); } // delete allocated storage delete[] asWeights; // everything seems to be OK -} \ No newline at end of file +} diff --git a/test/unit/utLimitBoneWeights.h b/test/unit/utLimitBoneWeights.h deleted file mode 100644 index dd709dda3..000000000 --- a/test/unit/utLimitBoneWeights.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef TESTLBW_H -#define TESTLBW_H - -#include -#include - -#include -#include - - -using namespace std; -using namespace Assimp; - -class LimitBoneWeightsTest : public CPPUNIT_NS :: TestFixture -{ - CPPUNIT_TEST_SUITE (LimitBoneWeightsTest); - CPPUNIT_TEST (testProcess); - CPPUNIT_TEST_SUITE_END (); - - public: - void setUp (void); - void tearDown (void); - - protected: - - void testProcess (void); - - - private: - - LimitBoneWeightsProcess* piProcess; - aiMesh* pcMesh; - -}; - -#endif diff --git a/test/unit/utMaterialSystem.cpp b/test/unit/utMaterialSystem.cpp index 352cadb2e..27304fe7b 100644 --- a/test/unit/utMaterialSystem.cpp +++ b/test/unit/utMaterialSystem.cpp @@ -1,72 +1,74 @@ - #include "UnitTestPCH.h" -#include "utMaterialSystem.h" + +#include +#include -CPPUNIT_TEST_SUITE_REGISTRATION (MaterialSystemTest); +using namespace std; +using namespace Assimp; -// ------------------------------------------------------------------------------------------------ -void MaterialSystemTest :: setUp (void) +class MaterialSystemTest : public ::testing::Test { - this->pcMat = new aiMaterial(); -} +public: + + virtual void SetUp() { this->pcMat = new aiMaterial(); } + virtual void TearDown() { delete this->pcMat; } + +protected: + + aiMaterial* pcMat; +}; // ------------------------------------------------------------------------------------------------ -void MaterialSystemTest :: tearDown (void) -{ - delete this->pcMat; -} - -// ------------------------------------------------------------------------------------------------ -void MaterialSystemTest :: testFloatProperty (void) +TEST_F(MaterialSystemTest, testFloatProperty) { float pf = 150392.63f; this->pcMat->AddProperty(&pf,1,"testKey1"); pf = 0.0f; - CPPUNIT_ASSERT(AI_SUCCESS == pcMat->Get("testKey1",0,0,pf)); - CPPUNIT_ASSERT(pf == 150392.63f); + EXPECT_EQ(AI_SUCCESS, pcMat->Get("testKey1",0,0,pf)); + EXPECT_EQ(150392.63f, pf); } // ------------------------------------------------------------------------------------------------ -void MaterialSystemTest :: testFloatArrayProperty (void) +TEST_F(MaterialSystemTest, testFloatArrayProperty) { float pf[] = {0.0f,1.0f,2.0f,3.0f}; unsigned int pMax = sizeof(pf) / sizeof(float); this->pcMat->AddProperty(&pf,pMax,"testKey2"); pf[0] = pf[1] = pf[2] = pf[3] = 12.0f; - CPPUNIT_ASSERT(AI_SUCCESS == pcMat->Get("testKey2",0,0,pf,&pMax)); - CPPUNIT_ASSERT(pMax == sizeof(pf) / sizeof(float)); - CPPUNIT_ASSERT(!pf[0] && 1.0f == pf[1] && 2.0f == pf[2] && 3.0f == pf[3] ); + EXPECT_EQ(AI_SUCCESS, pcMat->Get("testKey2",0,0,pf,&pMax)); + EXPECT_EQ(sizeof(pf) / sizeof(float), pMax); + EXPECT_TRUE(!pf[0] && 1.0f == pf[1] && 2.0f == pf[2] && 3.0f == pf[3] ); } // ------------------------------------------------------------------------------------------------ -void MaterialSystemTest :: testIntProperty (void) +TEST_F(MaterialSystemTest, testIntProperty) { int pf = 15039263; this->pcMat->AddProperty(&pf,1,"testKey3"); pf = 12; - CPPUNIT_ASSERT(AI_SUCCESS == pcMat->Get("testKey3",0,0,pf)); - CPPUNIT_ASSERT(pf == 15039263); + EXPECT_EQ(AI_SUCCESS, pcMat->Get("testKey3",0,0,pf)); + EXPECT_EQ(15039263, pf); } // ------------------------------------------------------------------------------------------------ -void MaterialSystemTest :: testIntArrayProperty (void) +TEST_F(MaterialSystemTest, testIntArrayProperty) { int pf[] = {0,1,2,3}; unsigned int pMax = sizeof(pf) / sizeof(int); this->pcMat->AddProperty(&pf,pMax,"testKey4"); pf[0] = pf[1] = pf[2] = pf[3] = 12; - CPPUNIT_ASSERT(AI_SUCCESS == pcMat->Get("testKey4",0,0,pf,&pMax)); - CPPUNIT_ASSERT(pMax == sizeof(pf) / sizeof(int)); - CPPUNIT_ASSERT(!pf[0] && 1 == pf[1] && 2 == pf[2] && 3 == pf[3] ); + EXPECT_EQ(AI_SUCCESS, pcMat->Get("testKey4",0,0,pf,&pMax)); + EXPECT_EQ(sizeof(pf) / sizeof(int), pMax); + EXPECT_TRUE(!pf[0] && 1 == pf[1] && 2 == pf[2] && 3 == pf[3] ); } // ------------------------------------------------------------------------------------------------ -void MaterialSystemTest :: testColorProperty (void) +TEST_F(MaterialSystemTest, testColorProperty) { aiColor4D clr; clr.r = 2.0f;clr.g = 3.0f;clr.b = 4.0f;clr.a = 5.0f; @@ -74,17 +76,17 @@ void MaterialSystemTest :: testColorProperty (void) clr.b = 1.0f; clr.a = clr.g = clr.r = 0.0f; - CPPUNIT_ASSERT(AI_SUCCESS == pcMat->Get("testKey5",0,0,clr)); - CPPUNIT_ASSERT(clr.r == 2.0f && clr.g == 3.0f && clr.b == 4.0f && clr.a == 5.0f); + EXPECT_EQ(AI_SUCCESS, pcMat->Get("testKey5",0,0,clr)); + EXPECT_TRUE(clr.r == 2.0f && clr.g == 3.0f && clr.b == 4.0f && clr.a == 5.0f); } // ------------------------------------------------------------------------------------------------ -void MaterialSystemTest :: testStringProperty (void) +TEST_F(MaterialSystemTest, testStringProperty) { aiString s; s.Set("Hello, this is a small test"); this->pcMat->AddProperty(&s,"testKey6"); s.Set("358358"); - CPPUNIT_ASSERT(AI_SUCCESS == pcMat->Get("testKey6",0,0,s)); - CPPUNIT_ASSERT(!::strcmp(s.data,"Hello, this is a small test")); + EXPECT_EQ(AI_SUCCESS, pcMat->Get("testKey6",0,0,s)); + EXPECT_STREQ("Hello, this is a small test", s.data); } diff --git a/test/unit/utMaterialSystem.h b/test/unit/utMaterialSystem.h deleted file mode 100644 index 8a35cf650..000000000 --- a/test/unit/utMaterialSystem.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef TESTMATERIALS_H -#define TESTMATERIALS_H - -#include -#include - -#include -#include - - -using namespace std; -using namespace Assimp; - -class MaterialSystemTest : public CPPUNIT_NS :: TestFixture -{ - CPPUNIT_TEST_SUITE (MaterialSystemTest); - CPPUNIT_TEST (testFloatProperty); - CPPUNIT_TEST (testFloatArrayProperty); - CPPUNIT_TEST (testIntProperty); - CPPUNIT_TEST (testIntArrayProperty); - CPPUNIT_TEST (testColorProperty); - CPPUNIT_TEST (testStringProperty); - CPPUNIT_TEST_SUITE_END (); - - public: - void setUp (void); - void tearDown (void); - - protected: - - void testFloatProperty (void); - void testFloatArrayProperty (void); - void testIntProperty (void); - void testIntArrayProperty (void); - void testColorProperty (void); - void testStringProperty (void); - - private: - - aiMaterial* pcMat; -}; - -#endif diff --git a/test/unit/utNoBoostTest.cpp b/test/unit/utNoBoostTest.cpp index cf812c8f0..76b96129b 100644 --- a/test/unit/utNoBoostTest.cpp +++ b/test/unit/utNoBoostTest.cpp @@ -1,18 +1,71 @@ - #include "UnitTestPCH.h" -#include "utNoBoostTest.h" + +#include "BoostWorkaround/boost/tuple/tuple.hpp" + +#define ASSIMP_FORCE_NOBOOST +#include "BoostWorkaround/boost/format.hpp" -CPPUNIT_TEST_SUITE_REGISTRATION (NoBoostTest); +using namespace std; +using namespace Assimp; + +using boost::format; +using boost::str; // ------------------------------------------------------------------------------------------------ -void NoBoostTest :: testFormat() +TEST(NoBoostTest, testFormat) { + EXPECT_EQ( "Ahoi!", boost::str( boost::format("Ahoi!") )); + EXPECT_EQ( "Ahoi! %", boost::str( boost::format("Ahoi! %%") )); + EXPECT_EQ( "Ahoi! ", boost::str( boost::format("Ahoi! %s") )); + EXPECT_EQ( "Ahoi! !!", boost::str( boost::format("Ahoi! %s") % "!!" )); + EXPECT_EQ( "Ahoi! !!", boost::str( boost::format("Ahoi! %s") % "!!" % "!!" )); + EXPECT_EQ( "abc", boost::str( boost::format("%s%s%s") % "a" % std::string("b") % "c" )); +} - CPPUNIT_ASSERT( noboost::str( noboost::format("Ahoi!") ) == "Ahoi!" ); - CPPUNIT_ASSERT( noboost::str( noboost::format("Ahoi! %%") ) == "Ahoi! %" ); - CPPUNIT_ASSERT( noboost::str( noboost::format("Ahoi! %s") ) == "Ahoi! " ); - CPPUNIT_ASSERT( noboost::str( noboost::format("Ahoi! %s") % "!!" ) == "Ahoi! !!" ); - CPPUNIT_ASSERT( noboost::str( noboost::format("Ahoi! %s") % "!!" % "!!" ) == "Ahoi! !!" ); - CPPUNIT_ASSERT( noboost::str( noboost::format("%s%s%s") % "a" % std::string("b") % "c" ) == "abc" ); +struct another +{ + int dummy; +}; + +// ------------------------------------------------------------------------------------------------ +TEST(NoBoostTest, Tuple) { + // Implicit conversion + boost::tuple first = boost::make_tuple(4,4,4); + EXPECT_EQ(4U, first.get<0>()); + EXPECT_EQ(4U, first.get<1>()); + EXPECT_EQ(4U, first.get<2>()); + + boost::tuple second; + bool b = second.get<3>(); + EXPECT_FALSE(b); + + boost::tuple<> third; + + // FIXME: Explicit conversion not really required yet + boost::tuple last = + (boost::tuple)boost::make_tuple(1.,2.,3.); + EXPECT_EQ(1.f, last.get<0>()); + EXPECT_EQ(2.f, last.get<1>()); + EXPECT_EQ(3.f, last.get<2>()); + + // Non-const access + first.get<0>() = 1; + first.get<1>() = 2; + first.get<2>() = 3; + EXPECT_EQ(1U, first.get<0>()); + EXPECT_EQ(2U, first.get<1>()); + EXPECT_EQ(3U, first.get<2>()); + + // Const cases + const boost::tuple constant = boost::make_tuple(5,5,5); + first.get<0>() = constant.get<0>(); + EXPECT_EQ(5U, constant.get<0>()); + EXPECT_EQ(5U, first.get<0>()); + + // Direct assignment w. explicit conversion + last = first; + EXPECT_EQ(5.f, last.get<0>()); + EXPECT_EQ(2.f, last.get<1>()); + EXPECT_EQ(3.f, last.get<2>()); } diff --git a/test/unit/utNoBoostTest.h b/test/unit/utNoBoostTest.h deleted file mode 100644 index 6fbff7dff..000000000 --- a/test/unit/utNoBoostTest.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef TESTNOBOOST_H -#define TESTNOBOOST_H - -namespace noboost { - -#define ASSIMP_FORCE_NOBOOST -#include "../../code/BoostWorkaround/boost/format.hpp" - using boost::format; - using boost::str; - -} - -using namespace std; -using namespace Assimp; - -class NoBoostTest : public CPPUNIT_NS :: TestFixture -{ - CPPUNIT_TEST_SUITE (NoBoostTest); - CPPUNIT_TEST (testFormat); - CPPUNIT_TEST_SUITE_END (); - - public: - void setUp (void) { - } - void tearDown (void) { - } - - protected: - - void testFormat (void); - - private: - - -}; - -#endif diff --git a/test/unit/utPretransformVertices.cpp b/test/unit/utPretransformVertices.cpp index a48e87a05..e8dea14ab 100644 --- a/test/unit/utPretransformVertices.cpp +++ b/test/unit/utPretransformVertices.cpp @@ -1,8 +1,24 @@ - #include "UnitTestPCH.h" -#include "utPretransformVertices.h" -CPPUNIT_TEST_SUITE_REGISTRATION (PretransformVerticesTest); +#include +#include + + +using namespace std; +using namespace Assimp; + +class PretransformVerticesTest : public ::testing::Test +{ +public: + + virtual void SetUp(); + virtual void TearDown(); + +protected: + + aiScene* scene; + PretransformVertices* process; +}; // ------------------------------------------------------------------------------------------------ void AddNodes(unsigned int num, aiNode* father, unsigned int depth) @@ -29,7 +45,7 @@ void AddNodes(unsigned int num, aiNode* father, unsigned int depth) } // ------------------------------------------------------------------------------------------------ -void PretransformVerticesTest :: setUp (void) +void PretransformVerticesTest::SetUp() { scene = new aiScene(); @@ -55,7 +71,7 @@ void PretransformVerticesTest :: setUp (void) } mesh->mMaterialIndex = i%5; - if (i % 2) + if (i % 2) mesh->mNormals = new aiVector3D[mesh->mNumVertices]; } @@ -68,30 +84,28 @@ void PretransformVerticesTest :: setUp (void) } // ------------------------------------------------------------------------------------------------ -void PretransformVerticesTest :: tearDown (void) +void PretransformVerticesTest::TearDown() { delete scene; delete process; } - // ------------------------------------------------------------------------------------------------ -void PretransformVerticesTest :: testProcess_CollapseHierarchy (void) +// ------------------------------------------------------------------------------------------------ +TEST_F(PretransformVerticesTest, testProcessCollapseHierarchy) { process->KeepHierarchy(false); process->Execute(scene); - CPPUNIT_ASSERT(scene->mNumMaterials == 5); - CPPUNIT_ASSERT(scene->mNumMeshes == 10); // every second mesh has normals + EXPECT_EQ(5U, scene->mNumMaterials); + EXPECT_EQ(10U, scene->mNumMeshes); // every second mesh has normals } // ------------------------------------------------------------------------------------------------ -void PretransformVerticesTest :: testProcess_KeepHierarchy (void) +TEST_F(PretransformVerticesTest, testProcessKeepHierarchy) { - process->KeepHierarchy(true); process->Execute(scene); - CPPUNIT_ASSERT(scene->mNumMaterials == 5); - CPPUNIT_ASSERT(scene->mNumMeshes == 49); // see note on mesh 12 above - -} \ No newline at end of file + EXPECT_EQ(5U, scene->mNumMaterials); + EXPECT_EQ(49U, scene->mNumMeshes); // see note on mesh 12 above +} diff --git a/test/unit/utPretransformVertices.h b/test/unit/utPretransformVertices.h deleted file mode 100644 index 2f5754c3c..000000000 --- a/test/unit/utPretransformVertices.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef TESTLBW_H -#define TESTLBW_H - -#include -#include - -#include -#include - - -using namespace std; -using namespace Assimp; - -class PretransformVerticesTest : public CPPUNIT_NS :: TestFixture -{ - CPPUNIT_TEST_SUITE (PretransformVerticesTest); - CPPUNIT_TEST (testProcess_CollapseHierarchy); - CPPUNIT_TEST (testProcess_KeepHierarchy); - CPPUNIT_TEST_SUITE_END (); - - public: - void setUp (void); - void tearDown (void); - - protected: - - void testProcess_CollapseHierarchy (void); - void testProcess_KeepHierarchy (void); - - - private: - - aiScene* scene; - PretransformVertices* process; -}; - -#endif diff --git a/test/unit/utRemoveComments.cpp b/test/unit/utRemoveComments.cpp index 5779946eb..4f75599b9 100644 --- a/test/unit/utRemoveComments.cpp +++ b/test/unit/utRemoveComments.cpp @@ -1,31 +1,21 @@ - #include "UnitTestPCH.h" -#include "utRemoveComments.h" + +#include -CPPUNIT_TEST_SUITE_REGISTRATION (RemoveCommentsTest); +using namespace std; +using namespace Assimp; + // ------------------------------------------------------------------------------------------------ -void RemoveCommentsTest :: setUp (void) -{ - // nothing to do here -} - -// ------------------------------------------------------------------------------------------------ -void RemoveCommentsTest :: tearDown (void) -{ - // nothing to do here -} - -// ------------------------------------------------------------------------------------------------ -void RemoveCommentsTest :: testSingleLineComments (void) +TEST(RemoveCommentsTest, testSingleLineComments) { const char* szTest = "int i = 0; \n" "if (4 == //)\n" "\ttrue) { // do something here \n" "\t// hello ... and bye //\n"; - + char* szTest2 = new char[::strlen(szTest)+1]; ::strcpy(szTest2,szTest); @@ -35,21 +25,21 @@ void RemoveCommentsTest :: testSingleLineComments (void) "\t \n"; CommentRemover::RemoveLineComments("//",szTest2,' '); - CPPUNIT_ASSERT(0 == ::strcmp(szTest2,szTestResult)); + EXPECT_STREQ(szTestResult, szTest2); delete[] szTest2; } // ------------------------------------------------------------------------------------------------ -void RemoveCommentsTest :: testMultiLineComments (void) +TEST(RemoveCommentsTest, testMultiLineComments) { - const char* szTest = + const char* szTest = "/* comment to be removed */\n" "valid text /* \n " " comment across multiple lines */" " / * Incomplete comment */ /* /* multiple comments */ */"; - const char* szTestResult = + const char* szTestResult = " \n" "valid text " " " @@ -59,7 +49,7 @@ void RemoveCommentsTest :: testMultiLineComments (void) ::strcpy(szTest2,szTest); CommentRemover::RemoveMultiLineComments("/*","*/",szTest2,' '); - CPPUNIT_ASSERT(0 == ::strcmp(szTest2,szTestResult)); + EXPECT_STREQ(szTestResult, szTest2); delete[] szTest2; } diff --git a/test/unit/utRemoveComments.h b/test/unit/utRemoveComments.h deleted file mode 100644 index aef61db88..000000000 --- a/test/unit/utRemoveComments.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef REMOVECOMMENTS_H -#define REMOVECOMMENTS_H - -#include -#include - -#include - - -using namespace std; -using namespace Assimp; - -class RemoveCommentsTest : public CPPUNIT_NS :: TestFixture -{ - CPPUNIT_TEST_SUITE (RemoveCommentsTest); - CPPUNIT_TEST (testSingleLineComments); - CPPUNIT_TEST (testMultiLineComments); - CPPUNIT_TEST_SUITE_END (); - - public: - void setUp (void); - void tearDown (void); - - protected: - - void testSingleLineComments (void); - void testMultiLineComments (void); - - - private: - -}; - -#endif diff --git a/test/unit/utRemoveComponent.cpp b/test/unit/utRemoveComponent.cpp index 6c61c3f97..8537badec 100644 --- a/test/unit/utRemoveComponent.cpp +++ b/test/unit/utRemoveComponent.cpp @@ -1,11 +1,28 @@ - #include "UnitTestPCH.h" -#include "utRemoveComponent.h" + +#include +#include +#include -CPPUNIT_TEST_SUITE_REGISTRATION (RemoveVCProcessTest); +using namespace std; +using namespace Assimp; -void RemoveVCProcessTest :: setUp (void) +class RemoveVCProcessTest : public ::testing::Test +{ +public: + + virtual void SetUp(); + virtual void TearDown(); + +protected: + + RemoveVCProcess* piProcess; + aiScene* pScene; +}; + +// ------------------------------------------------------------------------------------------------ +void RemoveVCProcessTest::SetUp() { // construct the process piProcess = new RemoveVCProcess(); @@ -50,100 +67,122 @@ void RemoveVCProcessTest :: setUp (void) // COMPILE TEST: aiMaterial may no add any extra members, // so we don't need a virtual destructor char check[sizeof(aiMaterial) == sizeof(aiMaterial) ? 10 : -1]; - check[0] = 0; + check[0] = 0; } -void RemoveVCProcessTest :: tearDown (void) +// ------------------------------------------------------------------------------------------------ +void RemoveVCProcessTest::TearDown() { delete pScene; delete piProcess; } -void RemoveVCProcessTest::testMeshRemove (void) +// ------------------------------------------------------------------------------------------------ +TEST_F(RemoveVCProcessTest, testMeshRemove) { piProcess->SetDeleteFlags(aiComponent_MESHES); piProcess->Execute(pScene); - CPPUNIT_ASSERT(NULL == pScene->mMeshes && 0 == pScene->mNumMeshes); - CPPUNIT_ASSERT(pScene->mFlags == AI_SCENE_FLAGS_INCOMPLETE); + EXPECT_TRUE(NULL == pScene->mMeshes); + EXPECT_EQ(0U, pScene->mNumMeshes); + EXPECT_TRUE(pScene->mFlags == AI_SCENE_FLAGS_INCOMPLETE); } -void RemoveVCProcessTest::testAnimRemove (void) +// ------------------------------------------------------------------------------------------------ +TEST_F(RemoveVCProcessTest, testAnimRemove) { piProcess->SetDeleteFlags(aiComponent_ANIMATIONS); piProcess->Execute(pScene); - CPPUNIT_ASSERT(NULL == pScene->mAnimations && 0 == pScene->mNumAnimations); - CPPUNIT_ASSERT(pScene->mFlags == 0); + EXPECT_TRUE(NULL == pScene->mAnimations); + EXPECT_EQ(0U, pScene->mNumAnimations); + EXPECT_EQ(0U, pScene->mFlags); } -void RemoveVCProcessTest::testMaterialRemove (void) +// ------------------------------------------------------------------------------------------------ +TEST_F(RemoveVCProcessTest, testMaterialRemove) { piProcess->SetDeleteFlags(aiComponent_MATERIALS); piProcess->Execute(pScene); // there should be one default material now ... - CPPUNIT_ASSERT(1 == pScene->mNumMaterials && + EXPECT_TRUE(1 == pScene->mNumMaterials && pScene->mMeshes[0]->mMaterialIndex == 0 && pScene->mMeshes[1]->mMaterialIndex == 0); - CPPUNIT_ASSERT(pScene->mFlags == 0); + EXPECT_EQ(0U, pScene->mFlags); } -void RemoveVCProcessTest::testTextureRemove (void) +// ------------------------------------------------------------------------------------------------ +TEST_F(RemoveVCProcessTest, testTextureRemove) { piProcess->SetDeleteFlags(aiComponent_TEXTURES); piProcess->Execute(pScene); - CPPUNIT_ASSERT(NULL == pScene->mTextures && 0 == pScene->mNumTextures); - CPPUNIT_ASSERT(pScene->mFlags == 0); + EXPECT_TRUE(NULL == pScene->mTextures); + EXPECT_EQ(0U, pScene->mNumTextures); + EXPECT_EQ(0U, pScene->mFlags); } -void RemoveVCProcessTest::testCameraRemove (void) +// ------------------------------------------------------------------------------------------------ +TEST_F(RemoveVCProcessTest, testCameraRemove) { piProcess->SetDeleteFlags(aiComponent_CAMERAS); piProcess->Execute(pScene); - CPPUNIT_ASSERT(NULL == pScene->mCameras && 0 == pScene->mNumCameras); - CPPUNIT_ASSERT(pScene->mFlags == 0); + EXPECT_TRUE(NULL == pScene->mCameras); + EXPECT_EQ(0U, pScene->mNumCameras); + EXPECT_EQ(0U, pScene->mFlags); } -void RemoveVCProcessTest::testLightRemove (void) +// ------------------------------------------------------------------------------------------------ +TEST_F(RemoveVCProcessTest, testLightRemove) { piProcess->SetDeleteFlags(aiComponent_LIGHTS); piProcess->Execute(pScene); - CPPUNIT_ASSERT(NULL == pScene->mLights && 0 == pScene->mNumLights); - CPPUNIT_ASSERT(pScene->mFlags == 0); + EXPECT_TRUE(NULL == pScene->mLights); + EXPECT_EQ(0U, pScene->mNumLights); + EXPECT_EQ(0U, pScene->mFlags); } -void RemoveVCProcessTest::testMeshComponentsRemoveA (void) +// ------------------------------------------------------------------------------------------------ +TEST_F(RemoveVCProcessTest, testMeshComponentsRemoveA) { piProcess->SetDeleteFlags(aiComponent_TEXCOORDSn(1) | aiComponent_TEXCOORDSn(2) | aiComponent_TEXCOORDSn(3)); piProcess->Execute(pScene); - CPPUNIT_ASSERT(pScene->mMeshes[0]->mTextureCoords[0] && + EXPECT_TRUE(pScene->mMeshes[0]->mTextureCoords[0] && !pScene->mMeshes[0]->mTextureCoords[1] && !pScene->mMeshes[0]->mTextureCoords[2] && !pScene->mMeshes[0]->mTextureCoords[3]); - CPPUNIT_ASSERT(pScene->mFlags == 0); + EXPECT_EQ(0U, pScene->mFlags); } -void RemoveVCProcessTest::testMeshComponentsRemoveB (void) +// ------------------------------------------------------------------------------------------------ +TEST_F(RemoveVCProcessTest, testMeshComponentsRemoveB) { piProcess->SetDeleteFlags(aiComponent_TEXCOORDSn(1) | aiComponent_NORMALS); piProcess->Execute(pScene); - CPPUNIT_ASSERT(pScene->mMeshes[0]->mTextureCoords[0] && + EXPECT_TRUE(pScene->mMeshes[0]->mTextureCoords[0] && pScene->mMeshes[0]->mTextureCoords[1] && pScene->mMeshes[0]->mTextureCoords[2] && // shift forward ... !pScene->mMeshes[0]->mTextureCoords[3] && !pScene->mMeshes[0]->mNormals); - CPPUNIT_ASSERT(pScene->mFlags == 0); + EXPECT_EQ(0U, pScene->mFlags); } -void RemoveVCProcessTest::testRemoveEverything (void) +// ------------------------------------------------------------------------------------------------ +TEST_F(RemoveVCProcessTest, testRemoveEverything) { - piProcess->SetDeleteFlags(aiComponent_LIGHTS | aiComponent_ANIMATIONS | + piProcess->SetDeleteFlags(aiComponent_LIGHTS | aiComponent_ANIMATIONS | aiComponent_MATERIALS | aiComponent_MESHES | aiComponent_CAMERAS | aiComponent_TEXTURES); piProcess->Execute(pScene); + EXPECT_EQ(0U, pScene->mNumAnimations); + EXPECT_EQ(0U, pScene->mNumCameras); + EXPECT_EQ(0U, pScene->mNumLights); + EXPECT_EQ(0U, pScene->mNumMeshes); + EXPECT_EQ(0U, pScene->mNumTextures); + // Only the default material should remain. + EXPECT_EQ(1U, pScene->mNumMaterials); } diff --git a/test/unit/utRemoveComponent.h b/test/unit/utRemoveComponent.h deleted file mode 100644 index 1eeb31e65..000000000 --- a/test/unit/utRemoveComponent.h +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef TESTLBW_H -#define TESTLBW_H - -#include -#include - -#include -#include -#include - -using namespace std; -using namespace Assimp; - -class RemoveVCProcessTest : public CPPUNIT_NS :: TestFixture -{ - CPPUNIT_TEST_SUITE (RemoveVCProcessTest); - CPPUNIT_TEST (testMeshRemove); - CPPUNIT_TEST (testAnimRemove); - CPPUNIT_TEST (testMaterialRemove); - CPPUNIT_TEST (testTextureRemove); - CPPUNIT_TEST (testCameraRemove); - CPPUNIT_TEST (testLightRemove); - CPPUNIT_TEST (testMeshComponentsRemoveA); - CPPUNIT_TEST (testMeshComponentsRemoveB); - CPPUNIT_TEST (testRemoveEverything); - CPPUNIT_TEST_SUITE_END (); - - public: - void setUp (void); - void tearDown (void); - - protected: - - void testMeshRemove (void); - void testAnimRemove (void); - void testMaterialRemove (void); - void testTextureRemove (void); - void testCameraRemove (void); - void testLightRemove (void); - - void testMeshComponentsRemoveA (void); - void testMeshComponentsRemoveB (void); - void testRemoveEverything (void); - - private: - - RemoveVCProcess* piProcess; - aiScene* pScene; -}; - -#endif diff --git a/test/unit/utRemoveRedundantMaterials.cpp b/test/unit/utRemoveRedundantMaterials.cpp index a4d4f01dc..e072b02f6 100644 --- a/test/unit/utRemoveRedundantMaterials.cpp +++ b/test/unit/utRemoveRedundantMaterials.cpp @@ -1,10 +1,28 @@ - #include "UnitTestPCH.h" -#include "utRemoveRedundantMaterials.h" -CPPUNIT_TEST_SUITE_REGISTRATION (RemoveRedundantMatsTest); +#include +#include +#include +using namespace std; +using namespace Assimp; + +class RemoveRedundantMatsTest : public ::testing::Test +{ +public: + + virtual void SetUp(); + virtual void TearDown(); + +protected: + + RemoveRedundantMatsProcess* piProcess; + + aiScene* pcScene1; + aiScene* pcScene2; +}; + // ------------------------------------------------------------------------------------------------ aiMaterial* getUniqueMaterial1() { @@ -48,7 +66,7 @@ aiMaterial* getUniqueMaterial3() } // ------------------------------------------------------------------------------------------------ -void RemoveRedundantMatsTest :: setUp (void) +void RemoveRedundantMatsTest::SetUp() { // construct the process piProcess = new RemoveRedundantMatsProcess(); @@ -89,44 +107,44 @@ void RemoveRedundantMatsTest :: setUp (void) } // ------------------------------------------------------------------------------------------------ -void RemoveRedundantMatsTest :: tearDown (void) +void RemoveRedundantMatsTest::TearDown() { delete piProcess; delete pcScene1; } // ------------------------------------------------------------------------------------------------ -void RemoveRedundantMatsTest :: testRedundantMaterials (void) +TEST_F(RemoveRedundantMatsTest, testRedundantMaterials) { piProcess->SetFixedMaterialsString(); piProcess->Execute(pcScene1); - CPPUNIT_ASSERT_EQUAL(pcScene1->mNumMaterials,3u); - CPPUNIT_ASSERT(0 != pcScene1->mMaterials && + EXPECT_EQ(3U, pcScene1->mNumMaterials); + EXPECT_TRUE(0 != pcScene1->mMaterials && 0 != pcScene1->mMaterials[0] && 0 != pcScene1->mMaterials[1] && 0 != pcScene1->mMaterials[2]); aiString sName; - CPPUNIT_ASSERT(AI_SUCCESS == aiGetMaterialString(pcScene1->mMaterials[2],AI_MATKEY_NAME,&sName)); - CPPUNIT_ASSERT(!::strcmp( sName.data, "Complex material name" )); + EXPECT_EQ(AI_SUCCESS, aiGetMaterialString(pcScene1->mMaterials[2],AI_MATKEY_NAME,&sName)); + EXPECT_STREQ("Complex material name", sName.data); } // ------------------------------------------------------------------------------------------------ -void RemoveRedundantMatsTest :: testRedundantMaterialsWithExcludeList (void) +TEST_F(RemoveRedundantMatsTest, testRedundantMaterialsWithExcludeList) { piProcess->SetFixedMaterialsString("\'Unique Mat2\'\t\'Complex material name\' and_another_one_which_we_wont_use"); piProcess->Execute(pcScene1); - CPPUNIT_ASSERT_EQUAL(pcScene1->mNumMaterials,4u); - CPPUNIT_ASSERT(0 != pcScene1->mMaterials && + EXPECT_EQ(4U, pcScene1->mNumMaterials); + EXPECT_TRUE(0 != pcScene1->mMaterials && 0 != pcScene1->mMaterials[0] && 0 != pcScene1->mMaterials[1] && 0 != pcScene1->mMaterials[2] && 0 != pcScene1->mMaterials[3]); aiString sName; - CPPUNIT_ASSERT(AI_SUCCESS == aiGetMaterialString(pcScene1->mMaterials[3],AI_MATKEY_NAME,&sName)); - CPPUNIT_ASSERT(!::strcmp( sName.data, "Complex material name" )); + EXPECT_EQ(AI_SUCCESS, aiGetMaterialString(pcScene1->mMaterials[3],AI_MATKEY_NAME,&sName)); + EXPECT_STREQ("Complex material name", sName.data); } diff --git a/test/unit/utRemoveRedundantMaterials.h b/test/unit/utRemoveRedundantMaterials.h deleted file mode 100644 index 388c7dd66..000000000 --- a/test/unit/utRemoveRedundantMaterials.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef TESTRRM_H -#define TESTRRM_H - -#include -#include - -#include -#include -#include - -using namespace std; -using namespace Assimp; - -class RemoveRedundantMatsTest : public CPPUNIT_NS :: TestFixture -{ - CPPUNIT_TEST_SUITE (RemoveRedundantMatsTest); - CPPUNIT_TEST (testRedundantMaterials); - CPPUNIT_TEST (testRedundantMaterialsWithExcludeList); - CPPUNIT_TEST_SUITE_END (); - - public: - void setUp (void); - void tearDown (void); - - protected: - - void testRedundantMaterials (void); - void testRedundantMaterialsWithExcludeList (void); - - private: - - RemoveRedundantMatsProcess* piProcess; - - aiScene* pcScene1; - aiScene* pcScene2; -}; - -#endif diff --git a/test/unit/utScenePreprocessor.cpp b/test/unit/utScenePreprocessor.cpp index 3fa75be43..9abaa56aa 100644 --- a/test/unit/utScenePreprocessor.cpp +++ b/test/unit/utScenePreprocessor.cpp @@ -1,10 +1,34 @@ - #include "UnitTestPCH.h" -#include "utScenePreprocessor.h" -CPPUNIT_TEST_SUITE_REGISTRATION (ScenePreprocessorTest); + +#include +#include +#include +#include + +using namespace std; +using namespace Assimp; + + +class ScenePreprocessorTest : public ::testing::Test +{ +public: + + virtual void SetUp(); + virtual void TearDown(); + +protected: + + void CheckIfOnly(aiMesh* p, unsigned int num, unsigned flag); + + void ProcessAnimation(aiAnimation* anim) { pp->ProcessAnimation(anim); } + void ProcessMesh(aiMesh* mesh) { pp->ProcessMesh(mesh); } + + ScenePreprocessor* pp; + aiScene* scene; +}; // ------------------------------------------------------------------------------------------------ -void ScenePreprocessorTest::setUp (void) +void ScenePreprocessorTest::SetUp() { // setup a dummy scene with a single node scene = new aiScene(); @@ -21,7 +45,7 @@ void ScenePreprocessorTest::setUp (void) } // ------------------------------------------------------------------------------------------------ -void ScenePreprocessorTest::tearDown (void) +void ScenePreprocessorTest::TearDown() { delete pp; delete scene; @@ -29,29 +53,29 @@ void ScenePreprocessorTest::tearDown (void) // ------------------------------------------------------------------------------------------------ // Check whether ProcessMesh() returns flag for a mesh that consist of primitives with num indices -void ScenePreprocessorTest::CheckIfOnly(aiMesh* p,unsigned int num, unsigned int flag) +void ScenePreprocessorTest::CheckIfOnly(aiMesh* p, unsigned int num, unsigned int flag) { // Triangles only - for (unsigned i = 0; i < p->mNumFaces;++i) { + for (unsigned i = 0; i < p->mNumFaces;++i) { p->mFaces[i].mNumIndices = num; } pp->ProcessMesh(p); - CPPUNIT_ASSERT(p->mPrimitiveTypes == flag); + EXPECT_EQ(flag, p->mPrimitiveTypes); p->mPrimitiveTypes = 0; } // ------------------------------------------------------------------------------------------------ // Check whether a mesh is preprocessed correctly. Case 1: The mesh needs preprocessing -void ScenePreprocessorTest::testMeshPreprocessingPos (void) +TEST_F(ScenePreprocessorTest, testMeshPreprocessingPos) { aiMesh* p = new aiMesh(); p->mNumFaces = 100; p->mFaces = new aiFace[p->mNumFaces]; - + p->mTextureCoords[0] = new aiVector3D[10]; p->mNumUVComponents[0] = 0; p->mNumUVComponents[1] = 0; - + CheckIfOnly(p,1,aiPrimitiveType_POINT); CheckIfOnly(p,2,aiPrimitiveType_LINE); CheckIfOnly(p,3,aiPrimitiveType_TRIANGLE); @@ -69,32 +93,34 @@ void ScenePreprocessorTest::testMeshPreprocessingPos (void) for (; i < p->mNumFaces;++i) { p->mFaces[i].mNumIndices = 10; } - pp->ProcessMesh(p); - CPPUNIT_ASSERT(p->mPrimitiveTypes == (aiPrimitiveType_TRIANGLE|aiPrimitiveType_POLYGON)); - CPPUNIT_ASSERT(p->mNumUVComponents[0] == 2); - CPPUNIT_ASSERT(p->mNumUVComponents[1] == 0); + ProcessMesh(p); + EXPECT_EQ(static_cast(aiPrimitiveType_TRIANGLE|aiPrimitiveType_POLYGON), + p->mPrimitiveTypes); + EXPECT_EQ(2U, p->mNumUVComponents[0]); + EXPECT_EQ(0U, p->mNumUVComponents[1]); delete p; } // ------------------------------------------------------------------------------------------------ // Check whether a mesh is preprocessed correctly. Case 1: The mesh doesn't need preprocessing -void ScenePreprocessorTest::testMeshPreprocessingNeg (void) +TEST_F(ScenePreprocessorTest, testMeshPreprocessingNeg) { aiMesh* p = new aiMesh(); p->mPrimitiveTypes = aiPrimitiveType_TRIANGLE|aiPrimitiveType_POLYGON; - pp->ProcessMesh(p); + ProcessMesh(p); // should be unmodified - CPPUNIT_ASSERT(p->mPrimitiveTypes == (aiPrimitiveType_TRIANGLE|aiPrimitiveType_POLYGON)); + EXPECT_EQ(static_cast(aiPrimitiveType_TRIANGLE|aiPrimitiveType_POLYGON), + p->mPrimitiveTypes); delete p; } // ------------------------------------------------------------------------------------------------ // Make a dummy animation with a single channel, '' -aiAnimation* MakeDummyAnimation() +aiAnimation* MakeDummyAnimation() { - aiAnimation* p = new aiAnimation(); + aiAnimation* p = new aiAnimation(); p->mNumChannels = 1; p->mChannels = new aiNodeAnim*[1]; aiNodeAnim* anim = p->mChannels[0] = new aiNodeAnim(); @@ -104,7 +130,7 @@ aiAnimation* MakeDummyAnimation() // ------------------------------------------------------------------------------------------------ // Check whether an anim is preprocessed correctly. Case 1: The anim needs preprocessing -void ScenePreprocessorTest::testAnimationPreprocessingPos (void) +TEST_F(ScenePreprocessorTest, testAnimationPreprocessingPos) { aiAnimation* p = MakeDummyAnimation(); aiNodeAnim* anim = p->mChannels[0]; @@ -117,20 +143,20 @@ void ScenePreprocessorTest::testAnimationPreprocessingPos (void) anim->mScalingKeys[i].mTime = i; anim->mScalingKeys[i].mValue = aiVector3D((float)i); } - pp->ProcessAnimation(p); + ProcessAnimation(p); // we should now have a proper duration - CPPUNIT_ASSERT_DOUBLES_EQUAL(p->mDuration,9.,0.005); + EXPECT_NEAR(p->mDuration, 9., 0.005); // ... one scaling key - CPPUNIT_ASSERT(anim->mNumPositionKeys == 1 && - anim->mPositionKeys && - anim->mPositionKeys[0].mTime == 0.0 && + EXPECT_TRUE(anim->mNumPositionKeys == 1 && + anim->mPositionKeys && + anim->mPositionKeys[0].mTime == 0.0 && anim->mPositionKeys[0].mValue == aiVector3D(1.f,2.f,3.f)); // ... and one rotation key - CPPUNIT_ASSERT(anim->mNumRotationKeys == 1 && anim->mRotationKeys && - anim->mRotationKeys[0].mTime == 0.0); + EXPECT_TRUE(anim->mNumRotationKeys == 1 && anim->mRotationKeys && + anim->mRotationKeys[0].mTime == 0.0); delete p; } diff --git a/test/unit/utScenePreprocessor.h b/test/unit/utScenePreprocessor.h deleted file mode 100644 index 8ebc4b0c0..000000000 --- a/test/unit/utScenePreprocessor.h +++ /dev/null @@ -1,44 +0,0 @@ - - - -#ifndef TESTSCENEPREPROCESSOR_H -#define TESTSCENEPREPROCESSOR_H - -#include -#include - -#include -#include -#include -#include - -using namespace std; -using namespace Assimp; - -class ScenePreprocessorTest : public CPPUNIT_NS :: TestFixture -{ - CPPUNIT_TEST_SUITE (ScenePreprocessorTest); - CPPUNIT_TEST (testMeshPreprocessingPos); - CPPUNIT_TEST (testMeshPreprocessingNeg); - CPPUNIT_TEST (testAnimationPreprocessingPos); - CPPUNIT_TEST_SUITE_END (); - - public: - void setUp (void); - void tearDown (void); - - protected: - - void testMeshPreprocessingPos (void); - void testMeshPreprocessingNeg (void); - void testAnimationPreprocessingPos (void); - - private: - - void CheckIfOnly(aiMesh* p,unsigned int num, unsigned flag); - - ScenePreprocessor* pp; - aiScene* scene; -}; - -#endif \ No newline at end of file diff --git a/test/unit/utSharedPPData.cpp b/test/unit/utSharedPPData.cpp index 6344365d7..aec793e8b 100644 --- a/test/unit/utSharedPPData.cpp +++ b/test/unit/utSharedPPData.cpp @@ -1,9 +1,23 @@ - #include "UnitTestPCH.h" -#include "utSharedPPData.h" + +#include +#include -CPPUNIT_TEST_SUITE_REGISTRATION (SharedPPDataTest); +using namespace std; +using namespace Assimp; + +class SharedPPDataTest : public ::testing::Test +{ +public: + + virtual void SetUp(); + virtual void TearDown(); + +protected: + + SharedPostProcessInfo* shared; +}; static bool destructed; @@ -17,50 +31,55 @@ struct TestType // ------------------------------------------------------------------------------------------------ -void SharedPPDataTest :: setUp (void) +void SharedPPDataTest::SetUp() { shared = new SharedPostProcessInfo(); destructed = false; } // ------------------------------------------------------------------------------------------------ -void SharedPPDataTest :: tearDown (void) +void SharedPPDataTest::TearDown() { - + } // ------------------------------------------------------------------------------------------------ -void SharedPPDataTest :: testPODProperty (void) +TEST_F(SharedPPDataTest, testPODProperty) { int i = 5; shared->AddProperty("test",i); int o; - CPPUNIT_ASSERT(shared->GetProperty("test",o) && 5 == o); - CPPUNIT_ASSERT(!shared->GetProperty("test2",o) && 5 == o); + EXPECT_TRUE(shared->GetProperty("test",o)); + EXPECT_EQ(5, o); + EXPECT_FALSE(shared->GetProperty("test2",o)); + EXPECT_EQ(5, o); float f = 12.f, m; shared->AddProperty("test",f); - CPPUNIT_ASSERT(shared->GetProperty("test",m) && 12.f == m); + EXPECT_TRUE(shared->GetProperty("test",m)); + EXPECT_EQ(12.f, m); } // ------------------------------------------------------------------------------------------------ -void SharedPPDataTest :: testPropertyPointer (void) +TEST_F(SharedPPDataTest, testPropertyPointer) { int *i = new int[35]; shared->AddProperty("test16",i); int* o; - CPPUNIT_ASSERT(shared->GetProperty("test16",o) && o == i); + EXPECT_TRUE(shared->GetProperty("test16",o)); + EXPECT_EQ(i, o); shared->RemoveProperty("test16"); - CPPUNIT_ASSERT(!shared->GetProperty("test16",o)); + EXPECT_FALSE(shared->GetProperty("test16",o)); } // ------------------------------------------------------------------------------------------------ -void SharedPPDataTest :: testPropertyDeallocation (void) +TEST_F(SharedPPDataTest, testPropertyDeallocation) { TestType *out, * pip = new TestType(); shared->AddProperty("quak",pip); - CPPUNIT_ASSERT(shared->GetProperty("quak",out) && out == pip); + EXPECT_TRUE(shared->GetProperty("quak",out)); + EXPECT_EQ(pip, out); delete shared; - CPPUNIT_ASSERT(destructed); + EXPECT_TRUE(destructed); } diff --git a/test/unit/utSharedPPData.h b/test/unit/utSharedPPData.h deleted file mode 100644 index 601420e1d..000000000 --- a/test/unit/utSharedPPData.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef TESTPPD_H -#define TESTPPD_H - -#include -#include - -#include -#include - - -using namespace std; -using namespace Assimp; - -class SharedPPDataTest : public CPPUNIT_NS :: TestFixture -{ - CPPUNIT_TEST_SUITE (SharedPPDataTest); - CPPUNIT_TEST (testPODProperty); - CPPUNIT_TEST (testPropertyPointer); - CPPUNIT_TEST (testPropertyDeallocation); - CPPUNIT_TEST_SUITE_END (); - - public: - void setUp (void); - void tearDown (void); - - protected: - - void testPODProperty (void); - void testPropertyPointer (void); - void testPropertyDeallocation (void); - - private: - - SharedPostProcessInfo* shared; - -}; - -#endif diff --git a/test/unit/utSortByPType.cpp b/test/unit/utSortByPType.cpp index f486813d2..c8411f6ec 100644 --- a/test/unit/utSortByPType.cpp +++ b/test/unit/utSortByPType.cpp @@ -1,13 +1,28 @@ - #include "UnitTestPCH.h" -#include "utSortByPType.h" -#include "utScenePreprocessor.h" +#include +#include +#include -CPPUNIT_TEST_SUITE_REGISTRATION (SortByPTypeProcessTest); +using namespace std; +using namespace Assimp; + + +class SortByPTypeProcessTest : public ::testing::Test +{ +public: + + virtual void SetUp(); + virtual void TearDown(); + +protected: + + SortByPTypeProcess* process1; + aiScene* scene; +}; // ------------------------------------------------------------------------------------------------ -static unsigned int num[10][4] = +static unsigned int num[10][4] = { {0,0,0,1000}, {0,0,1000,0}, @@ -22,7 +37,7 @@ static unsigned int num[10][4] = }; // ------------------------------------------------------------------------------------------------ -static unsigned int result[10] = +static unsigned int result[10] = { aiPrimitiveType_POLYGON, aiPrimitiveType_TRIANGLE, @@ -37,7 +52,7 @@ static unsigned int result[10] = }; // ------------------------------------------------------------------------------------------------ -void SortByPTypeProcessTest :: setUp (void) +void SortByPTypeProcessTest::SetUp() { // process0 = new DeterminePTypeHelperProcess(); process1 = new SortByPTypeProcess(); @@ -113,7 +128,7 @@ void SortByPTypeProcessTest :: setUp (void) } // ------------------------------------------------------------------------------------------------ -void SortByPTypeProcessTest :: tearDown (void) +void SortByPTypeProcessTest::TearDown() { //delete process0; delete process1; @@ -121,27 +136,27 @@ void SortByPTypeProcessTest :: tearDown (void) } // ------------------------------------------------------------------------------------------------ -//void SortByPTypeProcessTest :: testDeterminePTypeStep (void) +//TEST_F(SortByPTypeProcessTest, DeterminePTypeStep() //{ // process0->Execute(scene); // // for (unsigned int i = 0; i < 10; ++i) // { // aiMesh* mesh = scene->mMeshes[i]; -// CPPUNIT_ASSERT(mesh->mPrimitiveTypes == result[i]); +// EXPECT_TRUE(mesh->mPrimitiveTypes == result[i]); // } //} // ------------------------------------------------------------------------------------------------ -void SortByPTypeProcessTest :: testSortByPTypeStep (void) +TEST_F(SortByPTypeProcessTest, SortByPTypeStep) { -// process0->Execute(scene); + // process0->Execute(scene); // and another small test for ScenePreprocessor ScenePreprocessor s(scene); s.ProcessScene(); for (unsigned int m = 0; m< 10;++m) - CPPUNIT_ASSERT(scene->mMeshes[m]->mPrimitiveTypes == result[m]); + EXPECT_EQ(result[m], scene->mMeshes[m]->mPrimitiveTypes); process1->Execute(scene); @@ -152,23 +167,23 @@ void SortByPTypeProcessTest :: testSortByPTypeStep (void) { if ((idx = num[m][n])) { - CPPUNIT_ASSERT(real < scene->mNumMeshes); + EXPECT_TRUE(real < scene->mNumMeshes); aiMesh* mesh = scene->mMeshes[real]; - CPPUNIT_ASSERT(NULL != mesh); - CPPUNIT_ASSERT(mesh->mPrimitiveTypes == AI_PRIMITIVE_TYPE_FOR_N_INDICES(n+1)); - CPPUNIT_ASSERT(NULL != mesh->mVertices); - CPPUNIT_ASSERT(NULL != mesh->mNormals); - CPPUNIT_ASSERT(NULL != mesh->mTangents); - CPPUNIT_ASSERT(NULL != mesh->mBitangents); - CPPUNIT_ASSERT(NULL != mesh->mTextureCoords[0]); + EXPECT_TRUE(NULL != mesh); + EXPECT_EQ(AI_PRIMITIVE_TYPE_FOR_N_INDICES(n+1), mesh->mPrimitiveTypes); + EXPECT_TRUE(NULL != mesh->mVertices); + EXPECT_TRUE(NULL != mesh->mNormals); + EXPECT_TRUE(NULL != mesh->mTangents); + EXPECT_TRUE(NULL != mesh->mBitangents); + EXPECT_TRUE(NULL != mesh->mTextureCoords[0]); - CPPUNIT_ASSERT(mesh->mNumFaces == idx); + EXPECT_TRUE(mesh->mNumFaces == idx); for (unsigned int f = 0; f < mesh->mNumFaces;++f) { aiFace& face = mesh->mFaces[f]; - CPPUNIT_ASSERT(face.mNumIndices == (n+1) || (3 == n && face.mNumIndices > 3)); + EXPECT_TRUE(face.mNumIndices == (n+1) || (3 == n && face.mNumIndices > 3)); } ++real; } diff --git a/test/unit/utSortByPType.h b/test/unit/utSortByPType.h deleted file mode 100644 index 2590bb2b3..000000000 --- a/test/unit/utSortByPType.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef TESTPPD_H -#define TESTPPD_H - -#include -#include - -#include -#include - - -using namespace std; -using namespace Assimp; - -class SortByPTypeProcessTest : public CPPUNIT_NS :: TestFixture -{ - CPPUNIT_TEST_SUITE (SortByPTypeProcessTest); - CPPUNIT_TEST (testSortByPTypeStep); - CPPUNIT_TEST_SUITE_END (); - - public: - void setUp (void); - void tearDown (void); - - protected: - - void testDeterminePTypeStep (void); - void testSortByPTypeStep (void); - - private: - - SortByPTypeProcess* process1; - aiScene* scene; -}; - -#endif diff --git a/test/unit/utSplitLargeMeshes.cpp b/test/unit/utSplitLargeMeshes.cpp index 52d94a2be..ce550736e 100644 --- a/test/unit/utSplitLargeMeshes.cpp +++ b/test/unit/utSplitLargeMeshes.cpp @@ -1,12 +1,29 @@ - #include "UnitTestPCH.h" -#include "utSplitLargeMeshes.h" + +#include +#include -CPPUNIT_TEST_SUITE_REGISTRATION (SplitLargeMeshesTest); +using namespace std; +using namespace Assimp; + +class SplitLargeMeshesTest : public ::testing::Test +{ +public: + + virtual void SetUp(); + virtual void TearDown(); + +protected: + + SplitLargeMeshesProcess_Triangle* piProcessTriangle; + SplitLargeMeshesProcess_Vertex* piProcessVertex; + aiMesh* pcMesh1; + aiMesh* pcMesh2; +}; // ------------------------------------------------------------------------------------------------ -void SplitLargeMeshesTest :: setUp (void) +void SplitLargeMeshesTest::SetUp() { // construct the processes this->piProcessTriangle = new SplitLargeMeshesProcess_Triangle(); @@ -17,8 +34,8 @@ void SplitLargeMeshesTest :: setUp (void) this->pcMesh1 = new aiMesh(); pcMesh1->mNumVertices = 2100; // quersumme: 3 - pcMesh1->mVertices = new aiVector3D[pcMesh1->mNumVertices]; - pcMesh1->mNormals = new aiVector3D[pcMesh1->mNumVertices]; + pcMesh1->mVertices = new aiVector3D[pcMesh1->mNumVertices]; + pcMesh1->mNormals = new aiVector3D[pcMesh1->mNumVertices]; pcMesh1->mNumFaces = pcMesh1->mNumVertices / 3; pcMesh1->mFaces = new aiFace[pcMesh1->mNumFaces]; @@ -37,9 +54,9 @@ void SplitLargeMeshesTest :: setUp (void) // generate many, many faces with randomized indices for // the second mesh this->pcMesh2 = new aiMesh(); - pcMesh2->mNumVertices = 3000; - pcMesh2->mVertices = new aiVector3D[pcMesh2->mNumVertices]; - pcMesh2->mNormals = new aiVector3D[pcMesh2->mNumVertices]; + pcMesh2->mNumVertices = 3000; + pcMesh2->mVertices = new aiVector3D[pcMesh2->mNumVertices]; + pcMesh2->mNormals = new aiVector3D[pcMesh2->mNumVertices]; pcMesh2->mNumFaces = 10000; pcMesh2->mFaces = new aiFace[pcMesh2->mNumFaces]; @@ -56,14 +73,14 @@ void SplitLargeMeshesTest :: setUp (void) } // ------------------------------------------------------------------------------------------------ -void SplitLargeMeshesTest :: tearDown (void) +void SplitLargeMeshesTest::TearDown() { delete this->piProcessTriangle; delete this->piProcessVertex; } // ------------------------------------------------------------------------------------------------ -void SplitLargeMeshesTest :: testVertexSplit() +TEST_F(SplitLargeMeshesTest, testVertexSplit) { std::vector< std::pair > avOut; @@ -75,17 +92,18 @@ void SplitLargeMeshesTest :: testVertexSplit() iter != end; ++iter) { aiMesh* mesh = (*iter).first; - CPPUNIT_ASSERT(mesh->mNumVertices < 1000); - CPPUNIT_ASSERT(0 != mesh->mNormals && 0 != mesh->mVertices); + EXPECT_LT(mesh->mNumVertices, 1000U); + EXPECT_TRUE(NULL != mesh->mNormals); + EXPECT_TRUE(NULL != mesh->mVertices); iOldFaceNum -= mesh->mNumFaces; delete mesh; } - CPPUNIT_ASSERT(0 == iOldFaceNum); + EXPECT_EQ(0, iOldFaceNum); } // ------------------------------------------------------------------------------------------------ -void SplitLargeMeshesTest :: testTriangleSplit() +TEST_F(SplitLargeMeshesTest, testTriangleSplit) { std::vector< std::pair > avOut; @@ -98,11 +116,12 @@ void SplitLargeMeshesTest :: testTriangleSplit() iter != end; ++iter) { aiMesh* mesh = (*iter).first; - CPPUNIT_ASSERT(mesh->mNumFaces < 1000); - CPPUNIT_ASSERT(0 != mesh->mNormals && 0 != mesh->mVertices); + EXPECT_LT(mesh->mNumFaces, 1000U); + EXPECT_TRUE(NULL != mesh->mNormals); + EXPECT_TRUE(NULL != mesh->mVertices); iOldFaceNum -= mesh->mNumFaces; delete mesh; } - CPPUNIT_ASSERT(0 == iOldFaceNum); -} \ No newline at end of file + EXPECT_EQ(0, iOldFaceNum); +} diff --git a/test/unit/utSplitLargeMeshes.h b/test/unit/utSplitLargeMeshes.h deleted file mode 100644 index 37eaa8ef6..000000000 --- a/test/unit/utSplitLargeMeshes.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef TESTLM_H -#define TESTLM_H - -#include -#include - -#include -#include - - -using namespace std; -using namespace Assimp; - -class SplitLargeMeshesTest : public CPPUNIT_NS :: TestFixture -{ - CPPUNIT_TEST_SUITE (SplitLargeMeshesTest); - CPPUNIT_TEST (testVertexSplit); - CPPUNIT_TEST (testTriangleSplit); - CPPUNIT_TEST_SUITE_END (); - - public: - void setUp (void); - void tearDown (void); - - protected: - - void testVertexSplit (void); - void testTriangleSplit (void); - - - private: - - SplitLargeMeshesProcess_Triangle* piProcessTriangle; - SplitLargeMeshesProcess_Vertex* piProcessVertex; - aiMesh* pcMesh1; - aiMesh* pcMesh2; -}; - -#endif diff --git a/test/unit/utTargetAnimation.cpp b/test/unit/utTargetAnimation.cpp index d131e2049..9954de8f7 100644 --- a/test/unit/utTargetAnimation.cpp +++ b/test/unit/utTargetAnimation.cpp @@ -1,4 +1,3 @@ - #include "UnitTestPCH.h" -// TODO \ No newline at end of file +// TODO diff --git a/test/unit/utTargetAnimation.h b/test/unit/utTargetAnimation.h deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/unit/utTextureTransform.cpp b/test/unit/utTextureTransform.cpp index 3e9e49b91..9954de8f7 100644 --- a/test/unit/utTextureTransform.cpp +++ b/test/unit/utTextureTransform.cpp @@ -1,2 +1,3 @@ +#include "UnitTestPCH.h" -#include "UnitTestPCH.h" \ No newline at end of file +// TODO diff --git a/test/unit/utTriangulate.cpp b/test/unit/utTriangulate.cpp index 58b9f5a96..0bfbca907 100644 --- a/test/unit/utTriangulate.cpp +++ b/test/unit/utTriangulate.cpp @@ -1,12 +1,26 @@ - #include "UnitTestPCH.h" -#include "utTriangulate.h" + +#include +#include -CPPUNIT_TEST_SUITE_REGISTRATION (TriangulateProcessTest); +using namespace std; +using namespace Assimp; +class TriangulateProcessTest : public ::testing::Test +{ +public: -void TriangulateProcessTest :: setUp (void) + virtual void SetUp(); + virtual void TearDown(); + +protected: + + aiMesh* pcMesh; + TriangulateProcess* piProcess; +}; + +void TriangulateProcessTest::SetUp() { piProcess = new TriangulateProcess(); pcMesh = new aiMesh(); @@ -15,8 +29,8 @@ void TriangulateProcessTest :: setUp (void) pcMesh->mFaces = new aiFace[1000]; pcMesh->mVertices = new aiVector3D[10000]; - pcMesh->mPrimitiveTypes = aiPrimitiveType_POINT | aiPrimitiveType_LINE | - aiPrimitiveType_LINE | aiPrimitiveType_POLYGON; + pcMesh->mPrimitiveTypes = aiPrimitiveType_POINT | aiPrimitiveType_LINE | + aiPrimitiveType_LINE | aiPrimitiveType_POLYGON; for (unsigned int m = 0, t = 0, q = 4; m < 1000; ++m) { @@ -35,7 +49,7 @@ void TriangulateProcessTest :: setUp (void) { face.mIndices[p] = pcMesh->mNumVertices; - // construct fully convex input data in ccw winding, xy plane + // construct fully convex input data in ccw winding, xy plane aiVector3D& v = pcMesh->mVertices[pcMesh->mNumVertices++]; v.z = 0.f; v.x = cos (p * (float)(AI_MATH_TWO_PI)/face.mNumIndices); @@ -44,13 +58,13 @@ void TriangulateProcessTest :: setUp (void) } } -void TriangulateProcessTest :: tearDown (void) +void TriangulateProcessTest::TearDown() { delete piProcess; delete pcMesh; } -void TriangulateProcessTest :: testTriangulation (void) +TEST_F(TriangulateProcessTest, testTriangulation) { piProcess->TriangulateMesh(pcMesh); @@ -68,7 +82,7 @@ void TriangulateProcessTest :: testTriangulation (void) for (unsigned int i = 0, tt = q-2; i < tt; ++i,++m) { aiFace& face = pcMesh->mFaces[m]; - CPPUNIT_ASSERT(face.mNumIndices == 3); + EXPECT_EQ(3U, face.mNumIndices); for (unsigned int qqq = 0; qqq < face.mNumIndices; ++qqq) { @@ -77,7 +91,7 @@ void TriangulateProcessTest :: testTriangulation (void) } for (std::vector::const_iterator it = ait.begin(); it != ait.end(); ++it) { - CPPUNIT_ASSERT(*it); + EXPECT_TRUE(*it); } --m; idx+=q; @@ -85,15 +99,15 @@ void TriangulateProcessTest :: testTriangulation (void) } else { - CPPUNIT_ASSERT(face.mNumIndices == t); + EXPECT_EQ(t, face.mNumIndices); for (unsigned int i = 0; i < face.mNumIndices; ++i,++idx) { - CPPUNIT_ASSERT(face.mIndices[i] == idx); + EXPECT_EQ(idx, face.mIndices[i]); } } } // we should have no valid normal vectors now necause we aren't a pure polygon mesh - CPPUNIT_ASSERT(pcMesh->mNormals == NULL); -} \ No newline at end of file + EXPECT_TRUE(pcMesh->mNormals == NULL); +} diff --git a/test/unit/utTriangulate.h b/test/unit/utTriangulate.h deleted file mode 100644 index 426aba94c..000000000 --- a/test/unit/utTriangulate.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef TESTNORMALS_H -#define TESTNORMALS_H - -#include -#include - -#include -#include - - -using namespace std; -using namespace Assimp; - -class TriangulateProcessTest : public CPPUNIT_NS :: TestFixture -{ - CPPUNIT_TEST_SUITE (TriangulateProcessTest); - CPPUNIT_TEST (testTriangulation); - CPPUNIT_TEST_SUITE_END (); - - public: - void setUp (void); - void tearDown (void); - - protected: - - void testTriangulation (void); - - private: - - - aiMesh* pcMesh; - TriangulateProcess* piProcess; -}; - -#endif diff --git a/test/unit/utVertexTriangleAdjacency.cpp b/test/unit/utVertexTriangleAdjacency.cpp index 9d9227d2f..800821a1b 100644 --- a/test/unit/utVertexTriangleAdjacency.cpp +++ b/test/unit/utVertexTriangleAdjacency.cpp @@ -1,25 +1,36 @@ - #include "UnitTestPCH.h" -#include "utVertexTriangleAdjacency.h" + +#include "assimp/types.h" +#include "assimp/mesh.h" + +#include -CPPUNIT_TEST_SUITE_REGISTRATION (VTAdjacency); +using namespace std; +using namespace Assimp; + +class VTAdjacencyTest : public ::testing::Test +{ +protected: + + void checkMesh(const aiMesh& mesh); +}; // ------------------------------------------------------------------------------------------------ -void VTAdjacency :: setUp (void) +TEST_F(VTAdjacencyTest, largeRandomDataSet) { // build a test mesh with randomized input data // ******************************************************************************* - pMesh = new aiMesh(); + aiMesh mesh; - pMesh->mNumVertices = 500; - pMesh->mNumFaces = 600; + mesh.mNumVertices = 500; + mesh.mNumFaces = 600; - pMesh->mFaces = new aiFace[600]; + mesh.mFaces = new aiFace[600]; unsigned int iCurrent = 0; for (unsigned int i = 0; i < 600;++i) { - aiFace& face = pMesh->mFaces[i]; + aiFace& face = mesh.mFaces[i]; face.mNumIndices = 3; face.mIndices = new unsigned int[3]; @@ -32,44 +43,55 @@ void VTAdjacency :: setUp (void) face.mIndices[1] == face.mIndices[2]); } + checkMesh(mesh); +} - // build a second test mesh - this one is extremely small +// ------------------------------------------------------------------------------------------------ +TEST_F(VTAdjacencyTest, smallDataSet) +{ + + // build a test mesh - this one is extremely small // ******************************************************************************* - pMesh2 = new aiMesh(); + aiMesh mesh; - pMesh2->mNumVertices = 5; - pMesh2->mNumFaces = 3; + mesh.mNumVertices = 5; + mesh.mNumFaces = 3; - pMesh2->mFaces = new aiFace[3]; - pMesh2->mFaces[0].mIndices = new unsigned int[3]; - pMesh2->mFaces[1].mIndices = new unsigned int[3]; - pMesh2->mFaces[2].mIndices = new unsigned int[3]; + mesh.mFaces = new aiFace[3]; + mesh.mFaces[0].mIndices = new unsigned int[3]; + mesh.mFaces[1].mIndices = new unsigned int[3]; + mesh.mFaces[2].mIndices = new unsigned int[3]; - pMesh2->mFaces[0].mIndices[0] = 1; - pMesh2->mFaces[0].mIndices[1] = 3; - pMesh2->mFaces[0].mIndices[2] = 2; + mesh.mFaces[0].mIndices[0] = 1; + mesh.mFaces[0].mIndices[1] = 3; + mesh.mFaces[0].mIndices[2] = 2; - pMesh2->mFaces[1].mIndices[0] = 0; - pMesh2->mFaces[1].mIndices[1] = 2; - pMesh2->mFaces[1].mIndices[2] = 3; + mesh.mFaces[1].mIndices[0] = 0; + mesh.mFaces[1].mIndices[1] = 2; + mesh.mFaces[1].mIndices[2] = 3; - pMesh2->mFaces[2].mIndices[0] = 3; - pMesh2->mFaces[2].mIndices[1] = 0; - pMesh2->mFaces[2].mIndices[2] = 4; + mesh.mFaces[2].mIndices[0] = 3; + mesh.mFaces[2].mIndices[1] = 0; + mesh.mFaces[2].mIndices[2] = 4; + checkMesh(mesh); +} - // build a third test mesh which does not reference all vertices +// ------------------------------------------------------------------------------------------------ +TEST_F(VTAdjacencyTest, unreferencedVerticesSet) +{ + // build a test mesh which does not reference all vertices // ******************************************************************************* - pMesh3 = new aiMesh(); + aiMesh mesh; - pMesh3->mNumVertices = 500; - pMesh3->mNumFaces = 600; + mesh.mNumVertices = 500; + mesh.mNumFaces = 600; - pMesh3->mFaces = new aiFace[600]; - iCurrent = 0; + mesh.mFaces = new aiFace[600]; + unsigned int iCurrent = 0; for (unsigned int i = 0; i < 600;++i) { - aiFace& face = pMesh3->mFaces[i]; + aiFace& face = mesh.mFaces[i]; face.mNumIndices = 3; face.mIndices = new unsigned int[3]; @@ -88,62 +110,32 @@ void VTAdjacency :: setUp (void) } else if (face.mIndices[1]) face.mIndices[1]--; } + + checkMesh(mesh); } // ------------------------------------------------------------------------------------------------ -void VTAdjacency :: tearDown (void) +void VTAdjacencyTest::checkMesh(const aiMesh& mesh) { - delete pMesh; - pMesh = 0; + VertexTriangleAdjacency adj(mesh.mFaces,mesh.mNumFaces,mesh.mNumVertices,true); - delete pMesh2; - pMesh2 = 0; - - delete pMesh3; - pMesh3 = 0; -} - -// ------------------------------------------------------------------------------------------------ -void VTAdjacency :: largeRandomDataSet (void) -{ - checkMesh(pMesh); -} - -// ------------------------------------------------------------------------------------------------ -void VTAdjacency :: smallDataSet (void) -{ - checkMesh(pMesh2); -} - -// ------------------------------------------------------------------------------------------------ -void VTAdjacency :: unreferencedVerticesSet (void) -{ - checkMesh(pMesh3); -} - -// ------------------------------------------------------------------------------------------------ -void VTAdjacency :: checkMesh (aiMesh* pMesh) -{ - pAdj = new VertexTriangleAdjacency(pMesh->mFaces,pMesh->mNumFaces,pMesh->mNumVertices,true); - - - unsigned int* const piNum = pAdj->mLiveTriangles; + unsigned int* const piNum = adj.mLiveTriangles; // check the primary adjacency table and check whether all faces // are contained in the list unsigned int maxOfs = 0; - for (unsigned int i = 0; i < pMesh->mNumFaces;++i) + for (unsigned int i = 0; i < mesh.mNumFaces;++i) { - aiFace& face = pMesh->mFaces[i]; + aiFace& face = mesh.mFaces[i]; for (unsigned int qq = 0; qq < 3 ;++qq) { const unsigned int idx = face.mIndices[qq]; const unsigned int num = piNum[idx]; // go to this offset - const unsigned int ofs = pAdj->mOffsetTable[idx]; + const unsigned int ofs = adj.mOffsetTable[idx]; maxOfs = std::max(ofs+num,maxOfs); - unsigned int* pi = &pAdj->mAdjacencyTable[ofs]; + unsigned int* pi = &adj.mAdjacencyTable[ofs]; // and search for us ... unsigned int tt = 0; @@ -159,35 +151,34 @@ void VTAdjacency :: checkMesh (aiMesh* pMesh) } } // assert if *this* vertex has not been found in the table - CPPUNIT_ASSERT(tt < num); + EXPECT_LT(tt, num); } } // now check whether there are invalid faces - const unsigned int* pi = pAdj->mAdjacencyTable; + const unsigned int* pi = adj.mAdjacencyTable; for (unsigned int i = 0; i < maxOfs;++i,++pi) { - CPPUNIT_ASSERT(0xffffffff == *pi); + EXPECT_EQ(0xffffffff, *pi); } // check the numTrianglesPerVertex table - for (unsigned int i = 0; i < pMesh->mNumFaces;++i) + for (unsigned int i = 0; i < mesh.mNumFaces;++i) { - aiFace& face = pMesh->mFaces[i]; + aiFace& face = mesh.mFaces[i]; for (unsigned int qq = 0; qq < 3 ;++qq) { const unsigned int idx = face.mIndices[qq]; // we should not reach 0 here ... - CPPUNIT_ASSERT( 0 != piNum[idx]); + EXPECT_NE(0U, piNum[idx]); piNum[idx]--; } } // check whether we reached 0 in all entries - for (unsigned int i = 0; i < pMesh->mNumVertices;++i) + for (unsigned int i = 0; i < mesh.mNumVertices;++i) { - CPPUNIT_ASSERT(!piNum[i]); + EXPECT_FALSE(piNum[i]); } - delete pAdj; } diff --git a/test/unit/utVertexTriangleAdjacency.h b/test/unit/utVertexTriangleAdjacency.h deleted file mode 100644 index ed2646fc1..000000000 --- a/test/unit/utVertexTriangleAdjacency.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef VTADJ_H -#define VTADJ_H - -#include -#include - -#include "assimp/types.h" -#include "assimp/mesh.h" -#include - - -using namespace std; -using namespace Assimp; - -class VTAdjacency : public CPPUNIT_NS :: TestFixture -{ - CPPUNIT_TEST_SUITE (VTAdjacency); - CPPUNIT_TEST (largeRandomDataSet); - CPPUNIT_TEST (smallDataSet); - CPPUNIT_TEST (unreferencedVerticesSet); - CPPUNIT_TEST_SUITE_END (); - - public: - void setUp (void); - void tearDown (void); - - protected: - - void largeRandomDataSet (void); - void smallDataSet (void); - void unreferencedVerticesSet (void); - - void checkMesh(aiMesh* pMesh); - - private: - - VertexTriangleAdjacency* pAdj; - aiMesh* pMesh, *pMesh2, *pMesh3; -}; - -#endif From 0e28416104cf5ed4df8faa2272fada161318f6e5 Mon Sep 17 00:00:00 2001 From: Jared Duke Date: Mon, 8 Sep 2014 17:30:21 -0700 Subject: [PATCH 26/53] Add tests for fast_atof The custom implementation for fast_atof currently lacks test coverage, making it susceptiple to regressions with future changes. Add some basic test coverage, in addition to a few documented cases that are known to fail. --- test/CMakeLists.txt | 1 + test/unit/utFastAtof.cpp | 144 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 145 insertions(+) create mode 100644 test/unit/utFastAtof.cpp diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index ae6ace59d..d9407634d 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -16,6 +16,7 @@ SOURCE_GROUP( unit FILES ) SET( TEST_SRCS + unit/utFastAtof.cpp unit/utFindDegenerates.cpp unit/utFindInvalidData.cpp unit/utFixInfacingNormals.cpp diff --git a/test/unit/utFastAtof.cpp b/test/unit/utFastAtof.cpp new file mode 100644 index 000000000..141dfb9b7 --- /dev/null +++ b/test/unit/utFastAtof.cpp @@ -0,0 +1,144 @@ +#include "UnitTestPCH.h" + +#include + + +class FastAtofTest : public ::testing::Test +{ +protected: + template + static void RunTest(AtofFunc atof_func) + { + const Real kEps = 1e-5; + +#define TEST_CASE(NUM) EXPECT_NEAR(static_cast(NUM), atof_func(#NUM), kEps) +#define TEST_CASE_NAN(NUM) EXPECT_TRUE(std::isnan(atof_func(#NUM))) +#define TEST_CASE_INF(NUM) EXPECT_TRUE(std::isinf(atof_func(#NUM))) + + TEST_CASE(0); + TEST_CASE(1.354); + TEST_CASE(1054E-3); + TEST_CASE(-1054E-3); + TEST_CASE(-10.54E30); + TEST_CASE(-345554.54e-5); + TEST_CASE(-34555.534954e-5); + TEST_CASE(-34555.534954e-5); + TEST_CASE(549067); + TEST_CASE(567); + TEST_CASE(446); + TEST_CASE(7); + TEST_CASE(73); + TEST_CASE(256); + TEST_CASE(5676); + TEST_CASE(3); + TEST_CASE(738); + TEST_CASE(684); + TEST_CASE(26); + TEST_CASE(673.678e-56); + TEST_CASE(53); + TEST_CASE(67); + TEST_CASE(684); + TEST_CASE(-5437E24); + TEST_CASE(8); + TEST_CASE(84); + TEST_CASE(3); + TEST_CASE(56733.68); + TEST_CASE(786); + TEST_CASE(6478); + TEST_CASE(34563.65683598734); + TEST_CASE(5673); + TEST_CASE(784e-3); + TEST_CASE(8678); + TEST_CASE(46784); + TEST_CASE(-54.0888e-6); + TEST_CASE(100000e10); + TEST_CASE(1e-307); + TEST_CASE(0.000001e-301); + TEST_CASE(0.0000001e-300); + TEST_CASE(0.00000001e-299); + TEST_CASE(1000000e-313); + TEST_CASE(10000000e-314); + TEST_CASE(100000000e-315); + TEST_CASE(12.345); + TEST_CASE(12.345e19); + TEST_CASE(-.1e+9); + TEST_CASE(.125); + TEST_CASE(1e20); + TEST_CASE(0e-19); + TEST_CASE(400012); + TEST_CASE(5.9e-76); + TEST_CASE_INF(inf); + TEST_CASE_INF(inf); + TEST_CASE_INF(infinity); + TEST_CASE_INF(Inf); + TEST_CASE_INF(-Inf); + TEST_CASE_INF(+InFiNiTy); + TEST_CASE_NAN(NAN); + TEST_CASE_NAN(NaN); + TEST_CASE_NAN(nan); + EXPECT_EQ(static_cast(6), atof_func("006")); + EXPECT_EQ(static_cast(5.3), atof_func("5.300 ")); + + /* Failing Cases: + EXPECT_EQ(static_cast(6), atof_func(" 006")); + EXPECT_EQ(static_cast(5.3), atof_func(" 5.300 ")); + TEST_CASE(-10.54E45); + TEST_CASE(0x0A); + TEST_CASE(0xA0); + TEST_CASE(0x1p1023); + TEST_CASE(0x1000p1011); + TEST_CASE(0x1p1020); + TEST_CASE(0x0.00001p1040); + TEST_CASE(0x1p-1021); + TEST_CASE(0x1000p-1033); + TEST_CASE(0x10000p-1037); + TEST_CASE(0x0.001p-1009); + TEST_CASE(0x0.0001p-1005); + TEST_CASE(0x1.4p+3); + TEST_CASE(0xAp0); + TEST_CASE(0x0Ap0); + TEST_CASE(0x0.A0p8); + TEST_CASE(0x0.50p9); + TEST_CASE(0x0.28p10); + TEST_CASE(0x0.14p11); + TEST_CASE(0x0.0A0p12); + TEST_CASE(0x0.050p13); + TEST_CASE(0x0.028p14); + TEST_CASE(0x0.014p15); + TEST_CASE(0x00.00A0p16); + TEST_CASE(0x00.0050p17); + TEST_CASE(0x00.0028p18); + TEST_CASE(0x00.0014p19); + TEST_CASE(0x1p-1023); + TEST_CASE(0x0.8p-1022); + TEST_CASE(0x80000Ap-23); + TEST_CASE(0x100000000000008p0); + TEST_CASE(0x100000000000008.p0); + TEST_CASE(0x100000000000008.00p0); + TEST_CASE(0x10000000000000800p0); + TEST_CASE(0x10000000000000801p0) + */ + +#undef TEST_CASE +#undef TEST_CASE_NAN +#undef TEST_CASE_INF + } +}; + +struct FastAtofWrapper { + float operator()(const char* str) { return Assimp::fast_atof(str); } +}; + +struct FastAtodWrapper { + double operator()(const char* str) { return Assimp::fast_atod(str); } +}; + +TEST_F(FastAtofTest, FastAtof) +{ + RunTest(FastAtofWrapper()); +} + +TEST_F(FastAtofTest, FastAtod) +{ + RunTest(FastAtodWrapper()); +} From 43c82b0b38f77891b7d7b76fd1132bde0f4d2131 Mon Sep 17 00:00:00 2001 From: Jared Duke Date: Tue, 9 Sep 2014 16:34:10 -0700 Subject: [PATCH 27/53] Remove std::isnan and std::isinf usage from utFastAtofTest These functions were added in C++11, and should not be used nakedly in the current code base. Replace them with suitable C++03 constructs. --- code/fast_atof.h | 3 +++ test/unit/utFastAtof.cpp | 17 +++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/code/fast_atof.h b/code/fast_atof.h index 03e08f404..13312fcd8 100644 --- a/code/fast_atof.h +++ b/code/fast_atof.h @@ -248,6 +248,9 @@ inline const char* fast_atoreal_move( const char* c, Real& out, bool check_comma if ((c[0] == 'I' || c[0] == 'i') && ASSIMP_strincmp(c, "inf", 3) == 0) { out = std::numeric_limits::infinity(); + if (inv) { + out = -out; + } c += 3; if ((c[0] == 'I' || c[0] == 'i') && ASSIMP_strincmp(c, "inity", 5) == 0) { diff --git a/test/unit/utFastAtof.cpp b/test/unit/utFastAtof.cpp index 141dfb9b7..f32478b55 100644 --- a/test/unit/utFastAtof.cpp +++ b/test/unit/utFastAtof.cpp @@ -2,6 +2,19 @@ #include +namespace { + +template +bool IsNan(Real x) { + return x != x; +} + +template +bool IsInf(Real x) { + return std::abs(x) == std::numeric_limits::infinity(); +} + +} // Namespace class FastAtofTest : public ::testing::Test { @@ -12,8 +25,8 @@ protected: const Real kEps = 1e-5; #define TEST_CASE(NUM) EXPECT_NEAR(static_cast(NUM), atof_func(#NUM), kEps) -#define TEST_CASE_NAN(NUM) EXPECT_TRUE(std::isnan(atof_func(#NUM))) -#define TEST_CASE_INF(NUM) EXPECT_TRUE(std::isinf(atof_func(#NUM))) +#define TEST_CASE_NAN(NUM) EXPECT_TRUE(IsNan(atof_func(#NUM))) +#define TEST_CASE_INF(NUM) EXPECT_TRUE(IsInf(atof_func(#NUM))) TEST_CASE(0); TEST_CASE(1.354); From af4c30bc77635834138afb38da6bf3f7178af6e9 Mon Sep 17 00:00:00 2001 From: Ryan Cole Date: Fri, 12 Sep 2014 01:48:41 +1200 Subject: [PATCH 28/53] small typo fix renamed getNumVertives to getNumVertices. --- port/jassimp/jassimp/src/jassimp/AiMesh.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/port/jassimp/jassimp/src/jassimp/AiMesh.java b/port/jassimp/jassimp/src/jassimp/AiMesh.java index 81ac0b775..c9cb3669a 100644 --- a/port/jassimp/jassimp/src/jassimp/AiMesh.java +++ b/port/jassimp/jassimp/src/jassimp/AiMesh.java @@ -316,7 +316,7 @@ public final class AiMesh { * * @return the number of vertices. */ - public int getNumVertives() { + public int getNumVertices() { return m_numVertices; } @@ -432,7 +432,7 @@ public final class AiMesh { * Returns a buffer containing vertex positions.

* * A vertex position consists of a triple of floats, the buffer will - * therefore contain 3 * getNumVertives() floats + * therefore contain 3 * getNumVertices() floats * * @return a native-order direct buffer, or null if no data is available */ @@ -503,7 +503,7 @@ public final class AiMesh { * used to check whether this is the case.

* * Indices are stored as integers, the buffer will therefore contain - * 3 * getNumVertives() integers (3 indices per triangle) + * 3 * getNumVertices() integers (3 indices per triangle) * * @return a native-order direct buffer * @throws UnsupportedOperationException @@ -523,7 +523,7 @@ public final class AiMesh { * Returns a buffer containing normals.

* * A normal consists of a triple of floats, the buffer will - * therefore contain 3 * getNumVertives() floats + * therefore contain 3 * getNumVertices() floats * * @return a native-order direct buffer */ @@ -540,7 +540,7 @@ public final class AiMesh { * Returns a buffer containing tangents.

* * A tangent consists of a triple of floats, the buffer will - * therefore contain 3 * getNumVertives() floats + * therefore contain 3 * getNumVertices() floats * * @return a native-order direct buffer */ @@ -557,7 +557,7 @@ public final class AiMesh { * Returns a buffer containing bitangents.

* * A bitangent consists of a triple of floats, the buffer will - * therefore contain 3 * getNumVertives() floats + * therefore contain 3 * getNumVertices() floats * * @return a native-order direct buffer */ @@ -574,7 +574,7 @@ public final class AiMesh { * Returns a buffer containing vertex colors for a color set.

* * A vertex color consists of 4 floats (red, green, blue and alpha), the - * buffer will therefore contain 4 * getNumVertives() floats + * buffer will therefore contain 4 * getNumVertices() floats * * @param colorset the color set * @@ -595,7 +595,7 @@ public final class AiMesh { * A texture coordinate consists of up to 3 floats (u, v, w). The actual * number can be queried via {@link #getNumUVComponents(int)}. The * buffer will contain - * getNumUVComponents(coords) * getNumVertives() floats + * getNumUVComponents(coords) * getNumVertices() floats * * @param coords the texture coordinate set * From 7dff0c6d525d871285d2799082a1d312d2e93af0 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Fri, 12 Sep 2014 12:05:42 +0200 Subject: [PATCH 29/53] refactoring: remove not use iosystem. Signed-off-by: Kim Kulling --- code/ObjFileImporter.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/code/ObjFileImporter.cpp b/code/ObjFileImporter.cpp index 65a8be314..254ef05db 100644 --- a/code/ObjFileImporter.cpp +++ b/code/ObjFileImporter.cpp @@ -109,9 +109,7 @@ const aiImporterDesc* ObjFileImporter::GetInfo () const // ------------------------------------------------------------------------------------------------ // Obj-file import implementation void ObjFileImporter::InternReadFile( const std::string& pFile, aiScene* pScene, IOSystem* pIOHandler) -{ - DefaultIOSystem io; - +{ // Read file into memory const std::string mode = "rb"; boost::scoped_ptr file( pIOHandler->Open( pFile, mode)); From 49c9786b0a9446cb2ce726930736ef6b5ad2dc4e Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Fri, 12 Sep 2014 15:40:50 +0200 Subject: [PATCH 30/53] update: avoid mesh generation on heap, when the mesh will be empty ( obj-loader ). Signed-off-by: Kim Kulling --- code/ObjFileImporter.cpp | 34 ++++++++++++++-------------------- code/ObjFileImporter.h | 4 ++-- 2 files changed, 16 insertions(+), 22 deletions(-) diff --git a/code/ObjFileImporter.cpp b/code/ObjFileImporter.cpp index 254ef05db..874dda707 100644 --- a/code/ObjFileImporter.cpp +++ b/code/ObjFileImporter.cpp @@ -230,16 +230,10 @@ aiNode *ObjFileImporter::createNodes(const ObjFile::Model* pModel, const ObjFile for ( unsigned int i=0; i< pObject->m_Meshes.size(); i++ ) { unsigned int meshId = pObject->m_Meshes[ i ]; - aiMesh *pMesh = new aiMesh; - createTopology( pModel, pObject, meshId, pMesh ); - if ( pMesh->mNumVertices > 0 ) - { + aiMesh *pMesh = createTopology( pModel, pObject, meshId ); + if( pMesh && pMesh->mNumFaces > 0 ) { MeshArray.push_back( pMesh ); } - else - { - delete pMesh; - } } // Create all nodes from the sub-objects stored in the current object @@ -272,22 +266,22 @@ aiNode *ObjFileImporter::createNodes(const ObjFile::Model* pModel, const ObjFile // ------------------------------------------------------------------------------------------------ // Create topology data -void ObjFileImporter::createTopology(const ObjFile::Model* pModel, - const ObjFile::Object* pData, - unsigned int uiMeshIndex, - aiMesh* pMesh ) +aiMesh *ObjFileImporter::createTopology( const ObjFile::Model* pModel, const ObjFile::Object* pData, + unsigned int uiMeshIndex ) { // Checking preconditions ai_assert( NULL != pModel ); if( NULL == pData ) { - return; + return NULL; } // Create faces ObjFile::Mesh *pObjMesh = pModel->m_Meshes[ uiMeshIndex ]; - ai_assert( NULL != pObjMesh ); - - pMesh->mNumFaces = 0; + if( !pObjMesh ) { + return NULL; + } + ai_assert( NULL != pObjMesh ); + aiMesh* pMesh = new aiMesh; for (size_t index = 0; index < pObjMesh->m_Faces.size(); index++) { ObjFile::Face* const inp = pObjMesh->m_Faces[ index ]; @@ -295,16 +289,14 @@ void ObjFileImporter::createTopology(const ObjFile::Model* pModel, if (inp->m_PrimitiveType == aiPrimitiveType_LINE) { pMesh->mNumFaces += inp->m_pVertices->size() - 1; pMesh->mPrimitiveTypes |= aiPrimitiveType_LINE; - } - else if (inp->m_PrimitiveType == aiPrimitiveType_POINT) { + } else if (inp->m_PrimitiveType == aiPrimitiveType_POINT) { pMesh->mNumFaces += inp->m_pVertices->size(); pMesh->mPrimitiveTypes |= aiPrimitiveType_POINT; } else { ++pMesh->mNumFaces; if (inp->m_pVertices->size() > 3) { pMesh->mPrimitiveTypes |= aiPrimitiveType_POLYGON; - } - else { + } else { pMesh->mPrimitiveTypes |= aiPrimitiveType_TRIANGLE; } } @@ -353,6 +345,8 @@ void ObjFileImporter::createTopology(const ObjFile::Model* pModel, // Create mesh vertices createVertexArray(pModel, pData, uiMeshIndex, pMesh, uiIdxCount); + + return pMesh; } // ------------------------------------------------------------------------------------------------ diff --git a/code/ObjFileImporter.h b/code/ObjFileImporter.h index 814a65652..716cf65d1 100644 --- a/code/ObjFileImporter.h +++ b/code/ObjFileImporter.h @@ -91,8 +91,8 @@ private: aiNode *pParent, aiScene* pScene, std::vector &MeshArray); //! \brief Creates topology data like faces and meshes for the geometry. - void createTopology(const ObjFile::Model* pModel, const ObjFile::Object* pData, - unsigned int uiMeshIndex, aiMesh* pMesh); + aiMesh *createTopology( const ObjFile::Model* pModel, const ObjFile::Object* pData, + unsigned int uiMeshIndex ); //! \brief Creates vertices from model. void createVertexArray(const ObjFile::Model* pModel, const ObjFile::Object* pCurrentObject, From 485aa8b39d160d9e2fb43bb468b3d08cc0234453 Mon Sep 17 00:00:00 2001 From: Jared Duke Date: Fri, 12 Sep 2014 19:37:10 -0700 Subject: [PATCH 31/53] Fix null check in Q3BSPFileImporter Reverse the null condition, preventing invalid texture stream dereferencing. Fixes #380. --- code/Q3BSPFileImporter.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/code/Q3BSPFileImporter.cpp b/code/Q3BSPFileImporter.cpp index b662be299..c7b829843 100644 --- a/code/Q3BSPFileImporter.cpp +++ b/code/Q3BSPFileImporter.cpp @@ -641,17 +641,17 @@ bool Q3BSPFileImporter::importTextureFromArchive( const Q3BSP::Q3BSPModel *pMode bool res = true; sQ3BSPTexture *pTexture = pModel->m_Textures[ textureId ]; if ( !pTexture ) { - return false; - } + return false; + } - std::vector supportedExtensions; - supportedExtensions.push_back( ".jpg" ); - supportedExtensions.push_back( ".png" ); - supportedExtensions.push_back( ".tga" ); + std::vector supportedExtensions; + supportedExtensions.push_back( ".jpg" ); + supportedExtensions.push_back( ".png" ); + supportedExtensions.push_back( ".tga" ); std::string textureName, ext; if ( expandFile( pArchive, pTexture->strName, supportedExtensions, textureName, ext ) ) { IOStream *pTextureStream = pArchive->Open( textureName.c_str() ); - if ( !pTextureStream ) { + if ( pTextureStream ) { size_t texSize = pTextureStream->FileSize(); aiTexture *pTexture = new aiTexture; pTexture->mHeight = 0; From 35c9a33718ca211b0a70064e42f6e1505806be23 Mon Sep 17 00:00:00 2001 From: Jared Duke Date: Sat, 13 Sep 2014 09:34:07 -0700 Subject: [PATCH 32/53] Fix crash for Blender poly to face conversion without UVs BlenderBMeshConverter assumes that the BMesh has UVs, but that is not always the case. Handle the non-UV case by only adding a T face when UVs are present. --- code/BlenderBMesh.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/code/BlenderBMesh.cpp b/code/BlenderBMesh.cpp index 47dd657fc..5108b1832 100644 --- a/code/BlenderBMesh.cpp +++ b/code/BlenderBMesh.cpp @@ -143,13 +143,21 @@ void BlenderBMeshConverter::DestroyTriMesh( ) void BlenderBMeshConverter::ConvertPolyToFaces( const MPoly& poly ) { const MLoop* polyLoop = &BMesh->mloop[ poly.loopstart ]; - const MLoopUV* loopUV = &BMesh->mloopuv[ poly.loopstart ]; - + if ( poly.totloop == 3 || poly.totloop == 4 ) { AddFace( polyLoop[ 0 ].v, polyLoop[ 1 ].v, polyLoop[ 2 ].v, poly.totloop == 4 ? polyLoop[ 3 ].v : 0 ); - - AddTFace( loopUV[ 0 ].uv, loopUV[ 1 ].uv, loopUV[ 2 ].uv, poly.totloop == 4 ? loopUV[ 3 ].uv : 0 ); + + // UVs are optional, so only convert when present. + if ( BMesh->mloopuv.size() ) + { + if ( (poly.loopstart + poly.totloop ) >= static_cast( BMesh->mloopuv.size() ) ) + { + ThrowException( "BMesh uv loop array has incorrect size" ); + } + const MLoopUV* loopUV = &BMesh->mloopuv[ poly.loopstart ]; + AddTFace( loopUV[ 0 ].uv, loopUV[ 1 ].uv, loopUV[ 2 ].uv, poly.totloop == 4 ? loopUV[ 3 ].uv : 0 ); + } } else if ( poly.totloop > 4 ) { From ab6b5a7b21cacf2e3cfcaf3695ce9d7323fbcf1d Mon Sep 17 00:00:00 2001 From: Denis Biryukov Date: Mon, 15 Sep 2014 23:35:03 +0400 Subject: [PATCH 33/53] Fix gcc warnings. (initialization order) --- code/FBXBinaryTokenizer.cpp | 11 ++++++----- code/FBXTokenizer.cpp | 9 +++++---- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/code/FBXBinaryTokenizer.cpp b/code/FBXBinaryTokenizer.cpp index b5f151c15..ba5db4625 100644 --- a/code/FBXBinaryTokenizer.cpp +++ b/code/FBXBinaryTokenizer.cpp @@ -55,14 +55,15 @@ namespace FBX { // ------------------------------------------------------------------------------------------------ Token::Token(const char* sbegin, const char* send, TokenType type, unsigned int offset) - : sbegin(sbegin) + : + #ifdef DEBUG + contents(sbegin, static_cast(send-sbegin)), + #endif + sbegin(sbegin) , send(send) , type(type) , line(offset) , column(BINARY_MARKER) -#ifdef DEBUG - , contents(sbegin, static_cast(send-sbegin)) -#endif { ai_assert(sbegin); ai_assert(send); @@ -395,4 +396,4 @@ void TokenizeBinary(TokenList& output_tokens, const char* input, unsigned int le } // !FBX } // !Assimp -#endif \ No newline at end of file +#endif diff --git a/code/FBXTokenizer.cpp b/code/FBXTokenizer.cpp index 7aa81543a..caa80c191 100644 --- a/code/FBXTokenizer.cpp +++ b/code/FBXTokenizer.cpp @@ -58,14 +58,15 @@ namespace FBX { // ------------------------------------------------------------------------------------------------ Token::Token(const char* sbegin, const char* send, TokenType type, unsigned int line, unsigned int column) - : sbegin(sbegin) + : +#ifdef DEBUG + contents(sbegin, static_cast(send-sbegin)), +#endif + sbegin(sbegin) , send(send) , type(type) , line(line) , column(column) -#ifdef DEBUG - , contents(sbegin, static_cast(send-sbegin)) -#endif { ai_assert(sbegin); ai_assert(send); From c482458cae36669877e273f04d61e2395e7d64d6 Mon Sep 17 00:00:00 2001 From: Jared Duke Date: Sun, 14 Sep 2014 17:19:42 -0700 Subject: [PATCH 34/53] Fix non-BMesh containing .blend import BlenderBMeshConverter was erroneously asserting that it contained valid mesh upon construction. The assertion should only occur when triangulation is requested, allowing non-BMesh blender meshes to load properly. Note that this fixes a number of .blend regression tests that are currently baselined as failures. --- code/BlenderBMesh.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/code/BlenderBMesh.cpp b/code/BlenderBMesh.cpp index 5108b1832..ed1de0b40 100644 --- a/code/BlenderBMesh.cpp +++ b/code/BlenderBMesh.cpp @@ -65,7 +65,6 @@ BlenderBMeshConverter::BlenderBMeshConverter( const Mesh* mesh ): BMesh( mesh ), triMesh( NULL ) { - AssertValidMesh( ); } // ------------------------------------------------------------------------------------------------ From 046b7e5f478adb0050cbb8e3d37891ce785d972c Mon Sep 17 00:00:00 2001 From: Jared Duke Date: Mon, 15 Sep 2014 18:14:38 -0700 Subject: [PATCH 35/53] Rebase FBX regression db entries The FBX importer now properly parses field-of-view tokens. Rebase only the failing FBX entries to accomodate the fix, also removing the comment noting the (now incorrect) comment about improper import of the FOV property. --- code/FBXConverter.cpp | 2 -- test/regression/db.zip | Bin 1015891 -> 1018079 bytes 2 files changed, 2 deletions(-) diff --git a/code/FBXConverter.cpp b/code/FBXConverter.cpp index 03d359875..137f7cbed 100644 --- a/code/FBXConverter.cpp +++ b/code/FBXConverter.cpp @@ -381,8 +381,6 @@ private: out_camera->mAspect = cam.AspectWidth() / cam.AspectHeight(); out_camera->mPosition = cam.Position(); out_camera->mLookAt = cam.InterestPosition() - out_camera->mPosition; - - // BUG HERE cam.FieldOfView() returns 1.0f every time. 1.0f is default value. out_camera->mHorizontalFOV = AI_DEG_TO_RAD(cam.FieldOfView()); } diff --git a/test/regression/db.zip b/test/regression/db.zip index 12f4a18ba5e84f89fb13c66200120687b36ff834..9c4ba16bbc3028b816c754360be2149ff065644e 100644 GIT binary patch delta 120396 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ùzHAsS%0Iz7(_P0bItT~x`3Xc>?^yL(jAfL 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

DDWwF;w*2#^SJ3T=#2hbZiq_RK z(dECg#7t`Nz|`c<)NBQ~a;8>DelxO=L@xk$ndB;lgpgYupn(srUk)7dfEmvsU%8`l-!}wJ)!A5AfOk*5LaP|l-~3aLUPl@S&n>ri7M;sk5UquOFG5Mq>CA`*}TFAs)+A16eM0Mwnb zuA6$dXiF(o8$zjii)kXIfF}~GNFV+V#WYNcN+~94GS6NnC^!O4y$G|oL&h+P#Ucsm zhU9{A^|`<#qL~b0Vss_BKg9FjS+2E+CiGR0=x99o+^fU5VvC&U;UUktrrt zBGcY9lS-mdi=<@7IKld1fchf0ISkXNxp!@#EA^TZV|=qeX3{9-0wJ-=AdhU0t^Oc% z7>K%2{W5a*y_0GniUK0)*T}U0rH2n6L=$PaGO?VPZJXvog`RjJySYq-`VMPmb^-bp z5zE)&A(%(3mMbKr?VJfrK9fgc8L5OPBOiS!c%Jq)d_svQ8lWC zo}Nfr*A6t9#o%PhdMp{r0&eH1Xhud!1(xcrO`JrRW-gm}po48zV>y*npcd5c`uQ%1 z#WEV1LMA7)D=_%ll@_1^I|*Idjd6T|N~WsE8B3TC^?bFS=H?3pVu65|h~C8k<08=c zPEgS`8?m57E*1%i1|icB(1Y#>%P9C_4VRF)`fb;>AQ-H(U|e-|)pZNTsWmbl(LS^o zsD1Bl#UdJ&T&*N*c7k2Vg#MskE{=7_YW;Q^ClJV`YA)HoWfZr55|$Ck_%bfh2N#~M zG_Qtgn-l%}eiz1Rq+Dq|vwp$?u(RyFw2Y7k^I1U5L)y;zuHA=a_#(MRqhrP?hp3nG zaDN-GsaZyicaqt^Da-!Zew?p+o%q`-}`1O?EBNSGVHpy59Ty`=_x+X?GY8d(i zZj?dkVYDt(yB<)UfUEi_MyfPoDVLb}b}2cR!JO%RA!g^=qey?DmdSo0F#S%YnM864 z1RM#~$$S=f9E`PI0pX@EI*x*BnN|anb4eP_B<4a;Tu5lj&ZF@Yjv%L*94muer_u9T zXbn|~kh2)d2y4Q z52aGcM8|M0qVu&(^peZFjF}X2NI9x&NANm5<}%_g))r5DXv;B3B9!tpq()=Zk;^Et z7L~aebhUs%DFxt=5@Uc-53eG#Fl||#!=S19*XRnu8H_~9C1&qu&(f$-(A09!VBHPY zlFo{7B#{ZFx_f#mo8HcQ<}f?Zfs4>-y5?ikE%Yf&>tUHJ0YBwY4rY=G zIy5%kUikUPj6@*TR7IT*all^z(wVd%iQ%Cjp*-eLF z91d2~P=!z>;fu+BPNbl7f1yl((j(S9Ql11y26{$BXLa~ZGbtfnt(21+SK5f&_=9Bx z8U>%2qO?*ud|^Z&0ww2@lRpgHe_wk&Luy=<3Z9Bfs#&CFUpWN%^;AR^_Zu)cjYgv; z8(U6sdpE!`puhs%fEqRCtxDZvJHQy&5{uyPh73*tCn@9t?;io&LmOimjZ&@D4KPu9 zXi!vSY7KREZCZDHeNAYbiYo?3kLjJfob4C zhFrUQM1n!mZ;NI45|u#Lf1|o2YUvi+bmWu^Gp~>l6!A220jbePfXw$)M@%M{iFp!Y zeAB+a^O^-?M>^?^Trf_lQSua|1LLp~LPI;dU>P_qkn8MOsCrfm|7~UneW1;{{<}p< z;-a9HTI;tOh#YP~cpDT<%@a!Nv7^}fNrdQmEvg1ku5uwp38X5xZBus|{;~JjNbToe zu<8zPF9{kRr7eGY6fp6-VJ4|YA>9#?8W-rInhV|CfS4+yy%BGfwoXo`IkxsbG!YD}qCOi#6=vY%i;`+V^jhZWOQD2Z zK7_`|8DBVJQC1K-IttdZIljm|TDx}AHD~)_sDuya2|A-mO_r+@D|&dtXp+$hi62@L zt*!a?Xc*1oV=$AF$~ho)oUXdTc=V|jMVH@sJVvRcLID|MNYi^N41)6cFr#$60N?Rw zVvM#Wp)pW?nLo|M6Z63LB}Nl#6HAVAW3;uVZKYU_Q3|nK*BPgpk3s%&)MK?4L{~Zr zgZO-zRH`64O_||#=>rV+VPd$C%h3^FqLwSB>3EIn6(wB!fYxHET5!VIu9ipcn6~=z(gkzOh%VlBd12D)(&Il z(nz5QOuC9(jCirsgqnv2$3h(_zq5^g55M-%+uI0dofm?cBtnT=_Y9U+l_ZKOJQSU! zn5Yry{QX11IbiZ292d@Fnn?tq5Ve4?7RY=ZFnwKuT-GuDa?I<<$zjkhr0djkDQ4nH zAv8>eYr-j}jAdvCFyXPG)Yrix8l!|tv06m>5ET^4EgG@cgX>1M#Q&`0JtEl0V)b4*c{Q5q&vk2U-N|qo|(q8rolz22$mqkh*icR|3s07AfUw z9lwy$q0VPbJs~nv&q0wx68Z?_v>xBzf9&KSG?5JnJy^2`LoQ#;53(mZ@mp1e>K$Rei!aZSfp436vsX zJy~y#8-VFz3F^Lq2>_;@ZJp=^BQXe=bo=VqE6gORcjLGghx|AD417ZL8(Xs+o!rK zC2dU{(!O9BIAejdf%;{Nv5X87H|jZ&Ma3JT!HvJtJg_O}3djVaaSIl$T>uRxkDew~ zVw_mY6Y|LUF?16&xbb%^Bjdx<7laP%P;S{+gtBIVx3;xW18QxS$yEwjJ>GB@MHb%# z%P5qv?s)!}A zyFbS9c(64kaHyQ(E}V#E1QJMLBnHpDPp3hdQ18RUo?xm1<3PzFPqS`c(lepeP&JlO z2>4=hn>I%{F9e;-;8=%+Xyr6wrBr8%Qg--k`EuSAnATi4t<|*}1scq+67VEs^Y#^$ zQK@>f9O^p2lLHu-402_m>YO?m#XYuyQtJg`AvI5_B6B@953yP{0nOY6Gb9)afq_>- zq*+=|`05Bn_G1>7k#J=YuB+QwCnsZl6Bp{PsJ{@;y^7_z8t^sTE5@}-EkLtCf8JAmoeMw&@2Rx6Zz!oTs~ zup+%X^eq{^pS2k!0Tcb2#+LpMKcMqFAdm0CcFYC`CNjl;;Mb=mBJ+60@3Oxvo)=uN zV^Ew(Gii7dNDv~`o!+4=*oDG@iN0}=^dzt!3M%1PJMZ3wkwOLRuZX^>2zewwOy?dL z%-V-4C^+RxuK&Fz5}7A(tX=ybz;Fp98<2{#^3KcZPB1+a3DdSD8Oam0UAriOW8-x1 z2xfvTKoPMr?rD7PB)Zei)Y`y373I|eKLXJ8>M;f=6G_P2)#~QwCR~Rqkh|uo>Bv1% zTZM6nz%&k$RbaYmAm3fABv!tLL)LLSgT~z;+=wQbD5aL^7R5B-EX5?^%D7X49!kt&%?NoMdr4x3cg6Y4-lg|FwKnYBzYJE32= zcWEZb0*9a_(Zjn|rc0&+Q!HVhIQP)ATBctV)2@8X1nJ>iHL*6X-hR;tl4SMX5xZ-f zhiKR??e2Q&E?~M{fSDAK52Yl6V{6kF$%nW!zGr{EqFuDK1q!yH+_*&FyK*`3J zVU!S@4IO`kS}*qv&+i%q#XAzkU-^XCdl+AQNZU|r2*m5{CVcUEUobgb2vHDfjVA5^ zr#_?-Ed-)}Hf5{6V~|uWl8_yY@+j1a@8~0-=n%2d7k@VmY^*GZN@iALCY7AWBlAR% z`(BQX;UN8nX#8I0d|+H7>!L5POSS4)*S3E*Xh_W~0bkDJ*ORzGTTBacbZalO-CF%h zJ!cF`7!0ern>mI;UV~gjr0pQbebAmP3)Fp|PA|k*Vw8x_<15HTFqT54TcSgNqI;p& zK&#VmR$Nc^ewa1QB;*Ogd{pP&8&r+CV4Tw$fI6DTXl!5D7*QY_n6t|HBEh7@DRWdS`lj+fPX+voJ zXoCB&BgV<)YN?uV3((L5FmoQa!ZJ!Ytgh#p0Nws&kjw)LAW}(${CdJCS-|6an2~{G z7)X?^+m46t?_Ps5T0H@=`4zOs+z{*(lVLB^^&psIvre=OByNcnWOy=iyWrp%TVb(6G=fe>kc~dKLms4+e0e@ zi57%nWaTWDjYaaIFnE`HGJ+B~bRYy#E|B>S=!IoqVHS|-7ZHM3PZe~+a$-^3)f?mB zP(?;=Lr~AdaJ`{xUs?u!m>Uwz>$XMuXZD9I=mT;Gx1k?~i8UI~x_@!hm~VOPeM|*7 zIbonf2V$H?0GH5URqm&|eY$2))^r{KGYMre_M(As_9TGw+J6hAm7JQf&U=S2GBTAw zLoC!yRXq^Gaos#d5SlF4H4#*J4Xrr>9kX^QCKHO~BHjHbB{R@ivcD;GdIZtw>fsnC zhr0k`9lwL>8EI6WSrekpV3XPb@)0r~VZsB;Q$xJHDPp#=-Dr^5s4{yE&<5ZLt6b>`}r&In` zd?W;{!B8s%Tpomm{#6ZH=3EL)p+$@g`0j9(^IsXNb1SWvTSr0#rV%;aH9Ii3QVJ(b zI%-FAcS!~ALy$^Lm9G(i&!IEoluSW}<;1Xh7s2YCG)~EdjgjsF49y)6+|E09V;ML* zRq7@sQZgpR+x1W5@L23#EGQ5`_LGjmqsb^O@SU}vkx^@Sy5S;9X8ENt(OrM*zB}9Kt|3 zXr}JnF-k_(Zst`;V%7@+)zI~>d&2JQIC$5Tlu7c{SV-A|`-iS8PSSL0fdDS|60;$r zhf|0P&~+z*0%K00qsO%syLlWccJvHplEM8_-NZ_&$d$W)txEx>d4!4ko{3tX&@y#9 z0Ze&Wm`N?;b9KF9is@CEj~m?a(R)Uik`CwL=lirw$rO_faT;u@XzrgBQ~R5kNiBhCLrfY;ho`9%fQj5Prr$zC(!u4X zn4&-b7VW_ny?YKtC+3QID!Gib0aTL>8t0;O0L7JfoDP)`e`a-`ZDA_%_NYE1$B}!X(n22j($LHr?n$S&z(mfFpBDL-9$i) zIt}F;enf`>MeFJG5ih2EMzO=e-777pp+c@m2(eV6JN3^1)c6asKf`pwP@|er@T9Ze z>UMRj{iG&i7g0u%{cqTACGDp)hnd8(GgM++HVNBDAm41>XW>Sfi zJl&h>)Bs_ldB;Gi}h|v&>K&$b4{OFldk|;eq+sVRo5Z0df3)+3BH3It#sUqa`{EOiif2 zB&{_rGSEliF&s;W1x^^N=7K{^j)nO-!0v8^T+aQgfv!DT(0M}|rlspS+{klC` z1Sneh;`?}n1*4%OVFmafeunQ{HE%10(8YLC-RN#3MT})T=Nmn#J zTc?`FT#ORIxaj6<{cRkNi*5soHeMp4n6kIr?Bh8@Gd8qXdK5{$H zF!c#sXE+*|y1_cAYjRTh(RGpu;jBY9rjP4HG4TeX!@z_W3EJeyJuylu<*Ib=(EV*m zv?sE^z?5GedVgAXQ0Yj*k`1zmvhTMS04wM^%HJhUdR!QFRRdb2$_nzc(A2PAr*Vkq5C^9kz>(WEi|eB?dHrbG<7V7%Egd{POb&!m!bb=jzcb& znNlNu$7M2aV>DM_sG0{U++^2>Q_u%Wv;&}6iRgr{<{BEMg5(?B!$!KQpD2)r2C=Td zcu{8Y?F9#q&!9sYggeQfjEUfaibh55iY8tGCa(ar5SVDgJjOq6EL=6$gTu!x z&7_7rTe8xD~Wmz4#MmbnHmo5{~c?J zeHUwfuiY@#Hbi)CaxfZqm6=J8t$W&2o6|i+-G%coyHYHc%Sf}IaussH0z+sS4VTZ= zy_7;#fE#xrcm;a)kYg3*u@KAgAfhBCdi2^N8*AzfrV64CWs5LQ2=_^JAHkstNch!d zh$qy231Nj^hhdxu%&=5UZmic{gDC0frC3O;R*7|^#1uJBSgBryW#9}}R*x$D0UqZz z%dw1HEtBfrT%>q5*X-?GO5ay?UKoJ|6*3h#(f^JYHO_;@ErU_HI->4N; z-Ws1p!=3^V;+b{IYqgdE$`uN7LqOeel&zyABoN$`NOW`bDdv(>dAH%JnO-b00fw(b zNjJ2!`|J%EEwc@n39g6Mx!grDF^A|Ikoiq5%H<}Y3^!sFoV~y~`oCTN7j<+K3a>@& z0F>*aO&A4NuQ+}15>MMH)$rmTn3xAx`SNs_R5K!cw_qb)}~yhL)#`>6(Yx6DsSL6 z4Hob<@Eiq!?jCFII}kZOfYanvchF3L|Ksdb-@{N954OZa3xmGt{o`TLfJaM`{bON>6 z)9r+=Wyn2WTZwV`FbIC-m`Mz;JjwopK?wVdQfg7O5*+x9Q8E=D{Ls2X_nhtSO+5iX zW?|j?j2!Q4%kO?4T5{kk%>?PGV#u$l%hYK^%wX!G66w3RRHE2gCdxUKJ*vV?GKok@ zsPvGDZB40%ap0i7PL~*bM}KOGY#%_Ctbbx6us>?u=QpU%9q2vZxe_A$gNV+J`h@}? zXd4$zG3~3tOd2=>CRh1kFCX7|2`rBZ4eM=;iffswfyrU0i7~axO5q7F5m_g!VK$~{ z=tFJ!Qy)V4ePF8(D0ujb%hi27hH6Q7f(*^5}NrwS9`*kE+Ix@zb!I-q-E;#2$*c`X(k09679%9X|GRh?~a0= z0IOKX{~79t!X9bkzFUFG`F1PJB-23jPG`bU+pnWJvyNubSG^39+n_S21RXv|9v3-k zD*d*X>-r8DuK|}-H(!|Qi78JN11~^Lr~^w~&##ROn($a#6WZ!qIv*jV5v|1fter)V+{t&FsU+ z0=l8$@YaB9wFD#80!^J1MhZIKb6(&97@Z2jkDB0$4r%F*fBfdDkGPK@@uX`Hnoh-2 z!kbitamQ-n=Yi~sn3~*w80NW+ey7-BsRxEi;Cj36u_fJznMKfuzP(WlKkaS4XxW7U;1DsB{;QYw-y7D&-=kx1cH5H1>tngNfl0|jxl~iXX|$KlwlaBhU<5P z*+fI0fPM`eL5sk*R0-fL({9#l`=@lc_{J zzHV}AZGjF`0V1`Ncj*tkPKKus&q1lrw5Ig-Gccug^DvWGD3yu`XJ_5CxX@}? z(8zedaR_pHu4Qt24on?aU?znI?wt@_V)QUsVGDKIMws`95old46YY=KtfZOX!AX9d z`v=qj9PO(~fVYSAz(J_9(Dhk~^j~P}L^JJKg_-2k5g0MtHwUm;)UjR_QK#HhD5#cc z^$XB2pBS1+s8nktvz)SLw1>1qkBh)VzTV^byFEI{UCxG)w_`SEA3L+`4upk?WLI{e3=ZMx~n@m zRcl_@9ss5dg!4G?09x{jS&K5JFFG-WHbBlc$(T+FY!IBPlk~ykEdGQK`wfzhpihAR zyLEJ3a+HR`!@CedB4*dtK63BwFgTtt|8+h4gGbTC*IFjpALbmxOcJ4xT*iL)_7CL) zQ5G@El4B^hmgvK4ux{&4U?Q1R!K=r*QH2?#rJRw}g_%TLem&=OPSew$QFr1G5=_2lki%PM zfbN!dINlwl1ejVmf6Byk@XS4*JbP?CZC^|@eIjn)eGaYB;t!j)jJ=9xLbTJ>I2+@s zOPE|@Az#~iAqyU8sVDQU@;v$tba=d-EKTj~FpmbV`jexL{T=pYG~*r91f#6&4?XBB zk*<=k0Dl-oyA_zkvq7 zXDX5EZ5eY1>34*~14RxE1ud7r(MMfH$MqkZht6uDy^hbRhNt}~=!!fHg#a8l(gf7} z1C+Y^E^_&x?Jl~m^YSrDt>VFT0Rj~csF6un2A+G?eM*)x3Qhg*SWg7gG6+0U-8J;! z8=6_k6V!QXgtld6K< z%RoR)mGs+-QLl7^2>J3{D9dMIv$_ zsd_tesxddbA}^8<+SOxUWzhlb3QMsdxRa3iM;=5ulmS`eUo;t9+UCOp>2)>7$;RH% z81F%T|Hgt+zFHzD1koBG^Zg%nU3Z*}SNFFoqAg>!D7&-PhUli3MOdO+buCerDLWA@ z1R=s&5h+AXIMLgyBuaGAONbJJNQiDl60c5vUV`QKz4tyd@yr?X=X}ojKIisx&poAP zbOCWdXSxu=>R|`;SM5ztub|Zp*~R{+GLkP~vRl0Rq~)?lp9(?GAae?^19(qz^GmyH z>EqKYRIBSIC_*#r6cJ1}{cpnpS`2Xz0?h6+A$&8u)l>6#7)gd0gxcRrRCK~soqN{N z1z;r|NfI<}6EdVZ^~nQ;@Ut!zyn2OVTVrYGt*i(=CWk-5lYHwt05epTG-k60*?!rH z`%=fV4YjoP!)ho(q4Kh?U6 zv3+7yG{U^d&xTz`3;Zfp`Biq*Y_lsqPe2&u!iAu@z)s3QR1CV%?6cV;I4ks89Ob$~ zcY2`)whJ8OVSh#a{rpF zY^`6qUgB=!h^mMsUGX9DDW1C+cE;aOPUdx1G=8hk?_?8Po8ie!u^`^hbSbx^JC?N%apUF%%k6> zViR3&7?~dgg-Cq>A({=BtVnKSgQYH`7WlyF!`y`U%P01^Al%tovB{ZdDH$IJ1xbF4dGYx&g#>GskGr!K z_;GwrmULc=F7XXb1gn(fkM|G#{fWHhByV1>_&u=c=))U?B>AUZ9Z?<~d6(%ky;joG zkR;`vATDqDYKi1VUIcy0d;vu5KoXs@mij%>9N&9)Uva`ocizECvU9!Sgy98xa`-Bt zU4qrPkNlTYOID$$6j6}S(9V7Nmh^D z?M5hD_*VxmE4^QAGu(iEY8!0}!d05O@l>nns8wg2ze}Nc?1=$3->A{KdPwcGiu0=%oa!u4$$l%Qm-}X-GyW7hfLFMeMlnVj^+;w z*Of?j1k%{U6!T2$oc*7z7(HD1*;YKNSglY4^y#A{t5DLT_a3JaVEuP%Fy1<@xEx5b z6M^g4GjNspnQnkfIxV(qJl*&N6P>$h&G7eW+2xvX8LAOpbyKn~byqtg=(a4_Ml?3_1ll<-+#j z%nB08?}PuPK15hFW_q-tT*t+Uk|fiHGmp*b5}Elsb{EKOU#XX*vH4L`iK)@_4xo*D zUR5-98?J54IYa4NZ&cQ3kYI-gSt*+S8jYy*5aEs>y3+WSMuP*!6Ja&A$!jQ=zDJ|+ zpkwuwR77ty$eO+ov0M?}k0(}9GI~*(E5eigPGEPeTTRg*v0H%q$9=Y-SjJjlCoubB zjT(|KU~`~$QuvlawO&Fu=BuSh#3A?suO%ay6^$RBcY1Y9uD-dzN#Cu}z!M$?BE!EG z_x@)$ZbHNkY*W~271%-@M;IKJv1mR+IrlGiMdPqJ_zkUN&w`gmVUg@*&}CfY$!E|u zgpmMB+L^3?kUQSPFQG?jCd-Cu?f6B{ceo5|$U2a1Z`>{w@cE4!-y@n;iS6Jk9gSQ|A{thn`>^l1tN z>%j$^cO6oyU&R)bm_PW{dif!L$ySQhZH0F_+rbKd*K)6zp8SZvluA=VNGk=>#5M}a zCoDwlVPf&t>z_D*#8Y?lZ%B{G1Ul*p0?+PhEyhhbN5t zGK~g?kR|}h?eDCRtadzBJ`W`N<=!OoN+g_)5PO@}g)W7Fo(PfN=&pc}=GUoDQznq? zCrh6d-nTsMVaE(=TQJzTz6CK>EqW>>zsKR^`$6IMsq579X>?R?+7)6w2iA)FdP`QT z#cJ0laS$^6xva--_lUvYX-oq)Sj$qg@hRDYTm;@VmWd%)L< z3!yY-?+doTX#W5*6b^o?dSNk-2gq;1sP76(uqMP@G;)2-wv_TKu2zmgGzzRz)yrN# zebL`E1-aCdR}I$qVGiU^?5htApDYr=bDxldL+N%%lEN_^-RoiGf8sfSxzMnB#aY6r%;AK~@+PY&s zF=@ER;cp*O{UX8dcP#>>o*yYBAD%e;x(k}P_|`jDfBFiv1RWQ46kqv-z6~M$2qfco z;}jC!qYxGtz9iI4C_Rx9ifRLMGkVCPE^_lrZZJ`@Ivf_WPoD~14D2`Yzsb-jg!rVj~Pbk8oLIZ1_z-yVns&I@UMG?ku(kjfj-G4azS60Ssu_hQGy z=})Ss&p{XS2b@V?(L08qOydPo+DwInw%R9ruBS$O2${mRYIHTixisQ z>G1NG+DiWRS7Xs%lUXp*q{Xx&2sh3!=SnZSSPVWf2bM`VEDMX1U&f9YiY#gf>3HeE z&MT-^Y_QYBoKN1fN+DTY9@t64XH$hHSzW)w>F0?LZ|99wG&h8_B^LAY@H&O$b!DP# zVmOkTmxhg0w0Q9Q)rw=#+#3~_KNHRxx``zEx%|!5@1Xu*p0-Q@irqq4#SJR7IjT+H z<^fe;@Bg++IJbzzjNqqm9G{H-a68?E5K;#|@k{?3&CpeRGwQ!fA^GhNyFRy#5R6hv z0O`UW>R!U20@kL#wY+H~Enw}`50ckob6afOho065-i8P02zdWpQ^uTwipz;~l=@1> z@{4kdDtw6QmDFUPurKZ2YIF|wsIVVWNG_3@f%=s;sL&hx z>MmPQ4l|FRt>%_F3dx6ShTa$^wz;&lp`2VF=hVuC3yU;Xf*x_?W8BcZcR1ipm%7ErM=5HmHGYLwBClK<&& zS`@G4I_8;Y3dw_aQobe2Jt6Oqs6sTSj6nrizm~hblPD5qW;*{oSnF_|@OvH3Km=9h z4us0PB5xroQdWa{WF6mhF`#&Y-kL8|YEZQgfbB^oW-y&v~ zhZdz2QbQ+w26rhv_23fTG6$Yg=Ep){=sBIWz6+R2JQIlzW@Um1mDcOqbyX*JX1 z0AwgnadDbR)zWw5jD|>GFbl&U@d5~$klcRwlCa6U8%{-03G{goXiS&O6}AG1JCc8w zpnx2>#dx{JPi|PV66r}0X+@sBhlMt{jcua)5+xD}B-$M|c8O6ZV`>uhjn{Sz>!_iH zzg1P~h9)UiyT@zMy8_Fh+7*v}XHXR&noLuq_=Tloms~l5v6{*rNLsen`0(b+4I9+@RW!IkM@i$r zvul7yuE>!xUQSmuPEk6C&($5kNs8&D(bzNX`V@Jhj_-QFSd`Cbgnx4W~7)1$UVvU`pOMTmmDntrgWT!nwTH&(=STnY$O| zGxe*!)d)(g5=4@H(qNQC@|a+w zqDPIPsH)F@FuD2|$%RA@NR7rCys=ZiO=Ge3O=U+y$1yZ8gfyWl43*Ji6%zcz_!;rv zC%4Y0pbrqqAJzxUKBh|{peF!Ij{Qsl!9Bz0WIO$_BBifPhDgiVZd`CYwXGIxT;FOy z+Womg62rpXjJmGd7JCgy$f*}5(-%`|R|x5xKw69pk2nFnnXpcC@29qjZ3^~9>$qtp z50R;QP^MPZv4ea$Ln0vz$YSSq%pLm|n&I2o%|^e>6w2!gJb7dVYxy=dQz)?9}t(6 zy#ufQehT{~PiRwQB^?VP-2jp?W{pHbiaV#{MVY`ZuB8UGg5U2}3qx0Mo#euP>a^)E z!(ubsd9UHrqLgzCL)U&Itp=;q9PCIHP=(si zibVsP6+QpMJy{hfdHNQ`>V-ERp9vQ`To{UiyLk#SYuf7VG#PM8NnBAIZSw6>NPb*l zxLR?s)0SK7ltn&n?{rg;GtPw3c(6}!`ry!P^Y9DH(LEOrBc3wP24*3}+QX$lh5x+fh~a6SZ=uv<&|drf~6_8Fce_}TjE^m!0@r9> z2x%*jl9pdrNXUj^;aMbRtxg&6rxY~0@oh3#gF?uj=x|rET5X6X;Q@1nf9rSS{wsO% zOmc*8q$BUrs1VXDD}1T*B9Hg!36c{fqpe<^EM;cH zk#)+d9b{JmtqQRovO_V6s;F4;n$1-VigMukQ>hZgJA&U6&W7>(D=Q|i$sWOze}G`R zQ<**oliaH+j_$PX2lRx9jMZx@4XR2Y5l|GCcUFJa(vBw>79PYUsd^`;3t=iPrsmVFVnf_HXQ1Qf7$!3M_a9PYeXq0w2 zA?G(1Iu}F=e9&c!u#x%Mb}+%Nkg!%wPBu}=#qz*xM`rEBfjfv&!^KQRpsQBO>G=$#$cK=Nr=OAkvZpf3?_;+3^L_;o{#=NC8ox zmT7EsMs>?JDP;l6WESicBEL~sTOPR`MSS$pKIP;5jt>LiEvpG zt2^DCrf6JNxZCKuK{R@)wMg%E7znNibPe($-CHJ~YTwquMa+?|uzhez;wJsV#_A_U z>O&Nk30t_ioh2XYfZ1WoW}T2w7uYAeXf#fjg-2QqnU~U8DBOHWzTI8%!6`jbP?Oy8 z5_>2bghq$eZWN={VfN^*GnIc~ON|g`Hr(NvpwEP$MS3c*Os~ab(^(`%2cPbf{;&#W z)io9gU*D(kiHuI%p8rlgU{4B28V{7autMoV(0c2K@2h0blczIWN%TA8vR;bMhP)(P zpO>e4`u#bIM$`##u$%6f370IQycVw%oG@4M;lQ&-xUjZ)9jfe(d5Q*4L}q=F7`Zcx zK`@T_kD|#8piBVMA!sLXI<8bSUb7kXHJFTRHcUP!Ca*}&rhkYzw^(9(VGiLL&}H*S zZCt8I5Toehi7n2qU6s%m(7ayDr68XZCTM1*YH}s%^Sj{VE{%h~R^Rhr8^O!v^I6hG zpOj2FI0eDKdG5r8FO~_*6{FW;^XaQO$i6HJXUJC@uTwNWE7ExCb||4QdQ(o=%%}wlrrCI&%#M9L7jbL-c_mUmw6%veHUTz;5 zH>cZMnUEldo%cP@)9w(``8UupH!lh#Ke9n!P<5+9?92zpl&$_yX77v6$RTs%pb)8z zF&(mgSFCrPwAxA!;^(5G$@rR@Bb3L%~x)1{OR>OAx`!{KH2x*Q$dh@nILREM# ze>={)IB=jyRgYYOVMr(M(A^MHk*2us#Q&|3;6&!&icY-|$Z2r5DMCMgyHB2`!Pblf zXY%p~iW9bW6Hlx5;HQ($`)ExZ(|M~trsE-`n?Ooxk}Huch@7_b)1_AFvVX6Z?{v{+ zpHWIP?fGXwbJJ_`29$m`PmCB5glKs^JVvQ*A7h!K=#2WTGk(si_;5=KM0mOqlQ+G< z%ZdgDtOy!eouh#xBF6!DO|xixZoH;N@UE`c938kmzrx0;X5-OpBia>6=mcz@c)mkH zn$kQt6btqiEuUCO0r~8>IWx=f4=uMGqn!WYs`#W3MYYgeu=)&p_XkRBfr!x=MI<+J z-v?X~6hpaZTr$u=aH{=vLJRCPg^DRI_-r_NO#)?Sm{6Q@LR`7vO5Rjlap9(s$vrBb z`Ieu^MU(kqJEkPHYZ?50zm`B+R$3y7mj@>gt{pZe?%~@&+RWBc^Rl!%gmhjYohhe~ zEO@u!-q}B2diaO9yYZLnx8up&DkziM=@JwYYU7yr`_s9G$9wz(Bp%V%Gl3R_khZsi zOrsMOk{j{T{Bn2wn@vN0#gzV-`7x$cq}bG;Of^%1^m-+QqWE`lwqRG9sAp^KCfwe&&Z<<4q+E*z2k%v$Waa9>S9AZARe+-h*ytGe z|9!nq&T=SLnA=f#A-qklhjlYQg(SQL-7*I?XcI*0)&_0r?3PFll>5PY4oAv6bL+3& z(KGd+*6TI<<8^3t2W z5`~-aqQ(ji0o)d@p{2zokBeO7Z*()7)Hc{eIlT+Dlt@mSHQ?h%Mbn0vMN-jOsI3sz zL|aRGrb9A*ovM&<;doJrnCKI!^iI3r_s6%xmXoV-;SS)75F92qs@QgP5nM94ecMu% zv-3yM-9Mow*J&reh}S(!BxfYa+q*rrX&?Ne_{aEVd&Ol%4Zj!V#o5uGc80j5J?yH+ z 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 H(>(tV%3jbQ delta 114574 zcmeFZc{G)6+dpn!dvDu3&*PRk^Gw2)WFC`HnTJS(BE%*Vp+vb%nUauX-U*qfGGr<; z6(O0DIpMdb`@XyH_j#Z7ylZ{ede?8Q*I(x~ovwYI$M88m$8nrf_tgi()M-o&pfDy9 z5)v|!9Pz4?Wi%lWST1%@aSyTyffeFL(a;JAtOPgGfKRKF6=O$D8DF!KL{AN7*zlve6Q?I>q#rNUC*BpUL_sa~-oT*9p3NA%-vTh9o2g`C z>F@N1Q=7(1o8E+W(!A-DT7#ZahH6Eq8n)PtxSoge$*1svxEC;-!F$5}4Mm zBaO=7u}Vuxv~jlAEgVHMxV~0-_lpJD1GFARbw}hSvU3$v@A0wavldT5_-NXyLo?X-rLNbdLBi_0NlY^|i|u8_lV=iSdCNrER=8o0?KM*2Va2aN&~zKma`jgeEv zWS-XV6N9II$+RcXdosL#n}d>j-8W~+?ysP9a9Qe842I`3bb8!2r>tEvmlIU-SUE$ zNQD}C;WDzpBPYosqkq3w3Dx|~$iOSW_mlD{vh9K$%77?gyBnu>&k z0=v-C*JY$#DojrugTk_Li+Wct27o=njW`Wm0N4}UDAL#(0!zbnw@^45{v<}UFev!B67_~Ht2Jk3mWf(F#2JY0d$^`6vGZX= zYsAyJ)ltjB#n{zW-{XEb-`?cw9`oDl+upBoy)z^iL+J9*44tI05~;jjvMY8H)S_3n zV>I`(zYAn2hLx(ki=x6wtxgzEFiva>P~Ef5n)f(^&YfVsOq*Qqbj7#s*=J{Q@9CGV z1veTR&bEaKh|se+IxmU7-Y zA8WTu3j*M+T$rfwJ+qo0NfPf~Got)d!f&V|&t*ZHtNV<^``;RL8{Kke0#rz%1I>;M zDwV;CjSwPlpsh!{RJ4OcQ{CO4v|V|0+;l!mZN`bV1*!JRbg&WZIHVGzr~6AruXHGc zh2(;V^3?niC-woIgdhcEEUk5jtF4ERjN-6!oA8mvxb}HutjTXO3F1~d`!Wpx%fOD3 z%DshPdAL*K-n~R|De>_p$|m2n>j3OI?&_m}brymgKDe6<5QItc{vsLSDt8(hAQ-Fc zj8gzC3HQXeObZC%i4)mdkBF d{}ONQgcFR8px2!?;B@j^y`Ae-yYUen>v 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 L5)yH1GRyw~P|*Od From c8661ab0552863547cf160710a1cef094d5a632d Mon Sep 17 00:00:00 2001 From: Jared Duke Date: Tue, 16 Sep 2014 17:47:55 -0700 Subject: [PATCH 36/53] Rebase BLEND regression db entries Now that .blend import works properly for non-BMesh-containing meshes, all .blend regression test cases should now succeed. Rebase accordingly. --- test/regression/db.zip | Bin 1018079 -> 1091443 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/regression/db.zip b/test/regression/db.zip index 9c4ba16bbc3028b816c754360be2149ff065644e..d942fe75a0f2efb8ebe4ddb556d0b722d2545d82 100644 GIT binary patch delta 151043 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

>;!ja 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 From 083d5630efc3cde0999dea37d516785a3ebcfbf3 Mon Sep 17 00:00:00 2001 From: Jared Duke Date: Wed, 17 Sep 2014 07:30:55 -0700 Subject: [PATCH 37/53] Use VC11 build for DB generation --- test/regression/db.zip | Bin 1091443 -> 1018078 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/regression/db.zip b/test/regression/db.zip index d942fe75a0f2efb8ebe4ddb556d0b722d2545d82..6c4f82bb09b8f8895762adbc9f3cec39f313933e 100644 GIT binary patch delta 81987 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Ξ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 z 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⁡atorONWVqKc6ado`VJtJgk>~yq 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 SqVzpeqRQs)G6 Date: Wed, 17 Sep 2014 08:49:28 -0700 Subject: [PATCH 38/53] Use Linux/GCC build for DB generation --- test/regression/db.zip | Bin 1018078 -> 1091452 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/regression/db.zip b/test/regression/db.zip index 6c4f82bb09b8f8895762adbc9f3cec39f313933e..265548832663f10766a7a555da0fab219be88dfe 100644 GIT binary patch delta 144498 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 A6aWAK delta 78191 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 Date: Sat, 20 Sep 2014 10:23:21 -0700 Subject: [PATCH 39/53] Use strict inequality when validating BMesh uvloop access Change the inequality to a strict inequality when validating BMesh uvloop access during face conversion. --- code/BlenderBMesh.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/BlenderBMesh.cpp b/code/BlenderBMesh.cpp index ed1de0b40..4dbf1d104 100644 --- a/code/BlenderBMesh.cpp +++ b/code/BlenderBMesh.cpp @@ -150,7 +150,7 @@ void BlenderBMeshConverter::ConvertPolyToFaces( const MPoly& poly ) // UVs are optional, so only convert when present. if ( BMesh->mloopuv.size() ) { - if ( (poly.loopstart + poly.totloop ) >= static_cast( BMesh->mloopuv.size() ) ) + if ( (poly.loopstart + poly.totloop ) > static_cast( BMesh->mloopuv.size() ) ) { ThrowException( "BMesh uv loop array has incorrect size" ); } From b359deb7fdc348b2d8fd56f3e7e5d6c3d3156ed4 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Sun, 21 Sep 2014 20:37:36 +0200 Subject: [PATCH 40/53] update: - add assert test in obj-import - fix material token in Obj. Signed-off-by: Kim Kulling --- code/ObjFileImporter.cpp | 11 ++++++----- code/ObjFileMtlImporter.cpp | 6 +++--- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/code/ObjFileImporter.cpp b/code/ObjFileImporter.cpp index 874dda707..b44ca4f05 100644 --- a/code/ObjFileImporter.cpp +++ b/code/ObjFileImporter.cpp @@ -62,7 +62,7 @@ static const aiImporterDesc desc = { static const unsigned int ObjMinSize = 16; -namespace Assimp { +namespace Assimp { using namespace std; @@ -284,8 +284,9 @@ aiMesh *ObjFileImporter::createTopology( const ObjFile::Model* pModel, const Obj aiMesh* pMesh = new aiMesh; for (size_t index = 0; index < pObjMesh->m_Faces.size(); index++) { - ObjFile::Face* const inp = pObjMesh->m_Faces[ index ]; - + ObjFile::Face *const inp = pObjMesh->m_Faces[ index ]; + ai_assert( NULL != inp ); + if (inp->m_PrimitiveType == aiPrimitiveType_LINE) { pMesh->mNumFaces += inp->m_pVertices->size() - 1; pMesh->mPrimitiveTypes |= aiPrimitiveType_LINE; @@ -302,7 +303,7 @@ aiMesh *ObjFileImporter::createTopology( const ObjFile::Model* pModel, const Obj } } - unsigned int uiIdxCount = 0u; + unsigned int uiIdxCount( 0u ); if ( pMesh->mNumFaces > 0 ) { pMesh->mFaces = new aiFace[ pMesh->mNumFaces ]; @@ -311,7 +312,7 @@ aiMesh *ObjFileImporter::createTopology( const ObjFile::Model* pModel, const Obj pMesh->mMaterialIndex = pObjMesh->m_uiMaterialIndex; } - unsigned int outIndex = 0; + unsigned int outIndex( 0 ); // Copy all data from all stored meshes for (size_t index = 0; index < pObjMesh->m_Faces.size(); index++) diff --git a/code/ObjFileMtlImporter.cpp b/code/ObjFileMtlImporter.cpp index e494fa515..e09a16f2f 100644 --- a/code/ObjFileMtlImporter.cpp +++ b/code/ObjFileMtlImporter.cpp @@ -50,9 +50,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. namespace Assimp { // Material specific token -static const std::string DiffuseTexture = "map_kd"; -static const std::string AmbientTexture = "map_ka"; -static const std::string SpecularTexture = "map_ks"; +static const std::string DiffuseTexture = "map_Kd"; +static const std::string AmbientTexture = "map_Ka"; +static const std::string SpecularTexture = "map_Ks"; static const std::string OpacityTexture = "map_d"; static const std::string EmmissiveTexture = "map_emissive"; static const std::string BumpTexture1 = "map_bump"; From 775b26e614bdc680739bd9ed6a623ff1ffad2b35 Mon Sep 17 00:00:00 2001 From: abma Date: Tue, 23 Sep 2014 00:42:32 +0200 Subject: [PATCH 41/53] use std:: namespace for most cmath functions: http://en.cppreference.com/w/cpp/header/cmath --- code/BlenderTessellator.cpp | 4 +- code/ColladaLoader.cpp | 2 +- code/ComputeUVMappingProcess.cpp | 6 +-- code/FBXConverter.cpp | 10 ++--- code/FindInvalidDataProcess.cpp | 2 +- code/FixNormalsStep.cpp | 4 +- code/GenVertexNormalsProcess.cpp | 2 +- code/IFCBoolean.cpp | 10 ++--- code/IFCCurve.cpp | 24 +++++------ code/IFCGeometry.cpp | 8 ++-- code/IFCOpenings.cpp | 74 ++++++++++++++++---------------- code/IFCProfile.cpp | 2 +- code/IFCUtil.cpp | 2 +- code/IFCUtil.h | 2 +- code/IRRLoader.cpp | 6 +-- code/LWOBLoader.cpp | 2 +- code/LWOLoader.cpp | 2 +- code/LWOMaterial.cpp | 2 +- code/MD3FileData.h | 6 +-- code/MD5Parser.h | 2 +- code/PolyTools.h | 12 +++--- code/SkeletonMeshBuilder.cpp | 2 +- code/StandardShapes.cpp | 28 ++++++------ code/TextureTransform.h | 14 +++--- code/TriangulateProcess.cpp | 4 +- code/fast_atof.h | 2 +- include/assimp/color4.inl | 2 +- include/assimp/matrix3x3.inl | 6 +-- include/assimp/matrix4x4.inl | 33 ++++++-------- include/assimp/quaternion.inl | 36 ++++++++-------- include/assimp/types.h | 2 +- include/assimp/vector2.inl | 2 +- include/assimp/vector3.inl | 2 +- 33 files changed, 156 insertions(+), 161 deletions(-) diff --git a/code/BlenderTessellator.cpp b/code/BlenderTessellator.cpp index ffe794951..98ccbad6a 100644 --- a/code/BlenderTessellator.cpp +++ b/code/BlenderTessellator.cpp @@ -324,7 +324,7 @@ void BlenderTessellatorP2T::Copy3DVertices( const MLoop* polyLoop, int vertexCou aiMatrix4x4 BlenderTessellatorP2T::GeneratePointTransformMatrix( const Blender::PlaneP2T& plane ) const { aiVector3D sideA( 1.0f, 0.0f, 0.0f ); - if ( fabs( plane.normal * sideA ) > 0.999f ) + if ( std::fabs( plane.normal * sideA ) > 0.999f ) { sideA = aiVector3D( 0.0f, 1.0f, 0.0f ); } @@ -420,7 +420,7 @@ float BlenderTessellatorP2T::FindLargestMatrixElem( const aiMatrix3x3& mtx ) con { for ( int y = 0; y < 3; ++y ) { - result = p2tMax( fabs( mtx[ x ][ y ] ), result ); + result = p2tMax( std::fabs( mtx[ x ][ y ] ), result ); } } diff --git a/code/ColladaLoader.cpp b/code/ColladaLoader.cpp index 95c41042a..aa4826fc9 100644 --- a/code/ColladaLoader.cpp +++ b/code/ColladaLoader.cpp @@ -337,7 +337,7 @@ void ColladaLoader::BuildLightsForNode( const ColladaParser& pParser, const Coll { // Need to rely on falloff_exponent. I don't know how to interpret it, so I need to guess .... // epsilon chosen to be 0.1 - out->mAngleOuterCone = AI_DEG_TO_RAD (acos(pow(0.1f,1.f/srcLight->mFalloffExponent))+ + out->mAngleOuterCone = AI_DEG_TO_RAD (std::acos(std::pow(0.1f,1.f/srcLight->mFalloffExponent))+ srcLight->mFalloffAngle); } else { diff --git a/code/ComputeUVMappingProcess.cpp b/code/ComputeUVMappingProcess.cpp index 671371bb5..16b9bbfb0 100644 --- a/code/ComputeUVMappingProcess.cpp +++ b/code/ComputeUVMappingProcess.cpp @@ -207,7 +207,7 @@ void ComputeUVMappingProcess::ComputeSphereMapping(aiMesh* mesh,const aiVector3D for (unsigned int pnt = 0; pnt < mesh->mNumVertices;++pnt) { const aiVector3D diff = (mesh->mVertices[pnt]-center).Normalize(); out[pnt] = aiVector3D((atan2 (diff.z, diff.y) + AI_MATH_PI_F ) / AI_MATH_TWO_PI_F, - (asin (diff.x) + AI_MATH_HALF_PI_F) / AI_MATH_PI_F, 0.f); + (std::asin (diff.x) + AI_MATH_HALF_PI_F) / AI_MATH_PI_F, 0.f); } } else if (axis * base_axis_y >= angle_epsilon) { @@ -215,7 +215,7 @@ void ComputeUVMappingProcess::ComputeSphereMapping(aiMesh* mesh,const aiVector3D for (unsigned int pnt = 0; pnt < mesh->mNumVertices;++pnt) { const aiVector3D diff = (mesh->mVertices[pnt]-center).Normalize(); out[pnt] = aiVector3D((atan2 (diff.x, diff.z) + AI_MATH_PI_F ) / AI_MATH_TWO_PI_F, - (asin (diff.y) + AI_MATH_HALF_PI_F) / AI_MATH_PI_F, 0.f); + (std::asin (diff.y) + AI_MATH_HALF_PI_F) / AI_MATH_PI_F, 0.f); } } else if (axis * base_axis_z >= angle_epsilon) { @@ -223,7 +223,7 @@ void ComputeUVMappingProcess::ComputeSphereMapping(aiMesh* mesh,const aiVector3D for (unsigned int pnt = 0; pnt < mesh->mNumVertices;++pnt) { const aiVector3D diff = (mesh->mVertices[pnt]-center).Normalize(); out[pnt] = aiVector3D((atan2 (diff.y, diff.x) + AI_MATH_PI_F ) / AI_MATH_TWO_PI_F, - (asin (diff.z) + AI_MATH_HALF_PI_F) / AI_MATH_PI_F, 0.f); + (std::asin (diff.z) + AI_MATH_HALF_PI_F) / AI_MATH_PI_F, 0.f); } } // slower code path in case the mapping axis is not one of the coordinate system axes diff --git a/code/FBXConverter.cpp b/code/FBXConverter.cpp index 137f7cbed..9ad6a2f16 100644 --- a/code/FBXConverter.cpp +++ b/code/FBXConverter.cpp @@ -497,15 +497,15 @@ private: bool is_id[3] = { true, true, true }; aiMatrix4x4 temp[3]; - if(fabs(rotation.z) > angle_epsilon) { + if(std::fabs(rotation.z) > angle_epsilon) { aiMatrix4x4::RotationZ(AI_DEG_TO_RAD(rotation.z),temp[2]); is_id[2] = false; } - if(fabs(rotation.y) > angle_epsilon) { + if(std::fabs(rotation.y) > angle_epsilon) { aiMatrix4x4::RotationY(AI_DEG_TO_RAD(rotation.y),temp[1]); is_id[1] = false; } - if(fabs(rotation.x) > angle_epsilon) { + if(std::fabs(rotation.x) > angle_epsilon) { aiMatrix4x4::RotationX(AI_DEG_TO_RAD(rotation.x),temp[0]); is_id[0] = false; } @@ -674,7 +674,7 @@ private: } const aiVector3D& Scaling = PropertyGet(props,"Lcl Scaling",ok); - if(ok && fabs(Scaling.SquareLength()-1.0f) > zero_epsilon) { + if(ok && std::fabs(Scaling.SquareLength()-1.0f) > zero_epsilon) { aiMatrix4x4::Scaling(Scaling,chain[TransformationComp_Scaling]); } @@ -684,7 +684,7 @@ private: } const aiVector3D& GeometricScaling = PropertyGet(props, "GeometricScaling", ok); - if (ok && fabs(GeometricScaling.SquareLength() - 1.0f) > zero_epsilon) { + if (ok && std::fabs(GeometricScaling.SquareLength() - 1.0f) > zero_epsilon) { aiMatrix4x4::Scaling(GeometricScaling, chain[TransformationComp_GeometricScaling]); } diff --git a/code/FindInvalidDataProcess.cpp b/code/FindInvalidDataProcess.cpp index 28f805bd1..45a8798d6 100644 --- a/code/FindInvalidDataProcess.cpp +++ b/code/FindInvalidDataProcess.cpp @@ -221,7 +221,7 @@ AI_FORCE_INLINE bool EpsilonCompare(const T& n, const T& s, float epsilon); // ------------------------------------------------------------------------------------------------ AI_FORCE_INLINE bool EpsilonCompare(float n, float s, float epsilon) { - return fabs(n-s)>epsilon; + return std::fabs(n-s)>epsilon; } // ------------------------------------------------------------------------------------------------ diff --git a/code/FixNormalsStep.cpp b/code/FixNormalsStep.cpp index 67f753e2c..19e5dece3 100644 --- a/code/FixNormalsStep.cpp +++ b/code/FixNormalsStep.cpp @@ -149,8 +149,8 @@ bool FixInfacingNormalsProcess::ProcessMesh( aiMesh* pcMesh, unsigned int index) if (fDelta1_z < 0.05f * sqrtf( fDelta1_y * fDelta1_x ))return false; // now compare the volumes of the bounding boxes - if (::fabsf(fDelta0_x * fDelta1_yz) < - ::fabsf(fDelta1_x * fDelta1_y * fDelta1_z)) + if (std::fabs(fDelta0_x * fDelta1_yz) < + std::fabs(fDelta1_x * fDelta1_y * fDelta1_z)) { if (!DefaultLogger::isNullLogger()) { diff --git a/code/GenVertexNormalsProcess.cpp b/code/GenVertexNormalsProcess.cpp index 77ef20ac5..2784d82ff 100644 --- a/code/GenVertexNormalsProcess.cpp +++ b/code/GenVertexNormalsProcess.cpp @@ -204,7 +204,7 @@ bool GenVertexNormalsProcess::GenMeshVertexNormals (aiMesh* pMesh, unsigned int // Slower code path if a smooth angle is set. There are many ways to achieve // the effect, this one is the most straightforward one. else { - const float fLimit = ::cos(configMaxAngle); + const float fLimit = std::cos(configMaxAngle); for (unsigned int i = 0; i < pMesh->mNumVertices;++i) { // Get all vertices that share this one ... vertexFinder->FindPositions( pMesh->mVertices[i] , posEpsilon, verticesFound); diff --git a/code/IFCBoolean.cpp b/code/IFCBoolean.cpp index 7d3840710..731deca9f 100644 --- a/code/IFCBoolean.cpp +++ b/code/IFCBoolean.cpp @@ -69,8 +69,8 @@ Intersect IntersectSegmentPlane(const IfcVector3& p,const IfcVector3& n, const I const IfcVector3 pdelta = e0 - p, seg = e1-e0; const IfcFloat dotOne = n*seg, dotTwo = -(n*pdelta); - if (fabs(dotOne) < 1e-6) { - return fabs(dotTwo) < 1e-6f ? Intersect_LiesOnPlane : Intersect_No; + if (std::fabs(dotOne) < 1e-6) { + return std::fabs(dotTwo) < 1e-6f ? Intersect_LiesOnPlane : Intersect_No; } const IfcFloat t = dotTwo/dotOne; @@ -210,7 +210,7 @@ bool IntersectsBoundaryProfile( const IfcVector3& e0, const IfcVector3& e1, cons // segment-segment intersection // solve b0 + b*s = e0 + e*t for (s,t) const IfcFloat det = (-b.x * e.y + e.x * b.y); - if(fabs(det) < 1e-6) { + if(std::fabs(det) < 1e-6) { // no solutions (parallel lines) continue; } @@ -234,7 +234,7 @@ bool IntersectsBoundaryProfile( const IfcVector3& e0, const IfcVector3& e1, cons if (t >= -epsilon && (t <= 1.0+epsilon || half_open) && s >= -epsilon && s <= 1.0) { if (e0_hits_border && !*e0_hits_border) { - *e0_hits_border = fabs(t) < 1e-5f; + *e0_hits_border = std::fabs(t) < 1e-5f; } const IfcVector3& p = e0 + e*t; @@ -419,7 +419,7 @@ void ProcessPolygonalBoundedBooleanHalfSpaceDifference(const IfcPolygonalBounded #ifdef ASSIMP_BUILD_DEBUG if (isect == Intersect_Yes) { - const IfcFloat f = fabs((isectpos - p)*n); + const IfcFloat f = std::fabs((isectpos - p)*n); ai_assert(f < 1e-5); } #endif diff --git a/code/IFCCurve.cpp b/code/IFCCurve.cpp index 511b69a2c..c25ee68eb 100644 --- a/code/IFCCurve.cpp +++ b/code/IFCCurve.cpp @@ -88,10 +88,10 @@ public: a *= conv.angle_scale; b *= conv.angle_scale; - a = fmod(a,static_cast( AI_MATH_TWO_PI )); - b = fmod(b,static_cast( AI_MATH_TWO_PI )); + a = std::fmod(a,static_cast( AI_MATH_TWO_PI )); + b = std::fmod(b,static_cast( AI_MATH_TWO_PI )); const IfcFloat setting = static_cast( AI_MATH_PI * conv.settings.conicSamplingAngle / 180.0 ); - return static_cast( ceil(abs( b-a)) / setting); + return static_cast( std::ceil(abs( b-a)) / setting); } // -------------------------------------------------- @@ -124,8 +124,8 @@ public: // -------------------------------------------------- IfcVector3 Eval(IfcFloat u) const { u = -conv.angle_scale * u; - return location + static_cast(entity.Radius)*(static_cast(::cos(u))*p[0] + - static_cast(::sin(u))*p[1]); + return location + static_cast(entity.Radius)*(static_cast(std::cos(u))*p[0] + + static_cast(std::sin(u))*p[1]); } private: @@ -153,8 +153,8 @@ public: // -------------------------------------------------- IfcVector3 Eval(IfcFloat u) const { u = -conv.angle_scale * u; - return location + static_cast(entity.SemiAxis1)*static_cast(::cos(u))*p[0] + - static_cast(entity.SemiAxis2)*static_cast(::sin(u))*p[1]; + return location + static_cast(entity.SemiAxis1)*static_cast(std::cos(u))*p[0] + + static_cast(entity.SemiAxis2)*static_cast(std::sin(u))*p[1]; } private: @@ -486,7 +486,7 @@ public: IfcVector3 Eval(IfcFloat p) const { ai_assert(InRange(p)); - const size_t b = static_cast(floor(p)); + const size_t b = static_cast(std::floor(p)); if (b == points.size()-1) { return points.back(); } @@ -498,7 +498,7 @@ public: // -------------------------------------------------- size_t EstimateSampleCount(IfcFloat a, IfcFloat b) const { ai_assert(InRange(a) && InRange(b)); - return static_cast( ceil(b) - floor(a) ); + return static_cast( std::ceil(b) - std::floor(a) ); } // -------------------------------------------------- @@ -558,7 +558,7 @@ bool Curve :: InRange(IfcFloat u) const if (IsClosed()) { return true; //ai_assert(range.first != std::numeric_limits::infinity() && range.second != std::numeric_limits::infinity()); - //u = range.first + fmod(u-range.first,range.second-range.first); + //u = range.first + std::fmod(u-range.first,range.second-range.first); } const IfcFloat epsilon = 1e-5; return u - range.first > -epsilon && range.second - u > -epsilon; @@ -606,12 +606,12 @@ IfcFloat RecursiveSearch(const Curve* cv, const IfcVector3& val, IfcFloat a, Ifc } ai_assert(min_diff[0] != inf && min_diff[1] != inf); - if ( fabs(a-min_point[0]) < threshold || recurse >= max_recurse) { + if ( std::fabs(a-min_point[0]) < threshold || recurse >= max_recurse) { return min_point[0]; } // fix for closed curves to take their wrap-over into account - if (cv->IsClosed() && fabs(min_point[0]-min_point[1]) > cv->GetParametricRangeDelta()*0.5 ) { + if (cv->IsClosed() && std::fabs(min_point[0]-min_point[1]) > cv->GetParametricRangeDelta()*0.5 ) { const Curve::ParamRange& range = cv->GetParametricRange(); const IfcFloat wrapdiff = (cv->Eval(range.first)-val).SquareLength(); diff --git a/code/IFCGeometry.cpp b/code/IFCGeometry.cpp index 210370d90..cb918a47e 100644 --- a/code/IFCGeometry.cpp +++ b/code/IFCGeometry.cpp @@ -250,17 +250,17 @@ void ProcessRevolvedAreaSolid(const IfcRevolvedAreaSolid& solid, TempMesh& resul bool has_area = solid.SweptArea->ProfileType == "AREA" && size>2; const IfcFloat max_angle = solid.Angle*conv.angle_scale; - if(fabs(max_angle) < 1e-3) { + if(std::fabs(max_angle) < 1e-3) { if(has_area) { result = meshout; } return; } - const unsigned int cnt_segments = std::max(2u,static_cast(16 * fabs(max_angle)/AI_MATH_HALF_PI_F)); + const unsigned int cnt_segments = std::max(2u,static_cast(16 * std::fabs(max_angle)/AI_MATH_HALF_PI_F)); const IfcFloat delta = max_angle/cnt_segments; - has_area = has_area && fabs(max_angle) < AI_MATH_TWO_PI_F*0.99; + has_area = has_area && std::fabs(max_angle) < AI_MATH_TWO_PI_F*0.99; result.verts.reserve(size*((cnt_segments+1)*4+(has_area?2:0))); result.vertcnt.reserve(size*cnt_segments+2); @@ -480,7 +480,7 @@ IfcMatrix3 DerivePlaneCoordinateSpace(const TempMesh& curmesh, bool& ok, IfcVect for (i = 0; !done && i < s-2; done || ++i) { for (j = i+1; j < s-1; ++j) { nor = -((out[i]-any_point)^(out[j]-any_point)); - if(fabs(nor.Length()) > 1e-8f) { + if(std::fabs(nor.Length()) > 1e-8f) { done = true; break; } diff --git a/code/IFCOpenings.cpp b/code/IFCOpenings.cpp index 0af90eb5b..6b2f06d59 100644 --- a/code/IFCOpenings.cpp +++ b/code/IFCOpenings.cpp @@ -303,20 +303,20 @@ void InsertWindowContours(const ContourVector& contours, const IfcVector2& v = contour[n]; bool hit = false; - if (fabs(v.x-bb.first.x)= ibb.first.y) || - (fabs(bb.first.x - ibb.second.x) < epsilon && ibb.first.y <= bb.second.y && ibb.second.y >= bb.first.y) || - (fabs(bb.second.y - ibb.first.y) < epsilon && bb.first.x <= ibb.second.x && bb.second.x >= ibb.first.x) || - (fabs(bb.first.y - ibb.second.y) < epsilon && ibb.first.x <= bb.second.x && ibb.second.x >= bb.first.x); + return (std::fabs(bb.second.x - ibb.first.x) < epsilon && bb.first.y <= ibb.second.y && bb.second.y >= ibb.first.y) || + (std::fabs(bb.first.x - ibb.second.x) < epsilon && ibb.first.y <= bb.second.y && ibb.second.y >= bb.first.y) || + (std::fabs(bb.second.y - ibb.first.y) < epsilon && bb.first.x <= ibb.second.x && bb.second.x >= ibb.first.x) || + (std::fabs(bb.first.y - ibb.second.y) < epsilon && ibb.first.x <= bb.second.x && ibb.second.x >= bb.first.x); } // ------------------------------------------------------------------------------------------------ @@ -615,11 +615,11 @@ bool IntersectingLineSegments(const IfcVector2& n0, const IfcVector2& n1, static const IfcFloat inf = std::numeric_limits::infinity(); - if (!(n0_to_m0.SquareLength() < e*e || fabs(n0_to_m0 * n0_to_n1) / (n0_to_m0.Length() * n0_to_n1.Length()) > 1-1e-5 )) { + if (!(n0_to_m0.SquareLength() < e*e || std::fabs(n0_to_m0 * n0_to_n1) / (n0_to_m0.Length() * n0_to_n1.Length()) > 1-1e-5 )) { return false; } - if (!(n1_to_m1.SquareLength() < e*e || fabs(n1_to_m1 * n0_to_n1) / (n1_to_m1.Length() * n0_to_n1.Length()) > 1-1e-5 )) { + if (!(n1_to_m1.SquareLength() < e*e || std::fabs(n1_to_m1 * n0_to_n1) / (n1_to_m1.Length() * n0_to_n1.Length()) > 1-1e-5 )) { return false; } @@ -631,14 +631,14 @@ bool IntersectingLineSegments(const IfcVector2& n0, const IfcVector2& n1, // the higher absolute difference is big enough as to avoid // divisions by zero, the case 0/0 ~ infinity is detected and // handled separately. - if(fabs(n0_to_n1.x) > fabs(n0_to_n1.y)) { + if(std::fabs(n0_to_n1.x) > std::fabs(n0_to_n1.y)) { s0 = n0_to_m0.x / n0_to_n1.x; s1 = n0_to_m1.x / n0_to_n1.x; - if (fabs(s0) == inf && fabs(n0_to_m0.x) < smalle) { + if (std::fabs(s0) == inf && std::fabs(n0_to_m0.x) < smalle) { s0 = 0.; } - if (fabs(s1) == inf && fabs(n0_to_m1.x) < smalle) { + if (std::fabs(s1) == inf && std::fabs(n0_to_m1.x) < smalle) { s1 = 0.; } } @@ -646,10 +646,10 @@ bool IntersectingLineSegments(const IfcVector2& n0, const IfcVector2& n1, s0 = n0_to_m0.y / n0_to_n1.y; s1 = n0_to_m1.y / n0_to_n1.y; - if (fabs(s0) == inf && fabs(n0_to_m0.y) < smalle) { + if (std::fabs(s0) == inf && std::fabs(n0_to_m0.y) < smalle) { s0 = 0.; } - if (fabs(s1) == inf && fabs(n0_to_m1.y) < smalle) { + if (std::fabs(s1) == inf && std::fabs(n0_to_m1.y) < smalle) { s1 = 0.; } } @@ -664,7 +664,7 @@ bool IntersectingLineSegments(const IfcVector2& n0, const IfcVector2& n1, s0 = std::min(1.0,s0); s1 = std::min(1.0,s1); - if (fabs(s1-s0) < e) { + if (std::fabs(s1-s0) < e) { return false; } @@ -755,7 +755,7 @@ void FindAdjacentContours(ContourVector::iterator current, const ContourVector& AI_FORCE_INLINE bool LikelyBorder(const IfcVector2& vdelta) { const IfcFloat dot_point_epsilon = static_cast(1e-5); - return fabs(vdelta.x * vdelta.y) < dot_point_epsilon; + return std::fabs(vdelta.x * vdelta.y) < dot_point_epsilon; } // ------------------------------------------------------------------------------------------------ @@ -812,9 +812,9 @@ void FindBorderContours(ContourVector::iterator current) // ------------------------------------------------------------------------------------------------ AI_FORCE_INLINE bool LikelyDiagonal(IfcVector2 vdelta) { - vdelta.x = fabs(vdelta.x); - vdelta.y = fabs(vdelta.y); - return (fabs(vdelta.x-vdelta.y) < 0.8 * std::max(vdelta.x, vdelta.y)); + vdelta.x = std::fabs(vdelta.x); + vdelta.y = std::fabs(vdelta.y); + return (std::fabs(vdelta.x-vdelta.y) < 0.8 * std::max(vdelta.x, vdelta.y)); } // ------------------------------------------------------------------------------------------------ @@ -926,7 +926,7 @@ size_t CloseWindows(ContourVector& contours, /* debug code to check for unwanted diagonal lines in window contours if (cit != cbegin) { const IfcVector2& vdelta = proj_point - last_proj; - if (fabs(vdelta.x-vdelta.y) < 0.5 * std::max(vdelta.x, vdelta.y)) { + if (std::fabs(vdelta.x-vdelta.y) < 0.5 * std::max(vdelta.x, vdelta.y)) { //continue; } } */ @@ -1065,7 +1065,7 @@ IfcMatrix4 ProjectOntoPlane(std::vector& out_contour, const TempMesh } #ifdef ASSIMP_BUILD_DEBUG const IfcFloat det = m.Determinant(); - ai_assert(fabs(det-1) < 1e-5); + ai_assert(std::fabs(det-1) < 1e-5); #endif IfcFloat zcoord = 0; @@ -1085,7 +1085,7 @@ IfcMatrix4 ProjectOntoPlane(std::vector& out_contour, const TempMesh // XXX this should be guarded, but we somehow need to pick a suitable // epsilon // if(coord != -1.0f) { - // assert(fabs(coord - vv.z) < 1e-3f); + // assert(std::fabs(coord - vv.z) < 1e-3f); // } zcoord += vv.z; vmin = std::min(vv, vmin); @@ -1125,7 +1125,7 @@ IfcMatrix4 ProjectOntoPlane(std::vector& out_contour, const TempMesh const IfcVector3& vv = m * x; out_contour2.push_back(IfcVector2(vv.x,vv.y)); - ai_assert(fabs(vv.z) < vmax.z + 1e-8); + ai_assert(std::fabs(vv.z) < vmax.z + 1e-8); } for(size_t i = 0; i < out_contour.size(); ++i) { @@ -1188,9 +1188,9 @@ bool GenerateOpenings(std::vector& openings, bool is_2d_source = false; if (opening.profileMesh2D && norm_extrusion_dir.SquareLength() > 0) { - if(fabs(norm_extrusion_dir * wall_extrusion_axis_norm) < 0.1) { + if(std::fabs(norm_extrusion_dir * wall_extrusion_axis_norm) < 0.1) { // horizontal extrusion - if (fabs(norm_extrusion_dir * nor) > 0.9) { + if (std::fabs(norm_extrusion_dir * nor) > 0.9) { profile_data = opening.profileMesh2D.get(); is_2d_source = true; } @@ -1200,7 +1200,7 @@ bool GenerateOpenings(std::vector& openings, } else { // vertical extrusion - if (fabs(norm_extrusion_dir * nor) > 0.9) { + if (std::fabs(norm_extrusion_dir * nor) > 0.9) { continue; } continue; @@ -1289,7 +1289,7 @@ bool GenerateOpenings(std::vector& openings, ai_assert(!is_2d_source); const IfcVector2 area = vpmax-vpmin; const IfcVector2 area2 = vpmax2-vpmin2; - if (temp_contour.size() <= 2 || fabs(area2.x * area2.y) > fabs(area.x * area.y)) { + if (temp_contour.size() <= 2 || std::fabs(area2.x * area2.y) > std::fabs(area.x * area.y)) { temp_contour.swap(temp_contour2); vpmax = vpmax2; @@ -1301,7 +1301,7 @@ bool GenerateOpenings(std::vector& openings, } // TODO: This epsilon may be too large - const IfcFloat epsilon = fabs(dmax-dmin) * 0.0001; + const IfcFloat epsilon = std::fabs(dmax-dmin) * 0.0001; if (!is_2d_source && check_intersection && (0 < dmin-epsilon || 0 > dmax+epsilon)) { continue; } @@ -1310,7 +1310,7 @@ bool GenerateOpenings(std::vector& openings, // Skip over very small openings - these are likely projection errors // (i.e. they don't belong to this side of the wall) - if(fabs(vpmax.x - vpmin.x) * fabs(vpmax.y - vpmin.y) < static_cast(1e-10)) { + if(std::fabs(vpmax.x - vpmin.x) * std::fabs(vpmax.y - vpmin.y) < static_cast(1e-10)) { continue; } std::vector joined_openings(1, &opening); @@ -1480,7 +1480,7 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: // XXX this should be guarded, but we somehow need to pick a suitable // epsilon // if(coord != -1.0f) { - // assert(fabs(coord - vv.z) < 1e-3f); + // assert(std::fabs(coord - vv.z) < 1e-3f); // } coord = vv.z; @@ -1515,7 +1515,7 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: BOOST_FOREACH(const TempOpening& t,openings) { const IfcVector3& outernor = nors[c++]; const IfcFloat dot = nor * outernor; - if (fabs(dot)<1.f-1e-6f) { + if (std::fabs(dot)<1.f-1e-6f) { continue; } @@ -1529,7 +1529,7 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: BOOST_FOREACH(const IfcVector3& xx, t.profileMesh->verts) { IfcVector3 vv = m * xx, vv_extr = m * (xx + t.extrusionDir); - const bool is_extruded_side = fabs(vv.z - coord) > fabs(vv_extr.z - coord); + const bool is_extruded_side = std::fabs(vv.z - coord) > std::fabs(vv_extr.z - coord); if (first) { first = false; if (dot > 0.f) { diff --git a/code/IFCProfile.cpp b/code/IFCProfile.cpp index 84f5c3194..495852be4 100644 --- a/code/IFCProfile.cpp +++ b/code/IFCProfile.cpp @@ -124,7 +124,7 @@ void ProcessParametrizedProfile(const IfcParameterizedProfileDef& def, TempMesh& IfcFloat angle = 0.f; for(size_t i = 0; i < segments; ++i, angle += delta) { - meshout.verts.push_back( IfcVector3( cos(angle)*radius, sin(angle)*radius, 0.f )); + meshout.verts.push_back( IfcVector3( std::cos(angle)*radius, std::sin(angle)*radius, 0.f )); } meshout.vertcnt.push_back(segments); diff --git a/code/IFCUtil.cpp b/code/IFCUtil.cpp index 86ff27ddd..97358257c 100644 --- a/code/IFCUtil.cpp +++ b/code/IFCUtil.cpp @@ -278,7 +278,7 @@ void TempMesh::RemoveAdjacentDuplicates() // continue; // } - // const IfcFloat d = (d0/sqrt(l0))*(d1/sqrt(l1)); + // const IfcFloat d = (d0/std::sqrt(l0))*(d1/std::sqrt(l1)); // if ( d >= 1.f-dotepsilon ) { // v1 = v0; diff --git a/code/IFCUtil.h b/code/IFCUtil.h index f233d4256..20826f121 100644 --- a/code/IFCUtil.h +++ b/code/IFCUtil.h @@ -220,7 +220,7 @@ struct FuzzyVectorCompare { FuzzyVectorCompare(IfcFloat epsilon) : epsilon(epsilon) {} bool operator()(const IfcVector3& a, const IfcVector3& b) { - return fabs((a-b).SquareLength()) < epsilon; + return std::fabs((a-b).SquareLength()) < epsilon; } const IfcFloat epsilon; diff --git a/code/IRRLoader.cpp b/code/IRRLoader.cpp index eab7d3eee..36ee9cfcc 100644 --- a/code/IRRLoader.cpp +++ b/code/IRRLoader.cpp @@ -470,7 +470,7 @@ void IRRImporter::ComputeAnimations(Node* root, aiNode* real, std::vectormPositionKeys[i]; const float dt = (i * in.speed * 0.001f ); - const float u = dt - floor(dt); - const int idx = (int)floor(dt) % size; + const float u = dt - std::floor(dt); + const int idx = (int)std::floor(dt) % size; // get the 4 current points to evaluate the spline const aiVector3D& p0 = in.splineKeys[ ClampSpline( idx - 1, size ) ].mValue; diff --git a/code/LWOBLoader.cpp b/code/LWOBLoader.cpp index f8d4c36a8..cdbd9695f 100644 --- a/code/LWOBLoader.cpp +++ b/code/LWOBLoader.cpp @@ -321,7 +321,7 @@ void LWOImporter::LoadLWOBSurface(unsigned int size) case AI_LWO_SMAN: { AI_LWO_VALIDATE_CHUNK_LENGTH(head.length,SMAN,4); - surf.mMaximumSmoothAngle = fabs( GetF4() ); + surf.mMaximumSmoothAngle = std::fabs( GetF4() ); break; } // glossiness diff --git a/code/LWOLoader.cpp b/code/LWOLoader.cpp index 347cd9130..14a9f261f 100644 --- a/code/LWOLoader.cpp +++ b/code/LWOLoader.cpp @@ -503,7 +503,7 @@ void LWOImporter::ComputeNormals(aiMesh* mesh, const std::vector& // Generate vertex normals. We have O(logn) for the binary lookup, which we need // for n elements, thus the EXPECTED complexity is O(nlogn) if (surface.mMaximumSmoothAngle < 3.f && !configSpeedFlag) { - const float fLimit = cos(surface.mMaximumSmoothAngle); + const float fLimit = std::cos(surface.mMaximumSmoothAngle); for( begin = mesh->mFaces, it = smoothingGroups.begin(); begin != end; ++begin, ++it) { const aiFace& face = *begin; diff --git a/code/LWOMaterial.cpp b/code/LWOMaterial.cpp index cdeb6cabd..0e8c5661c 100644 --- a/code/LWOMaterial.cpp +++ b/code/LWOMaterial.cpp @@ -285,7 +285,7 @@ void LWOImporter::ConvertMaterial(const LWO::Surface& surf,aiMaterial* pcMat) { float fGloss; if (mIsLWO2) { - fGloss = pow( surf.mGlossiness*10.0f+2.0f, 2.0f); + fGloss = std::pow( surf.mGlossiness*10.0f+2.0f, 2.0f); } else { diff --git a/code/MD3FileData.h b/code/MD3FileData.h index 8261315ca..b89110030 100644 --- a/code/MD3FileData.h +++ b/code/MD3FileData.h @@ -263,9 +263,9 @@ inline void LatLngNormalToVec3(uint16_t p_iNormal, float* p_afOut) lat *= 3.141926f/128.0f; lng *= 3.141926f/128.0f; - p_afOut[0] = cosf(lat) * sinf(lng); - p_afOut[1] = sinf(lat) * sinf(lng); - p_afOut[2] = cosf(lng); + p_afOut[0] = std::cos(lat) * std::sin(lng); + p_afOut[1] = std::sin(lat) * std::sin(lng); + p_afOut[2] = std::cos(lng); return; } diff --git a/code/MD5Parser.h b/code/MD5Parser.h index b55ce1889..844a783bb 100644 --- a/code/MD5Parser.h +++ b/code/MD5Parser.h @@ -259,7 +259,7 @@ inline void ConvertQuaternion (const aiVector3D& in, aiQuaternion& out) { if (t < 0.0f) out.w = 0.0f; - else out.w = sqrt (t); + else out.w = std::sqrt (t); } // --------------------------------------------------------------------------- diff --git a/code/PolyTools.h b/code/PolyTools.h index 3a2089a56..8fbf9c4d9 100644 --- a/code/PolyTools.h +++ b/code/PolyTools.h @@ -118,9 +118,9 @@ inline bool IsCCW(T* in, size_t npoints) { ((-in[i+2].y + in[i+1].y) * (-in[i+2].y + in[i+1].y)); - b = sqrt(bb); - c = sqrt(cc); - theta = acos((bb + cc - aa) / (2 * b * c)); + b = std::sqrt(bb); + c = std::sqrt(cc); + theta = std::acos((bb + cc - aa) / (2 * b * c)); if (OnLeftSideOfLine2D(in[i],in[i+2],in[i+1])) { // if (convex(in[i].x, in[i].y, @@ -146,9 +146,9 @@ inline bool IsCCW(T* in, size_t npoints) { cc = ((in[1].x - in[0].x) * (in[1].x - in[0].x)) + ((-in[1].y + in[0].y) * (-in[1].y + in[0].y)); - b = sqrt(bb); - c = sqrt(cc); - theta = acos((bb + cc - aa) / (2 * b * c)); + b = std::sqrt(bb); + c = std::sqrt(cc); + theta = std::acos((bb + cc - aa) / (2 * b * c)); //if (convex(in[npoints-2].x, in[npoints-2].y, // in[0].x, in[0].y, diff --git a/code/SkeletonMeshBuilder.cpp b/code/SkeletonMeshBuilder.cpp index 7e477cac0..bca9792fd 100644 --- a/code/SkeletonMeshBuilder.cpp +++ b/code/SkeletonMeshBuilder.cpp @@ -101,7 +101,7 @@ void SkeletonMeshBuilder::CreateGeometry( const aiNode* pNode) aiVector3D up = aiVector3D( childpos).Normalize(); aiVector3D orth( 1.0f, 0.0f, 0.0f); - if( fabs( orth * up) > 0.99f) + if( std::fabs( orth * up) > 0.99f) orth.Set( 0.0f, 1.0f, 0.0f); aiVector3D front = (up ^ orth).Normalize(); diff --git a/code/StandardShapes.cpp b/code/StandardShapes.cpp index 2563c858e..7b42abd78 100644 --- a/code/StandardShapes.cpp +++ b/code/StandardShapes.cpp @@ -192,7 +192,7 @@ unsigned int StandardShapes::MakeIcosahedron(std::vector& positions) positions.reserve(positions.size()+60); const float t = (1.f + 2.236067977f)/2.f; - const float s = sqrt(1.f + t*t); + const float s = std::sqrt(1.f + t*t); const aiVector3D v0 = aiVector3D(t,1.f, 0.f)/s; const aiVector3D v1 = aiVector3D(-t,1.f, 0.f)/s; @@ -242,8 +242,8 @@ unsigned int StandardShapes::MakeDodecahedron(std::vector& positions positions.reserve(positions.size()+108); const float a = 1.f / 1.7320508f; - const float b = sqrt((3.f-2.23606797f)/6.f); - const float c = sqrt((3.f+2.23606797f)/6.f); + const float b = std::sqrt((3.f-2.23606797f)/6.f); + const float c = std::sqrt((3.f+2.23606797f)/6.f); const aiVector3D v0 = aiVector3D(a,a,a); const aiVector3D v1 = aiVector3D(a,a,-a); @@ -390,8 +390,8 @@ void StandardShapes::MakeCone(float height,float radius1, size_t old = positions.size(); // No negative radii - radius1 = ::fabs(radius1); - radius2 = ::fabs(radius2); + radius1 = std::fabs(radius1); + radius2 = std::fabs(radius2); float halfHeight = height / 2; @@ -415,8 +415,8 @@ void StandardShapes::MakeCone(float height,float radius1, const float angle_delta = (float)AI_MATH_TWO_PI / tess; const float angle_max = (float)AI_MATH_TWO_PI; - float s = 1.f; // cos(angle == 0); - float t = 0.f; // sin(angle == 0); + float s = 1.f; // std::cos(angle == 0); + float t = 0.f; // std::sin(angle == 0); for (float angle = 0.f; angle < angle_max; ) { @@ -424,8 +424,8 @@ void StandardShapes::MakeCone(float height,float radius1, const aiVector3D v2 = aiVector3D (s * radius2, halfHeight, t * radius2 ); const float next = angle + angle_delta; - float s2 = ::cos(next); - float t2 = ::sin(next); + float s2 = std::cos(next); + float t2 = std::sin(next); const aiVector3D v3 = aiVector3D (s2 * radius2, halfHeight, t2 * radius2 ); const aiVector3D v4 = aiVector3D (s2 * radius1, -halfHeight, t2 * radius1 ); @@ -476,7 +476,7 @@ void StandardShapes::MakeCircle(float radius, unsigned int tess, if (tess < 3 || !radius) return; - radius = ::fabs(radius); + radius = std::fabs(radius); // We will need 3 vertices per segment positions.reserve(positions.size()+tess*3); @@ -484,15 +484,15 @@ void StandardShapes::MakeCircle(float radius, unsigned int tess, const float angle_delta = (float)AI_MATH_TWO_PI / tess; const float angle_max = (float)AI_MATH_TWO_PI; - float s = 1.f; // cos(angle == 0); - float t = 0.f; // sin(angle == 0); + float s = 1.f; // std::cos(angle == 0); + float t = 0.f; // std::sin(angle == 0); for (float angle = 0.f; angle < angle_max; ) { positions.push_back(aiVector3D(s * radius,0.f,t * radius)); angle += angle_delta; - s = ::cos(angle); - t = ::sin(angle); + s = std::cos(angle); + t = std::sin(angle); positions.push_back(aiVector3D(s * radius,0.f,t * radius)); positions.push_back(aiVector3D(0.f,0.f,0.f)); diff --git a/code/TextureTransform.h b/code/TextureTransform.h index 977860524..2da237cf5 100644 --- a/code/TextureTransform.h +++ b/code/TextureTransform.h @@ -116,19 +116,19 @@ struct STransformVecInfo : public aiUVTransform // We use a small epsilon here const static float epsilon = 0.05f; - if (fabs( mTranslation.x - other.mTranslation.x ) > epsilon || - fabs( mTranslation.y - other.mTranslation.y ) > epsilon) + if (std::fabs( mTranslation.x - other.mTranslation.x ) > epsilon || + std::fabs( mTranslation.y - other.mTranslation.y ) > epsilon) { return false; } - if (fabs( mScaling.x - other.mScaling.x ) > epsilon || - fabs( mScaling.y - other.mScaling.y ) > epsilon) + if (std::fabs( mScaling.x - other.mScaling.x ) > epsilon || + std::fabs( mScaling.y - other.mScaling.y ) > epsilon) { return false; } - if (fabs( mRotation - other.mRotation) > epsilon) + if (std::fabs( mRotation - other.mRotation) > epsilon) { return false; } @@ -168,8 +168,8 @@ struct STransformVecInfo : public aiUVTransform if (mRotation) { aiMatrix3x3 mRot; - mRot.a1 = mRot.b2 = cos(mRotation); - mRot.a2 = mRot.b1 = sin(mRotation); + mRot.a1 = mRot.b2 = std::cos(mRotation); + mRot.a2 = mRot.b1 = std::sin(mRotation); mRot.a2 = -mRot.a2; mOut *= mRot; } diff --git a/code/TriangulateProcess.cpp b/code/TriangulateProcess.cpp index 15c74277c..f34bcb3c5 100644 --- a/code/TriangulateProcess.cpp +++ b/code/TriangulateProcess.cpp @@ -241,7 +241,7 @@ bool TriangulateProcess::TriangulateMesh( aiMesh* pMesh) diag.Normalize(); right.Normalize(); - const float angle = acos(left*diag) + acos(right*diag); + const float angle = std::acos(left*diag) + std::acos(right*diag); if (angle > AI_MATH_PI_F) { // this is the concave point start_vertex = i; @@ -486,7 +486,7 @@ bool TriangulateProcess::TriangulateMesh( aiMesh* pMesh) unsigned int* i = f->mIndices; // drop dumb 0-area triangles - if (fabs(GetArea2D(temp_verts[i[0]],temp_verts[i[1]],temp_verts[i[2]])) < 1e-5f) { + if (std::fabs(GetArea2D(temp_verts[i[0]],temp_verts[i[1]],temp_verts[i[2]])) < 1e-5f) { DefaultLogger::get()->debug("Dropping triangle with area 0"); --curOut; diff --git a/code/fast_atof.h b/code/fast_atof.h index 13312fcd8..bc6c96d1a 100644 --- a/code/fast_atof.h +++ b/code/fast_atof.h @@ -312,7 +312,7 @@ inline const char* fast_atoreal_move( const char* c, Real& out, bool check_comma if (einv) { exp = -exp; } - f *= pow(static_cast(10.0), exp); + f *= std::pow(static_cast(10.0), exp); } if (inv) { diff --git a/include/assimp/color4.inl b/include/assimp/color4.inl index ac70d7b09..2c83872d4 100644 --- a/include/assimp/color4.inl +++ b/include/assimp/color4.inl @@ -175,7 +175,7 @@ template inline bool aiColor4t :: IsBlack() const { // The alpha component doesn't care here. black is black. static const TReal epsilon = 10e-3f; - return fabs( r ) < epsilon && fabs( g ) < epsilon && fabs( b ) < epsilon; + return std::fabs( r ) < epsilon && std::fabs( g ) < epsilon && std::fabs( b ) < epsilon; } #endif // __cplusplus diff --git a/include/assimp/matrix3x3.inl b/include/assimp/matrix3x3.inl index b6caef5d1..e8a34f9af 100644 --- a/include/assimp/matrix3x3.inl +++ b/include/assimp/matrix3x3.inl @@ -200,8 +200,8 @@ inline aiMatrix3x3t& aiMatrix3x3t::Inverse() template inline aiMatrix3x3t& aiMatrix3x3t::RotationZ(TReal a, aiMatrix3x3t& out) { - out.a1 = out.b2 = ::cos(a); - out.b1 = ::sin(a); + out.a1 = out.b2 = std::cos(a); + out.b1 = std::sin(a); out.a2 = - out.b1; out.a3 = out.b3 = out.c1 = out.c2 = 0.f; @@ -215,7 +215,7 @@ inline aiMatrix3x3t& aiMatrix3x3t::RotationZ(TReal a, aiMatrix3x3t template inline aiMatrix3x3t& aiMatrix3x3t::Rotation( TReal a, const aiVector3t& axis, aiMatrix3x3t& out) { - TReal c = cos( a), s = sin( a), t = 1 - c; + TReal c = std::cos( a), s = std::sin( a), t = 1 - c; TReal x = axis.x, y = axis.y, z = axis.z; // Many thanks to MathWorld and Wikipedia diff --git a/include/assimp/matrix4x4.inl b/include/assimp/matrix4x4.inl index 8cde4773c..4cae3afa7 100644 --- a/include/assimp/matrix4x4.inl +++ b/include/assimp/matrix4x4.inl @@ -53,12 +53,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include - -#ifdef __cplusplus -# include -#else -# include -#endif +#include // ---------------------------------------------------------------------------------------- template @@ -379,12 +374,12 @@ inline aiMatrix4x4t& aiMatrix4x4t::FromEulerAnglesXYZ(TReal x, TRe { aiMatrix4x4t& _this = *this; - TReal cr = cos( x ); - TReal sr = sin( x ); - TReal cp = cos( y ); - TReal sp = sin( y ); - TReal cy = cos( z ); - TReal sy = sin( z ); + TReal cr = std::cos( x ); + TReal sr = std::sin( x ); + TReal cp = std::cos( y ); + TReal sp = std::sin( y ); + TReal cy = std::cos( z ); + TReal sy = std::sin( z ); _this.a1 = cp*cy ; _this.a2 = cp*sy; @@ -439,8 +434,8 @@ inline aiMatrix4x4t& aiMatrix4x4t::RotationX(TReal a, aiMatrix4x4t | 0 sin(A) cos(A) 0 | | 0 0 0 1 | */ out = aiMatrix4x4t(); - out.b2 = out.c3 = cos(a); - out.b3 = -(out.c2 = sin(a)); + out.b2 = out.c3 = std::cos(a); + out.b3 = -(out.c2 = std::sin(a)); return out; } @@ -455,8 +450,8 @@ inline aiMatrix4x4t& aiMatrix4x4t::RotationY(TReal a, aiMatrix4x4t | 0 0 0 1 | */ out = aiMatrix4x4t(); - out.a1 = out.c3 = cos(a); - out.c1 = -(out.a3 = sin(a)); + out.a1 = out.c3 = std::cos(a); + out.c1 = -(out.a3 = std::sin(a)); return out; } @@ -470,8 +465,8 @@ inline aiMatrix4x4t& aiMatrix4x4t::RotationZ(TReal a, aiMatrix4x4t | 0 0 1 0 | | 0 0 0 1 | */ out = aiMatrix4x4t(); - out.a1 = out.b2 = cos(a); - out.a2 = -(out.b1 = sin(a)); + out.a1 = out.b2 = std::cos(a); + out.a2 = -(out.b1 = std::sin(a)); return out; } @@ -480,7 +475,7 @@ inline aiMatrix4x4t& aiMatrix4x4t::RotationZ(TReal a, aiMatrix4x4t template inline aiMatrix4x4t& aiMatrix4x4t::Rotation( TReal a, const aiVector3t& axis, aiMatrix4x4t& out) { - TReal c = cos( a), s = sin( a), t = 1 - c; + TReal c = std::cos( a), s = std::sin( a), t = 1 - c; TReal x = axis.x, y = axis.y, z = axis.z; // Many thanks to MathWorld and Wikipedia diff --git a/include/assimp/quaternion.inl b/include/assimp/quaternion.inl index fb07a4b3e..cf1223910 100644 --- a/include/assimp/quaternion.inl +++ b/include/assimp/quaternion.inl @@ -84,7 +84,7 @@ inline aiQuaterniont::aiQuaterniont( const aiMatrix3x3t &pRotMatri // large enough if( t > static_cast(0)) { - TReal s = sqrt(1 + t) * static_cast(2.0); + TReal s = std::sqrt(1 + t) * static_cast(2.0); x = (pRotMatrix.c2 - pRotMatrix.b3) / s; y = (pRotMatrix.a3 - pRotMatrix.c1) / s; z = (pRotMatrix.b1 - pRotMatrix.a2) / s; @@ -93,7 +93,7 @@ inline aiQuaterniont::aiQuaterniont( const aiMatrix3x3t &pRotMatri else if( pRotMatrix.a1 > pRotMatrix.b2 && pRotMatrix.a1 > pRotMatrix.c3 ) { // Column 0: - TReal s = sqrt( static_cast(1.0) + pRotMatrix.a1 - pRotMatrix.b2 - pRotMatrix.c3) * static_cast(2.0); + TReal s = std::sqrt( static_cast(1.0) + pRotMatrix.a1 - pRotMatrix.b2 - pRotMatrix.c3) * static_cast(2.0); x = static_cast(0.25) * s; y = (pRotMatrix.b1 + pRotMatrix.a2) / s; z = (pRotMatrix.a3 + pRotMatrix.c1) / s; @@ -102,7 +102,7 @@ inline aiQuaterniont::aiQuaterniont( const aiMatrix3x3t &pRotMatri else if( pRotMatrix.b2 > pRotMatrix.c3) { // Column 1: - TReal s = sqrt( static_cast(1.0) + pRotMatrix.b2 - pRotMatrix.a1 - pRotMatrix.c3) * static_cast(2.0); + TReal s = std::sqrt( static_cast(1.0) + pRotMatrix.b2 - pRotMatrix.a1 - pRotMatrix.c3) * static_cast(2.0); x = (pRotMatrix.b1 + pRotMatrix.a2) / s; y = static_cast(0.25) * s; z = (pRotMatrix.c2 + pRotMatrix.b3) / s; @@ -110,7 +110,7 @@ inline aiQuaterniont::aiQuaterniont( const aiMatrix3x3t &pRotMatri } else { // Column 2: - TReal s = sqrt( static_cast(1.0) + pRotMatrix.c3 - pRotMatrix.a1 - pRotMatrix.b2) * static_cast(2.0); + TReal s = std::sqrt( static_cast(1.0) + pRotMatrix.c3 - pRotMatrix.a1 - pRotMatrix.b2) * static_cast(2.0); x = (pRotMatrix.a3 + pRotMatrix.c1) / s; y = (pRotMatrix.c2 + pRotMatrix.b3) / s; z = static_cast(0.25) * s; @@ -123,12 +123,12 @@ inline aiQuaterniont::aiQuaterniont( const aiMatrix3x3t &pRotMatri template inline aiQuaterniont::aiQuaterniont( TReal fPitch, TReal fYaw, TReal fRoll ) { - const TReal fSinPitch(sin(fPitch*static_cast(0.5))); - const TReal fCosPitch(cos(fPitch*static_cast(0.5))); - const TReal fSinYaw(sin(fYaw*static_cast(0.5))); - const TReal fCosYaw(cos(fYaw*static_cast(0.5))); - const TReal fSinRoll(sin(fRoll*static_cast(0.5))); - const TReal fCosRoll(cos(fRoll*static_cast(0.5))); + const TReal fSinPitch(std::sin(fPitch*static_cast(0.5))); + const TReal fCosPitch(std::cos(fPitch*static_cast(0.5))); + const TReal fSinYaw(std::sin(fYaw*static_cast(0.5))); + const TReal fCosYaw(std::cos(fYaw*static_cast(0.5))); + const TReal fSinRoll(std::sin(fRoll*static_cast(0.5))); + const TReal fCosRoll(std::cos(fRoll*static_cast(0.5))); const TReal fCosPitchCosYaw(fCosPitch*fCosYaw); const TReal fSinPitchSinYaw(fSinPitch*fSinYaw); x = fSinRoll * fCosPitchCosYaw - fCosRoll * fSinPitchSinYaw; @@ -163,8 +163,8 @@ inline aiQuaterniont::aiQuaterniont( aiVector3t axis, TReal angle) { axis.Normalize(); - const TReal sin_a = sin( angle / 2 ); - const TReal cos_a = cos( angle / 2 ); + const TReal sin_a = std::sin( angle / 2 ); + const TReal cos_a = std::cos( angle / 2 ); x = axis.x * sin_a; y = axis.y * sin_a; z = axis.z * sin_a; @@ -184,7 +184,7 @@ inline aiQuaterniont::aiQuaterniont( aiVector3t normalized) if (t < static_cast(0.0)) { w = static_cast(0.0); } - else w = sqrt (t); + else w = std::sqrt (t); } // --------------------------------------------------------------------------- @@ -214,10 +214,10 @@ inline void aiQuaterniont::Interpolate( aiQuaterniont& pOut, const aiQuat { // Standard case (slerp) TReal omega, sinom; - omega = acos( cosom); // extract theta from dot product's cos theta - sinom = sin( omega); - sclp = sin( (static_cast(1.0) - pFactor) * omega) / sinom; - sclq = sin( pFactor * omega) / sinom; + omega = std::acos( cosom); // extract theta from dot product's cos theta + sinom = std::sin( omega); + sclp = std::sin( (static_cast(1.0) - pFactor) * omega) / sinom; + sclq = std::sin( pFactor * omega) / sinom; } else { // Very close, do linear interp (because it's faster) @@ -236,7 +236,7 @@ template inline aiQuaterniont& aiQuaterniont::Normalize() { // compute the magnitude and divide through it - const TReal mag = sqrt(x*x + y*y + z*z + w*w); + const TReal mag = std::sqrt(x*x + y*y + z*z + w*w); if (mag) { const TReal invMag = static_cast(1.0)/mag; diff --git a/include/assimp/types.h b/include/assimp/types.h index db1025820..83767ad46 100644 --- a/include/assimp/types.h +++ b/include/assimp/types.h @@ -217,7 +217,7 @@ struct aiColor3D /** Check whether a color is black */ bool IsBlack() const { static const float epsilon = 10e-3f; - return fabs( r ) < epsilon && fabs( g ) < epsilon && fabs( b ) < epsilon; + return std::fabs( r ) < epsilon && std::fabs( g ) < epsilon && std::fabs( b ) < epsilon; } #endif // !__cplusplus diff --git a/include/assimp/vector2.inl b/include/assimp/vector2.inl index e357a5e7a..f6cedea1d 100644 --- a/include/assimp/vector2.inl +++ b/include/assimp/vector2.inl @@ -71,7 +71,7 @@ TReal aiVector2t::SquareLength() const { // ------------------------------------------------------------------------------------------------ template TReal aiVector2t::Length() const { - return ::sqrt( SquareLength()); + return std::sqrt( SquareLength()); } // ------------------------------------------------------------------------------------------------ diff --git a/include/assimp/vector3.inl b/include/assimp/vector3.inl index f69bea9a6..7ba92f6d0 100644 --- a/include/assimp/vector3.inl +++ b/include/assimp/vector3.inl @@ -92,7 +92,7 @@ AI_FORCE_INLINE TReal aiVector3t::SquareLength() const { // ------------------------------------------------------------------------------------------------ template AI_FORCE_INLINE TReal aiVector3t::Length() const { - return ::sqrt( SquareLength()); + return std::sqrt( SquareLength()); } // ------------------------------------------------------------------------------------------------ template From a5afbcf29c8f11951814dd7ae07ae6a726ca1daf Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Tue, 23 Sep 2014 23:34:05 +0200 Subject: [PATCH 42/53] refactoring: remove duplicate code. Signed-off-by: Kim Kulling --- code/ObjFileMtlImporter.cpp | 5 ++-- code/ObjFileParser.cpp | 29 ++++++++++++---------- code/ObjTools.h | 48 +++++++++++-------------------------- code/ParsingUtils.h | 2 +- 4 files changed, 34 insertions(+), 50 deletions(-) diff --git a/code/ObjFileMtlImporter.cpp b/code/ObjFileMtlImporter.cpp index e09a16f2f..74466f2ba 100644 --- a/code/ObjFileMtlImporter.cpp +++ b/code/ObjFileMtlImporter.cpp @@ -46,6 +46,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "ObjTools.h" #include "ObjFileData.h" #include "fast_atof.h" +#include "ParsingUtils.h" namespace Assimp { @@ -228,7 +229,7 @@ void ObjFileMtlImporter::getColorRGBA( aiColor3D *pColor ) pColor->r = r; // we have to check if color is default 0 with only one token - if( !isNewLine( *m_DataIt ) ) { + if( !IsLineEnd( *m_DataIt ) ) { m_DataIt = getFloat( m_DataIt, m_DataItEnd, g ); m_DataIt = getFloat( m_DataIt, m_DataItEnd, b ); } @@ -257,7 +258,7 @@ void ObjFileMtlImporter::getFloatValue( float &value ) void ObjFileMtlImporter::createMaterial() { std::string line( "" ); - while ( !isNewLine( *m_DataIt ) ) { + while( !IsLineEnd( *m_DataIt ) ) { line += *m_DataIt; ++m_DataIt; } diff --git a/code/ObjFileParser.cpp b/code/ObjFileParser.cpp index 6e73f0bf4..34bb01e0a 100644 --- a/code/ObjFileParser.cpp +++ b/code/ObjFileParser.cpp @@ -186,12 +186,12 @@ void ObjFileParser::copyNextWord(char *pBuffer, size_t length) { size_t index = 0; m_DataIt = getNextWord(m_DataIt, m_DataItEnd); - while ( m_DataIt != m_DataItEnd && !isSeparator(*m_DataIt) ) - { + while( m_DataIt != m_DataItEnd && !IsSpaceOrNewLine( *m_DataIt ) ) { pBuffer[index] = *m_DataIt; index++; - if (index == length-1) - break; + if( index == length - 1 ) { + break; + } ++m_DataIt; } @@ -345,7 +345,7 @@ void ObjFileParser::getFace(aiPrimitiveType type) } iPos++; } - else if ( isSeparator(*pPtr) ) + else if( IsSpaceOrNewLine( *pPtr ) ) { iPos = 0; } @@ -463,8 +463,9 @@ void ObjFileParser::getMaterialDesc() return; char *pStart = &(*m_DataIt); - while ( m_DataIt != m_DataItEnd && !isSeparator(*m_DataIt) ) - ++m_DataIt; + while( m_DataIt != m_DataItEnd && !IsSpaceOrNewLine( *m_DataIt ) ) { + ++m_DataIt; + } // Get name std::string strName(pStart, &(*m_DataIt)); @@ -518,12 +519,14 @@ void ObjFileParser::getMaterialLib() { // Translate tuple m_DataIt = getNextToken(m_DataIt, m_DataItEnd); - if (m_DataIt == m_DataItEnd) - return; + if( m_DataIt == m_DataItEnd ) { + return; + } char *pStart = &(*m_DataIt); - while (m_DataIt != m_DataItEnd && !isNewLine(*m_DataIt)) - m_DataIt++; + while( m_DataIt != m_DataItEnd && !IsLineEnd( *m_DataIt ) ) { + ++m_DataIt; + } // Check for existence const std::string strMatName(pStart, &(*m_DataIt)); @@ -557,7 +560,7 @@ void ObjFileParser::getNewMaterial() char *pStart = &(*m_DataIt); std::string strMat( pStart, *m_DataIt ); - while( m_DataIt != m_DataItEnd && isSeparator( *m_DataIt ) ) { + while( m_DataIt != m_DataItEnd && IsSpaceOrNewLine( *m_DataIt ) ) { ++m_DataIt; } std::map::iterator it = m_pModel->m_MaterialMap.find( strMat ); @@ -662,7 +665,7 @@ void ObjFileParser::getObjectName() return; } char *pStart = &(*m_DataIt); - while( m_DataIt != m_DataItEnd && !isSeparator( *m_DataIt ) ) { + while( m_DataIt != m_DataItEnd && !IsSpaceOrNewLine( *m_DataIt ) ) { ++m_DataIt; } diff --git a/code/ObjTools.h b/code/ObjTools.h index 047c9a4cd..a785d41a4 100644 --- a/code/ObjTools.h +++ b/code/ObjTools.h @@ -45,6 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define OBJ_TOOLS_H_INC #include "fast_atof.h" +#include "ParsingUtils.h" namespace Assimp { @@ -68,28 +69,6 @@ inline bool isEndOfBuffer( char_t it, char_t end ) return ( it == end ); } -/** @brief Returns true, if token is a space on any supported platform -* @param token Token to search in -* @return true, if token is a space -*/ -inline bool isSeparator( char token ) -{ - return ( token == ' ' || - token == '\n' || - token == '\f' || - token == '\r' || - token == '\t' ); -} - -/** @brief Returns true, fi token id a new line marking token. - * @param token Token to search in - * @return true, if token is a newline token. - */ -inline bool isNewLine( char token ) -{ - return ( token == '\n' || token == '\f' || token == '\r' ); -} - /** @brief Returns next word separated by a space * @param pBuffer Pointer to data buffer * @param pEnd Pointer to end of buffer @@ -100,7 +79,7 @@ inline Char_T getNextWord( Char_T pBuffer, Char_T pEnd ) { while ( !isEndOfBuffer( pBuffer, pEnd ) ) { - if ( !isSeparator( *pBuffer ) || isNewLine( *pBuffer ) ) + if( !IsSpaceOrNewLine( *pBuffer ) || IsLineEnd( *pBuffer ) ) break; pBuffer++; } @@ -117,7 +96,7 @@ inline Char_T getNextToken( Char_T pBuffer, Char_T pEnd ) { while ( !isEndOfBuffer( pBuffer, pEnd ) ) { - if ( isSeparator( *pBuffer ) ) + if( IsSpaceOrNewLine( *pBuffer ) ) break; pBuffer++; } @@ -127,14 +106,14 @@ inline Char_T getNextToken( Char_T pBuffer, Char_T pEnd ) /** @brief Skips a line * @param it Iterator set to current position * @param end Iterator set to end of scratch buffer for readout - * @param uiLine Current linenumber in format + * @param uiLine Current line number in format * @return Current-iterator with new position */ template -inline char_t skipLine( char_t it, char_t end, unsigned int &uiLine ) -{ - while ( !isEndOfBuffer( it, end ) && !isNewLine( *it ) ) - ++it; +inline char_t skipLine( char_t it, char_t end, unsigned int &uiLine ) { + while( !isEndOfBuffer( it, end ) && !IsLineEnd( *it ) ) { + ++it; + } if ( it != end ) { ++it; @@ -157,15 +136,16 @@ template inline char_t getName( char_t it, char_t end, std::string &name ) { name = ""; - if ( isEndOfBuffer( it, end ) ) - return end; + if( isEndOfBuffer( it, end ) ) { + return end; + } char *pStart = &( *it ); - while ( !isEndOfBuffer( it, end ) && !isNewLine( *it ) ) { + while( !isEndOfBuffer( it, end ) && !IsLineEnd( *it ) ) { ++it; } - while(isEndOfBuffer( it, end ) || isNewLine( *it ) || isSeparator(*it)) { + while( isEndOfBuffer( it, end ) || IsLineEnd( *it ) || IsSpaceOrNewLine( *it ) ) { --it; } ++it; @@ -196,7 +176,7 @@ inline char_t CopyNextWord( char_t it, char_t end, char *pBuffer, size_t length { size_t index = 0; it = getNextWord( it, end ); - while ( !isSeparator( *it ) && !isEndOfBuffer( it, end ) ) + while( !IsSpaceOrNewLine( *it ) && !isEndOfBuffer( it, end ) ) { pBuffer[index] = *it ; index++; diff --git a/code/ParsingUtils.h b/code/ParsingUtils.h index 1ed8ee923..25495fd51 100644 --- a/code/ParsingUtils.h +++ b/code/ParsingUtils.h @@ -98,7 +98,7 @@ AI_FORCE_INLINE bool IsSpace( char_t in) template AI_FORCE_INLINE bool IsLineEnd( char_t in) { - return (in == (char_t)'\r' || in == (char_t)'\n' || in == (char_t)'\0'); + return (in==(char_t)'\r'||in==(char_t)'\n'||in==(char_t)'\0'||in==(char_t)'\f'); } // --------------------------------------------------------------------------------- From 397989e1699fe1607d20a8e3acc53381a5c172ff Mon Sep 17 00:00:00 2001 From: Gargaj Date: Fri, 26 Sep 2014 01:29:23 +0200 Subject: [PATCH 43/53] Null-terminate string In theory it shouldn't be necessary since the length is specified but there are parts like https://github.com/assimp/assimp/blob/master/code/MaterialSystem.cpp#L74 that depend on it. --- code/AssbinLoader.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/code/AssbinLoader.cpp b/code/AssbinLoader.cpp index 65299f577..bb73e10b3 100644 --- a/code/AssbinLoader.cpp +++ b/code/AssbinLoader.cpp @@ -138,6 +138,7 @@ aiString Read(IOStream * stream) aiString s; stream->Read(&s.length,4,1); stream->Read(s.data,s.length,1); + s.data[s.length] = 0; return s; } From 9b3a88b2a5be670be1c32e82b0f47e7252bb9eed Mon Sep 17 00:00:00 2001 From: OgreTransporter Date: Sat, 27 Sep 2014 21:04:57 +0200 Subject: [PATCH 44/53] New boost versions --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e32afb166..717184691 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -111,7 +111,7 @@ IF ( ASSIMP_ENABLE_BOOST_WORKAROUND ) MESSAGE( STATUS "Building a non-boost version of Assimp." ) ELSE ( ASSIMP_ENABLE_BOOST_WORKAROUND ) SET( Boost_DETAILED_FAILURE_MSG ON ) - SET( Boost_ADDITIONAL_VERSIONS "1.47" "1.47.0" "1.48.0" "1.48" "1.49" "1.49.0" "1.50" "1.50.0" "1.51" "1.51.0" "1.52.0" "1.53.0" "1.54.0" "1.55" ) + SET( Boost_ADDITIONAL_VERSIONS "1.47" "1.47.0" "1.48.0" "1.48" "1.49" "1.49.0" "1.50" "1.50.0" "1.51" "1.51.0" "1.52.0" "1.53.0" "1.54.0" "1.55" "1.55.0" "1.56" "1.56.0" "1.57" "1.57.0" ) FIND_PACKAGE( Boost ) IF ( NOT Boost_FOUND ) MESSAGE( FATAL_ERROR From 7224476ee10f7264a03b6cea308a22b57c47c4a8 Mon Sep 17 00:00:00 2001 From: Filip Wasil Date: Tue, 7 Oct 2014 16:23:56 +0200 Subject: [PATCH 45/53] Android JNI asset extraction support (API 9+) Signed-off-by: Filip Wasil --- CMakeLists.txt | 2 + CREDITS | 3 + code/CMakeLists.txt | 10 + code/DefaultIOStream.h | 3 + include/assimp/config.h | 8 + .../port/AndroidJNI/AndroidJNIIOSystem.h | 92 ++++++++++ port/AndroidJNI/AndroidJNIIOSystem.cpp | 173 ++++++++++++++++++ port/AndroidJNI/CMakeLists.txt | 6 + port/AndroidJNI/README.txt | 27 +++ 9 files changed, 324 insertions(+) create mode 100644 include/assimp/port/AndroidJNI/AndroidJNIIOSystem.h create mode 100644 port/AndroidJNI/AndroidJNIIOSystem.cpp create mode 100644 port/AndroidJNI/CMakeLists.txt create mode 100644 port/AndroidJNI/README.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 717184691..97d4b68bc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,6 +45,8 @@ set(LIBASSIMP-DEV_COMPONENT "libassimp${ASSIMP_VERSION_MAJOR}.${ASSIMP_VERSION_M set(CPACK_COMPONENTS_ALL assimp-bin ${LIBASSIMP_COMPONENT} ${LIBASSIMP-DEV_COMPONENT} assimp-dev) set(ASSIMP_LIBRARY_SUFFIX "" CACHE STRING "Suffix to append to library names") +option(ASSIMP_ANDROID_JNIIOSYSTEM "Android JNI IOSystem support is active" OFF) + if((CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) AND NOT CMAKE_COMPILER_IS_MINGW) add_definitions(-fPIC) # this is a very important switch and some libraries seem now to have it.... # hide all not-exported symbols diff --git a/CREDITS b/CREDITS index 5d45a9e92..2e7485fb7 100644 --- a/CREDITS +++ b/CREDITS @@ -148,3 +148,6 @@ Bugfixes for uv-tanget calculation. - Jonne Nauha Ogre Binary format support + +- Filip Wasil, Tieto Poland Sp. z o.o. +Android JNI asset extraction support diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt index c11a9b42a..f636fc535 100644 --- a/code/CMakeLists.txt +++ b/code/CMakeLists.txt @@ -725,6 +725,13 @@ ADD_LIBRARY( assimp ${assimp_src} ) SET_PROPERTY(TARGET assimp PROPERTY DEBUG_POSTFIX ${ASSIMP_DEBUG_POSTFIX}) TARGET_LINK_LIBRARIES(assimp ${ZLIB_LIBRARIES}) + +if(ANDROID AND ASSIMP_ANDROID_JNIIOSYSTEM) + set(ASSIMP_ANDROID_JNIIOSYSTEM_PATH port/AndroidJNI/) + add_subdirectory(../${ASSIMP_ANDROID_JNIIOSYSTEM_PATH} ../${ASSIMP_ANDROID_JNIIOSYSTEM_PATH}) + target_link_libraries(assimp android_jniiosystem) +endif(ANDROID AND ASSIMP_ANDROID_JNIIOSYSTEM) + SET_TARGET_PROPERTIES( assimp PROPERTIES VERSION ${ASSIMP_VERSION} SOVERSION ${ASSIMP_SOVERSION} # use full version @@ -751,6 +758,9 @@ INSTALL( TARGETS assimp COMPONENT ${LIBASSIMP_COMPONENT}) INSTALL( FILES ${PUBLIC_HEADERS} DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR}/assimp COMPONENT assimp-dev) INSTALL( FILES ${COMPILER_HEADERS} DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR}/assimp/Compiler COMPONENT assimp-dev) +if (ASSIMP_ANDROID_JNIIOSYSTEM) + INSTALL( FILES assimp/${ANDROID_JNI_PATH}/AndroidJNIIOSystem.h DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR}/assimp/${ANDROID_JNI_PATH} COMPONENT assimp-dev) +endif(ASSIMP_ANDROID_JNIIOSYSTEM) if(MSVC AND ASSIMP_INSTALL_PDB) install(FILES ${Assimp_BINARY_DIR}/code/Debug/assimp${ASSIMP_DEBUG_POSTFIX}.pdb diff --git a/code/DefaultIOStream.h b/code/DefaultIOStream.h index da1eed0b8..6ddf94c23 100644 --- a/code/DefaultIOStream.h +++ b/code/DefaultIOStream.h @@ -56,6 +56,9 @@ namespace Assimp { class DefaultIOStream : public IOStream { friend class DefaultIOSystem; +#if __ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT) + friend class AndroidJNIIOSystem; +#endif //__ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT) protected: DefaultIOStream (); diff --git a/include/assimp/config.h b/include/assimp/config.h index 6bd31aada..56ef8f3b5 100644 --- a/include/assimp/config.h +++ b/include/assimp/config.h @@ -841,6 +841,14 @@ enum aiComponent */ #define AI_CONFIG_IMPORT_IFC_SKIP_SPACE_REPRESENTATIONS "IMPORT_IFC_SKIP_SPACE_REPRESENTATIONS" + /** @brief Specifies whether the Android JNI asset extraction is supported. + * + * Turn on this option if you want to manage assets in native + * Android application without having to keep the internal directory and asset + * manager pointer. + */ + #define AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT "AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT" + // --------------------------------------------------------------------------- /** @brief Specifies whether the IFC loader skips over diff --git a/include/assimp/port/AndroidJNI/AndroidJNIIOSystem.h b/include/assimp/port/AndroidJNI/AndroidJNIIOSystem.h new file mode 100644 index 000000000..ad6940253 --- /dev/null +++ b/include/assimp/port/AndroidJNI/AndroidJNIIOSystem.h @@ -0,0 +1,92 @@ +/* +Open Asset Import Library (assimp) +---------------------------------------------------------------------- + +Copyright (c) 2006-2012, assimp team +All rights reserved. + +Redistribution and use of this software in source and binary forms, +with or without modification, are permitted provided that the +following conditions are met: + +* Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + +* Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + +* Neither the name of the assimp team, nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior + written permission of the assimp team. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +---------------------------------------------------------------------- +*/ + +/** @file Android implementation of IOSystem using the standard C file functions. + * Aimed to ease the acces to android assets */ + +#if __ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT) +#ifndef AI_ANDROIDJNIIOSYSTEM_H_INC +#define AI_ANDROIDJNIIOSYSTEM_H_INC + +#include "../code/DefaultIOSystem.h" +#include +#include +#include + +namespace Assimp { + +// --------------------------------------------------------------------------- +/** Android extension to DefaultIOSystem using the standard C file functions */ +class AndroidJNIIOSystem : public DefaultIOSystem +{ +public: + + /** Initialize android activity data */ + std::string mApkWorkspacePath; + AAssetManager* mApkAssetManager; + + /** Constructor. */ + AndroidJNIIOSystem(ANativeActivity* activity); + + /** Destructor. */ + ~AndroidJNIIOSystem(); + + // ------------------------------------------------------------------- + /** Tests for the existence of a file at the given path. */ + bool Exists( const char* pFile) const; + + // ------------------------------------------------------------------- + /** Opens a file at the given path, with given mode */ + IOStream* Open( const char* strFile, const char* strMode); + + // ------------------------------------------------------------------------------------------------ + // Inits Android extractor + void AndroidActivityInit(ANativeActivity* activity); + + // ------------------------------------------------------------------------------------------------ + // Extracts android asset + bool AndroidExtractAsset(std::string name); + +}; + +} //!ns Assimp + +#endif //AI_ANDROIDJNIIOSYSTEM_H_INC +#endif //__ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT) diff --git a/port/AndroidJNI/AndroidJNIIOSystem.cpp b/port/AndroidJNI/AndroidJNIIOSystem.cpp new file mode 100644 index 000000000..4e8f19187 --- /dev/null +++ b/port/AndroidJNI/AndroidJNIIOSystem.cpp @@ -0,0 +1,173 @@ +/* +--------------------------------------------------------------------------- +Open Asset Import Library (assimp) +--------------------------------------------------------------------------- + +Copyright (c) 2006-2012, assimp team + +All rights reserved. + +Redistribution and use of this software in source and binary forms, +with or without modification, are permitted provided that the following +conditions are met: + +* Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + +* Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + +* Neither the name of the assimp team, nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior + written permission of the assimp team. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--------------------------------------------------------------------------- +*/ + +/** @file Android extension of DefaultIOSystem using the standard C file functions */ + + +#include +#if __ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT) + +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace Assimp; + +// ------------------------------------------------------------------------------------------------ +// Constructor. +AndroidJNIIOSystem::AndroidJNIIOSystem(ANativeActivity* activity) +{ + AndroidActivityInit(activity); +} + +// ------------------------------------------------------------------------------------------------ +// Destructor. +AndroidJNIIOSystem::~AndroidJNIIOSystem() +{ + // nothing to do here +} + +// ------------------------------------------------------------------------------------------------ +// Tests for the existence of a file at the given path. +bool AndroidJNIIOSystem::Exists( const char* pFile) const +{ + AAsset* asset = AAssetManager_open(mApkAssetManager, pFile, + AASSET_MODE_UNKNOWN); + FILE* file = ::fopen( (mApkWorkspacePath + getOsSeparator() + std::string(pFile)).c_str(), "rb"); + + if (!asset && !file) + { + __android_log_print(ANDROID_LOG_ERROR, "Assimp", "Asset manager can not find: %s", pFile); + return false; + } + + __android_log_print(ANDROID_LOG_ERROR, "Assimp", "Asset exists"); + if (file) + ::fclose( file); + return true; +} + +// ------------------------------------------------------------------------------------------------ +// Inits Android extractor +void AndroidJNIIOSystem::AndroidActivityInit(ANativeActivity* activity) +{ + mApkWorkspacePath = activity->internalDataPath; + mApkAssetManager = activity->assetManager; +} + +// ------------------------------------------------------------------------------------------------ +// Extracts android asset +bool AndroidJNIIOSystem::AndroidExtractAsset(std::string name) +{ + std::string newPath = mApkWorkspacePath + getOsSeparator() + name; + + DefaultIOSystem io; + + // Do not extract if extracted already + if ( io.Exists(newPath.c_str()) ) { + __android_log_print(ANDROID_LOG_DEFAULT, "Assimp", "Asset already extracted"); + return true; + } + // Open file + AAsset* asset = AAssetManager_open(mApkAssetManager, name.c_str(), + AASSET_MODE_UNKNOWN); + std::string assetContent; + + if (asset != NULL) { + // Find size + off_t assetSize = AAsset_getLength(asset); + + // Prepare input buffer + assetContent.resize(assetSize); + + // Store input buffer + AAsset_read(asset, &assetContent[0], assetSize); + + // Close + AAsset_close(asset); + + // Prepare output buffer + std::ofstream assetExtracted(newPath.c_str(), + std::ios::out | std::ios::binary); + if (!assetExtracted) { + __android_log_print(ANDROID_LOG_ERROR, "assimp", + "Can not open output file"); + } + + // Write output buffer into a file + assetExtracted.write(assetContent.c_str(), strlen(assetContent.c_str())); + assetExtracted.close(); + + __android_log_print(ANDROID_LOG_DEFAULT, "Assimp", "Asset extracted"); + } else { + __android_log_print(ANDROID_LOG_ERROR, "assimp", "Asset not found: %s", name.c_str()); + return false; + } + return true; +} + +// ------------------------------------------------------------------------------------------------ +// Open a new file with a given path. +IOStream* AndroidJNIIOSystem::Open( const char* strFile, const char* strMode) +{ + ai_assert(NULL != strFile); + ai_assert(NULL != strMode); + + std::string fullPath(mApkWorkspacePath + getOsSeparator() + std::string(strFile)); + if (Exists(strFile)) + AndroidExtractAsset(std::string(strFile)); + + FILE* file = ::fopen( fullPath.c_str(), strMode); + + if( NULL == file) + return NULL; + + __android_log_print(ANDROID_LOG_ERROR, "assimp", "AndroidIOSystem: file %s opened", fullPath.c_str()); + return new DefaultIOStream(file, fullPath); +} + +#undef PATHLIMIT +#endif // __ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT) diff --git a/port/AndroidJNI/CMakeLists.txt b/port/AndroidJNI/CMakeLists.txt new file mode 100644 index 000000000..ddc718850 --- /dev/null +++ b/port/AndroidJNI/CMakeLists.txt @@ -0,0 +1,6 @@ +cmake_minimum_required(VERSION 2.8) + +include_directories(./) +include_directories(./../../) +add_library(android_jniiosystem STATIC AndroidJNIIOSystem.cpp) +TARGET_LINK_LIBRARIES(android_jniiosystem android log) diff --git a/port/AndroidJNI/README.txt b/port/AndroidJNI/README.txt new file mode 100644 index 000000000..337772025 --- /dev/null +++ b/port/AndroidJNI/README.txt @@ -0,0 +1,27 @@ +--- Description --- + +This module provides a facade to io stream access to files +behind android asset manager within Android native application. +- It is built as a static library +- It requires Android NDK with android API > 9 support. + +--- Building --- + +To use this module please provide following cmake defines: + +-DASSIMP_ANDROID_JNIIOSYSTEM=ON +-DCMAKE_TOOLCHAIN_FILE=$SOME_PATH/android.toolchain.cmake + +"SOME_PATH" is a path to your cmake android toolchain script. + +--- Code --- + +#include + +... + +Assimp::Importer* importer = new Assimp::Importer(); +Assimp::AndroidJNIIOSystem* ioSystem = new Assimp::AndroidJNIIOSystem(app->activity); +importer->SetIOHandler(ioSystem); + +... From 88f6e8213be58b721581dd2f615c5212b4af4581 Mon Sep 17 00:00:00 2001 From: Filip Wasil Date: Tue, 7 Oct 2014 17:05:14 +0200 Subject: [PATCH 46/53] Android JNI asset extraction support (API 9+) - installation fixes Signed-off-by: Filip Wasil --- code/CMakeLists.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt index f636fc535..4f651c7c5 100644 --- a/code/CMakeLists.txt +++ b/code/CMakeLists.txt @@ -727,8 +727,8 @@ SET_PROPERTY(TARGET assimp PROPERTY DEBUG_POSTFIX ${ASSIMP_DEBUG_POSTFIX}) TARGET_LINK_LIBRARIES(assimp ${ZLIB_LIBRARIES}) if(ANDROID AND ASSIMP_ANDROID_JNIIOSYSTEM) - set(ASSIMP_ANDROID_JNIIOSYSTEM_PATH port/AndroidJNI/) - add_subdirectory(../${ASSIMP_ANDROID_JNIIOSYSTEM_PATH} ../${ASSIMP_ANDROID_JNIIOSYSTEM_PATH}) + set(ASSIMP_ANDROID_JNIIOSYSTEM_PATH port/AndroidJNI) + add_subdirectory(../${ASSIMP_ANDROID_JNIIOSYSTEM_PATH}/ ../${ASSIMP_ANDROID_JNIIOSYSTEM_PATH}/) target_link_libraries(assimp android_jniiosystem) endif(ANDROID AND ASSIMP_ANDROID_JNIIOSYSTEM) @@ -759,7 +759,9 @@ INSTALL( TARGETS assimp INSTALL( FILES ${PUBLIC_HEADERS} DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR}/assimp COMPONENT assimp-dev) INSTALL( FILES ${COMPILER_HEADERS} DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR}/assimp/Compiler COMPONENT assimp-dev) if (ASSIMP_ANDROID_JNIIOSYSTEM) - INSTALL( FILES assimp/${ANDROID_JNI_PATH}/AndroidJNIIOSystem.h DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR}/assimp/${ANDROID_JNI_PATH} COMPONENT assimp-dev) + INSTALL(FILES ${HEADER_PATH}/../${ASSIMP_ANDROID_JNIIOSYSTEM_PATH}/AndroidJNIIOSystem.h + DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR} + COMPONENT assimp-dev) endif(ASSIMP_ANDROID_JNIIOSYSTEM) if(MSVC AND ASSIMP_INSTALL_PDB) From 487c9449d2c66714fb814ec99cd78af564f173d3 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Fri, 10 Oct 2014 15:59:42 +0200 Subject: [PATCH 47/53] bugfix: search for token checks for the given tokenlist against the lowercased info coming from the asset file. So we also have to used a lowercased token. Thanks to Robinson for the report. Signed-off-by: Kim Kulling --- code/FBXImporter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/FBXImporter.cpp b/code/FBXImporter.cpp index dfbe5dbd0..9ecea6365 100644 --- a/code/FBXImporter.cpp +++ b/code/FBXImporter.cpp @@ -105,7 +105,7 @@ bool FBXImporter::CanRead( const std::string& pFile, IOSystem* pIOHandler, bool else if ((!extension.length() || checkSig) && pIOHandler) { // at least ascii FBX files usually have a 'FBX' somewhere in their head - const char* tokens[] = {"FBX"}; + const char* tokens[] = {"fbx"}; return SearchFileHeaderForToken(pIOHandler,pFile,tokens,1); } return false; From a1a1bf77a8925a4c26282b01cfebf6cf61317fc6 Mon Sep 17 00:00:00 2001 From: Jared Duke Date: Fri, 10 Oct 2014 14:16:42 -0700 Subject: [PATCH 48/53] Temporarily disable Blender BMesh conversion Disable BMesh conversion while associated unresolved issues receive due attention. Referencing #400, #373, #318 #315 and #132. --- code/BlenderLoader.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/BlenderLoader.cpp b/code/BlenderLoader.cpp index 562d3729b..dc88ab840 100644 --- a/code/BlenderLoader.cpp +++ b/code/BlenderLoader.cpp @@ -659,11 +659,15 @@ void BlenderImporter::ConvertMesh(const Scene& /*in*/, const Object* /*obj*/, co ConversionData& conv_data, TempArray& temp ) { + // TODO: Resolve various problems with BMesh triangluation before re-enabling. + // See issues #400, #373, #318 #315 and #132. +#if defined(TODO_FIX_BMESH_CONVERSION) BlenderBMeshConverter BMeshConverter( mesh ); if ( BMeshConverter.ContainsBMesh( ) ) { mesh = BMeshConverter.TriangulateBMesh( ); } +#endif typedef std::pair MyPair; if ((!mesh->totface && !mesh->totloop) || !mesh->totvert) { From 060f3c33d9966dc55901e4d039ca30f6bff85de0 Mon Sep 17 00:00:00 2001 From: Timothy Gu Date: Tue, 14 Oct 2014 22:28:14 -0700 Subject: [PATCH 49/53] CMakeList: Support setting Libs.private --- CMakeLists.txt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 97d4b68bc..b1c1f26e5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -90,10 +90,6 @@ ELSE ( ASSIMP_BUILD_STATIC_LIB ) option ( BUILD_SHARED_LIBS "Build a shared version of the library" ON ) ENDIF ( ASSIMP_BUILD_STATIC_LIB ) -# Generate a pkg-config .pc for the Assimp library. -CONFIGURE_FILE( "${PROJECT_SOURCE_DIR}/assimp.pc.in" "${PROJECT_BINARY_DIR}/assimp.pc" @ONLY ) -INSTALL( FILES "${PROJECT_BINARY_DIR}/assimp.pc" DESTINATION ${ASSIMP_LIB_INSTALL_DIR}/pkgconfig/ COMPONENT ${LIBASSIMP-DEV_COMPONENT}) - # Only generate this target if no higher-level project already has IF (NOT TARGET uninstall) # add make uninstall capability @@ -136,6 +132,10 @@ option ( ASSIMP_NO_EXPORT OFF ) +if( CMAKE_COMPILER_IS_GNUCXX ) + set(LIBSTDC++_LIBRARIES -lstdc++) +endif( CMAKE_COMPILER_IS_GNUCXX ) + # Search for external dependencies, and build them from source if not found # Search for zlib find_package(ZLIB) @@ -151,6 +151,7 @@ if( NOT ZLIB_FOUND ) set(ZLIB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/contrib/zlib ${CMAKE_CURRENT_BINARY_DIR}/contrib/zlib) else(NOT ZLIB_FOUND) ADD_DEFINITIONS(-DASSIMP_BUILD_NO_OWN_ZLIB) + set(ZLIB_LIBRARIES_LINKED -lz) endif(NOT ZLIB_FOUND) INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) @@ -228,6 +229,10 @@ IF(MSVC) ) ENDIF(MSVC) +# Generate a pkg-config .pc for the Assimp library. +CONFIGURE_FILE( "${PROJECT_SOURCE_DIR}/assimp.pc.in" "${PROJECT_BINARY_DIR}/assimp.pc" @ONLY ) +INSTALL( FILES "${PROJECT_BINARY_DIR}/assimp.pc" DESTINATION ${ASSIMP_LIB_INSTALL_DIR}/pkgconfig/ COMPONENT ${LIBASSIMP-DEV_COMPONENT}) + if(CMAKE_CPACK_COMMAND AND UNIX AND ASSIMP_OPT_BUILD_PACKAGES) # Packing information set(CPACK_PACKAGE_NAME "assimp{ASSIMP_VERSION_MAJOR}") From 8656a351340937ba6a51ba12197f5ae54b9a8ed7 Mon Sep 17 00:00:00 2001 From: Timothy Gu Date: Tue, 14 Oct 2014 22:29:08 -0700 Subject: [PATCH 50/53] assimp.pc.in: Add static libs to Libs.private --- assimp.pc.in | 1 + 1 file changed, 1 insertion(+) diff --git a/assimp.pc.in b/assimp.pc.in index 1d3d9956c..ecb7074d3 100644 --- a/assimp.pc.in +++ b/assimp.pc.in @@ -7,4 +7,5 @@ Name: @CMAKE_PROJECT_NAME@ Description: Import various well-known 3D model formats in an uniform manner. Version: @PROJECT_VERSION@ Libs: -L${libdir} -lassimp@ASSIMP_LIBRARY_SUFFIX@ +Libs.private: @LIBSTDC++_LIBRARIES@ @ZLIB_LIBRARIES_LINKED@ Cflags: -I${includedir} From 43dbd6d873ab9c77bf53f80d78e41a882e67708f Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Wed, 22 Oct 2014 21:37:25 +0200 Subject: [PATCH 51/53] update: add some files to .gitignore. Signed-off-by: Kim Kulling --- .gitignore | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.gitignore b/.gitignore index 4ddf06e63..f4940f273 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,18 @@ test/results # Python __pycache__ +*.log +*.vcxproj +*.filters +*.tlog +Assimp.sdf +test/gtest/tmp/gtest-gitupdate.cmake +test/gtest/tmp/gtest-gitclone.cmake +test/gtest/tmp/gtest-cfgcmd.txt.in +test/gtest/tmp/gtest-cfgcmd.txt +test/gtest/src/gtest-stamp/gtest-download.cmake +test/gtest/src/gtest-stamp/gtest-configure.cmake +test/gtest/src/gtest-stamp/gtest-build.cmake +test/gtest/src/gtest-stamp/Debug/gtest-patch +*.cache +test/gtest/src/gtest-stamp/Debug/gtest-build From cee583db06aadbc4686111416df83e259cb935e6 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Wed, 22 Oct 2014 23:05:25 +0200 Subject: [PATCH 52/53] bugfix: fix compiler warning: converting double to float. Signed-off-by: Kim Kulling --- code/FBXParser.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/FBXParser.cpp b/code/FBXParser.cpp index 24b12ccbf..7559a380d 100644 --- a/code/FBXParser.cpp +++ b/code/FBXParser.cpp @@ -376,7 +376,7 @@ float ParseTokenAsFloat(const Token& t, const char*& err_out) return SafeParse(data+1, t.end()); } else { - return SafeParse(data+1, t.end()); + return static_cast( SafeParse(data+1, t.end()) ); } } From 94f61300c24539d36e64a129285882916304fa87 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Thu, 23 Oct 2014 21:02:43 +0200 Subject: [PATCH 53/53] bugfix: - remove and comment some gcc compiler warnings for not used vaiables. --- test/unit/utNoBoostTest.cpp | 1 + test/unit/utRemoveComponent.cpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/test/unit/utNoBoostTest.cpp b/test/unit/utNoBoostTest.cpp index 76b96129b..170d95a83 100644 --- a/test/unit/utNoBoostTest.cpp +++ b/test/unit/utNoBoostTest.cpp @@ -40,6 +40,7 @@ TEST(NoBoostTest, Tuple) { bool b = second.get<3>(); EXPECT_FALSE(b); + // check empty tuple, ignore compile warning boost::tuple<> third; // FIXME: Explicit conversion not really required yet diff --git a/test/unit/utRemoveComponent.cpp b/test/unit/utRemoveComponent.cpp index 8537badec..e00f752a5 100644 --- a/test/unit/utRemoveComponent.cpp +++ b/test/unit/utRemoveComponent.cpp @@ -68,6 +68,8 @@ void RemoveVCProcessTest::SetUp() // so we don't need a virtual destructor char check[sizeof(aiMaterial) == sizeof(aiMaterial) ? 10 : -1]; check[0] = 0; + // to remove compiler warning + EXPECT_TRUE( check ); } // ------------------------------------------------------------------------------------------------