diff --git a/.gitreview b/.gitreview index 094c974be1457..af98cab9298b3 100644 --- a/.gitreview +++ b/.gitreview @@ -3,5 +3,5 @@ host=logerrit port=29418 project=core defaultremote=logerrit -defaultbranch=master +defaultbranch=libreoffice-5-3 diff --git a/Makefile.fetch b/Makefile.fetch index c552289c72a6d..3e21be38685ef 100644 --- a/Makefile.fetch +++ b/Makefile.fetch @@ -178,7 +178,7 @@ $(WORKDIR)/download: $(BUILDDIR)/config_host.mk $(SRCDIR)/download.lst $(SRCDIR) $(call fetch_Optional,MORE_FONTS,FONT_PTSERIF_TARBALL) \ $(call fetch_Optional,MORE_FONTS,FONT_SOURCECODE_TARBALL) \ $(call fetch_Optional,MORE_FONTS,FONT_SOURCESANS_TARBALL) \ - $(call fetch_Optional,MORE_FONTS,FONT_NOTOEMOJI_TARBALL) \ + $(call fetch_Optional,MORE_FONTS,FONT_EMOJIONE_COLOR_TARBALL) \ $(call fetch_Optional,MSPUB,MSPUB_TARBALL) \ $(call fetch_Optional,MWAW,MWAW_TARBALL) \ $(call fetch_Optional,MYSQLCPPCONN,MYSQLCPPCONN_TARBALL) \ diff --git a/Makefile.in b/Makefile.in index cf3e71fb1ff3f..50d9dc0cfb09e 100644 --- a/Makefile.in +++ b/Makefile.in @@ -9,7 +9,7 @@ gb_Top_MODULE_CHECK_TARGETS := slowcheck unitcheck subsequentcheck perfcheck uicheck screenshot -.PHONY : all check-if-root bootstrap gbuild build build-non-l10n-only build-l10n-only check clean clean-build clean-host test-install distclean distro-pack-install docs download etags fetch findunusedcode get-submodules id install install-strip tags debugrun help showmodules translations packageinfo internal.clean $(gb_Top_MODULE_CHECK_TARGETS) +.PHONY : all check-if-root bootstrap gbuild build build-non-l10n-only build-l10n-only check clean clean-build clean-host test-install distclean distro-pack-install distro-pack-install-strip docs download etags fetch findunusedcode get-submodules id install install-strip tags debugrun help showmodules translations packageinfo internal.clean $(gb_Top_MODULE_CHECK_TARGETS) MAKECMDGOALS?=all build_goal:=$(if $(filter build check,$(MAKECMDGOALS)),all)\ @@ -362,11 +362,18 @@ else @exit 1 endif +define gb_Top_DistroPackInstall +$(SRCDIR)/bin/distro-install-clean-up +$(SRCDIR)/bin/distro-install-desktop-integration +$(SRCDIR)/bin/distro-install-sdk +$(SRCDIR)/bin/distro-install-file-lists +endef + distro-pack-install: install - $(SRCDIR)/bin/distro-install-clean-up - $(SRCDIR)/bin/distro-install-desktop-integration - $(SRCDIR)/bin/distro-install-sdk - $(SRCDIR)/bin/distro-install-file-lists + $(gb_Top_DistroPackInstall) + +distro-pack-install-strip: install-strip + $(gb_Top_DistroPackInstall) install-package-%: $(MAKE) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $@ diff --git a/Repository.mk b/Repository.mk index 48ce9340b7392..eef2560df460b 100644 --- a/Repository.mk +++ b/Repository.mk @@ -805,6 +805,7 @@ $(eval $(call gb_Helper_register_packages_for_install,ooo,\ wizards_basicsrvtutorials \ xmlsec \ chart2_opengl_shader \ + sc_res_xml \ vcl_opengl_shader \ $(if $(filter WNT,$(OS)), \ vcl_opengl_blacklist \ @@ -918,7 +919,7 @@ $(eval $(call gb_Helper_register_resources,\ eur \ for \ forui \ - $(call gb_Helper_optional_for_host,DESKTOP,fps_office) \ + $(call gb_Helper_optional,DESKTOP,fps_office) \ frm \ fwe \ gal \ diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk index 9650bf98253e3..109b924e4e115 100644 --- a/RepositoryExternal.mk +++ b/RepositoryExternal.mk @@ -2377,7 +2377,7 @@ endef else # !SYSTEM_LPSOLVE define gb_LinkTarget__use_lpsolve -$(call gb_LinkTarget_use_unpacked,$(1),lpsolve) +$(call gb_LinkTarget_use_external_project,$(1),lpsolve) ifeq ($(COM),MSC) $(call gb_LinkTarget_add_libs,$(1),\ $(call gb_UnpackedTarball_get_dir,lpsolve)/lpsolve55/lpsolve55.lib \ diff --git a/accessibility/source/extended/AccessibleGridControl.cxx b/accessibility/source/extended/AccessibleGridControl.cxx index 2de159c4e38a5..b486f62175b08 100644 --- a/accessibility/source/extended/AccessibleGridControl.cxx +++ b/accessibility/source/extended/AccessibleGridControl.cxx @@ -351,7 +351,7 @@ void AccessibleGridControl::commitTableEvent(sal_Int16 _nEventId,const Any& _rNe if (nCurrentRow > -1 && nCurrentCol > -1) { sal_Int32 nColumnCount = m_aTable.GetColumnCount(); - xChild = m_xImpl->m_pTable->getAccessibleChild(nCurrentRow * nCurrentCol + nColumnCount); + xChild = m_xImpl->m_pTable->getAccessibleChild(nCurrentRow * nColumnCount + nCurrentCol); } m_xImpl->m_pTable->commitEvent(_nEventId, makeAny(xChild),_rOldValue); } diff --git a/accessibility/source/extended/accessibletabbarbase.cxx b/accessibility/source/extended/accessibletabbarbase.cxx index f75d4572a7893..b137da3acdd5c 100644 --- a/accessibility/source/extended/accessibletabbarbase.cxx +++ b/accessibility/source/extended/accessibletabbarbase.cxx @@ -50,7 +50,7 @@ IMPL_LINK( AccessibleTabBarBase, WindowEventListener, VclWindowEvent&, rEvent, v if( ( rEvent.GetId() == VCLEVENT_TABBAR_PAGEREMOVED ) && ( (sal_uInt16)reinterpret_cast(rEvent.GetData()) == TabBar::PAGE_NOT_FOUND ) && - ( dynamic_cast< AccessibleTabBarPageList *> (this) != nullptr ) ) + (dynamic_cast(this) == nullptr)) { return; } diff --git a/accessibility/source/standard/vclxaccessiblebox.cxx b/accessibility/source/standard/vclxaccessiblebox.cxx index 6f3997ed1328c..4a28c71152c88 100644 --- a/accessibility/source/standard/vclxaccessiblebox.cxx +++ b/accessibility/source/standard/vclxaccessiblebox.cxx @@ -236,7 +236,7 @@ void VCLXAccessibleBox::ProcessWindowEvent (const VclWindowEvent& rVclWindowEven case VCLEVENT_EDIT_MODIFY: case VCLEVENT_EDIT_SELECTIONCHANGED: - // case VCLEVENT_EDIT_CARETCHANGED: + case VCLEVENT_EDIT_CARETCHANGED: // Modify/Selection events are handled by the combo box instead of // directly by the edit field (Why?). Therefore, delegate this // call to the edit field. diff --git a/accessibility/source/standard/vclxaccessibleedit.cxx b/accessibility/source/standard/vclxaccessibleedit.cxx index 432315a35aea3..2eff38f730201 100644 --- a/accessibility/source/standard/vclxaccessibleedit.cxx +++ b/accessibility/source/standard/vclxaccessibleedit.cxx @@ -30,12 +30,17 @@ #include #include #include +#include #include #include #include #include #include #include +#include +#include +#include +#include #include #include @@ -304,8 +309,46 @@ sal_Unicode VCLXAccessibleEdit::getCharacter( sal_Int32 nIndex ) throw (IndexOut Sequence< PropertyValue > VCLXAccessibleEdit::getCharacterAttributes( sal_Int32 nIndex, const Sequence< OUString >& aRequestedAttributes ) throw (IndexOutOfBoundsException, RuntimeException, std::exception) { OExternalLockGuard aGuard( this ); + Sequence< PropertyValue > aProperties = VCLXAccessibleTextComponent::getCharacterAttributes( nIndex, aRequestedAttributes ); - return VCLXAccessibleTextComponent::getCharacterAttributes( nIndex, aRequestedAttributes ); + // Handle multiline edit character properties + VclPtr pMulitLineEdit = GetAsDynamic< VclMultiLineEdit >(); + if ( pMulitLineEdit ) + { + ExtTextEngine* pTextEngine = pMulitLineEdit->GetTextEngine(); + TextPaM aCursor( 0, nIndex ); + const TextAttribFontColor* pFontColor = static_cast(pTextEngine->FindAttrib( aCursor, TEXTATTR_FONTCOLOR )); + if ( pFontColor ) + { + for (PropertyValue& aValue : aProperties ) + { + if (aValue.Name == "CharColor") + { + aValue.Value = css::uno::makeAny(static_cast< sal_Int32 >(COLORDATA_RGB(pFontColor->GetColor().GetColor()))); + break; + } + } + } + } + + // Set default character color if it is not set yet to a valid value + for (PropertyValue& aValue : aProperties ) + { + if (aValue.Name == "CharColor") + { + if ( aValue.Value == sal_Int32(-1) ) + { + OutputDevice* pDev = Application::GetDefaultDevice(); + if ( pDev ) + { + aValue.Value = css::uno::makeAny(static_cast< sal_Int32 >(pDev->GetSettings().GetStyleSettings().GetFieldTextColor().GetColor())); + } + } + break; + } + } + + return aProperties; } @@ -433,6 +476,20 @@ css::accessibility::TextSegment VCLXAccessibleEdit::getTextAtIndex( sal_Int32 nI { OExternalLockGuard aGuard( this ); + // Override general text component behavior: MultiLineEdit can have more text portions + if ( aTextType == AccessibleTextType::ATTRIBUTE_RUN ) + { + VclPtr pMulitLineEdit = GetAsDynamic< VclMultiLineEdit >(); + if ( pMulitLineEdit ) + { + ExtTextEngine* pTextEngine = pMulitLineEdit->GetTextEngine(); + TextPaM aCursor( 0, nIndex ); + TextSegment aResult; + pTextEngine->GetTextPortionRange( aCursor, aResult.SegmentStart, aResult.SegmentEnd ); + return aResult; + } + } + return VCLXAccessibleTextComponent::getTextAtIndex( nIndex, aTextType ); } diff --git a/accessibility/source/standard/vclxaccessibletabcontrol.cxx b/accessibility/source/standard/vclxaccessibletabcontrol.cxx index 12837d6709181..b715964bac0b9 100644 --- a/accessibility/source/standard/vclxaccessibletabcontrol.cxx +++ b/accessibility/source/standard/vclxaccessibletabcontrol.cxx @@ -43,9 +43,14 @@ VCLXAccessibleTabControl::VCLXAccessibleTabControl( VCLXWindow* pVCLXWindow ) :VCLXAccessibleComponent( pVCLXWindow ) { m_pTabControl = static_cast< TabControl* >( GetWindow().get() ); - - if ( m_pTabControl ) - m_aAccessibleChildren.assign( m_pTabControl->GetPageCount(), Reference< XAccessible >() ); + if (!m_pTabControl) + return; + if (m_pTabControl->isDisposed()) + { + m_pTabControl.clear(); + return; + } + m_aAccessibleChildren.assign( m_pTabControl->GetPageCount(), Reference< XAccessible >() ); } diff --git a/avmedia/source/gstreamer/gstplayer.cxx b/avmedia/source/gstreamer/gstplayer.cxx index 37b76626315bc..00c66a8ef9fd7 100644 --- a/avmedia/source/gstreamer/gstplayer.cxx +++ b/avmedia/source/gstreamer/gstplayer.cxx @@ -934,6 +934,8 @@ uno::Reference< ::media::XPlayerWindow > SAL_CALL Player::createPlayerWindow( co { mbUseGtkSink = true; g_object_get(pVideosink, "widget", &mpGtkWidget, nullptr); + gtk_widget_set_vexpand(mpGtkWidget, true); + gtk_widget_set_hexpand(mpGtkWidget, true); GtkWidget *pParent = static_cast(pEnvData->pWidget); gtk_container_add (GTK_CONTAINER(pParent), mpGtkWidget); diff --git a/basctl/source/basicide/iderdll.cxx b/basctl/source/basicide/iderdll.cxx index eb0e6ddce6797..1be7cb330105c 100644 --- a/basctl/source/basicide/iderdll.cxx +++ b/basctl/source/basicide/iderdll.cxx @@ -61,7 +61,7 @@ class Dll class DllInstance : public comphelper::unique_disposing_solar_mutex_reset_ptr { public: - DllInstance() : comphelper::unique_disposing_solar_mutex_reset_ptr(Reference( frame::Desktop::create(comphelper::getProcessComponentContext()), UNO_QUERY_THROW), new Dll) + DllInstance() : comphelper::unique_disposing_solar_mutex_reset_ptr(Reference( frame::Desktop::create(comphelper::getProcessComponentContext()), UNO_QUERY_THROW), new Dll, true) { } }; diff --git a/basctl/source/basicide/moduldlg.cxx b/basctl/source/basicide/moduldlg.cxx index 4d4df19704d9c..6618253b39148 100644 --- a/basctl/source/basicide/moduldlg.cxx +++ b/basctl/source/basicide/moduldlg.cxx @@ -177,7 +177,9 @@ bool ExtTreeListBox::NotifyAcceptDrop( SvTreeListEntry* pEntry ) // don't drop in the same library SvTreeListEntry* pSelected = FirstSelected(); - if ( ( nDepth == 1 ) && ( pEntry == GetParent( pSelected ) ) ) + if (!pSelected) + bValid = false; + else if ( ( nDepth == 1 ) && ( pEntry == GetParent( pSelected ) ) ) bValid = false; else if ( ( nDepth == 2 ) && ( GetParent( pEntry ) == GetParent( pSelected ) ) ) bValid = false; diff --git a/basctl/source/basicide/scriptdocument.cxx b/basctl/source/basicide/scriptdocument.cxx index a99fefafe8a35..135ea2b9659bf 100644 --- a/basctl/source/basicide/scriptdocument.cxx +++ b/basctl/source/basicide/scriptdocument.cxx @@ -34,6 +34,8 @@ #include #include #include +#include +#include #include #include @@ -669,6 +671,14 @@ namespace basctl if ( _bCreateMain ) _out_rNewModuleCode += "Sub Main\n\nEnd Sub\n" ; + Reference< XVBAModuleInfo > xVBAModuleInfo(xLib, UNO_QUERY); + if (xVBAModuleInfo.is()) + { + css::script::ModuleInfo aModuleInfo; + aModuleInfo.ModuleType = css::script::ModuleType::NORMAL; + xVBAModuleInfo->insertModuleInfo(_rModName, aModuleInfo); + } + // insert module into library xLib->insertByName( _rModName, makeAny( _out_rNewModuleCode ) ); } diff --git a/basctl/source/dlged/managelang.cxx b/basctl/source/dlged/managelang.cxx index ab6bb4818bc21..4b979921dbf58 100644 --- a/basctl/source/dlged/managelang.cxx +++ b/basctl/source/dlged/managelang.cxx @@ -149,19 +149,12 @@ IMPL_LINK_NOARG(ManageLanguageDialog, AddHdl, Button*, void) ScopedVclPtrInstance< SetDefaultLanguageDialog > aDlg( this, m_xLocalizationMgr ); if ( RET_OK == aDlg->Execute() ) { - if (!m_xLocalizationMgr->isLibraryLocalized()) - { - SAL_WARN("basctl.basicide", "Adding langs to non-localized library tdf#93077"); - } - else - { - // add new locales - Sequence< Locale > aLocaleSeq = aDlg->GetLocales(); - m_xLocalizationMgr->handleAddLocales( aLocaleSeq ); - // update listbox - ClearLanguageBox(); - FillLanguageBox(); - } + // add new locales + Sequence< Locale > aLocaleSeq = aDlg->GetLocales(); + m_xLocalizationMgr->handleAddLocales( aLocaleSeq ); + // update listbox + ClearLanguageBox(); + FillLanguageBox(); if (SfxBindings* pBindings = GetBindingsPtr()) pBindings->Invalidate( SID_BASICIDE_CURRENT_LANG ); diff --git a/basic/source/comp/scanner.cxx b/basic/source/comp/scanner.cxx index bb263a802f124..e3a622b81f456 100644 --- a/basic/source/comp/scanner.cxx +++ b/basic/source/comp/scanner.cxx @@ -569,7 +569,7 @@ bool SbiScanner::NextSym() { pLine = nullptr; bool bRes = NextSym(); - if( bVBASupportOn && aSym[0] == '.' ) + if( bVBASupportOn && aSym.startsWith(".") ) { // object _ // .Method diff --git a/basic/source/runtime/methods.cxx b/basic/source/runtime/methods.cxx index d93c95aade983..5b230e147c730 100644 --- a/basic/source/runtime/methods.cxx +++ b/basic/source/runtime/methods.cxx @@ -2037,7 +2037,7 @@ RTLFUNC(CDateToIso) { double aDate = rPar.Get(1)->GetDate(); - char Buffer[9]; + char Buffer[11]; snprintf( Buffer, sizeof( Buffer ), "%04d%02d%02d", implGetDateYear( aDate ), implGetDateMonth( aDate ), @@ -2051,7 +2051,7 @@ RTLFUNC(CDateToIso) } } -// Function to convert date from ISO 8601 date format +// Function to convert date from ISO 8601 date format YYYYMMDD or YYYY-MM-DD RTLFUNC(CDateFromIso) { (void)pBasic; @@ -2059,18 +2059,56 @@ RTLFUNC(CDateFromIso) if ( rPar.Count() == 2 ) { - OUString aStr = rPar.Get(1)->GetOUString(); - const sal_Int32 iMonthStart = aStr.getLength() - 4; - OUString aYearStr = aStr.copy( 0, iMonthStart ); - OUString aMonthStr = aStr.copy( iMonthStart, 2 ); - OUString aDayStr = aStr.copy( iMonthStart+2, 2 ); - - double dDate; - if( implDateSerial( (sal_Int16)aYearStr.toInt32(), - (sal_Int16)aMonthStr.toInt32(), (sal_Int16)aDayStr.toInt32(), dDate ) ) + do { + OUString aStr = rPar.Get(1)->GetOUString(); + const sal_Int32 nLen = aStr.getLength(); + if (nLen != 6 && nLen != 8 && nLen != 10) + break; + + OUString aYearStr, aMonthStr, aDayStr; + if (nLen == 6 || nLen == 8) + { + // (YY)YYMMDD + if (!comphelper::string::isdigitAsciiString(aStr)) + break; + + const sal_Int32 nMonthPos = (nLen == 6 ? 2 : 4); + aYearStr = aStr.copy( 0, nMonthPos ); + aMonthStr = aStr.copy( nMonthPos, 2 ); + aDayStr = aStr.copy( nMonthPos + 2, 2 ); + } + else + { + // YYYY-MM-DD + const sal_Int32 nSep1 = aStr.indexOf('-'); + if (nSep1 != 4) + break; + const sal_Int32 nSep2 = aStr.indexOf('-', nSep1+1); + if (nSep2 != 7) + break; + + aYearStr = aStr.copy( 0, 4 ); + aMonthStr = aStr.copy( 5, 2 ); + aDayStr = aStr.copy( 8, 2 ); + if ( !comphelper::string::isdigitAsciiString(aYearStr) || + !comphelper::string::isdigitAsciiString(aMonthStr) || + !comphelper::string::isdigitAsciiString(aDayStr)) + break; + } + + double dDate; + if (!implDateSerial( (sal_Int16)aYearStr.toInt32(), + (sal_Int16)aMonthStr.toInt32(), (sal_Int16)aDayStr.toInt32(), dDate )) + break; + rPar.Get(0)->PutDate( dDate ); + + return; } + while (false); + + SbxBase::SetError( ERRCODE_SBX_BAD_PARAMETER ); } else { diff --git a/basic/source/uno/dlgcont.cxx b/basic/source/uno/dlgcont.cxx index 5d5b45054d4dc..fb90243ebaa24 100644 --- a/basic/source/uno/dlgcont.cxx +++ b/basic/source/uno/dlgcont.cxx @@ -379,7 +379,11 @@ Reference< css::resource::XStringResourcePersistence > } catch(const uno::Exception& ) { - // TODO: Error handling? + // Something went wrong while trying to get the storage library. + // Return an object that supports StringResourceWithStorage, give it a storage location later. + xRet = Reference< resource::XStringResourcePersistence >( + mxContext->getServiceManager()->createInstanceWithContext("com.sun.star.resource.StringResourceWithStorage", mxContext), + UNO_QUERY ); return xRet; } diff --git a/bin/lo-commit-stat b/bin/lo-commit-stat index e33ca798f41e1..2e42d468b40dc 100755 --- a/bin/lo-commit-stat +++ b/bin/lo-commit-stat @@ -4,9 +4,13 @@ #!/usr/bin/perl use strict; +use warnings; use LWP::UserAgent; use utf8; use File::Temp; +use Encode; +use open ':encoding(utf8)'; +use open ':std' => ':encoding(utf8)'; my %module_dirname = ( "core" => "", @@ -68,7 +72,6 @@ sub search_bugs($$$$) # someone mistyped fdo as fd0 $bug =~ s/^fd0\#/fdo#/; # save the bug number - %{$pdata->{$module}{$commit_id}{'bugs'}} = () if (! defined %{$pdata->{$module}{$commit_id}{'bugs'}}); $pdata->{$module}{$commit_id}{'bugs'}{$bug} = 1; } @@ -155,26 +158,24 @@ sub load_git_log($$$$$$$) # } open (GIT, "$cmd 2>&1|") || die "Can't run $cmd: $!"; - %{$pdata->{$module}} = (); while (my $line = ) { chomp $line; if ( $line =~ m/^commit ([0-9a-z]{20})/ ) { - $commit_id = "$1"; + $commit_id = $1; $summary=undef; - %{$pdata->{$module}{"$commit_id"}} = (); next; } if ( $line =~ /^Author:\s*([^\<]*)\<([^\>]*)>/ ) { # get rid of extra empty spaces; - my $name = "$1"; + my $name = $1; + my $email = $2; $name =~ s/\s+$//; die "Error: Author already defined for the commit {$commit_id}\n" if defined ($pdata->{$module}{$commit_id}{'author'}); - %{$pdata->{$module}{$commit_id}{'author'}} = (); - $pdata->{$module}{$commit_id}{'author'}{'name'} = "$name"; - $pdata->{$module}{$commit_id}{'author'}{'email'} = "$2"; + $pdata->{$module}{$commit_id}{'author'}{'name'} = $name; + $pdata->{$module}{$commit_id}{'author'}{'email'} = $email; next; } @@ -262,7 +263,6 @@ sub get_bug_list($$$) foreach my $module ( keys %{$pdata}) { foreach my $id ( keys %{$pdata->{$module}}) { foreach my $bug (keys %{$pdata->{$module}{$id}{'bugs'}}) { - %{$pbugs->{$bug}} = () if (! defined %{$pbugs->{$bug}}); my $author = $pdata->{$module}{$id}{'author'}{'name'}; my $summary = $pdata->{$module}{$id}{'summary'}; $pbugs->{$bug}{'summary'} = $summary; @@ -383,19 +383,16 @@ sub get_bug_name($$) $ua->env_proxy; my $response = $ua->get($url); if ($response->is_success) { - my $title = $response->title; - if ( $title =~ s/^Bug \d+ \S+ // ) { + my $title = decode('utf8', $response->title); + if ( $title =~ s/^(?:Bug $bug_number \S+|$bug_number –) // ) { print "$title\n"; return $title; } else { - print "warning: not found; using commit message (only got $title)\n"; + print "warning: not found; using commit message (only got $title)"; } - } else { - print "\n"; } - } else { - print "\n"; } + print "\n"; return $summary; } @@ -404,7 +401,9 @@ sub print_bugs($$$$) { my ($pbugs, $log, $wiki) = @_; - foreach my $bug ( sort { $a cmp $b } keys %{$pbugs}) { + # sort alphabetically by bugzilla-type, but whithin that numerically + foreach my $bug ( sort { ($a =~ /(\D+)/)[0] cmp ($b =~ /(\D+)/)[0] || + ($a =~ /(\d+)/)[0] <=> ($b =~ /(\d+)/)[0] } keys %{$pbugs}) { my $summary = $pbugs->{$bug}{'summary'}; my $authors = ""; @@ -506,7 +505,6 @@ my $branch_name; my $git_command = "git log"; my $git_cherry; my $git_args = ""; -my $branch_name; my %data; my %bugs = (); @@ -555,7 +553,7 @@ foreach my $arg (@ARGV) { } # default log -if (%generate_log == 0) { +unless (%generate_log) { $generate_log{"commits"} = 1; } diff --git a/bin/lo-pack-sources b/bin/lo-pack-sources index 87e36501fd432..4fb8869890967 100755 --- a/bin/lo-pack-sources +++ b/bin/lo-pack-sources @@ -126,8 +126,8 @@ sub generate_lo_module_changelog($$$) $log_name .= "-$module_dirname{$module}" if ($module_dirname{$module}); print "Generating changelog for $module...\n"; system ("cd $source_dir/$module_dirname{$module} && " . - "git log --date=short --pretty='format:@%cd %an <%ae> [%H]%n%n%s%n%n%e%b' | " . - " sed -e 's/^/\t/' -e 's/^\t@//' >$lo_module_release_topdir/$log_name" ) && + "git log --date=short --pretty='format:%cd %an <%ae> [%H]%n%n%w(0,8,8)%s%n%e%+b' " . + ">$lo_module_release_topdir/$log_name" ) && die "Error: generating failed: $!\n"; } diff --git a/bridges/source/cpp_uno/gcc3_linux_sparc64/cpp2uno.cxx b/bridges/source/cpp_uno/gcc3_linux_sparc64/cpp2uno.cxx index d8bc9a2e8221b..813f5b79820ed 100644 --- a/bridges/source/cpp_uno/gcc3_linux_sparc64/cpp2uno.cxx +++ b/bridges/source/cpp_uno/gcc3_linux_sparc64/cpp2uno.cxx @@ -21,10 +21,10 @@ #include #include #include -#include "bridges/cpp_uno/shared/bridge.hxx" -#include "bridges/cpp_uno/shared/cppinterfaceproxy.hxx" -#include "bridges/cpp_uno/shared/types.hxx" -#include "bridges/cpp_uno/shared/vtablefactory.hxx" +#include "bridge.hxx" +#include "cppinterfaceproxy.hxx" +#include "types.hxx" +#include "vtablefactory.hxx" #include "share.hxx" #define GET_FP(n, p) \ diff --git a/bridges/source/cpp_uno/gcc3_linux_sparc64/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_linux_sparc64/uno2cpp.cxx index 8caaee5f2ffba..dc03e46e1e5d2 100644 --- a/bridges/source/cpp_uno/gcc3_linux_sparc64/uno2cpp.cxx +++ b/bridges/source/cpp_uno/gcc3_linux_sparc64/uno2cpp.cxx @@ -21,10 +21,10 @@ #include #include -#include "bridges/cpp_uno/shared/bridge.hxx" -#include "bridges/cpp_uno/shared/types.hxx" -#include "bridges/cpp_uno/shared/unointerfaceproxy.hxx" -#include "bridges/cpp_uno/shared/vtables.hxx" +#include "bridge.hxx" +#include "types.hxx" +#include "unointerfaceproxy.hxx" +#include "vtables.hxx" #include "share.hxx" diff --git a/canvas/source/cairo/cairo_canvashelper.cxx b/canvas/source/cairo/cairo_canvashelper.cxx index b2f673bab8c59..2290c1a9fb5dd 100644 --- a/canvas/source/cairo/cairo_canvashelper.cxx +++ b/canvas/source/cairo/cairo_canvashelper.cxx @@ -795,6 +795,12 @@ namespace cairocanvas aScaledTextureMatrix.x0 = basegfx::fround( aScaledTextureMatrix.x0 ); aScaledTextureMatrix.y0 = basegfx::fround( aScaledTextureMatrix.y0 ); + + double x1, y1, x2, y2; + cairo_path_extents(pCairo, &x1, &y1, &x2, &y2); + aScaledTextureMatrix.x0 -= (x1 * aScaledTextureMatrix.xx); + aScaledTextureMatrix.y0 -= (y1 * aScaledTextureMatrix.yy); + cairo_pattern_set_matrix( pPattern, &aScaledTextureMatrix ); cairo_set_source( pCairo, pPattern ); diff --git a/canvas/source/cairo/cairo_textlayout.cxx b/canvas/source/cairo/cairo_textlayout.cxx index 7ace9c75229ba..678deb7369f24 100644 --- a/canvas/source/cairo/cairo_textlayout.cxx +++ b/canvas/source/cairo/cairo_textlayout.cxx @@ -168,7 +168,7 @@ namespace cairocanvas setupLayoutMode( *pVDev.get(), mnTextDirection ); - const sal_Int32 nAboveBaseline( -aMetric.GetInternalLeading() - aMetric.GetAscent() ); + const sal_Int32 nAboveBaseline( -aMetric.GetAscent() ); const sal_Int32 nBelowBaseline( aMetric.GetDescent() ); if( maLogicalAdvancements.getLength() ) diff --git a/canvas/source/directx/dx_9rm.cxx b/canvas/source/directx/dx_9rm.cxx index 1f58f2bd8349b..4b41d302b54b2 100644 --- a/canvas/source/directx/dx_9rm.cxx +++ b/canvas/source/directx/dx_9rm.cxx @@ -583,6 +583,14 @@ namespace dxcanvas // TODO(P2): get rid of those fine-grained locking ::osl::MutexGuard aGuard( maMutex ); + // TODO(F2): since we would like to share precious hardware + // resources, the direct3d9 object should be global. each new + // request for a canvas should only create a new swapchain. + mpDirect3D9 = COMReference( + Direct3DCreate9(D3D_SDK_VERSION)); + if(!mpDirect3D9.is()) + return false; + maVertexCache.reserve( 1024 ); mpWindow.disposeAndClear(); @@ -619,17 +627,12 @@ namespace dxcanvas // let the child window cover the same size as the parent window. mpWindow->setPosSizePixel(0,0,maSize.getX(),maSize.getY()); - // TODO(F2): since we would like to share precious hardware - // resources, the direct3d9 object should be global. each new - // request for a canvas should only create a new swapchain. - mpDirect3D9 = COMReference( - Direct3DCreate9(D3D_SDK_VERSION)); - if(!mpDirect3D9.is()) - return false; - // create a device from the direct3d9 object. if(!(createDevice())) + { + mpWindow.disposeAndClear(); return false; + } mpWindow->Show(); diff --git a/canvas/source/vcl/textlayout.cxx b/canvas/source/vcl/textlayout.cxx index d179ba33a63df..e19a95fe10d48 100644 --- a/canvas/source/vcl/textlayout.cxx +++ b/canvas/source/vcl/textlayout.cxx @@ -246,7 +246,7 @@ namespace vclcanvas setupLayoutMode( *pVDev.get(), mnTextDirection ); - const sal_Int32 nAboveBaseline( /*-aMetric.GetIntLeading()*/ - aMetric.GetAscent() ); + const sal_Int32 nAboveBaseline( -aMetric.GetAscent() ); const sal_Int32 nBelowBaseline( aMetric.GetDescent() ); if( maLogicalAdvancements.getLength() ) diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index b508f3e123dd7..ca690298827e8 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -22,6 +22,7 @@ #include #include #include +#include #include @@ -39,6 +40,7 @@ class Chart2ImportTest : public ChartTest void testODTChartSeries(); void testDOCChartSeries(); void testDOCXChartSeries(); + void testDOCXChartValuesSize(); void testPPTXChartSeries(); void testPPTXSparseChartSeries(); /** @@ -61,6 +63,7 @@ class Chart2ImportTest : public ChartTest void testFdo54361(); void testFdo54361_1(); void testTdf86624(); // manually placed legends + void testTdf106217(); void testAutoBackgroundXLSX(); void testChartAreaStyleBackgroundXLSX(); void testAxisTextRotationXLSX(); @@ -91,6 +94,8 @@ class Chart2ImportTest : public ChartTest void testSecondaryAxisTitleDefaultRotationXLSX(); void testAxisTitleRotationXLSX(); + void testTdf111173(); + void testInternalDataProvider(); CPPUNIT_TEST_SUITE(Chart2ImportTest); @@ -104,6 +109,7 @@ class Chart2ImportTest : public ChartTest CPPUNIT_TEST(testODTChartSeries); CPPUNIT_TEST(testDOCChartSeries); CPPUNIT_TEST(testDOCXChartSeries); + CPPUNIT_TEST(testDOCXChartValuesSize); CPPUNIT_TEST(testPPTChartSeries); CPPUNIT_TEST(testPPTXChartSeries); CPPUNIT_TEST(testPPTXSparseChartSeries); @@ -121,6 +127,7 @@ class Chart2ImportTest : public ChartTest CPPUNIT_TEST(testFdo54361); CPPUNIT_TEST(testFdo54361_1); CPPUNIT_TEST(testTdf86624); + CPPUNIT_TEST(testTdf106217); CPPUNIT_TEST(testAutoBackgroundXLSX); CPPUNIT_TEST(testChartAreaStyleBackgroundXLSX); CPPUNIT_TEST(testAxisTextRotationXLSX); @@ -143,6 +150,7 @@ class Chart2ImportTest : public ChartTest CPPUNIT_TEST(testAxisTitleDefaultRotationXLSX); CPPUNIT_TEST(testSecondaryAxisTitleDefaultRotationXLSX); CPPUNIT_TEST(testAxisTitleRotationXLSX); + CPPUNIT_TEST(testTdf111173); CPPUNIT_TEST(testInternalDataProvider); @@ -373,6 +381,27 @@ void Chart2ImportTest::testDOCXChartSeries() CPPUNIT_ASSERT_EQUAL(OUString("Series 3"), aLabels[2][0].get()); } +void Chart2ImportTest::testDOCXChartValuesSize() +{ + load( "/chart2/qa/extras/data/docx/", "bubblechart.docx" ); + Reference xChartDoc( getChartDocFromWriter(0), uno::UNO_QUERY ); + CPPUNIT_ASSERT( xChartDoc.is() ); + + uno::Reference< chart::XChartDataArray > xDataArray( xChartDoc->getDataProvider(), UNO_QUERY_THROW ); + Sequence aColumnDesc = xDataArray->getColumnDescriptions(); + // Number of columns = 3 (Y-values, X-values and bubble sizes). + // Without the fix there would only be 2 columns (no bubble sizes). + CPPUNIT_ASSERT_EQUAL_MESSAGE( "There must be 3 columns and descriptions", static_cast(3), aColumnDesc.getLength() ); + Sequence> aData = xDataArray->getData(); + CPPUNIT_ASSERT_EQUAL_MESSAGE( "There must be exactly 3 data points", static_cast(3), aData.getLength() ); + + std::vector> aExpected = { { 2.7, 0.7, 10.0 }, { 3.2, 1.8, 4.0 }, { 0.8, 2.6, 8.0 } }; + + for ( sal_Int32 nRowIdx = 0; nRowIdx < 3; ++nRowIdx ) + for( sal_Int32 nColIdx = 0; nColIdx < 3; ++nColIdx ) + CPPUNIT_ASSERT_DOUBLES_EQUAL( aExpected[nRowIdx][nColIdx], aData[nRowIdx][nColIdx], 1e-1 ); +} + void Chart2ImportTest::testPPTChartSeries() { //test chart series names for ppt @@ -714,6 +743,28 @@ void Chart2ImportTest::testTdf86624() CPPUNIT_ASSERT(aPos.Y > 4000); // real value for ms is above 7000 } +void Chart2ImportTest::testTdf106217() +{ + load("/chart2/qa/extras/data/pptx/", "tdf106217.pptx"); + uno::Reference< chart::XChartDocument > xChartDoc = getChartDocFromDrawImpress(0, 0); + CPPUNIT_ASSERT(xChartDoc.is()); + + uno::Reference xDrawPageSupplier(xChartDoc, uno::UNO_QUERY); + uno::Reference xDrawPage = xDrawPageSupplier->getDrawPage(); + uno::Reference xCircle(xDrawPage->getByIndex(1), uno::UNO_QUERY); + CPPUNIT_ASSERT(xCircle.is()); + + uno::Reference xNamedShape(xCircle, uno::UNO_QUERY); + CPPUNIT_ASSERT_EQUAL(xNamedShape->getName(), OUString("Oval 1")); + + awt::Point aPosition = xCircle->getPosition(); + CPPUNIT_ASSERT_EQUAL(aPosition.X, sal_Int32(6870)); + CPPUNIT_ASSERT_EQUAL(aPosition.Y, sal_Int32(7261)); + awt::Size aSize = xCircle->getSize(); + CPPUNIT_ASSERT_EQUAL(aSize.Width, sal_Int32(2701)); + CPPUNIT_ASSERT_EQUAL(aSize.Height, sal_Int32(2700)); +} + void Chart2ImportTest::testTransparentBackground(OUString const & filename) { load("/chart2/qa/extras/data/xlsx/", filename); @@ -1199,6 +1250,13 @@ void Chart2ImportTest::testInternalDataProvider() { CPPUNIT_ASSERT_EQUAL(uno::Any(OUString("world")), xSequence[3]); } +void Chart2ImportTest::testTdf111173() +{ + load("/chart2/qa/extras/data/xlsx/", "tdf111173.xlsx"); + uno::Reference< chart::XChartDocument > xChart1Doc( getChartCompFromSheet( 0, mxComponent ), UNO_QUERY_THROW ); + CPPUNIT_ASSERT_MESSAGE( "failed to load chart", xChart1Doc.is() ); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ImportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/docx/bubblechart.docx b/chart2/qa/extras/data/docx/bubblechart.docx new file mode 100644 index 0000000000000..c2040730cfcc1 Binary files /dev/null and b/chart2/qa/extras/data/docx/bubblechart.docx differ diff --git a/chart2/qa/extras/data/pptx/tdf106217.pptx b/chart2/qa/extras/data/pptx/tdf106217.pptx new file mode 100755 index 0000000000000..64fb968b8a157 Binary files /dev/null and b/chart2/qa/extras/data/pptx/tdf106217.pptx differ diff --git a/chart2/qa/extras/data/xlsx/tdf111173.xlsx b/chart2/qa/extras/data/xlsx/tdf111173.xlsx new file mode 100755 index 0000000000000..e62c6747b5f77 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf111173.xlsx differ diff --git a/chart2/source/controller/dialogs/dlg_CreationWizard_UNO.cxx b/chart2/source/controller/dialogs/dlg_CreationWizard_UNO.cxx index c1138a17e2177..f433ae82e4c22 100644 --- a/chart2/source/controller/dialogs/dlg_CreationWizard_UNO.cxx +++ b/chart2/source/controller/dialogs/dlg_CreationWizard_UNO.cxx @@ -97,7 +97,7 @@ uno::Any SAL_CALL CreationWizardUnoDlg::queryAggregation( uno::Type const & rTyp } else if (rType == cppu::UnoType::get()) { - void * p = static_cast< lang::XTypeProvider * >( this ); + void * p = static_cast< lang::XServiceInfo * >( this ); return uno::Any( &p, rType ); } else if (rType == cppu::UnoType::get()) diff --git a/chart2/source/controller/dialogs/dlg_ObjectProperties.cxx b/chart2/source/controller/dialogs/dlg_ObjectProperties.cxx index d5ead3a404a5e..e23c021b50f55 100644 --- a/chart2/source/controller/dialogs/dlg_ObjectProperties.cxx +++ b/chart2/source/controller/dialogs/dlg_ObjectProperties.cxx @@ -522,6 +522,7 @@ void SchAttribTabDlg::PageCreated(sal_uInt16 nId, SfxTabPage &rPage) aSet.Put(SvxGradientListItem(m_pViewElementListProvider->GetGradientList(),SID_GRADIENT_LIST)); aSet.Put(SvxHatchListItem(m_pViewElementListProvider->GetHatchList(),SID_HATCH_LIST)); aSet.Put(SvxBitmapListItem(m_pViewElementListProvider->GetBitmapList(),SID_BITMAP_LIST)); + aSet.Put(SvxPatternListItem(m_pViewElementListProvider->GetPatternList(),SID_PATTERN_LIST)); aSet.Put(SfxUInt16Item(SID_PAGE_TYPE,0)); aSet.Put(SfxUInt16Item(SID_DLG_TYPE,nDlgType)); rPage.PageCreated(aSet); diff --git a/chart2/source/controller/drawinglayer/ViewElementListProvider.cxx b/chart2/source/controller/drawinglayer/ViewElementListProvider.cxx index 9ff91385bc97a..a4af2d83ff33d 100644 --- a/chart2/source/controller/drawinglayer/ViewElementListProvider.cxx +++ b/chart2/source/controller/drawinglayer/ViewElementListProvider.cxx @@ -98,6 +98,13 @@ XBitmapListRef ViewElementListProvider::GetBitmapList() const return XBitmapListRef(); } +XPatternListRef ViewElementListProvider::GetPatternList() const +{ + if(m_pDrawModelWrapper) + return m_pDrawModelWrapper->GetPatternList(); + return XPatternListRef(); +} + //create chartspecific symbols for linecharts SdrObjList* ViewElementListProvider::GetSymbolList() const { diff --git a/chart2/source/controller/inc/ViewElementListProvider.hxx b/chart2/source/controller/inc/ViewElementListProvider.hxx index d61d380d1992f..f3e65a838e169 100644 --- a/chart2/source/controller/inc/ViewElementListProvider.hxx +++ b/chart2/source/controller/inc/ViewElementListProvider.hxx @@ -41,6 +41,7 @@ public: XGradientListRef GetGradientList() const; XHatchListRef GetHatchList() const; XBitmapListRef GetBitmapList() const; + XPatternListRef GetPatternList() const; //create chartspecific symbols for linecharts SdrObjList* GetSymbolList() const; diff --git a/chart2/source/inc/chartview/DrawModelWrapper.hxx b/chart2/source/inc/chartview/DrawModelWrapper.hxx index 45e6b57eeef3b..5c1852bc12361 100644 --- a/chart2/source/inc/chartview/DrawModelWrapper.hxx +++ b/chart2/source/inc/chartview/DrawModelWrapper.hxx @@ -79,6 +79,7 @@ public: XGradientListRef GetGradientList() const; XHatchListRef GetHatchList() const; XBitmapListRef GetBitmapList() const; + XPatternListRef GetPatternList() const; SdrObject* getNamedSdrObject( const OUString& rName ); static SdrObject* getNamedSdrObject( const OUString& rName, SdrObjList* pObjList ); diff --git a/chart2/source/tools/InternalDataProvider.cxx b/chart2/source/tools/InternalDataProvider.cxx index e2e1ad3332024..664f7902924ac 100644 --- a/chart2/source/tools/InternalDataProvider.cxx +++ b/chart2/source/tools/InternalDataProvider.cxx @@ -566,7 +566,7 @@ InternalDataProvider::createDataSequenceFromArray( const OUString& rArrayStr, co } if (rRole == "values-y" || rRole == "values-first" || rRole == "values-last" || - rRole == "values-min" || rRole == "values-max") + rRole == "values-min" || rRole == "values-max" || rRole == "values-size") { // Column values. Append a new data column and populate it. diff --git a/chart2/source/view/charttypes/PieChart.cxx b/chart2/source/view/charttypes/PieChart.cxx index d91e5a10d3fd4..98fffc60e430b 100644 --- a/chart2/source/view/charttypes/PieChart.cxx +++ b/chart2/source/view/charttypes/PieChart.cxx @@ -288,14 +288,23 @@ void PieChart::createTextLabelShape( ///the label position is allowed; the `createTextLabelShape` treats the ///`AVOID_OVERLAP` as if it was of `CENTER` type; + double nVal = rSeries.getYValue(nPointIndex); //AVOID_OVERLAP is in fact "Best fit" in the UI. bool bMovementAllowed = ( nLabelPlacement == css::chart::DataLabelPlacement::AVOID_OVERLAP ); if( bMovementAllowed ) + { // Use center for "Best fit" for now. In the future we // may want to implement a real best fit algorithm. // But center is good enough, and close to what Excel // does. - nLabelPlacement = css::chart::DataLabelPlacement::CENTER; + + // Place the label outside if the sector is too small + // The threshold is set to 2%, but can be improved by making it a function of + // label width and radius too ? + double fFrac = fabs( nVal / rParam.mfLogicYSum ); + nLabelPlacement = ( fFrac <= 0.02 ) ? css::chart::DataLabelPlacement::OUTSIDE : + css::chart::DataLabelPlacement::CENTER; + } ///for `OUTSIDE` (`INSIDE`) label placements an offset of 150 (-150), in the ///radius direction, is added to the final screen position of the label @@ -354,7 +363,6 @@ void PieChart::createTextLabelShape( sal_Int32 nTextMaximumFrameWidth = ceil(fTextMaximumFrameWidth); ///the text shape for the label is created - double nVal = rSeries.getYValue(nPointIndex); aPieLabelInfo.xTextShape = createDataLabel( xTextTarget, rSeries, nPointIndex, nVal, rParam.mfLogicYSum, aScreenPosition2D, eAlignment, 0, nTextMaximumFrameWidth); @@ -362,8 +370,13 @@ void PieChart::createTextLabelShape( ///a new `PieLabelInfo` instance is initialized with all the info related to ///the current label in order to simplify later label position rearrangement; uno::Reference< container::XChild > xChild( aPieLabelInfo.xTextShape, uno::UNO_QUERY ); - if( xChild.is() ) - aPieLabelInfo.xLabelGroupShape.set( xChild->getParent(), uno::UNO_QUERY ); + + ///text shape could be empty; in that case there is no need to add label info + if( !xChild.is() ) + return; + + aPieLabelInfo.xLabelGroupShape.set( xChild->getParent(), uno::UNO_QUERY ); + aPieLabelInfo.fValue = nVal; aPieLabelInfo.bMovementAllowed = bMovementAllowed; aPieLabelInfo.bMoved= false; @@ -374,9 +387,7 @@ void PieChart::createTextLabelShape( performLabelBestFit(rParam, aPieLabelInfo); } - m_aLabelInfoList.push_back(aPieLabelInfo); - } void PieChart::addSeries( VDataSeries* pSeries, sal_Int32 /* zSlot */, sal_Int32 /* xSlot */, sal_Int32 /* ySlot */ ) diff --git a/chart2/source/view/main/DrawModelWrapper.cxx b/chart2/source/view/main/DrawModelWrapper.cxx index 826e02230f36f..d0dd9234aa164 100644 --- a/chart2/source/view/main/DrawModelWrapper.cxx +++ b/chart2/source/view/main/DrawModelWrapper.cxx @@ -285,6 +285,11 @@ XBitmapListRef DrawModelWrapper::GetBitmapList() const return this->SdrModel::GetBitmapList(); } +XPatternListRef DrawModelWrapper::GetPatternList() const +{ + return this->SdrModel::GetPatternList(); +} + SdrObject* DrawModelWrapper::getNamedSdrObject( const OUString& rName ) { if( rName.isEmpty() ) diff --git a/cli_ure/source/native/native_share.h b/cli_ure/source/native/native_share.h index 9b3ebe1ac9b9f..1be1b3a082b3c 100644 --- a/cli_ure/source/native/native_share.h +++ b/cli_ure/source/native/native_share.h @@ -91,10 +91,10 @@ inline void to_uno( reinterpret_cast< void ** >( &ret ), reinterpret_cast< void * >( ::System::Runtime::InteropServices::GCHandle::op_Explicit( handle ) -#if defined _WIN32 - .ToInt32() -#elif defined _WIN64 +#if defined _WIN64 .ToInt64() +#elif defined _WIN32 + .ToInt32() #else #error ERROR: either _WIN64 or _WIN32 must be defined ERROR: either _WIN64 or _WIN32 must be defined diff --git a/cli_ure/source/uno_bridge/cli_bridge.cxx b/cli_ure/source/uno_bridge/cli_bridge.cxx index 3fb8f98f6dfcf..da8d0852e9275 100644 --- a/cli_ure/source/uno_bridge/cli_bridge.cxx +++ b/cli_ure/source/uno_bridge/cli_bridge.cxx @@ -131,9 +131,10 @@ void SAL_CALL Mapping_uno2cli( if(cliI) { ptr= sri::GCHandle::ToIntPtr(sri::GCHandle::Alloc(cliI)) -#ifdef _WIN32 +#ifdef _WIN64 + .ToInt64(); +#else /* defined(_WIN32) */ .ToInt32(); -#else /* defined(_WIN64) */ .ToInt64(); #endif } (*ppOut)= reinterpret_cast(ptr); diff --git a/comphelper/qa/string/test_string.cxx b/comphelper/qa/string/test_string.cxx index 636c305873704..b36b7988489f3 100644 --- a/comphelper/qa/string/test_string.cxx +++ b/comphelper/qa/string/test_string.cxx @@ -43,6 +43,7 @@ class TestString: public CppUnit::TestFixture void testIsdigitAsciiString(); void testReverseString(); void testSplit(); + void testRemoveAny(); CPPUNIT_TEST_SUITE(TestString); CPPUNIT_TEST(testNatural); @@ -55,6 +56,7 @@ class TestString: public CppUnit::TestFixture CPPUNIT_TEST(testIsdigitAsciiString); CPPUNIT_TEST(testReverseString); CPPUNIT_TEST(testSplit); + CPPUNIT_TEST(testRemoveAny); CPPUNIT_TEST_SUITE_END(); }; @@ -390,6 +392,26 @@ void TestString::testSplit() CPPUNIT_ASSERT_EQUAL(OUString("F1"), aRet[2]); } +void TestString::testRemoveAny() +{ + using namespace ::comphelper::string; + OUString in("abcAAAbbC"); + sal_Unicode const test1 [] = { 'a', 0 }; + CPPUNIT_ASSERT_EQUAL(OUString("bcAAAbbC"), removeAny(in, test1)); + sal_Unicode const test2 [] = { 0 }; + CPPUNIT_ASSERT_EQUAL(in, removeAny(in, test2)); + sal_Unicode const test3 [] = { 'A', 0 }; + CPPUNIT_ASSERT_EQUAL(OUString("abcbbC"), removeAny(in, test3)); + sal_Unicode const test4 [] = { 'A', 'a', 0 }; + CPPUNIT_ASSERT_EQUAL(OUString("bcbbC"), removeAny(in, test4)); + sal_Unicode const test5 [] = { 'C', 0 }; + CPPUNIT_ASSERT_EQUAL(OUString("abcAAAbb"), removeAny(in, test5)); + sal_Unicode const test6 [] = { 'X', 0 }; + CPPUNIT_ASSERT_EQUAL(in, removeAny(in, test6)); + sal_Unicode const test7 [] = { 'A', 'B', 'C', 'a', 'b', 'c', 0 }; + CPPUNIT_ASSERT_EQUAL(OUString(""), removeAny(in, test7)); +} + CPPUNIT_TEST_SUITE_REGISTRATION(TestString); } diff --git a/comphelper/source/misc/backupfilehelper.cxx b/comphelper/source/misc/backupfilehelper.cxx index 643201080cc97..50ea1903319ce 100644 --- a/comphelper/source/misc/backupfilehelper.cxx +++ b/comphelper/source/misc/backupfilehelper.cxx @@ -557,10 +557,12 @@ namespace { private: ExtensionInfoEntryVector maEntries; + OUString maRegPath; public: ExtensionInfo() - : maEntries() + : maEntries(), + maRegPath("/registry/com.sun.star.comp.deployment.bundle.PackageRegistryBackend/backenddb.xml") { } @@ -680,21 +682,27 @@ namespace } public: - void createUsingExtensionRegistryEntriesFromXML( - const OUString& rUserConfigWorkURL, - bool bUser) - { - // This is looked up for 'user' in the user|shared|bundled deployed Extensions, - // only the user ones seem to be able to be de/activated. The ones for user are in - // uno_packages/cache while the others are in /extensions/shared. - // This also means that all user-deployed Extensions can probably be uninstalled - // in safe mode by deleting the uno_packages directory and the shared|bundled - // ones by deleting the extensions directory. - const OUString aRegPath("/registry/com.sun.star.comp.deployment.bundle.PackageRegistryBackend/backenddb.xml"); - const OUString aExtensionsReg(rUserConfigWorkURL + "/extensions/shared" + aRegPath); - const OUString aUnoPackageReg(rUserConfigWorkURL + "/uno_packages/cache" + aRegPath); - const OUString aPath(bUser ? aUnoPackageReg : aExtensionsReg); + void createUserExtensionRegistryEntriesFromXML(const OUString& rUserConfigWorkURL) + { + const OUString aPath(rUserConfigWorkURL + "/uno_packages/cache" + maRegPath); + createExtensionRegistryEntriesFromXML(aPath); + } + + void createSharedExtensionRegistryEntriesFromXML(const OUString& rUserConfigWorkURL) + { + const OUString aPath(rUserConfigWorkURL + "/extensions/shared" + maRegPath); + createExtensionRegistryEntriesFromXML(aPath); + } + void createBundledExtensionRegistryEntriesFromXML(const OUString& rUserConfigWorkURL) + { + const OUString aPath(rUserConfigWorkURL + "/extensions/bundled" + maRegPath); + createExtensionRegistryEntriesFromXML(aPath); + } + + + void createExtensionRegistryEntriesFromXML(const OUString& aPath) + { if (fileExists(aPath)) { uno::Reference< uno::XComponentContext > xContext = ::comphelper::getProcessComponentContext(); @@ -1986,7 +1994,7 @@ namespace comphelper // extensions are not loaded from XExtensionManager class ExtensionInfo aExtensionInfo; - aExtensionInfo.createUsingExtensionRegistryEntriesFromXML(maUserConfigWorkURL, true); + aExtensionInfo.createUserExtensionRegistryEntriesFromXML(maUserConfigWorkURL); return aExtensionInfo.areThereEnabledExtensions(); } @@ -2000,7 +2008,7 @@ namespace comphelper const ExtensionInfoEntryVector aToBeEnabled{}; ExtensionInfoEntryVector aToBeDisabled; - aCurrentExtensionInfo.createUsingExtensionRegistryEntriesFromXML(maUserConfigWorkURL, true); + aCurrentExtensionInfo.createUserExtensionRegistryEntriesFromXML(maUserConfigWorkURL); const ExtensionInfoEntryVector& rCurrentVector = aCurrentExtensionInfo.getExtensionInfoEntryVector(); @@ -2020,7 +2028,7 @@ namespace comphelper // check if there are User Extensions installed. class ExtensionInfo aExtensionInfo; - aExtensionInfo.createUsingExtensionRegistryEntriesFromXML(maUserConfigWorkURL, true); + aExtensionInfo.createUserExtensionRegistryEntriesFromXML(maUserConfigWorkURL); return !aExtensionInfo.getExtensionInfoEntryVector().empty(); } @@ -2031,20 +2039,36 @@ namespace comphelper deleteDirRecursively(maUserConfigWorkURL + "/uno_packages"); } - bool BackupFileHelper::isTryDeinstallAllExtensionsPossible() + bool BackupFileHelper::isTryResetSharedExtensionsPossible() + { + // check if there are shared Extensions installed + class ExtensionInfo aExtensionInfo; + + aExtensionInfo.createSharedExtensionRegistryEntriesFromXML(maUserConfigWorkURL); + + return !aExtensionInfo.getExtensionInfoEntryVector().empty(); + } + + void BackupFileHelper::tryResetSharedExtensions() + { + // reset shared extension info + deleteDirRecursively(maUserConfigWorkURL + "/extensions/shared"); + } + + bool BackupFileHelper::isTryResetBundledExtensionsPossible() { - // check if there are other Extensions installed (shared|bundled). + // check if there are shared Extensions installed class ExtensionInfo aExtensionInfo; - aExtensionInfo.createUsingExtensionRegistryEntriesFromXML(maUserConfigWorkURL, false); + aExtensionInfo.createBundledExtensionRegistryEntriesFromXML(maUserConfigWorkURL); return !aExtensionInfo.getExtensionInfoEntryVector().empty(); } - void BackupFileHelper::tryDeinstallAllExtensions() + void BackupFileHelper::tryResetBundledExtensions() { - // delete other Extension installs (shared|bundled) - deleteDirRecursively(maUserConfigWorkURL + "/extensions"); + // reset shared extension info + deleteDirRecursively(maUserConfigWorkURL + "/extensions/bundled"); } const std::vector< OUString >& BackupFileHelper::getCustomizationDirNames() @@ -2548,7 +2572,7 @@ namespace comphelper // get current extension info, but from XML config files ExtensionInfo aCurrentExtensionInfo; - aCurrentExtensionInfo.createUsingExtensionRegistryEntriesFromXML(maUserConfigWorkURL, true); + aCurrentExtensionInfo.createUserExtensionRegistryEntriesFromXML(maUserConfigWorkURL); // now we have loaded last_working (aLoadedExtensionInfo) and // current (aCurrentExtensionInfo) ExtensionInfo and may react on diff --git a/comphelper/source/misc/storagehelper.cxx b/comphelper/source/misc/storagehelper.cxx index 4730794de6e13..394a0aab578f6 100644 --- a/comphelper/source/misc/storagehelper.cxx +++ b/comphelper/source/misc/storagehelper.cxx @@ -317,17 +317,28 @@ uno::Reference< embed::XStorage > OStorageHelper::GetStorageOfFormatFromInputStr const OUString& aFormat, const uno::Reference < io::XInputStream >& xStream, const uno::Reference< uno::XComponentContext >& rxContext, - bool bRepairStorage ) + bool bRepairStorage, bool bUseBufferedStream ) throw ( uno::Exception ) { uno::Sequence< beans::PropertyValue > aProps( 1 ); - aProps[0].Name = "StorageFormat"; - aProps[0].Value <<= aFormat; + sal_Int32 nPos = 0; + aProps[nPos].Name = "StorageFormat"; + aProps[nPos].Value <<= aFormat; + ++nPos; if ( bRepairStorage ) { - aProps.realloc( 2 ); - aProps[1].Name = "RepairPackage"; - aProps[1].Value <<= bRepairStorage; + aProps.realloc(nPos+1); + aProps[nPos].Name = "RepairPackage"; + aProps[nPos].Value <<= bRepairStorage; + ++nPos; + } + + if (bUseBufferedStream) + { + aProps.realloc(nPos+1); + aProps[nPos].Name = "UseBufferedStream"; + aProps[nPos].Value <<= bUseBufferedStream; + ++nPos; } uno::Sequence< uno::Any > aArgs( 3 ); @@ -349,17 +360,28 @@ uno::Reference< embed::XStorage > OStorageHelper::GetStorageOfFormatFromStream( const uno::Reference < io::XStream >& xStream, sal_Int32 nStorageMode, const uno::Reference< uno::XComponentContext >& rxContext, - bool bRepairStorage ) + bool bRepairStorage, bool bUseBufferedStream ) throw ( uno::Exception ) { uno::Sequence< beans::PropertyValue > aProps( 1 ); - aProps[0].Name = "StorageFormat"; - aProps[0].Value <<= aFormat; + sal_Int32 nPos = 0; + aProps[nPos].Name = "StorageFormat"; + aProps[nPos].Value <<= aFormat; + ++nPos; if ( bRepairStorage ) { - aProps.realloc( 2 ); - aProps[1].Name = "RepairPackage"; - aProps[1].Value <<= bRepairStorage; + aProps.realloc(nPos+1); + aProps[nPos].Name = "RepairPackage"; + aProps[nPos].Value <<= bRepairStorage; + ++nPos; + } + + if (bUseBufferedStream) + { + aProps.realloc(nPos+1); + aProps[nPos].Name = "UseBufferedStream"; + aProps[nPos].Value <<= bUseBufferedStream; + ++nPos; } uno::Sequence< uno::Any > aArgs( 3 ); diff --git a/comphelper/source/misc/string.cxx b/comphelper/source/misc/string.cxx index db035eb229676..5ca35f9eb5354 100644 --- a/comphelper/source/misc/string.cxx +++ b/comphelper/source/misc/string.cxx @@ -420,6 +420,42 @@ sal_Int32 indexOfAny(OUString const& rIn, return -1; } +OUString removeAny(OUString const& rIn, + sal_Unicode const*const pChars) +{ + OUStringBuffer buf; + bool isFound(false); + for (sal_Int32 i = 0; i < rIn.getLength(); ++i) + { + sal_Unicode const c = rIn[i]; + bool removeC(false); + for (sal_Unicode const* pChar = pChars; *pChar; ++pChar) + { + if (c == *pChar) + { + removeC = true; + break; + } + } + if (removeC) + { + if (!isFound) + { + if (i > 0) + { + buf.append(rIn.copy(0, i)); + } + isFound = true; + } + } + else if (isFound) + { + buf.append(c); + } + } + return (isFound) ? buf.makeStringAndClear() : rIn; +} + OUString setToken(const OUString& rIn, sal_Int32 nToken, sal_Unicode cTok, const OUString& rNewToken) { diff --git a/comphelper/source/misc/threadpool.cxx b/comphelper/source/misc/threadpool.cxx index f399274eed245..286fbf6973582 100644 --- a/comphelper/source/misc/threadpool.cxx +++ b/comphelper/source/misc/threadpool.cxx @@ -26,8 +26,9 @@ static thread_local bool gbIsWorkerThread; // used to group thread-tasks for waiting in waitTillDone() class COMPHELPER_DLLPUBLIC ThreadTaskTag { - oslInterlockedCount mnTasksWorking; - osl::Condition maTasksComplete; + osl::Mutex mMutex; + std::size_t mnTasksWorking; + osl::Condition maTasksComplete; public: ThreadTaskTag(); @@ -305,17 +306,18 @@ ThreadTaskTag::ThreadTaskTag() : mnTasksWorking(0) void ThreadTaskTag::onTaskPushed() { - oslInterlockedCount n = osl_atomic_increment(&mnTasksWorking); - assert( n < 65536 ); // sanity checking - (void)n; // avoid -Wunused-variable in release build + osl::MutexGuard g(mMutex); + assert( mnTasksWorking < 65535 ); // sanity checking + ++mnTasksWorking; maTasksComplete.reset(); } void ThreadTaskTag::onTaskWorkerDone() { - sal_Int32 nCount = osl_atomic_decrement(&mnTasksWorking); - assert(nCount >= 0); - if (nCount == 0) + osl::MutexGuard g(mMutex); + assert(mnTasksWorking > 0); + --mnTasksWorking; + if (mnTasksWorking == 0) maTasksComplete.set(); } diff --git a/compilerplugins/clang/badstatics.cxx b/compilerplugins/clang/badstatics.cxx index 7ac7820d16e62..f10200a93c2fb 100644 --- a/compilerplugins/clang/badstatics.cxx +++ b/compilerplugins/clang/badstatics.cxx @@ -177,8 +177,8 @@ class BadStatics || name == "g_pHyphIter" // SwEditShell::HyphEnd() || name == "pFieldEditEngine" // ScGlobal::Clear() || name == "xDrawClipDocShellRef" // ScGlobal::Clear() - || name == "s_ImplImageTree" - // ImplImageTree::get(), ImplImageTree::shutDown() + || name == "s_ImageTree" + // ImageTree::get(), ImageTree::shutDown() || name == "s_pMouseFrame" // vcl/osx/salframeview.mm, mouseEntered/Exited, not owning || name == "pCurrentMenuBar" diff --git a/compilerplugins/clang/sallogareas.cxx b/compilerplugins/clang/sallogareas.cxx index 512177d4cdb2a..a91461b77299c 100644 --- a/compilerplugins/clang/sallogareas.cxx +++ b/compilerplugins/clang/sallogareas.cxx @@ -84,7 +84,7 @@ bool SalLogAreas::VisitCallExpr( const CallExpr* call ) loc = source.getImmediateExpansionRange( loc ).first ) { StringRef inMacro = Lexer::getImmediateMacroName( loc, source, compiler.getLangOpts()); - if( inMacro == "SAL_DEBUG" ) + if( inMacro == "SAL_DEBUG" || inMacro == "SAL_DEBUG_TRACE" ) return true; // ok } report( DiagnosticsEngine::Warning, "missing log area", diff --git a/configmgr/source/winreg.cxx b/configmgr/source/winreg.cxx index c2e709b15686f..ef7e212c9e8fc 100644 --- a/configmgr/source/winreg.cxx +++ b/configmgr/source/winreg.cxx @@ -66,6 +66,18 @@ namespace { // // // +// +// Third example (property of an extensible group -> needs type): +// [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\LibreOffice\org.openoffice.Office.Jobs\Jobs\org.openoffice.Office.Jobs:Job['UpdateCheck']\Arguments\AutoCheckEnabled] +// "Value"="false" +// "Final"=dword:00000001 +// "Type"="xs:boolean" +// becomes the following in configuration: +// +// +// false +// +// void dumpWindowsRegistryKey(HKEY hKey, OUString const & aKeyName, TempFile &aFileHandle) { @@ -108,6 +120,7 @@ void dumpWindowsRegistryKey(HKEY hKey, OUString const & aKeyName, TempFile &aFil bool bFinal = false; OUString aValue; + OUString aType; for(DWORD i = 0; i < nValues; ++i) { @@ -117,9 +130,12 @@ void dumpWindowsRegistryKey(HKEY hKey, OUString const & aKeyName, TempFile &aFil RegEnumValueW(hCurKey, i, pValueName, &nValueNameLen, nullptr, nullptr, reinterpret_cast(pValue), &nValueLen); const wchar_t wsValue[] = L"Value"; const wchar_t wsFinal[] = L"Final"; + const wchar_t wsType[] = L"Type"; if(!wcscmp(pValueName, wsValue)) aValue = OUString(pValue); + if(!wcscmp(pValueName, wsType)) + aType = OUString(pValue); if(!wcscmp(pValueName, wsFinal) && *reinterpret_cast(pValue) == 1) bFinal = true; } @@ -169,6 +185,12 @@ void dumpWindowsRegistryKey(HKEY hKey, OUString const & aKeyName, TempFile &aFil writeData(aFileHandle, ""); diff --git a/configure.ac b/configure.ac index b1b277dff7256..2fe5ce7c83ab7 100644 --- a/configure.ac +++ b/configure.ac @@ -9,7 +9,7 @@ dnl in order to create a configure script. # several non-alphanumeric characters, those are split off and used only for the # ABOUTBOXPRODUCTVERSIONSUFFIX in openoffice.lst. Why that is necessary, no idea. -AC_INIT([LibreOffice],[5.3.0.0.alpha1+],[],[],[http://documentfoundation.org/]) +AC_INIT([LibreOffice],[5.3.8.0.0+],[],[],[http://documentfoundation.org/]) AC_PREREQ([2.59]) @@ -168,7 +168,13 @@ dnl =================================================================== dnl Our version is defined by the AC_INIT() at the top of this script. dnl =================================================================== -set `echo AC_PACKAGE_VERSION | sed "s/\./ /g"` +AC_MSG_CHECKING([for package version]) +if test -n "$with_package_version" -a "$with_package_version" != no; then + PACKAGE_VERSION="$with_package_version" +fi +AC_MSG_RESULT([$PACKAGE_VERSION]) + +set `echo "$PACKAGE_VERSION" | sed "s/\./ /g"` LIBO_VERSION_MAJOR=$1 LIBO_VERSION_MINOR=$2 @@ -1418,6 +1424,11 @@ AC_ARG_WITH(product-name, [Define the product name. Default is AC_PACKAGE_NAME.]), ,with_product_name=$PRODUCTNAME) +AC_ARG_WITH(package-version, + AS_HELP_STRING([--with-package-version='3.1.4.5'], + [Define the package version. Default is AC_PACKAGE_VERSION. Use only if you distribute an own build for macOS.]), +,) + AC_ARG_ENABLE(ios-simulator, AS_HELP_STRING([--enable-ios-simulator], [Build for the iOS Simulator, not iOS device.]), @@ -2725,7 +2736,7 @@ if test $_os = Darwin; then AC_MSG_CHECKING([what Mac OS X SDK to use]) - for _macosx_sdk in $with_macosx_sdk 10.8 10.9 10.10 10.11 10.12; do + for _macosx_sdk in $with_macosx_sdk 10.8 10.9 10.10 10.11 10.12 10.13; do MACOSX_SDK_PATH=`xcrun --sdk macosx${_macosx_sdk} --show-sdk-path 2> /dev/null` if test -d "$MACOSX_SDK_PATH"; then with_macosx_sdk="${_macosx_sdk}" @@ -2759,8 +2770,11 @@ if test $_os = Darwin; then 10.12) MACOSX_SDK_VERSION=101200 ;; + 10.13) + MACOSX_SDK_VERSION=101300 + ;; *) - AC_MSG_ERROR([with-macosx-sdk $with_macosx_sdk is not a supported value, supported values are 10.8--12]) + AC_MSG_ERROR([with-macosx-sdk $with_macosx_sdk is not a supported value, supported values are 10.8--13]) ;; esac @@ -2795,8 +2809,11 @@ if test $_os = Darwin; then 10.12) MAC_OS_X_VERSION_MIN_REQUIRED="101200" ;; + 10.13) + MAC_OS_X_VERSION_MIN_REQUIRED="101300" + ;; *) - AC_MSG_ERROR([with-macosx-version-min-required $with_macosx_version_min_required is not a supported value, supported values are 10.8--12]) + AC_MSG_ERROR([with-macosx-version-min-required $with_macosx_version_min_required is not a supported value, supported values are 10.8--13]) ;; esac @@ -2835,8 +2852,11 @@ if test $_os = Darwin; then 10.12) MAC_OS_X_VERSION_MAX_ALLOWED="101200" ;; + 10.13) + MAC_OS_X_VERSION_MAX_ALLOWED="101300" + ;; *) - AC_MSG_ERROR([with-macosx-version-max-allowed $with_macosx_version_max_allowed is not a supported value, supported values are 10.8--12]) + AC_MSG_ERROR([with-macosx-version-max-allowed $with_macosx_version_max_allowed is not a supported value, supported values are 10.8--13]) ;; esac @@ -3136,28 +3156,32 @@ dnl =================================================================== dnl Windows specific tests and stuff dnl =================================================================== -# Get a value from the 32-bit side of the Registry -reg_get_value_32() +reg_get_value() { # Return value: $regvalue unset regvalue - _regvalue=`cat "/proc/registry32/$1" 2> /dev/null` - if test $? -eq 0; then - regvalue=$_regvalue + local _regentry="/proc/registry${1}/${2}" + if test -f "$_regentry"; then + # Stop bash complaining about \0 bytes in input, as it can't handle them. + # Registry keys read via /proc/registry* are always \0 terminated! + local _regvalue=$(tr -d '\0' < "$_regentry") + if test $? -eq 0; then + regvalue=$_regvalue + fi fi } +# Get a value from the 32-bit side of the Registry +reg_get_value_32() +{ + reg_get_value "32" "$1" +} + # Get a value from the 64-bit side of the Registry reg_get_value_64() { - # Return value: $regvalue - unset regvalue - _regvalue=`cat "/proc/registry64/$1" 2> /dev/null` - - if test $? -eq 0; then - regvalue=$_regvalue - fi + reg_get_value "64" "$1" } if test "$_os" = "WINNT"; then @@ -3289,7 +3313,7 @@ win_get_env_from_vsvars32bat() echo -e "@echo %$1%\r\n" >> $WRAPPERBATCHFILEPATH echo -e "@endlocal\r\n" >> $WRAPPERBATCHFILEPATH chmod +x $WRAPPERBATCHFILEPATH - _win_get_env_from_vsvars32bat="`$WRAPPERBATCHFILEPATH | $SED -e s/^M^J//`" + _win_get_env_from_vsvars32bat=$($WRAPPERBATCHFILEPATH | tr -d "\r") rm -f $WRAPPERBATCHFILEPATH echo $_win_get_env_from_vsvars32bat } @@ -3860,6 +3884,11 @@ if test -n "$enable_dbgutil" -a "$enable_dbgutil" != "no"; then else with_system_libgltf=no fi + if test "$with_system_hunspell" = "yes"; then + AC_MSG_ERROR([--with-system-hunspell conflicts with --enable-dbgutil]) + else + with_system_hunspell=no + fi else ENABLE_DBGUTIL="" MSVC_USE_DEBUG_RUNTIME="" @@ -6776,7 +6805,7 @@ if test "$ENABLE_JAVA" != ""; then if test -z "$with_jdk_home"; then for ver in 1.8 1.7 1.6; do - reg_get_value_$bitness "HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Development Kit/$ver/JavaHome" + reg_get_value "$bitness" "HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Development Kit/$ver/JavaHome" if test -n "$regvalue"; then _jdk_home=$regvalue break @@ -7127,7 +7156,7 @@ then my_java_arch=i386 ;; m68k) - my_java_arch=mk68 + my_java_arch=m68k ;; powerpc) my_java_arch=ppc @@ -7868,7 +7897,7 @@ libo_CHECK_SYSTEM_MODULE([libcdr],[CDR],[libcdr-0.1]) libo_CHECK_SYSTEM_MODULE([libmspub],[MSPUB],[libmspub-0.1]) libo_CHECK_SYSTEM_MODULE([libmwaw],[MWAW],[libmwaw-0.3 >= 0.3.1]) -libo_PKG_VERSION([MWAW], [libmwaw-0.3], [0.3.8]) +libo_PKG_VERSION([MWAW], [libmwaw-0.3], [0.3.9]) libo_CHECK_SYSTEM_MODULE([libetonyek],[ETONYEK],[libetonyek-0.1]) libo_PKG_VERSION([ETONYEK], [libetonyek-0.1], [0.1.5]) @@ -8711,28 +8740,20 @@ if test "$enable_firebird_sdbc" = "yes" ; then if test -n "${FIREBIRD_VERSION}"; then FIREBIRD_MAJOR=`echo $FIREBIRD_VERSION | cut -d"." -f1` FIREBIRD_MINOR=`echo $FIREBIRD_VERSION | cut -d"." -f2` - if test "$FIREBIRD_MAJOR" -eq "2" -a "$FIREBIRD_MINOR" -eq "5"; then - AC_MSG_RESULT([OK]) - elif test "$FIREBIRD_MAJOR" -eq "3" -a "$FIREBIRD_MINOR" -eq "0"; then - AC_DEFINE(HAVE_FIREBIRD_30, 1) + if test "$FIREBIRD_MAJOR" -eq "3" -a "$FIREBIRD_MINOR" -eq "0"; then AC_MSG_RESULT([OK]) else - AC_MSG_ERROR([Ensure firebird 2.5.x or 3.0.x is installed]) + AC_MSG_ERROR([Ensure firebird 3.0.x is installed]) fi else __save_CFLAGS="${CFLAGS}" CFLAGS="${CFLAGS} ${FIREBIRD_CFLAGS}" AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include -#if defined(FB_API_VER) && FB_API_VER == 25 -int fb_api_is_25(void) { return 0; } -#elif defined(FB_API_VER) && FB_API_VER == 30 +#if defined(FB_API_VER) && FB_API_VER == 30 int fb_api_is_30(void) { return 0; } #else #error "Wrong Firebird API version" -#endif]])],AC_MSG_RESULT([OK]),AC_MSG_ERROR([Ensure firebird 2.5.x or 3.0.x is installed])) - if nm conftest.$OBJEXT | grep fb_api_is_30; then - AC_DEFINE(HAVE_FIREBIRD_30, 1) - fi +#endif]])],AC_MSG_RESULT([OK]),AC_MSG_ERROR([Ensure firebird 3.0.x is installed])) CFLAGS="${__save_CFLAGS}" fi ENABLE_FIREBIRD_SDBC="TRUE" @@ -8791,7 +8812,6 @@ AC_SUBST(LIBATOMIC_OPS_LIBS) AC_SUBST(SYSTEM_FIREBIRD) AC_SUBST(FIREBIRD_CFLAGS) AC_SUBST(FIREBIRD_LIBS) -AC_SUBST(HAVE_FIREBIRD_30) AC_SUBST([TOMMATH_CFLAGS]) AC_SUBST([TOMMATH_LIBS]) @@ -9186,7 +9206,7 @@ AC_SUBST(ICU_LIBS) dnl =================================================================== dnl Graphite dnl =================================================================== -libo_CHECK_SYSTEM_MODULE([graphite],[GRAPHITE],[graphite2 >= 0.9.3],["-I${WORKDIR}/UnpackedTarball/graphite/include"],["-L${WORKDIR}/LinkTarget/StaticLibrary -lgraphite"]) +libo_CHECK_SYSTEM_MODULE([graphite],[GRAPHITE],[graphite2 >= 0.9.3],["-I${WORKDIR}/UnpackedTarball/graphite/include -DGRAPHITE2_STATIC"],["-L${WORKDIR}/LinkTarget/StaticLibrary -lgraphite"]) if test "$with_system_graphite" = "yes"; then libo_MINGW_CHECK_DLL([libgraphite2]) fi @@ -9281,7 +9301,7 @@ AC_SUBST(ENABLE_ORCUS) dnl =================================================================== dnl HarfBuzz dnl =================================================================== -libo_CHECK_SYSTEM_MODULE([harfbuzz],[HARFBUZZ],[harfbuzz-icu >= 0.9.18],["-I${WORKDIR}/UnpackedTarball/harfbuzz/src"],["-L${WORKDIR}/UnpackedTarball/harfbuzz/src/.libs -lharfbuzz"]) +libo_CHECK_SYSTEM_MODULE([harfbuzz],[HARFBUZZ],[harfbuzz-icu >= 0.9.42],["-I${WORKDIR}/UnpackedTarball/harfbuzz/src"],["-L${WORKDIR}/UnpackedTarball/harfbuzz/src/.libs -lharfbuzz"]) if test "$COM" = "MSC"; then # override the above HARFBUZZ_LIBS="${WORKDIR}/UnpackedTarball/harfbuzz/src/.libs/libharfbuzz.lib" fi @@ -9594,7 +9614,7 @@ if test "$with_system_hunspell" = "yes"; then HUNSPELL_LIBS=-lhunspell fi AC_LANG_POP([C++]) - libo_MINGW_CHECK_DLL([libhunspell-1.4]) + libo_MINGW_CHECK_DLL([libhunspell-1.6]) HUNSPELL_CFLAGS=$(printf '%s' "$HUNSPELL_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g") FilterLibs "${HUNSPELL_LIBS}" HUNSPELL_LIBS="${filteredlibs}" @@ -9605,7 +9625,7 @@ else if test "$COM" = "MSC"; then HUNSPELL_LIBS="${WORKDIR}/LinkTarget/StaticLibrary/hunspell.lib" else - HUNSPELL_LIBS="-L${WORKDIR}/UnpackedTarball/hunspell/src/hunspell/.libs -lhunspell-1.4" + HUNSPELL_LIBS="-L${WORKDIR}/UnpackedTarball/hunspell/src/hunspell/.libs -lhunspell-1.6" fi BUILD_TYPE="$BUILD_TYPE HUNSPELL" fi diff --git a/connectivity/Library_firebird_sdbc.mk b/connectivity/Library_firebird_sdbc.mk index 43fa363f75517..0247f08f3de9a 100644 --- a/connectivity/Library_firebird_sdbc.mk +++ b/connectivity/Library_firebird_sdbc.mk @@ -41,6 +41,7 @@ $(eval $(call gb_Library_set_componentfile,firebird_sdbc,connectivity/source/dri $(eval $(call gb_Library_add_exception_objects,firebird_sdbc,\ connectivity/source/drivers/firebird/Blob \ + connectivity/source/drivers/firebird/Clob \ connectivity/source/drivers/firebird/Catalog \ connectivity/source/drivers/firebird/Column \ connectivity/source/drivers/firebird/Columns \ diff --git a/connectivity/source/commontools/parameters.cxx b/connectivity/source/commontools/parameters.cxx index 32c2cc0a520a5..fa57c57504248 100644 --- a/connectivity/source/commontools/parameters.cxx +++ b/connectivity/source/commontools/parameters.cxx @@ -224,7 +224,12 @@ namespace dbtools { OUString colName; xDetailField->getPropertyValue("RealName") >>= colName; - sFilter += quoteName( m_sIdentifierQuoteString, colName ) + " = :"; + sal_Bool isFunction(false); + xDetailField->getPropertyValue("Function") >>= isFunction; + if (isFunction) + sFilter += colName; + else + sFilter += quoteName( m_sIdentifierQuoteString, colName ); } // generate a parameter name which is not already used @@ -235,7 +240,7 @@ namespace dbtools o_rNewParamName += "_"; } - return sFilter += o_rNewParamName; + return sFilter += " =:" + o_rNewParamName; } diff --git a/connectivity/source/drivers/dbase/DTable.cxx b/connectivity/source/drivers/dbase/DTable.cxx index 11d35d1359a1e..06d709032757a 100644 --- a/connectivity/source/drivers/dbase/DTable.cxx +++ b/connectivity/source/drivers/dbase/DTable.cxx @@ -280,6 +280,14 @@ void ODbaseTable::readHeader() break; } } + else + { + if (getConnection()->isTextEncodingDefaulted()) + { + // Default Encoding + m_eEncoding = RTL_TEXTENCODING_IBM_850; + } + } break; case dBaseIVMemo: m_pFileStream->SetEndian(SvStreamEndian::LITTLE); diff --git a/connectivity/source/drivers/dbase/dindexnode.cxx b/connectivity/source/drivers/dbase/dindexnode.cxx index 064660b046a32..7790f74d6aac3 100644 --- a/connectivity/source/drivers/dbase/dindexnode.cxx +++ b/connectivity/source/drivers/dbase/dindexnode.cxx @@ -858,6 +858,7 @@ ONDXPagePtr& ONDXPagePtr::operator=(ONDXPagePtr const & rOther) } ONDXPage * pOldObj = mpPage; mpPage = rOther.mpPage; + nPagePos = rOther.nPagePos; if (pOldObj != nullptr) { pOldObj->ReleaseRef(); } diff --git a/connectivity/source/drivers/evoab2/EApi.cxx b/connectivity/source/drivers/evoab2/EApi.cxx index fc81a19447694..81db0b0d83dfb 100644 --- a/connectivity/source/drivers/evoab2/EApi.cxx +++ b/connectivity/source/drivers/evoab2/EApi.cxx @@ -21,6 +21,7 @@ #define DECLARE_FN_POINTERS 1 #include "EApi.h" static const char *eBookLibNames[] = { + "libebook-1.2.so.19", // evolution-data-server 3.24+ "libebook-1.2.so.16", "libebook-1.2.so.15", "libebook-1.2.so.14", // bumped again (evolution-3.6) diff --git a/connectivity/source/drivers/firebird/Clob.cxx b/connectivity/source/drivers/firebird/Clob.cxx new file mode 100644 index 0000000000000..83d95797d4d92 --- /dev/null +++ b/connectivity/source/drivers/firebird/Clob.cxx @@ -0,0 +1,104 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include "Clob.hxx" +#include "Blob.hxx" +#include "Connection.hxx" +#include "Util.hxx" + +#include +#include + +using namespace ::connectivity::firebird; + +using namespace ::osl; + +using namespace ::com::sun::star; +using namespace ::com::sun::star::io; +using namespace ::com::sun::star::sdbc; +using namespace ::com::sun::star::uno; + +Clob::Clob(isc_db_handle* pDatabaseHandle, + isc_tr_handle* pTransactionHandle, + ISC_QUAD& aBlobID): + Clob_BASE(m_aMutex), + m_aBlob(new connectivity::firebird::Blob(pDatabaseHandle, pTransactionHandle, aBlobID)) +{ +} + +void SAL_CALL Clob::disposing() +{ + m_aBlob->dispose(); + m_aBlob.clear(); + Clob_BASE::disposing(); +} + +sal_Int64 SAL_CALL Clob::length() + throw(SQLException, RuntimeException, std::exception) +{ + MutexGuard aGuard(m_aMutex); + checkDisposed(Clob_BASE::rBHelper.bDisposed); + + // read the entire blob + // TODO FIXME better solution? + uno::Sequence < sal_Int8 > aEntireBlob = m_aBlob->getBytes( 1, m_aBlob->length()); + OUString sEntireClob ( reinterpret_cast< sal_Char *>( aEntireBlob.getArray() ), + aEntireBlob.getLength(), + RTL_TEXTENCODING_UTF8 ); + return sEntireClob.getLength(); +} + +OUString SAL_CALL Clob::getSubString(sal_Int64 nPosition, + sal_Int32 nLength) + throw(SQLException, RuntimeException, std::exception) +{ + MutexGuard aGuard(m_aMutex); + checkDisposed(Clob_BASE::rBHelper.bDisposed); + + // read the entire blob + // TODO FIXME better solution? + // TODO FIXME Assume indexing of nPosition starts at position 1. + uno::Sequence < sal_Int8 > aEntireBlob = m_aBlob->getBytes( 1, m_aBlob->length()); + OUString sEntireClob ( reinterpret_cast< sal_Char *>( aEntireBlob.getArray() ), + aEntireBlob.getLength(), + RTL_TEXTENCODING_UTF8 ); + + if( nPosition + nLength - 1 > sEntireClob.getLength() ) + throw lang::IllegalArgumentException("nPosition out of range", *this, 0); + + return sEntireClob.copy(nPosition - 1 , nLength); +} + +uno::Reference< XInputStream > SAL_CALL Clob::getCharacterStream() + throw(SQLException, RuntimeException, std::exception) +{ + MutexGuard aGuard(m_aMutex); + checkDisposed(Clob_BASE::rBHelper.bDisposed); + + return m_aBlob->getBinaryStream(); +} + +sal_Int64 SAL_CALL Clob::position(const OUString& /*rPattern*/, + sal_Int32 /*nStart*/) + throw(SQLException, RuntimeException, std::exception) +{ + ::dbtools::throwFeatureNotImplementedSQLException("Clob::position", *this); + return 0; +} + +sal_Int64 SAL_CALL Clob::positionOfClob(const Reference & /*rPattern*/, + sal_Int64 /*aStart*/) + throw(SQLException, RuntimeException, std::exception) +{ + ::dbtools::throwFeatureNotImplementedSQLException("Blob::positionOfBlob", *this); + return 0; +} + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/firebird/Clob.hxx b/connectivity/source/drivers/firebird/Clob.hxx new file mode 100644 index 0000000000000..dfa40dedd484f --- /dev/null +++ b/connectivity/source/drivers/firebird/Clob.hxx @@ -0,0 +1,77 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef INCLUDED_CONNECTIVITY_SOURCE_DRIVERS_FIREBIRD_CLOB_HXX +#define INCLUDED_CONNECTIVITY_SOURCE_DRIVERS_FIREBIRD_CLOB_HXX + +#include "Blob.hxx" + +#include + +#include +#include +#include + +namespace connectivity +{ + namespace firebird + { + typedef ::cppu::WeakComponentImplHelper< css::sdbc::XClob > + Clob_BASE; + + class Clob : + public Clob_BASE + { + protected: + ::osl::Mutex m_aMutex; + + /* + * In Firebird Clob (textual Blob) is a subtype of blob, + * hence we store the data in a Blob, and the Clob class is + * a wrapper around that. + */ + rtl::Reference m_aBlob; + + public: + Clob(isc_db_handle* pDatabaseHandle, + isc_tr_handle* pTransactionHandle, + ISC_QUAD& aBlobID); + + // ---- XClob ---------------------------------------------------- + virtual sal_Int64 SAL_CALL + length() + throw(css::sdbc::SQLException, + css::uno::RuntimeException, std::exception) override; + virtual ::rtl::OUString SAL_CALL + getSubString(sal_Int64 aPosition, sal_Int32 aLength) + throw(css::sdbc::SQLException, + css::uno::RuntimeException, std::exception) override; + virtual css::uno::Reference< css::io::XInputStream > SAL_CALL + getCharacterStream() + throw(css::sdbc::SQLException, + css::uno::RuntimeException, std::exception) override; + virtual sal_Int64 SAL_CALL + position(const ::rtl::OUString& rPattern, + sal_Int32 aStart) + throw(css::sdbc::SQLException, + css::uno::RuntimeException, std::exception) override; + virtual sal_Int64 SAL_CALL + positionOfClob(const ::css::uno::Reference< ::css::sdbc::XClob >& rPattern, + sal_Int64 aStart) + throw(css::sdbc::SQLException, + css::uno::RuntimeException, std::exception) override; + // ---- OComponentHelper ------------------------------------------ + virtual void SAL_CALL disposing() override; + }; + } + +} + +#endif // INCLUDED_CONNECTIVITY_SOURCE_DRIVERS_FIREBIRD_CLOB_HXX +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/firebird/Connection.cxx b/connectivity/source/drivers/firebird/Connection.cxx index 48ebba59d62c0..e26c8a6eeaf83 100644 --- a/connectivity/source/drivers/firebird/Connection.cxx +++ b/connectivity/source/drivers/firebird/Connection.cxx @@ -241,7 +241,7 @@ void Connection::construct(const ::rtl::OUString& url, const Sequence< PropertyV } } - char dpbBuffer[1 + 3 + 257 + 257 ]; // Expand as needed + char dpbBuffer[1 + 3 + 257 + 257 + 5 ]; // Expand as needed int dpbLength = 0; { char* dpb; @@ -254,6 +254,15 @@ void Connection::construct(const ::rtl::OUString& url, const Sequence< PropertyV *dpb++ = isc_dpb_sql_dialect; *dpb++ = 1; // 1 byte long *dpb++ = FIREBIRD_SQL_DIALECT; + + // set UTF8 as default character set + const char sCharset[] = "UTF8"; + *dpb++ = isc_dpb_set_db_charset; + int nCharsetLength = sizeof(sCharset) - 1; + *dpb++ = (char) nCharsetLength; + strcpy(dpb, sCharset); + dpb+= nCharsetLength; + // Do any more dpbBuffer additions here if (m_bIsEmbedded || m_bIsFile) @@ -373,6 +382,20 @@ Reference< XBlob> Connection::createBlob(ISC_QUAD* pBlobId) return xReturn; } +Reference< XClob> Connection::createClob(ISC_QUAD* pBlobId) + throw(SQLException, RuntimeException) +{ + MutexGuard aGuard(m_aMutex); + checkDisposed(Connection_BASE::rBHelper.bDisposed); + + Reference< XClob > xReturn = new Clob(&m_aDBHandle, + &m_aTransactionHandle, + *pBlobId); + + m_aStatements.push_back(WeakReferenceHelper(xReturn)); + return xReturn; +} + //----- XConnection ---------------------------------------------------------- Reference< XStatement > SAL_CALL Connection::createStatement( ) diff --git a/connectivity/source/drivers/firebird/Connection.hxx b/connectivity/source/drivers/firebird/Connection.hxx index a8b352797b821..420f0d7a283f3 100644 --- a/connectivity/source/drivers/firebird/Connection.hxx +++ b/connectivity/source/drivers/firebird/Connection.hxx @@ -20,6 +20,7 @@ #ifndef INCLUDED_CONNECTIVITY_SOURCE_DRIVERS_FIREBIRD_CONNECTION_HXX #define INCLUDED_CONNECTIVITY_SOURCE_DRIVERS_FIREBIRD_CONNECTION_HXX +#include "Clob.hxx" #include "Blob.hxx" #include "SubComponent.hxx" @@ -210,6 +211,10 @@ namespace connectivity createBlob(ISC_QUAD* pBlobID) throw(css::sdbc::SQLException, css::uno::RuntimeException); + css::uno::Reference< css::sdbc::XClob> + createClob(ISC_QUAD* pBlobID) + throw(css::sdbc::SQLException, + css::uno::RuntimeException); /** * Create and/or connect to the sdbcx Catalog. This is completely diff --git a/connectivity/source/drivers/firebird/DatabaseMetaData.cxx b/connectivity/source/drivers/firebird/DatabaseMetaData.cxx index 4c2e3934e7358..9e6d095ab6ff8 100644 --- a/connectivity/source/drivers/firebird/DatabaseMetaData.cxx +++ b/connectivity/source/drivers/firebird/DatabaseMetaData.cxx @@ -1121,8 +1121,8 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getColumnPrivileges( aCurrentRow[3] = new ORowSetValueDecorator(sanitizeIdentifier(xRow->getString(1))); // 4. COLUMN_NAME aCurrentRow[4] = new ORowSetValueDecorator(sanitizeIdentifier(xRow->getString(6))); - aCurrentRow[5] = new ORowSetValueDecorator(xRow->getString(2)); // 5. GRANTOR - aCurrentRow[6] = new ORowSetValueDecorator(xRow->getString(3)); // 6. GRANTEE + aCurrentRow[5] = new ORowSetValueDecorator(sanitizeIdentifier(xRow->getString(2))); // 5. GRANTOR + aCurrentRow[6] = new ORowSetValueDecorator(sanitizeIdentifier(xRow->getString(3))); // 6. GRANTEE aCurrentRow[7] = new ORowSetValueDecorator(xRow->getString(4)); // 7. Privilege aCurrentRow[7] = new ORowSetValueDecorator(xRow->getBoolean(5)); // 8. Grantable @@ -1565,17 +1565,17 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getImportedKeys( while(rs->next()) { - aCurrentRow[3] = new ORowSetValueDecorator(xRow->getString(7)); // PK table - aCurrentRow[4] = new ORowSetValueDecorator(xRow->getString(8)); // PK column - aCurrentRow[7] = new ORowSetValueDecorator(xRow->getString(10)); // FK table - aCurrentRow[8] = new ORowSetValueDecorator(xRow->getString(11)); // FK column + aCurrentRow[3] = new ORowSetValueDecorator(sanitizeIdentifier(xRow->getString(7))); // PK table + aCurrentRow[4] = new ORowSetValueDecorator(sanitizeIdentifier(xRow->getString(8))); // PK column + aCurrentRow[7] = new ORowSetValueDecorator(sanitizeIdentifier(xRow->getString(10))); // FK table + aCurrentRow[8] = new ORowSetValueDecorator(sanitizeIdentifier(xRow->getString(11))); // FK column aCurrentRow[9] = new ORowSetValueDecorator(xRow->getShort(9)); // PK sequence number - aCurrentRow[10] = new ORowSetValueDecorator(aRuleMap[xRow->getString(1)]); // update role - aCurrentRow[11] = new ORowSetValueDecorator(aRuleMap[xRow->getString(2)]); // delete role + aCurrentRow[10] = new ORowSetValueDecorator(aRuleMap[sanitizeIdentifier(xRow->getString(1))]); // update role + aCurrentRow[11] = new ORowSetValueDecorator(aRuleMap[sanitizeIdentifier(xRow->getString(2))]); // delete role - aCurrentRow[12] = new ORowSetValueDecorator(xRow->getString(4)); // FK name - aCurrentRow[13] = new ORowSetValueDecorator(xRow->getString(3)); // PK name + aCurrentRow[12] = new ORowSetValueDecorator(sanitizeIdentifier(xRow->getString(4))); // FK name + aCurrentRow[13] = new ORowSetValueDecorator(sanitizeIdentifier(xRow->getString(3))); // PK name aCurrentRow[14] = new ORowSetValueDecorator(Deferrability::NONE); // deferrability @@ -1819,8 +1819,8 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTablePrivileges( { // 3. TABLE_NAME aRow[3] = new ORowSetValueDecorator(sanitizeIdentifier(xRow->getString(1))); - aRow[4] = new ORowSetValueDecorator(xRow->getString(2)); // 4. GRANTOR - aRow[5] = new ORowSetValueDecorator(xRow->getString(3)); // 5. GRANTEE + aRow[4] = new ORowSetValueDecorator(sanitizeIdentifier(xRow->getString(2))); // 4. GRANTOR + aRow[5] = new ORowSetValueDecorator(sanitizeIdentifier(xRow->getString(3))); // 5. GRANTEE aRow[6] = new ORowSetValueDecorator(xRow->getString(4)); // 6. Privilege aRow[7] = new ORowSetValueDecorator(xRow->getBoolean(5)); // 7. Is Grantable diff --git a/connectivity/source/drivers/firebird/PreparedStatement.cxx b/connectivity/source/drivers/firebird/PreparedStatement.cxx index 7af0976b4962c..8d50daac8dde8 100644 --- a/connectivity/source/drivers/firebird/PreparedStatement.cxx +++ b/connectivity/source/drivers/firebird/PreparedStatement.cxx @@ -378,7 +378,7 @@ void OPreparedStatement::setValue(sal_Int32 nIndex, T& nValue, ISC_SHORT nType) if ((pVar->sqltype & ~1) != nType) { ::dbtools::throwSQLException( - "Incorrect type for setString", + "Incorrect type for setValue", ::dbtools::StandardSQLState::INVALID_SQL_DATA_TYPE, *this); } diff --git a/connectivity/source/drivers/firebird/ResultSet.cxx b/connectivity/source/drivers/firebird/ResultSet.cxx index f48046524364d..acc486a6a88a6 100644 --- a/connectivity/source/drivers/firebird/ResultSet.cxx +++ b/connectivity/source/drivers/firebird/ResultSet.cxx @@ -455,17 +455,17 @@ ORowSetValue OResultSet::retrieveValue(const sal_Int32 nColumnIndex, const ISC_S case SQL_VARYING: return getString(nColumnIndex); case SQL_SHORT: - if(nSqlSubType == 0 || nSqlSubType == 1) //numeric or decimal + if(nSqlSubType == 1 || nSqlSubType == 2) //numeric or decimal return getString(nColumnIndex); return getShort(nColumnIndex); case SQL_LONG: - if(nSqlSubType == 0 || nSqlSubType == 1) //numeric or decimal + if(nSqlSubType == 1 || nSqlSubType == 2) //numeric or decimal return getString(nColumnIndex); return getInt(nColumnIndex); case SQL_FLOAT: return getFloat(nColumnIndex); case SQL_DOUBLE: - if(nSqlSubType == 0 || nSqlSubType == 1) //numeric or decimal + if(nSqlSubType == 1 || nSqlSubType == 2) //numeric or decimal return getString(nColumnIndex); return getDouble(nColumnIndex); case SQL_D_FLOAT: @@ -477,7 +477,7 @@ ORowSetValue OResultSet::retrieveValue(const sal_Int32 nColumnIndex, const ISC_S case SQL_TYPE_DATE: return getDate(nColumnIndex); case SQL_INT64: - if(nSqlSubType == 0 || nSqlSubType == 1) //numeric or decimal + if(nSqlSubType == 1 || nSqlSubType == 2) //numeric or decimal return getString(nColumnIndex); return getLong(nColumnIndex); case SQL_BLOB: @@ -743,7 +743,15 @@ uno::Reference< XClob > SAL_CALL OResultSet::getClob( sal_Int32 columnIndex ) th MutexGuard aGuard(m_rMutex); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); - return nullptr; + int aSqlSubType = m_pSqlda->sqlvar[columnIndex-1].sqlsubtype; + + SAL_WARN_IF(aSqlSubType != 1, + "connectivity.firebird", "wrong subtype, not a textual blob"); + + ISC_QUAD* pBlobID = safelyRetrieveValue< ISC_QUAD* >(columnIndex, SQL_BLOB); + if (!pBlobID) + return nullptr; + return m_pConnection->createClob(pBlobID); } uno::Reference< XBlob > SAL_CALL OResultSet::getBlob(sal_Int32 columnIndex) diff --git a/connectivity/source/drivers/firebird/ResultSetMetaData.cxx b/connectivity/source/drivers/firebird/ResultSetMetaData.cxx index 6b6d9849e6af6..7d2dd2f392a5a 100644 --- a/connectivity/source/drivers/firebird/ResultSetMetaData.cxx +++ b/connectivity/source/drivers/firebird/ResultSetMetaData.cxx @@ -128,8 +128,13 @@ OUString SAL_CALL OResultSetMetaData::getColumnTypeName(sal_Int32 column) OUString SAL_CALL OResultSetMetaData::getColumnLabel(sal_Int32 column) throw(SQLException, RuntimeException, std::exception) { - // TODO: clarify what this is -- probably not the alias - return getColumnName(column); + // aliasname + verifyValidColumn(column); + OUString sRet(m_pSqlda->sqlvar[column-1].aliasname, + m_pSqlda->sqlvar[column-1].aliasname_length, + RTL_TEXTENCODING_UTF8); + sanitizeIdentifier(sRet); + return sRet; } OUString SAL_CALL OResultSetMetaData::getColumnServiceName(sal_Int32 column) diff --git a/connectivity/source/drivers/firebird/Table.cxx b/connectivity/source/drivers/firebird/Table.cxx index fea904630ffb9..21a59e4ee0c27 100644 --- a/connectivity/source/drivers/firebird/Table.cxx +++ b/connectivity/source/drivers/firebird/Table.cxx @@ -133,17 +133,6 @@ void SAL_CALL Table::alterColumnByName(const OUString& rColName, bool bDefaultChanged = xColumn->getPropertyValue("DefaultValue") != rDescriptor->getPropertyValue("DefaultValue"); - // TODO: quote identifiers as needed. - if (bNameChanged) - { - OUString sNewTableName; - rDescriptor->getPropertyValue("Name") >>= sNewTableName; - OUString sSql(getAlterTableColumn(rColName) - + " TO \"" + sNewTableName + "\""); - - getConnection()->createStatement()->execute(sSql); - } - if (bTypeChanged || bTypeNameChanged || bPrecisionChanged || bScaleChanged) { // If bPrecisionChanged this will only succeed if we have increased the @@ -217,6 +206,17 @@ void SAL_CALL Table::alterColumnByName(const OUString& rColName, getConnection()->createStatement()->execute(sSql); } + // TODO: quote identifiers as needed. + if (bNameChanged) + { + OUString sNewTableName; + rDescriptor->getPropertyValue("Name") >>= sNewTableName; + OUString sSql(getAlterTableColumn(rColName) + + " TO \"" + sNewTableName + "\""); + + getConnection()->createStatement()->execute(sSql); + } + m_pColumns->refresh(); } diff --git a/connectivity/source/drivers/jdbc/Reader.cxx b/connectivity/source/drivers/jdbc/Reader.cxx index 2f391505fb879..aaf5ff50565b3 100644 --- a/connectivity/source/drivers/jdbc/Reader.cxx +++ b/connectivity/source/drivers/jdbc/Reader.cxx @@ -124,7 +124,7 @@ sal_Int32 SAL_CALL java_io_Reader::readBytes( css::uno::Sequence< sal_Int8 >& aD } if(nBytesToRead == 0) - return 0; + return nBytesWritten; sal_Int32 nCharsToRead = (nBytesToRead + 1)/2; diff --git a/cppcanvas/source/inc/implrenderer.hxx b/cppcanvas/source/inc/implrenderer.hxx index b9babf1df753a..b81e8908d5be3 100644 --- a/cppcanvas/source/inc/implrenderer.hxx +++ b/cppcanvas/source/inc/implrenderer.hxx @@ -76,19 +76,26 @@ namespace cppcanvas }; // EMF+ - // TODO: replace? + // Transformation matrix (used for Affine Transformation) + // [ eM11, eM12, eDx ] + // [ eM21, eM22, eDy ] + // [ 0, 0, 1 ] + // that consists of a linear map (eM11, eM12, eM21, eM22) + // More info: https://en.wikipedia.org/wiki/Linear_map + // followed by a translation (eDx, eDy) + struct XForm { - float eM11; - float eM12; - float eM21; - float eM22; - float eDx; - float eDy; + float eM11; // M1,1 value in the matrix. Increases or decreases the size of the pixels horizontally. + float eM12; // M1,2 value in the matrix. This effectively angles the X axis up or down. + float eM21; // M2,1 value in the matrix. This effectively angles the Y axis left or right. + float eM22; // M2,2 value in the matrix. Increases or decreases the size of the pixels vertically. + float eDx; // Delta x (Dx) value in the matrix. Moves the whole coordinate system horizontally. + float eDy; // Delta y (Dy) value in the matrix. Moves the whole coordinate system vertically. XForm() { SetIdentity (); - }; + } void SetIdentity () { @@ -106,14 +113,20 @@ namespace cppcanvas eDy = f.eDy; } + // Multiple two square matrices + // [ eM11, eM12, eDx ] [ f.eM11, f.eM12, f.eDx ] + // [ eM21, eM22, eDy ] x [ f.eM21, f.eM22, f.eDy ] + // [ 0, 0, 1 ] [ 0, 0, 1 ] + // More information: https://en.wikipedia.org/wiki/Matrix_multiplication#Square_matrices + // FIXME We shouldn't modify source matrix during computation void Multiply (const XForm& f) { eM11 = eM11*f.eM11 + eM12*f.eM21; eM12 = eM11*f.eM12 + eM12*f.eM22; eM21 = eM21*f.eM11 + eM22*f.eM21; eM22 = eM21*f.eM12 + eM22*f.eM22; - eDx *= eDx*f.eM11 + eDy*f.eM21 + f.eDx; - eDy *= eDx*f.eM12 + eDy*f.eM22 + f.eDy; + eDx = eDx*f.eM11 + eDy*f.eM21 + f.eDx; + eDy = eDx*f.eM12 + eDy*f.eM22 + f.eDy; } #ifdef OSL_BIGENDIAN diff --git a/cppcanvas/source/mtfrenderer/emfplus.cxx b/cppcanvas/source/mtfrenderer/emfplus.cxx index d05dd2f04e67a..76cdd7ee8a54d 100644 --- a/cppcanvas/source/mtfrenderer/emfplus.cxx +++ b/cppcanvas/source/mtfrenderer/emfplus.cxx @@ -50,39 +50,63 @@ namespace { -#define EmfPlusRecordTypeHeader 16385 -#define EmfPlusRecordTypeEndOfFile 16386 -#define EmfPlusRecordTypeGetDC 16388 -#define EmfPlusRecordTypeObject 16392 -#define EmfPlusRecordTypeFillRects 16394 -#define EmfPlusRecordTypeFillPolygon 16396 -#define EmfPlusRecordTypeDrawLines 16397 -#define EmfPlusRecordTypeFillEllipse 16398 -#define EmfPlusRecordTypeDrawEllipse 16399 -#define EmfPlusRecordTypeFillPie 16400 -#define EmfPlusRecordTypeFillPath 16404 -#define EmfPlusRecordTypeDrawPath 16405 -#define EmfPlusRecordTypeDrawImage 16410 -#define EmfPlusRecordTypeDrawImagePoints 16411 -#define EmfPlusRecordTypeDrawString 16412 -#define EmfPlusRecordTypeSetRenderingOrigin 16413 -#define EmfPlusRecordTypeSetAntiAliasMode 16414 -#define EmfPlusRecordTypeSetTextRenderingHint 16415 -#define EmfPlusRecordTypeSetInterpolationMode 16417 -#define EmfPlusRecordTypeSetPixelOffsetMode 16418 -#define EmfPlusRecordTypeSetCompositingQuality 16420 -#define EmfPlusRecordTypeSave 16421 -#define EmfPlusRecordTypeRestore 16422 -#define EmfPlusRecordTypeBeginContainerNoParams 16424 -#define EmfPlusRecordTypeEndContainer 16425 -#define EmfPlusRecordTypeSetWorldTransform 16426 -#define EmfPlusRecordTypeResetWorldTransform 16427 -#define EmfPlusRecordTypeMultiplyWorldTransform 16428 -#define EmfPlusRecordTypeSetPageTransform 16432 -#define EmfPlusRecordTypeSetClipRect 16434 -#define EmfPlusRecordTypeSetClipPath 16435 -#define EmfPlusRecordTypeSetClipRegion 16436 -#define EmfPlusRecordTypeDrawDriverString 16438 +#define EmfPlusRecordTypeHeader 0x4001 +#define EmfPlusRecordTypeEndOfFile 0x4002 +//TODO EmfPlusRecordTypeComment 0x4003 +#define EmfPlusRecordTypeGetDC 0x4004 +//TODO EmfPlusRecordTypeMultiFormatStart 0x4005 +//TODO EmfPlusRecordTypeMultiFormatSection 0x4006 +//TODO EmfPlusRecordTypeMultiFormatEnd 0x4007 +#define EmfPlusRecordTypeObject 0x4008 +//TODO EmfPlusRecordTypeClear 0x4009 +#define EmfPlusRecordTypeFillRects 0x400A +#define EmfPlusRecordTypeDrawRects 0x400B +#define EmfPlusRecordTypeFillPolygon 0x400C +#define EmfPlusRecordTypeDrawLines 0x400D +#define EmfPlusRecordTypeFillEllipse 0x400E +#define EmfPlusRecordTypeDrawEllipse 0x400F +#define EmfPlusRecordTypeFillPie 0x4010 +#define EmfPlusRecordTypeDrawPie 0x4011 +#define EmfPlusRecordTypeDrawArc 0x4012 +//TODO EmfPlusRecordTypeFillRegion 0x4013 +#define EmfPlusRecordTypeFillPath 0x4014 +#define EmfPlusRecordTypeDrawPath 0x4015 +//TODO EmfPlusRecordTypeFillClosedCurve 0x4016 +//TODO EmfPlusRecordTypeDrawClosedCurve 0x4017 +//TODO EmfPlusRecordTypeDrawCurve 0x4018 +//TODO EmfPlusRecordTypeDrawBeziers 0x4019 +#define EmfPlusRecordTypeDrawImage 0x401A +#define EmfPlusRecordTypeDrawImagePoints 0x401B +#define EmfPlusRecordTypeDrawString 0x401C +#define EmfPlusRecordTypeSetRenderingOrigin 0x401D +#define EmfPlusRecordTypeSetAntiAliasMode 0x401E +#define EmfPlusRecordTypeSetTextRenderingHint 0x401F +#define EmfPlusRecordTypeSetInterpolationMode 0x4021 +#define EmfPlusRecordTypeSetPixelOffsetMode 0x4022 +//TODO EmfPlusRecordTypeSetCompositingMode 0x4023 +#define EmfPlusRecordTypeSetCompositingQuality 0x4024 +#define EmfPlusRecordTypeSave 0x4025 +#define EmfPlusRecordTypeRestore 0x4026 +//TODO EmfPlusRecordTypeBeginContainer 0x4027 +#define EmfPlusRecordTypeBeginContainerNoParams 0x4028 +#define EmfPlusRecordTypeEndContainer 0x4027 +#define EmfPlusRecordTypeSetWorldTransform 0x402A +#define EmfPlusRecordTypeResetWorldTransform 0x402B +#define EmfPlusRecordTypeMultiplyWorldTransform 0x402C +#define EmfPlusRecordTypeTranslateWorldTransform 0x402D +//TODO EmfPlusRecordTypeScaleWorldTransform 0x402E +//TODO EmfPlusRecordTypeRotateWorldTransform 0x402F +#define EmfPlusRecordTypeSetPageTransform 0x4030 +//TODO EmfPlusRecordTypeResetClip 0x4031 +#define EmfPlusRecordTypeSetClipRect 0x4032 +#define EmfPlusRecordTypeSetClipPath 0x4033 +#define EmfPlusRecordTypeSetClipRegion 0x4034 +//TODO EmfPlusRecordTypeOffsetClip 0x4035 +#define EmfPlusRecordTypeDrawDriverString 0x4036 +//TODO EmfPlusRecordTypeStrokeFillPath 0x4037 +//TODO EmfPlusRecordTypeSerializableObject 0x4038 +//TODO EmfPlusRecordTypeSetTSGraphics 0x4039 +//TODO EmfPlusRecordTypeSetTSClip 0x403A #define EmfPlusObjectTypeBrush 0x100 #define EmfPlusObjectTypePen 0x200 @@ -193,11 +217,14 @@ const char* emfTypeToName(sal_uInt16 type) case EmfPlusRecordTypeGetDC: return "EmfPlusRecordTypeGetDC"; case EmfPlusRecordTypeObject: return "EmfPlusRecordTypeObject"; case EmfPlusRecordTypeFillRects: return "EmfPlusRecordTypeFillRects"; + case EmfPlusRecordTypeDrawRects: return "EmfPlusRecordTypeDrawRects"; case EmfPlusRecordTypeFillPolygon: return "EmfPlusRecordTypeFillPolygon"; case EmfPlusRecordTypeDrawLines: return "EmfPlusRecordTypeDrawLines"; case EmfPlusRecordTypeFillEllipse: return "EmfPlusRecordTypeFillEllipse"; case EmfPlusRecordTypeDrawEllipse: return "EmfPlusRecordTypeDrawEllipse"; case EmfPlusRecordTypeFillPie: return "EmfPlusRecordTypeFillPie"; + case EmfPlusRecordTypeDrawPie: return "EmfPlusRecordTypeDrawPie"; + case EmfPlusRecordTypeDrawArc: return "EmfPlusRecordTypeDrawArc"; case EmfPlusRecordTypeFillPath: return "EmfPlusRecordTypeFillPath"; case EmfPlusRecordTypeDrawPath: return "EmfPlusRecordTypeDrawPath"; case EmfPlusRecordTypeDrawImage: return "EmfPlusRecordTypeDrawImage"; @@ -216,6 +243,7 @@ const char* emfTypeToName(sal_uInt16 type) case EmfPlusRecordTypeSetWorldTransform: return "EmfPlusRecordTypeSetWorldTransform"; case EmfPlusRecordTypeResetWorldTransform: return "EmfPlusRecordTypeResetWorldTransform"; case EmfPlusRecordTypeMultiplyWorldTransform: return "EmfPlusRecordTypeMultiplyWorldTransform"; + case EmfPlusRecordTypeTranslateWorldTransform: return "EmfPlusRecordTypeTranslateWorldTransform"; case EmfPlusRecordTypeSetPageTransform: return "EmfPlusRecordTypeSetPageTransform"; case EmfPlusRecordTypeSetClipRect: return "EmfPlusRecordTypeSetClipRect"; case EmfPlusRecordTypeSetClipPath: return "EmfPlusRecordTypeSetClipPath"; @@ -1876,19 +1904,34 @@ namespace cppcanvas processObjectRecord (rMF, flags, dataSize); break; case EmfPlusRecordTypeFillPie: + case EmfPlusRecordTypeDrawPie: + case EmfPlusRecordTypeDrawArc: { - sal_uInt32 brushIndexOrColor; float startAngle, sweepAngle; - rMF.ReadUInt32( brushIndexOrColor ).ReadFloat( startAngle ).ReadFloat( sweepAngle ); + // Silent MSVC warning C4701: potentially uninitialized local variable 'brushIndexOrColor' used + sal_uInt32 brushIndexOrColor = 999; - SAL_INFO("cppcanvas.emf", "EMF+ FillPie colorOrIndex: " << brushIndexOrColor << " startAngle: " << startAngle << " sweepAngle: " << sweepAngle); + if ( type == EmfPlusRecordTypeFillPie ) + { + rMF.ReadUInt32( brushIndexOrColor ); + SAL_INFO("cppcanvas.emf", "EMF+ FillPie colorOrIndex: " << brushIndexOrColor); + } + else if ( type == EmfPlusRecordTypeDrawPie ) + { + SAL_INFO("cppcanvas.emf", "EMF+ DrawPie"); + } + else + { + SAL_INFO("cppcanvas.emf", "EMF+ DrawArc"); + } + rMF.ReadFloat( startAngle ).ReadFloat( sweepAngle ); float dx, dy, dw, dh; ReadRectangle (rMF, dx, dy, dw, dh, bool(flags & 0x4000)); - SAL_INFO("cppcanvas.emf", "EMF+ RectData: " << dx << "," << dy << " " << dw << "x" << dh); + SAL_INFO("cppcanvas.emf", "EMF+\t RectData: " << dx << "," << dy << " " << dw << "x" << dh); startAngle = 2*M_PI*startAngle/360; sweepAngle = 2*M_PI*sweepAngle/360; @@ -1907,15 +1950,24 @@ namespace cppcanvas if (sweepAngle < 0) std::swap (endAngle, startAngle); - SAL_INFO("cppcanvas.emf", "EMF+ adjusted angles: start " << - (360.0*startAngle/M_PI) << ", end: " << (360.0*endAngle/M_PI)); + SAL_INFO("cppcanvas.emf", "EMF+\t adjusted angles: start " << + (360.0*startAngle/M_PI) << ", end: " << (360.0*endAngle/M_PI) << + " startAngle: " << startAngle << " sweepAngle: " << sweepAngle); B2DPolygon polygon = basegfx::tools::createPolygonFromEllipseSegment (mappedCenter, mappedSize.getX (), mappedSize.getY (), startAngle, endAngle); - polygon.append (mappedCenter); - polygon.setClosed (true); + if ( type != EmfPlusRecordTypeDrawArc ) + { + polygon.append (mappedCenter); + polygon.setClosed (true); + } B2DPolyPolygon polyPolygon (polygon); - EMFPPlusFillPolygon (polyPolygon, rFactoryParms, rState, rCanvas, flags & 0x8000, brushIndexOrColor); + if ( type == EmfPlusRecordTypeFillPie ) + EMFPPlusFillPolygon( polyPolygon, + rFactoryParms, rState, rCanvas, flags & 0x8000, brushIndexOrColor ); + else + EMFPPlusDrawPolygon( polyPolygon, + rFactoryParms, rState, rCanvas, flags & 0xff ); } break; case EmfPlusRecordTypeFillPath: @@ -1963,48 +2015,46 @@ namespace cppcanvas } break; case EmfPlusRecordTypeFillRects: + case EmfPlusRecordTypeDrawRects: { - SAL_INFO("cppcanvas.emf", "EMF+ FillRects"); - - sal_uInt32 brushIndexOrColor; + // Silent MSVC warning C4701: potentially uninitialized local variable 'brushIndexOrColor' used + sal_uInt32 brushIndexOrColor = 999; sal_Int32 rectangles; bool isColor = (flags & 0x8000); ::basegfx::B2DPolygon polygon; - rMF.ReadUInt32( brushIndexOrColor ).ReadInt32( rectangles ); + if ( type == EmfPlusRecordTypeFillRects ) + { + SAL_INFO("cppcanvas.emf", "EMF+ FillRects"); + rMF.ReadUInt32( brushIndexOrColor ); + SAL_INFO("cppcanvas.emf", "EMF+\t" << (isColor ? "color" : "brush index") << ": 0x" << std::hex << brushIndexOrColor << std::dec); + } + else + { + SAL_INFO("cppcanvas.emf", "EMF+ DrawRects"); + } - SAL_INFO("cppcanvas.emf", "EMF+\t" << ((flags & 0x8000) ? "color" : "brush index") << ": 0x" << std::hex << brushIndexOrColor << std::dec); + rMF.ReadInt32( rectangles ); for (int i=0; i < rectangles; i++) { - if (flags & 0x4000) { - /* 16bit integers */ - sal_Int16 x, y, width, height; - - rMF.ReadInt16( x ).ReadInt16( y ).ReadInt16( width ).ReadInt16( height ); - - polygon.append (Map (x, y)); - polygon.append (Map (x + width, y)); - polygon.append (Map (x + width, y + height)); - polygon.append (Map (x, y + height)); - - SAL_INFO("cppcanvas.emf", "EMF+\trectangle: " << x << ", " << width << "x" << height); - } else { - /* Single's */ - float x, y, width, height; - - rMF.ReadFloat( x ).ReadFloat( y ).ReadFloat( width ).ReadFloat( height ); + float x, y, width, height; + ReadRectangle (rMF, x, y, width, height, bool(flags & 0x4000)); - polygon.append (Map (x, y)); - polygon.append (Map (x + width, y)); - polygon.append (Map (x + width, y + height)); - polygon.append (Map (x, y + height)); + polygon.append (Map (x, y)); + polygon.append (Map (x + width, y)); + polygon.append (Map (x + width, y + height)); + polygon.append (Map (x, y + height)); + polygon.append (Map (x, y)); - SAL_INFO("cppcanvas.emf", "EMF+\trectangle: " << x << ", " << width << "x" << height); - } + SAL_INFO("cppcanvas.emf", "EMF+\trectangle: " << x << ", " << width << "x" << height); ::basegfx::B2DPolyPolygon polyPolygon (polygon); - - EMFPPlusFillPolygon (polyPolygon, rFactoryParms, rState, rCanvas, isColor, brushIndexOrColor); + if( type == EmfPlusRecordTypeFillRects ) + EMFPPlusFillPolygon( polyPolygon, + rFactoryParms, rState, rCanvas, isColor, brushIndexOrColor ); + else + EMFPPlusDrawPolygon( polyPolygon, + rFactoryParms, rState, rCanvas, flags & 0xff ); } break; } @@ -2320,6 +2370,30 @@ namespace cppcanvas "EMF+\tdx: " << aWorldTransform.eDx << "dy: " << aWorldTransform.eDy); break; } + case EmfPlusRecordTypeTranslateWorldTransform: + { + SAL_INFO("cppcanvas.emf", "EMF+ TranslateWorldTransform"); + + XForm transform = XForm(); + rMF.ReadFloat( transform.eDx ).ReadFloat( transform.eDy ); + + SAL_INFO("cppcanvas.emf", + "EMF+\t m11: " << transform.eM11 << ", m12: " << transform.eM12 << + "EMF+\t m21: " << transform.eM21 << ", m22: " << transform.eM22 << + "EMF+\t dx: " << transform.eDx << ", dy: " << transform.eDy); + + if (flags & 0x2000) // post multiply + aWorldTransform.Multiply (transform); + else { // pre multiply + transform.Multiply (aWorldTransform); + aWorldTransform.Set (transform); + } + SAL_INFO("cppcanvas.emf", + "EMF+\t m11: " << aWorldTransform.eM11 << ", m12: " << aWorldTransform.eM12 << + "EMF+\t m21: " << aWorldTransform.eM21 << ", m22: " << aWorldTransform.eM22 << + "EMF+\t dx: " << aWorldTransform.eDx << ", dy: " << aWorldTransform.eDy); + break; + } case EmfPlusRecordTypeSetClipRect: { int combineMode = (flags >> 8) & 0xf; @@ -2468,7 +2542,7 @@ namespace cppcanvas break; } default: - SAL_INFO("cppcanvas.emf", "EMF+ unhandled record type: " << type); + SAL_INFO("cppcanvas.emf", "EMF+ unhandled record type: 0x" << std::hex << type << std::dec); SAL_INFO("cppcanvas.emf", "EMF+\tTODO"); } } diff --git a/cppcanvas/source/mtfrenderer/implrenderer.cxx b/cppcanvas/source/mtfrenderer/implrenderer.cxx index 0e41235e7cde9..aa3a132444c3b 100644 --- a/cppcanvas/source/mtfrenderer/implrenderer.cxx +++ b/cppcanvas/source/mtfrenderer/implrenderer.cxx @@ -1993,8 +1993,8 @@ namespace cppcanvas ::basegfx::B2DPolygon aPoly( ::basegfx::tools::createPolygonFromEllipse( aRange.getCenter(), - aRange.getWidth(), - aRange.getHeight() )); + aRange.getWidth() / 2, // divide by 2 since createPolygonFromEllipse + aRange.getHeight() / 2 )); // expects the radius and NOT the diameter! aPoly.transform( rStates.getState().mapModeTransform ); createFillAndStroke( aPoly, diff --git a/cui/source/customize/cfg.cxx b/cui/source/customize/cfg.cxx index cf734f7763360..93139cae0cf39 100644 --- a/cui/source/customize/cfg.cxx +++ b/cui/source/customize/cfg.cxx @@ -2546,7 +2546,6 @@ void SvxMenuConfigPage::UpdateButtonStates() m_pMoveUpButton->Enable( false ); m_pMoveDownButton->Enable( false ); m_pDeleteCommandButton->Enable(false); - m_pAddSeparatorButton->Enable(); pPopup->EnableItem( "modrename", false ); @@ -2655,6 +2654,7 @@ IMPL_LINK_NOARG( SvxMenuConfigPage, SelectMenu, ListBox&, void ) m_pModifyCommandButton->Enable( pMenuData != nullptr ); m_pAddCommandsButton->Enable( pMenuData != nullptr ); m_pAddSeparatorButton->Enable( pMenuData != nullptr ); + m_pAddSubmenuButton->Enable( pMenuData != nullptr ); PopupMenu* pPopup = m_pModifyTopLevelButton->GetPopupMenu(); if ( pMenuData ) diff --git a/cui/source/dialogs/SpellDialog.cxx b/cui/source/dialogs/SpellDialog.cxx index e0bdeb0ed2493..a4e83e5b3c48a 100644 --- a/cui/source/dialogs/SpellDialog.cxx +++ b/cui/source/dialogs/SpellDialog.cxx @@ -436,7 +436,6 @@ void SpellDialog::SpellContinue_Impl(bool bUseSavedSentence, bool bIgnoreCurrent */ IMPL_LINK_NOARG( SpellDialog, InitHdl, void*, void) { - m_pToolbar->Disable(); SetUpdateMode( false ); //show or hide AutoCorrect depending on the modules abilities m_pAutoCorrPB->Show(rParent.HasAutoCorrection()); @@ -1523,14 +1522,6 @@ bool SentenceEditWindow_Impl::PreNotify( NotifyEvent& rNEvt ) else bChange = false; } - else if (rNEvt.GetType() == MouseNotifyEvent::GETFOCUS && m_xToolbar) - { - m_xToolbar->Enable(); - } - else if(rNEvt.GetType() == MouseNotifyEvent::LOSEFOCUS && m_xToolbar) - { - m_xToolbar->Disable(); - } return bChange || VclMultiLineEdit::PreNotify(rNEvt); } diff --git a/cui/source/dialogs/cuicharmap.cxx b/cui/source/dialogs/cuicharmap.cxx index 5ac0bf2705356..24a03364bd1f3 100644 --- a/cui/source/dialogs/cuicharmap.cxx +++ b/cui/source/dialogs/cuicharmap.cxx @@ -380,6 +380,13 @@ void SvxCharacterMap::SetCharFont( const vcl::Font& rFont ) // like "Times New Roman;Times" resolved vcl::Font aTmp( GetFontMetric( rFont ) ); + if (aTmp.GetFamilyName() == "StarSymbol" && m_pFontLB->GetEntryPos(aTmp.GetFamilyName()) == LISTBOX_ENTRY_NOTFOUND) + { + //if for some reason, like font in an old document, StarSymbol is requested and its not available, then + //try OpenSymbol instead + aTmp.SetFamilyName("OpenSymbol"); + } + if ( m_pFontLB->GetEntryPos( aTmp.GetFamilyName() ) == LISTBOX_ENTRY_NOTFOUND ) return; diff --git a/cui/source/dialogs/postdlg.cxx b/cui/source/dialogs/postdlg.cxx index 612e38221c689..0571985273906 100644 --- a/cui/source/dialogs/postdlg.cxx +++ b/cui/source/dialogs/postdlg.cxx @@ -64,11 +64,8 @@ SvxPostItDialog::SvxPostItDialog(vcl::Window* pParent, const SfxItemSet& rCoreSe bool bNew = true; sal_uInt16 nWhich = 0; - if ( !bPrevNext ) - { - m_pPrevBtn->Hide(); - m_pNextBtn->Hide(); - } + m_pPrevBtn->Show(bPrevNext); + m_pNextBtn->Show(bPrevNext); nWhich = rSet.GetPool()->GetWhich( SID_ATTR_POSTIT_AUTHOR ); OUString aAuthorStr, aDateStr; diff --git a/cui/source/dialogs/screenshotannotationdlg.cxx b/cui/source/dialogs/screenshotannotationdlg.cxx index 398458df58874..8913b871be411 100644 --- a/cui/source/dialogs/screenshotannotationdlg.cxx +++ b/cui/source/dialogs/screenshotannotationdlg.cxx @@ -54,7 +54,7 @@ namespace OUString lcl_AltDescr() { - OUString aTempl = OUString("" + OUString aTempl = OUString("" " " //FIXME real dialog title or something ""); aTempl = aTempl.replaceFirst( "%1", lcl_genRandom("alt_id") ); @@ -64,8 +64,8 @@ namespace OUString lcl_Image( const OUString& rScreenshotId, const Size& rSize ) { - OUString aTempl = OUString("" + OUString aTempl = OUString("" "%5" ""); aTempl = aTempl.replaceFirst( "%1", lcl_genRandom("img_id") ); @@ -79,7 +79,7 @@ namespace OUString lcl_ParagraphWithImage( const OUString& rScreenshotId, const Size& rSize ) { - OUString aTempl = OUString( "%2" + OUString aTempl = OUString( "%2" "" SAL_NEWLINE_STRING ); aTempl = aTempl.replaceFirst( "%1", lcl_genRandom("par_id") ); aTempl = aTempl.replaceFirst( "%2", lcl_Image(rScreenshotId, rSize) ); @@ -90,7 +90,7 @@ namespace OUString lcl_Bookmark( const OUString& rWidgetId ) { OUString aTempl = "" SAL_NEWLINE_STRING - "" SAL_NEWLINE_STRING; + "" SAL_NEWLINE_STRING; aTempl = aTempl.replaceFirst( "%1", rWidgetId ); aTempl = aTempl.replaceFirst( "%2", rWidgetId ); aTempl = aTempl.replaceFirst( "%3", lcl_genRandom("bm_id") ); diff --git a/cui/source/factory/init.cxx b/cui/source/factory/init.cxx index 5f53852e20df4..fd7cbc63e50c5 100644 --- a/cui/source/factory/init.cxx +++ b/cui/source/factory/init.cxx @@ -27,7 +27,7 @@ extern "C" SAL_DLLPUBLIC_EXPORT bool GetSpecialCharsForEdit(vcl::Window* i_pParent, const vcl::Font& i_rFont, OUString& o_rResult) { bool bRet = false; - VclPtrInstance< SvxCharacterMap > aDlg( i_pParent ); + ScopedVclPtrInstance aDlg(i_pParent); aDlg->DisableFontSelection(); aDlg->SetCharFont(i_rFont); if ( aDlg->Execute() == RET_OK ) diff --git a/cui/source/inc/backgrnd.hxx b/cui/source/inc/backgrnd.hxx index 18ec128078f7f..d2663f3cd27e2 100644 --- a/cui/source/inc/backgrnd.hxx +++ b/cui/source/inc/backgrnd.hxx @@ -107,6 +107,7 @@ private: bool bIsGraphicValid : 1; bool bLinkOnly : 1; bool bHighlighting : 1; + bool m_bColorSelected : 1; Graphic aBgdGraphic; OUString aBgdGraphicPath; OUString aBgdGraphicFilter; diff --git a/cui/source/inc/chardlg.hxx b/cui/source/inc/chardlg.hxx index e537150d1c18b..1d54b6890b0fb 100644 --- a/cui/source/inc/chardlg.hxx +++ b/cui/source/inc/chardlg.hxx @@ -173,6 +173,9 @@ class SvxCharEffectsPage : public SvxCharBasePage private: static const sal_uInt16 pEffectsRanges[]; + bool m_bOrigFontColor; + bool m_bNewFontColor; + Color m_aOrigFontColor; VclPtr m_pFontColorFT; VclPtr m_pFontColorLB; diff --git a/cui/source/inc/cuioptgenrl.hxx b/cui/source/inc/cuioptgenrl.hxx index 5f1065ada2873..0c56b6cdcde6d 100644 --- a/cui/source/inc/cuioptgenrl.hxx +++ b/cui/source/inc/cuioptgenrl.hxx @@ -47,6 +47,7 @@ private: struct Field; std::vector > vFields; // "name" fields + unsigned nNameRow; unsigned nShortNameField; DECL_LINK( ModifyHdl_Impl, Edit&, void ); diff --git a/cui/source/inc/paragrph.hxx b/cui/source/inc/paragrph.hxx index c38f65a88b1f0..abe414a4f24c9 100644 --- a/cui/source/inc/paragrph.hxx +++ b/cui/source/inc/paragrph.hxx @@ -234,7 +234,7 @@ private: VclPtr m_pBreakPositionLB; VclPtr m_pApplyCollBtn; VclPtr m_pApplyCollBox; - VclPtr m_pPagenumText; + VclPtr m_pPageNumBox; VclPtr m_pPagenumEdit; // paragraph division @@ -262,6 +262,7 @@ private: DECL_LINK(ApplyCollClickHdl_Impl, Button*, void); DECL_LINK( PageBreakPosHdl_Impl, ListBox&, void ); DECL_LINK( PageBreakTypeHdl_Impl, ListBox&, void ); + DECL_LINK(PageNumBoxClickHdl_Impl, Button*, void); virtual void PageCreated(const SfxAllItemSet& aSet) override; }; diff --git a/cui/source/inc/textanim.hxx b/cui/source/inc/textanim.hxx index 8469f36016371..f4bd053d15b8a 100644 --- a/cui/source/inc/textanim.hxx +++ b/cui/source/inc/textanim.hxx @@ -74,6 +74,11 @@ private: void SelectDirection( SdrTextAniDirection nValue ); sal_uInt16 GetSelectedDirection(); + TriState m_aUpState; + TriState m_aLeftState; + TriState m_aRightState; + TriState m_aDownState; + public: SvxTextAnimationPage( vcl::Window* pWindow, const SfxItemSet& rInAttrs ); virtual ~SvxTextAnimationPage() override; diff --git a/cui/source/options/optaboutconfig.cxx b/cui/source/options/optaboutconfig.cxx index bacba9e98b781..b848e5da2615b 100644 --- a/cui/source/options/optaboutconfig.cxx +++ b/cui/source/options/optaboutconfig.cxx @@ -871,6 +871,12 @@ void CuiAboutConfigTabPage::InsertEntry( SvTreeListEntry *pEntry) { int prevIndex = index; index = sPath.indexOf("/", index+1); + // deal with no parent case (tdf#107811) + if (index < 0) + { + m_pPrefBox->Insert( pEntry, nullptr); + return; + } OUString sParentName = sPath.copy(prevIndex+1, index - prevIndex - 1); bool hasEntry = false; diff --git a/cui/source/options/optchart.cxx b/cui/source/options/optchart.cxx index 060d3b0b65876..b4eb31b072d10 100644 --- a/cui/source/options/optchart.cxx +++ b/cui/source/options/optchart.cxx @@ -43,7 +43,7 @@ void SvxDefaultColorOptPage::InsertColorEntry(const XColorEntry& rEntry, sal_Int const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings(); Size aImageSize = rStyleSettings.GetListBoxPreviewDefaultPixelSize(); - VclPtr xDevice = VclPtr::Create(); + ScopedVclPtrInstance xDevice; xDevice->SetOutputSize(aImageSize); const Rectangle aRect(Point(0, 0), aImageSize); xDevice->SetFillColor(rColor); diff --git a/cui/source/options/optgenrl.cxx b/cui/source/options/optgenrl.cxx index 559e5690cce8a..a830fa1d1dad3 100644 --- a/cui/source/options/optgenrl.cxx +++ b/cui/source/options/optgenrl.cxx @@ -41,6 +41,8 @@ enum RowType { Row_Company, Row_Name, + Row_Name_Russian, + Row_Name_Eastern, Row_Street, Row_Street_Russian, Row_City, @@ -58,6 +60,7 @@ namespace Lang { unsigned const Others = 1; unsigned const Russian = 2; + unsigned const Eastern = 4; unsigned const US = 8; unsigned const All = static_cast(-1); } @@ -77,7 +80,9 @@ struct const vRowInfo[] = { { "companyft", Lang::All }, - { "nameft", Lang::All }, + { "nameft", Lang::All & ~Lang::Russian & ~Lang::Eastern }, + { "rusnameft", Lang::Russian }, + { "eastnameft", Lang::Eastern }, { "streetft", Lang::All & ~Lang::Russian }, { "russtreetft", Lang::Russian }, { "icityft", Lang::All & ~Lang::US }, @@ -108,8 +113,18 @@ const vFieldInfo[] = // Company { Row_Company, "company", UserOptToken::Company, EditPosition::COMPANY }, // Name + { Row_Name, "firstname", UserOptToken::FirstName, EditPosition::FIRSTNAME }, { Row_Name, "lastname", UserOptToken::LastName, EditPosition::LASTNAME }, { Row_Name, "shortname", UserOptToken::ID, EditPosition::SHORTNAME }, + // Name (russian) + { Row_Name_Russian, "ruslastname", UserOptToken::LastName, EditPosition::LASTNAME }, + { Row_Name_Russian, "rusfirstname", UserOptToken::FirstName, EditPosition::FIRSTNAME }, + { Row_Name_Russian, "rusfathersname", UserOptToken::FathersName, EditPosition::UNKNOWN }, + { Row_Name_Russian, "russhortname", UserOptToken::ID, EditPosition::SHORTNAME }, + // Name (eastern: reversed name ord + { Row_Name_Eastern, "eastlastname", UserOptToken::LastName, EditPosition::LASTNAME }, + { Row_Name_Eastern, "eastfirstname", UserOptToken::FirstName, EditPosition::FIRSTNAME }, + { Row_Name_Eastern, "eastshortname", UserOptToken::ID, EditPosition::SHORTNAME }, // Street { Row_Street, "street", UserOptToken::Street, EditPosition::STREET }, // Street (russian) @@ -220,7 +235,10 @@ void SvxGeneralTabPage::InitControls () LangBit = Lang::Russian; break; default: - LangBit = Lang::Others; + if (MsLangId::isFamilyNameFirst(eLang)) + LangBit = Lang::Eastern; + else + LangBit = Lang::Others; break; } @@ -251,6 +269,7 @@ void SvxGeneralTabPage::InitControls () // "short name" field? if (vFieldInfo[iField].nUserOptionsId == UserOptToken::ID) { + nNameRow = vRows.size() - 1; nShortNameField = vFields.size() - 1; } } @@ -263,7 +282,7 @@ void SvxGeneralTabPage::SetLinks () { // link for updating the initials Link aLink = LINK( this, SvxGeneralTabPage, ModifyHdl_Impl ); - Row& rNameRow = *vRows[Row_Name]; + Row& rNameRow = *vRows[nNameRow]; for (unsigned i = rNameRow.nFirstField; i != rNameRow.nLastField - 1; ++i) vFields[i]->pEdit->SetModifyHdl(aLink); } @@ -316,22 +335,36 @@ void SvxGeneralTabPage::Reset( const SfxItemSet* rSet ) // ModifyHdl_Impl() // This handler updates the initials (short name) -// when the name field was updated. +// when one of the name fields was updated. IMPL_LINK( SvxGeneralTabPage, ModifyHdl_Impl, Edit&, rEdit, void ) { // short name field and row Field& rShortName = *vFields[nShortNameField]; - if (rShortName.pEdit->IsEnabled()) + Row& rNameRow = *vRows[nNameRow]; + // number of initials + unsigned const nInits = rNameRow.nLastField - rNameRow.nFirstField - 1; + // which field was updated? (in rNameRow) + unsigned nField = nInits; + for (unsigned i = 0; i != nInits; ++i) + { + if (vFields[rNameRow.nFirstField + i]->pEdit == &rEdit) + nField = i; + } + // updating the initial + if (nField < nInits && rShortName.pEdit->IsEnabled()) { - sal_Int32 nIndex = 0; + OUString sShortName = rShortName.pEdit->GetText(); + // clear short name if it contains more characters than the number of initials + if ((unsigned)sShortName.getLength() > nInits) + { + rShortName.pEdit->SetText(OUString()); + } + while ((unsigned)sShortName.getLength() < nInits) + sShortName += " "; OUString sName = rEdit.GetText(); - OUString sShortName; - do { - OUString sToken = sName.getToken(0, ' ', nIndex); - if (!sToken.isEmpty()) - sShortName += sToken.copy(0, 1); - } while (nIndex != -1); - rShortName.pEdit->SetText(sShortName); + OUString sLetter = sName.isEmpty() + ? OUString(sal_Unicode(' ')) : sName.copy(0, 1); + rShortName.pEdit->SetText(sShortName.replaceAt(nField, 1, sLetter).trim()); } } @@ -341,18 +374,10 @@ bool SvxGeneralTabPage::GetData_Impl() // updating SvtUserOptions aUserOpt; for (unsigned i = 0; i != vFields.size(); ++i) - { aUserOpt.SetToken( vFieldInfo[vFields[i]->iField].nUserOptionsId, vFields[i]->pEdit->GetText() ); - // Blank out first name and father's name which aren't kept separately any longer - if (vFieldInfo[vFields[i]->iField].nUserOptionsId == UserOptToken::LastName) - { - aUserOpt.SetToken(UserOptToken::FirstName, ""); - aUserOpt.SetToken(UserOptToken::FathersName, ""); - } - } // modified? for (unsigned i = 0; i != vFields.size(); ++i) @@ -376,40 +401,7 @@ void SvxGeneralTabPage::SetData_Impl() Field& rField = *vFields[iField]; // updating content UserOptToken const nToken = vFieldInfo[rField.iField].nUserOptionsId; - if (nToken == UserOptToken::LastName) - { - // When using old-style data (with separated name), if - // "family name" comes first in the locale, use that - // order. If Russian, use also father's name if - // present. - OUString sName; - - if (MsLangId::isFamilyNameFirst(Application::GetSettings().GetUILanguageTag().getLanguageType())) - { - sName += aUserOpt.GetToken(UserOptToken::LastName); - OUString sFirstName = aUserOpt.GetToken(UserOptToken::FirstName); - if (!sName.isEmpty() && !sFirstName.isEmpty()) - sName += " "; - sName += sFirstName; - } - else - { - sName += aUserOpt.GetToken(UserOptToken::FirstName); - OUString sFathersName; - if (Application::GetSettings().GetUILanguageTag().getLanguageType() == LANGUAGE_RUSSIAN) - sFathersName = aUserOpt.GetToken(UserOptToken::FathersName); - if (!sName.isEmpty() && !sFathersName.isEmpty()) - sName += " "; - sName += sFathersName; - OUString sLastName = aUserOpt.GetToken(UserOptToken::LastName); - if (!sName.isEmpty() && !sLastName.isEmpty()) - sName += " "; - sName += sLastName; - } - rField.pEdit->SetText(sName); - } - else - rField.pEdit->SetText(aUserOpt.GetToken(nToken)); + rField.pEdit->SetText(aUserOpt.GetToken(nToken)); // is enabled? bool const bEnableEdit = !aUserOpt.IsTokenReadonly(nToken); rField.pEdit->Enable(bEnableEdit); diff --git a/cui/source/options/optjava.cxx b/cui/source/options/optjava.cxx index c8bb0cb241eb9..a53fc4b46c208 100644 --- a/cui/source/options/optjava.cxx +++ b/cui/source/options/optjava.cxx @@ -192,6 +192,12 @@ SvxJavaOptionsPage::SvxJavaOptionsPage( vcl::Window* pParent, const SfxItemSet& if (!officecfg::Office::Common::Security::EnableExpertConfiguration::get()) m_pExpertConfigBtn->Disable(); + if (officecfg::Office::Common::Misc::MacroRecorderMode::isReadOnly()) + m_pMacroCB->Disable(); + + if (officecfg::Office::Common::Misc::ExperimentalMode::isReadOnly()) + m_pExperimentalCB->Disable(); + xDialogListener->SetDialogClosedLink( LINK( this, SvxJavaOptionsPage, DialogClosedHdl ) ); EnableHdl_Impl(m_pJavaEnableCB); diff --git a/cui/source/options/optlingu.cxx b/cui/source/options/optlingu.cxx index 599072104551b..511c3c8c8e928 100644 --- a/cui/source/options/optlingu.cxx +++ b/cui/source/options/optlingu.cxx @@ -222,7 +222,7 @@ static void lcl_SetCheckButton( SvTreeListEntry* pEntry, bool bCheck ) SvLBoxButton* pItem = static_cast(pEntry->GetFirstItem(SvLBoxItemType::Button)); DBG_ASSERT(pItem,"SetCheckButton:Item not found"); - if (pItem->GetType() == SvLBoxItemType::Button) + if (pItem && pItem->GetType() == SvLBoxItemType::Button) { if (bCheck) pItem->SetStateChecked(); diff --git a/cui/source/options/optsave.cxx b/cui/source/options/optsave.cxx index 09d5a920340dc..8ca666b2c5332 100644 --- a/cui/source/options/optsave.cxx +++ b/cui/source/options/optsave.cxx @@ -397,8 +397,10 @@ void SvxSaveTabPage::Reset( const SfxItemSet* ) SvtSaveOptions aSaveOpt; aLoadUserSettingsCB->Check(aSaveOpt.IsLoadUserSettings()); aLoadUserSettingsCB->SaveValue(); + aLoadUserSettingsCB->Enable(!aSaveOpt.IsReadOnly(SvtSaveOptions::E_USEUSERDATA)); aLoadDocPrinterCB->Check( aSaveOpt.IsLoadDocumentPrinter() ); aLoadDocPrinterCB->SaveValue(); + aLoadDocPrinterCB->Enable(!aSaveOpt.IsReadOnly(SvtSaveOptions::E_LOADDOCPRINTER)); if ( !pImpl->bInitialized ) { @@ -471,25 +473,33 @@ void SvxSaveTabPage::Reset( const SfxItemSet* ) } aDocInfoCB->Check(aSaveOpt.IsDocInfoSave()); + aDocInfoCB->Enable(!aSaveOpt.IsReadOnly(SvtSaveOptions::E_DOCINFSAVE)); aBackupCB->Check(aSaveOpt.IsBackup()); - bool bBackupRO = aSaveOpt.IsReadOnly(SvtSaveOptions::E_BACKUP); - aBackupCB->Enable(!bBackupRO); + aBackupCB->Enable(!aSaveOpt.IsReadOnly(SvtSaveOptions::E_BACKUP)); aAutoSaveCB->Check(aSaveOpt.IsAutoSave()); + aAutoSaveCB->Enable(!aSaveOpt.IsReadOnly(SvtSaveOptions::E_AUTOSAVE)); + aUserAutoSaveCB->Check(aSaveOpt.IsUserAutoSave()); + aUserAutoSaveCB->Enable(!aSaveOpt.IsReadOnly(SvtSaveOptions::E_USERAUTOSAVE)); + aWarnAlienFormatCB->Check(aSaveOpt.IsWarnAlienFormat()); aWarnAlienFormatCB->Enable(!aSaveOpt.IsReadOnly(SvtSaveOptions::E_WARNALIENFORMAT)); - aAutoSaveEdit->SetValue( aSaveOpt.GetAutoSaveTime() ); + aAutoSaveEdit->SetValue(aSaveOpt.GetAutoSaveTime()); + aAutoSaveEdit->Enable(!aSaveOpt.IsReadOnly(SvtSaveOptions::E_AUTOSAVETIME)); // save relatively - aRelativeFsysCB->Check( aSaveOpt.IsSaveRelFSys() ); + aRelativeFsysCB->Check(aSaveOpt.IsSaveRelFSys()); + aRelativeFsysCB->Enable(!aSaveOpt.IsReadOnly(SvtSaveOptions::E_SAVERELFSYS)); - aRelativeInetCB->Check( aSaveOpt.IsSaveRelINet() ); + aRelativeInetCB->Check(aSaveOpt.IsSaveRelINet()); + aRelativeInetCB->Enable(!aSaveOpt.IsReadOnly(SvtSaveOptions::E_SAVERELINET)); void* pDefaultVersion = reinterpret_cast( aSaveOpt.GetODFDefaultVersion() ); aODFVersionLB->SelectEntryPos( aODFVersionLB->GetEntryPos( pDefaultVersion ) ); + aODFVersionLB->Enable(!aSaveOpt.IsReadOnly(SvtSaveOptions::E_ODFDEFAULTVERSION)); AutoClickHdl_Impl( aAutoSaveCB ); ODFVersionHdl_Impl( *aODFVersionLB ); diff --git a/cui/source/tabpages/backgrnd.cxx b/cui/source/tabpages/backgrnd.cxx index 41e525d2d3581..43d8fdd2eddbe 100644 --- a/cui/source/tabpages/backgrnd.cxx +++ b/cui/source/tabpages/backgrnd.cxx @@ -330,6 +330,7 @@ SvxBackgroundTabPage::SvxBackgroundTabPage(vcl::Window* pParent, const SfxItemSe , bIsGraphicValid(false) , bLinkOnly(false) , bHighlighting(false) + , m_bColorSelected(false) , pPageImpl(new SvxBackgroundPage_Impl) , pImportDlg(nullptr) , pTableBck_Impl(nullptr) @@ -448,6 +449,8 @@ void SvxBackgroundTabPage::Reset( const SfxItemSet* rSet ) return; } + m_bColorSelected = false; + // condition of the preview button is persistent due to UserData OUString aUserData = GetUserData(); m_pBtnPreview->Check( !aUserData.isEmpty() && '1' == aUserData[0] ); @@ -684,7 +687,7 @@ bool SvxBackgroundTabPage::FillItemSet( SfxItemSet* rCoreSet ) { // Brush-treatment: if ( rOldItem.GetColor() != aBgdColor || - (SfxItemState::DEFAULT >= eOldItemState && m_pBackgroundColorSet->GetSavedValue() != m_pBackgroundColorSet->GetSelectItemId())) + (SfxItemState::DEFAULT >= eOldItemState && m_bColorSelected)) { bModified = true; rCoreSet->Put( SvxBrushItem( aBgdColor, nWhich ) ); @@ -1138,6 +1141,7 @@ IMPL_LINK_NOARG(SvxBackgroundTabPage, BackgroundColorHdl_Impl, ValueSet*, void) sal_uInt16 nItemId = m_pBackgroundColorSet->GetSelectItemId(); Color aColor = nItemId ? ( m_pBackgroundColorSet->GetItemColor( nItemId ) ) : Color( COL_TRANSPARENT ); aBgdColor = aColor; + m_bColorSelected = true; m_pPreviewWin1->NotifyChange( aBgdColor ); } diff --git a/cui/source/tabpages/bbdlg.cxx b/cui/source/tabpages/bbdlg.cxx index 23422c3521189..8bbced32a2d20 100644 --- a/cui/source/tabpages/bbdlg.cxx +++ b/cui/source/tabpages/bbdlg.cxx @@ -75,7 +75,7 @@ void SvxBorderBackgroundDlg::PageCreated( sal_uInt16 nPageId, SfxTabPage& rTabPa { SfxItemSet aNew( *GetInputSetImpl()->GetPool(), - SID_COLOR_TABLE, SID_BITMAP_LIST, + SID_COLOR_TABLE, SID_PATTERN_LIST, SID_OFFER_IMPORT, SID_OFFER_IMPORT, 0, 0); diff --git a/cui/source/tabpages/border.cxx b/cui/source/tabpages/border.cxx index f989a7ce7af66..9a6e7d67d45bd 100644 --- a/cui/source/tabpages/border.cxx +++ b/cui/source/tabpages/border.cxx @@ -542,6 +542,7 @@ void SvxBorderTabPage::Reset( const SfxItemSet* rSet ) // set the current style and color (caches style in control even if nothing is selected) SelStyleHdl_Impl(*m_pLbLineStyle); + SelColHdl_Impl(*m_pLbLineColor); } bool bEnable = m_pWndShadows->GetSelectItemId() > 1 ; @@ -832,6 +833,7 @@ IMPL_LINK_NOARG(SvxBorderTabPage, SelPreHdl_Impl, ValueSet*, void) // set current style to all previously selected lines SelStyleHdl_Impl(*m_pLbLineStyle); + SelColHdl_Impl(*m_pLbLineColor); } // Presets ValueSet does not show a selection (used as push buttons). diff --git a/cui/source/tabpages/chardlg.cxx b/cui/source/tabpages/chardlg.cxx index fb2d9a5b995b3..b606199999cf0 100644 --- a/cui/source/tabpages/chardlg.cxx +++ b/cui/source/tabpages/chardlg.cxx @@ -1343,6 +1343,8 @@ void SvxCharNamePage::PageCreated(const SfxAllItemSet& aSet) SvxCharEffectsPage::SvxCharEffectsPage( vcl::Window* pParent, const SfxItemSet& rInSet ) : SvxCharBasePage(pParent, "EffectsPage", "cui/ui/effectspage.ui", rInSet) + , m_bOrigFontColor(false) + , m_bNewFontColor(false) { get(m_pFontColorFT, "fontcolorft"); get(m_pFontColorLB, "fontcolorlb"); @@ -1559,6 +1561,7 @@ void SvxCharEffectsPage::ResetColor_Impl( const SfxItemSet& rSet ) sal_uInt16 nWhich = GetWhich( SID_ATTR_CHAR_COLOR ); SfxItemState eState = rSet.GetItemState( nWhich ); + m_bOrigFontColor = false; switch ( eState ) { case SfxItemState::UNKNOWN: @@ -1592,22 +1595,29 @@ void SvxCharEffectsPage::ResetColor_Impl( const SfxItemSet& rSet ) m_pPreviewWin->Invalidate(); m_pFontColorLB->SelectEntry(aColor); + + m_aOrigFontColor = aColor; + m_bOrigFontColor = true; break; } } + m_bNewFontColor = false; } bool SvxCharEffectsPage::FillItemSetColor_Impl( SfxItemSet& rSet ) { sal_uInt16 nWhich = GetWhich( SID_ATTR_CHAR_COLOR ); - const SvxColorItem* pOld = static_cast(GetOldItem( rSet, SID_ATTR_CHAR_COLOR )); - bool bChanged = true; const SfxItemSet& rOldSet = GetItemSet(); - Color aSelectedColor = m_pFontColorLB->GetSelectEntryColor(); + Color aSelectedColor; + bool bChanged = m_bNewFontColor; - if (pOld && pOld->GetValue() == aSelectedColor) - bChanged = false; + if (bChanged) + { + aSelectedColor = m_pFontColorLB->GetSelectEntryColor(); + if (m_bOrigFontColor) + bChanged = aSelectedColor != m_aOrigFontColor; + } if (bChanged) rSet.Put( SvxColorItem( aSelectedColor, nWhich ) ); @@ -1677,8 +1687,10 @@ IMPL_LINK_NOARG(SvxCharEffectsPage, TristClickHdl_Impl, Button*, void) } -IMPL_LINK_NOARG(SvxCharEffectsPage, ColorBoxSelectHdl_Impl, SvxColorListBox&, void) +IMPL_LINK(SvxCharEffectsPage, ColorBoxSelectHdl_Impl, SvxColorListBox&, rBox, void) { + if (m_pFontColorLB == &rBox) + m_bNewFontColor = true; UpdatePreview_Impl(); } @@ -2113,7 +2125,6 @@ void SvxCharEffectsPage::ChangesApplied() m_pShadowBtn->SaveValue(); m_pBlinkingBtn->SaveValue(); m_pHiddenBtn->SaveValue(); - m_pFontColorLB->SaveValue(); } bool SvxCharEffectsPage::FillItemSet( SfxItemSet* rSet ) diff --git a/cui/source/tabpages/numpages.cxx b/cui/source/tabpages/numpages.cxx index 49564a9e17165..ded539a447141 100644 --- a/cui/source/tabpages/numpages.cxx +++ b/cui/source/tabpages/numpages.cxx @@ -1108,6 +1108,7 @@ SvxNumOptionsTabPage::SvxNumOptionsTabPage(vcl::Window* pParent, get(m_pBulRelSizeFT, "relsizeft"); get(m_pBulRelSizeMF, "relsize"); + m_pBulRelSizeMF->SetMin(SVX_NUM_REL_SIZE_MIN); get(m_pAllLevelFT, "sublevelsft"); get(m_pAllLevelNF, "sublevels"); diff --git a/cui/source/tabpages/paragrph.cxx b/cui/source/tabpages/paragrph.cxx index 2f630444a9c7d..5a26a659bfa1b 100644 --- a/cui/source/tabpages/paragrph.cxx +++ b/cui/source/tabpages/paragrph.cxx @@ -1402,18 +1402,27 @@ bool SvxExtParagraphTabPage::FillItemSet( SfxItemSet* rOutSet ) } } - if (m_pPagenumEdit->IsEnabled() && m_pPagenumEdit->IsValueModified()) + if (m_pPageNumBox->IsEnabled() + && (m_pPageNumBox->IsValueChangedFromSaved() || m_pPagenumEdit->IsValueModified())) { - SfxUInt16Item aPageNum( SID_ATTR_PARA_PAGENUM, - (sal_uInt16)m_pPagenumEdit->GetValue() ); - pOld = GetOldItem( *rOutSet, SID_ATTR_PARA_PAGENUM ); - if ( !pOld || static_cast(pOld)->GetValue() != aPageNum.GetValue() ) + if (TRISTATE_TRUE == m_pPageNumBox->GetState() + && (!pOld || IsInvalidItem(pOld) + || static_cast(pOld)->GetValue() != m_pPagenumEdit->GetValue())) { + SfxUInt16Item aPageNum(SID_ATTR_PARA_PAGENUM, + static_cast(m_pPagenumEdit->GetValue())); rOutSet->Put( aPageNum ); bModified = true; } + else if (TRISTATE_FALSE == m_pPageNumBox->GetState() + && (pOld || IsInvalidItem(pOld))) + { + // need to tell sw to remove the item + rOutSet->DisableItem(SID_ATTR_PARA_PAGENUM); + bModified = true; + } } // pagebreak @@ -1605,11 +1614,34 @@ void SvxExtParagraphTabPage::Reset( const SfxItemSet* rSet ) _nWhich = GetWhich( SID_ATTR_PARA_PAGENUM ); - if (rSet->GetItemState(_nWhich) >= SfxItemState::SET) + switch (rSet->GetItemState(_nWhich)) { - const sal_uInt16 nPageNum = - static_cast(rSet->Get( _nWhich ) ).GetValue(); - m_pPagenumEdit->SetValue( nPageNum ); + case SfxItemState::SET: + { + m_pPageNumBox->EnableTriState(false); + m_pPageNumBox->SetState(TRISTATE_TRUE); + SfxUInt16Item const*const pItem(static_cast(rSet->GetItem(_nWhich))); + const sal_uInt16 nPageNum(pItem->GetValue()); + m_pPagenumEdit->SetValue( nPageNum ); + break; + } + case SfxItemState::DONTCARE: + { + m_pPageNumBox->EnableTriState(); + m_pPageNumBox->SetState(TRISTATE_INDET); + break; + } + case SfxItemState::UNKNOWN: + case SfxItemState::DEFAULT: + case SfxItemState::DISABLED: + { + m_pPageNumBox->EnableTriState(false); + m_pPageNumBox->SetState(TRISTATE_FALSE); + break; + } + default: + assert(false); // unexpected + break; } if ( bPageBreak ) @@ -1665,7 +1697,7 @@ void SvxExtParagraphTabPage::Reset( const SfxItemSet* rSet ) m_pApplyCollBtn->Enable(false); m_pApplyCollBox->Enable(false); m_pPagenumEdit->Enable(false); - m_pPagenumText->Enable(false); + m_pPageNumBox->Enable(false); } if ( !bIsPageModel ) @@ -1698,6 +1730,7 @@ void SvxExtParagraphTabPage::Reset( const SfxItemSet* rSet ) if(!_bEnable) { m_pApplyCollBox->Enable(_bEnable); + m_pPageNumBox->Enable(false); m_pPagenumEdit->Enable(_bEnable); } @@ -1845,6 +1878,7 @@ void SvxExtParagraphTabPage::ChangesApplied() m_pBreakTypeLB->SaveValue(); m_pApplyCollBtn->SaveValue(); m_pApplyCollBox->SaveValue(); + m_pPageNumBox->SaveValue(); m_pPagenumEdit->SaveValue(); m_pKeepTogetherBox->SaveValue(); m_pKeepParaBox->SaveValue(); @@ -1870,6 +1904,7 @@ void SvxExtParagraphTabPage::DisablePageBreak() m_pBreakPositionLB->Enable(false); m_pApplyCollBtn->Enable(false); m_pApplyCollBox->Enable(false); + m_pPageNumBox->Enable(false); m_pPagenumEdit->Enable(false); } @@ -1898,7 +1933,7 @@ SvxExtParagraphTabPage::SvxExtParagraphTabPage( vcl::Window* pParent, const SfxI get(m_pPagenumEdit,"spinPageNumber"); get(m_pBreakTypeFT,"labelType"); get(m_pBreakPositionFT,"labelPosition"); - get(m_pPagenumText,"labelPageNum"); + get(m_pPageNumBox,"labelPageNum"); // Options get(m_pKeepTogetherBox,"checkSplitPara"); @@ -1923,6 +1958,7 @@ SvxExtParagraphTabPage::SvxExtParagraphTabPage( vcl::Window* pParent, const SfxI m_pApplyCollBtn->SetClickHdl( LINK( this, SvxExtParagraphTabPage, ApplyCollClickHdl_Impl ) ); m_pBreakTypeLB->SetSelectHdl( LINK( this, SvxExtParagraphTabPage, PageBreakTypeHdl_Impl ) ); m_pBreakPositionLB->SetSelectHdl( LINK( this, SvxExtParagraphTabPage, PageBreakPosHdl_Impl ) ); + m_pPageNumBox->SetClickHdl( LINK( this, SvxExtParagraphTabPage, PageNumBoxClickHdl_Impl ) ); SfxObjectShell* pSh = SfxObjectShell::Current(); if ( pSh ) @@ -1954,7 +1990,7 @@ SvxExtParagraphTabPage::SvxExtParagraphTabPage( vcl::Window* pParent, const SfxI m_pExtHyphenAfterBox ->Enable(false); m_pMaxHyphenLabel ->Enable(false); m_pMaxHyphenEdit ->Enable(false); - m_pPagenumText ->Enable(false); + m_pPageNumBox ->Enable(false); m_pPagenumEdit ->Enable(false); // no column break in HTML m_pBreakTypeLB->RemoveEntry(1); @@ -1982,7 +2018,7 @@ void SvxExtParagraphTabPage::dispose() m_pBreakPositionLB.clear(); m_pApplyCollBtn.clear(); m_pApplyCollBox.clear(); - m_pPagenumText.clear(); + m_pPageNumBox.clear(); m_pPagenumEdit.clear(); m_pKeepTogetherBox.clear(); m_pKeepParaBox.clear(); @@ -2015,8 +2051,8 @@ IMPL_LINK_NOARG(SvxExtParagraphTabPage, PageBreakHdl_Impl, Button*, void) m_pApplyCollBox->Enable(bEnable); if(!bHtmlMode) { - m_pPagenumText->Enable(bEnable); - m_pPagenumEdit->Enable(bEnable); + m_pPageNumBox->Enable(bEnable); + m_pPagenumEdit->Enable(bEnable && m_pPageNumBox->GetState() == TRISTATE_TRUE); } } break; @@ -2026,7 +2062,7 @@ IMPL_LINK_NOARG(SvxExtParagraphTabPage, PageBreakHdl_Impl, Button*, void) m_pApplyCollBtn->SetState( TRISTATE_FALSE ); m_pApplyCollBtn->Enable(false); m_pApplyCollBox->Enable(false); - m_pPagenumText->Enable(false); + m_pPageNumBox->Enable(false); m_pPagenumEdit->Enable(false); m_pBreakTypeFT->Enable(false); m_pBreakTypeLB->Enable(false); @@ -2116,8 +2152,8 @@ IMPL_LINK_NOARG(SvxExtParagraphTabPage, ApplyCollClickHdl_Impl, Button*, void) m_pApplyCollBox->Enable(bEnable); if(!bHtmlMode) { - m_pPagenumText->Enable(bEnable); - m_pPagenumEdit->Enable(bEnable); + m_pPageNumBox->Enable(bEnable); + m_pPagenumEdit->Enable(bEnable && m_pPageNumBox->GetState() == TRISTATE_TRUE); } } @@ -2133,8 +2169,8 @@ IMPL_LINK( SvxExtParagraphTabPage, PageBreakPosHdl_Impl, ListBox&, rListBox, voi m_pApplyCollBox->Enable(bEnable); if(!bHtmlMode) { - m_pPagenumText->Enable(bEnable); - m_pPagenumEdit->Enable(bEnable); + m_pPageNumBox->Enable(bEnable); + m_pPagenumEdit->Enable(bEnable && m_pPageNumBox->GetState() == TRISTATE_TRUE); } } else if ( 1 == rListBox.GetSelectEntryPos() ) @@ -2142,7 +2178,7 @@ IMPL_LINK( SvxExtParagraphTabPage, PageBreakPosHdl_Impl, ListBox&, rListBox, voi m_pApplyCollBtn->SetState( TRISTATE_FALSE ); m_pApplyCollBtn->Enable(false); m_pApplyCollBox->Enable(false); - m_pPagenumText->Enable(false); + m_pPageNumBox->Enable(false); m_pPagenumEdit->Enable(false); } } @@ -2156,13 +2192,18 @@ IMPL_LINK( SvxExtParagraphTabPage, PageBreakTypeHdl_Impl, ListBox&, rListBox, vo m_pApplyCollBtn->SetState( TRISTATE_FALSE ); m_pApplyCollBtn->Enable(false); m_pApplyCollBox->Enable(false); - m_pPagenumText->Enable(false); + m_pPageNumBox->Enable(false); m_pPagenumEdit->Enable(false); } else PageBreakPosHdl_Impl( *m_pBreakPositionLB ); } +IMPL_LINK_NOARG(SvxExtParagraphTabPage, PageNumBoxClickHdl_Impl, Button*, void) +{ + m_pPagenumEdit->Enable(m_pPageNumBox->GetState() == TRISTATE_TRUE); +} + void SvxExtParagraphTabPage::PageCreated(const SfxAllItemSet& aSet) { const SfxBoolItem* pDisablePageBreakItem = aSet.GetItem(SID_DISABLE_SVXEXTPARAGRAPHTABPAGE_PAGEBREAK, false); diff --git a/cui/source/tabpages/textanim.cxx b/cui/source/tabpages/textanim.cxx index 2dcc3d39e7f47..cb267984a9436 100644 --- a/cui/source/tabpages/textanim.cxx +++ b/cui/source/tabpages/textanim.cxx @@ -89,13 +89,14 @@ void SvxTextTabDialog::PageCreated( sal_uInt16 nId, SfxTabPage &rPage ) |* \************************************************************************/ -SvxTextAnimationPage::SvxTextAnimationPage( vcl::Window* pWindow, const SfxItemSet& rInAttrs ) : - SfxTabPage ( pWindow - ,"TextAnimation" - ,"cui/ui/textanimtabpage.ui" - ,&rInAttrs ), - rOutAttrs ( rInAttrs ), - eAniKind ( SDRTEXTANI_NONE ) +SvxTextAnimationPage::SvxTextAnimationPage(vcl::Window* pWindow, const SfxItemSet& rInAttrs) + : SfxTabPage(pWindow, "TextAnimation", "cui/ui/textanimtabpage.ui", &rInAttrs) + , rOutAttrs(rInAttrs) + , eAniKind(SDRTEXTANI_NONE) + , m_aUpState(TRISTATE_INDET) + , m_aLeftState(TRISTATE_INDET) + , m_aRightState(TRISTATE_INDET) + , m_aDownState(TRISTATE_INDET) { get(m_pLbEffect, "LB_EFFECT"); get(m_pBoxDirection,"boxDIRECTION"); @@ -201,10 +202,10 @@ void SvxTextAnimationPage::Reset( const SfxItemSet* rAttrs ) m_pBtnRight->Check( false ); m_pBtnDown->Check( false ); } - m_pBtnUp->SaveValue(); - m_pBtnLeft->SaveValue(); - m_pBtnRight->SaveValue(); - m_pBtnDown->SaveValue(); + m_aUpState = m_pBtnUp->GetState(); + m_aLeftState = m_pBtnLeft->GetState(); + m_aRightState = m_pBtnRight->GetState(); + m_aDownState = m_pBtnDown->GetState(); // Start inside pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANISTARTINSIDE ); @@ -376,10 +377,10 @@ bool SvxTextAnimationPage::FillItemSet( SfxItemSet* rAttrs) } // animation direction - if( m_pBtnUp->IsValueChangedFromSaved() || - m_pBtnLeft->IsValueChangedFromSaved() || - m_pBtnRight->IsValueChangedFromSaved() || - m_pBtnDown->IsValueChangedFromSaved() ) + if (m_aUpState != m_pBtnUp->GetState() || + m_aLeftState != m_pBtnLeft->GetState() || + m_aRightState != m_pBtnRight->GetState() || + m_aDownState != m_pBtnDown->GetState()) { SdrTextAniDirection eValue = (SdrTextAniDirection) GetSelectedDirection(); rAttrs->Put( SdrTextAniDirectionItem( eValue ) ); diff --git a/cui/source/tabpages/tparea.cxx b/cui/source/tabpages/tparea.cxx index fdbcfc91030f8..f2a054df2e559 100644 --- a/cui/source/tabpages/tparea.cxx +++ b/cui/source/tabpages/tparea.cxx @@ -66,6 +66,19 @@ const sal_uInt16 SvxAreaTabPage::pAreaRanges[] = 0 }; +namespace +{ + +void lclExtendSize(Size& rSize, const Size& rInputSize) +{ + if (rSize.Width() < rInputSize.Width()) + rSize.Width() = rInputSize.Width(); + if (rSize.Height() < rInputSize.Height()) + rSize.Height() = rInputSize.Height(); +} + +} // end anonymous namespace + /************************************************************************* |* |* Dialog to modify fill-attributes @@ -126,8 +139,21 @@ SvxAreaTabPage::SvxAreaTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs SetExchangeSupport(); - m_pFillTab->set_width_request(750); - m_pFillTab->set_height_request(550); + // Calculate optimal size of all pages.. + m_pFillTabPage.disposeAndReset(SvxColorTabPage::Create(m_pFillTab, &m_rXFSet)); + Size aSize = m_pFillTabPage->GetOptimalSize(); + m_pFillTabPage.disposeAndReset(SvxGradientTabPage::Create(m_pFillTab, &m_rXFSet)); + lclExtendSize(aSize, m_pFillTabPage->GetOptimalSize()); + m_pFillTabPage.disposeAndReset(SvxBitmapTabPage::Create(m_pFillTab, &m_rXFSet)); + lclExtendSize(aSize, m_pFillTabPage->GetOptimalSize()); + m_pFillTabPage.disposeAndReset(SvxHatchTabPage::Create(m_pFillTab, &m_rXFSet)); + lclExtendSize(aSize, m_pFillTabPage->GetOptimalSize()); + m_pFillTabPage.disposeAndReset(SvxPatternTabPage::Create(m_pFillTab, &m_rXFSet)); + lclExtendSize(aSize, m_pFillTabPage->GetOptimalSize()); + m_pFillTabPage.disposeAndClear(); + + m_pFillTab->set_width_request(aSize.Width()); + m_pFillTab->set_height_request(aSize.Height()); } SvxAreaTabPage::~SvxAreaTabPage() @@ -205,6 +231,14 @@ DeactivateRC SvxAreaTabPage::DeactivatePage( SfxItemSet* _pSet ) FillType eFillType = static_cast(maBox.GetCurrentButtonPos()); switch( eFillType ) { + case TRANSPARENT: + { + // Fill: None doesn't have its own tabpage and thus + // implementation of FillItemSet, so we supply it here + XFillStyleItem aStyleItem( drawing::FillStyle_NONE ); + _pSet->Put( aStyleItem ); + break; + } case SOLID: return DeactivatePage_Impl(_pSet); case GRADIENT: diff --git a/cui/source/tabpages/tpbitmap.cxx b/cui/source/tabpages/tpbitmap.cxx index ec7b6d55c7ea9..5f56ad4a487c8 100644 --- a/cui/source/tabpages/tpbitmap.cxx +++ b/cui/source/tabpages/tpbitmap.cxx @@ -275,17 +275,26 @@ bool SvxBitmapTabPage::FillItemSet( SfxItemSet* rAttrs ) void SvxBitmapTabPage::Reset( const SfxItemSet* rAttrs ) { - SfxItemSet rGeoAttr(mpView->GetGeoAttrFromMarked()); - const SfxPoolItem* pItem = nullptr; - const double fUIScale(double(mpView->GetModel()->GetUIScale())); + const SfxPoolItem* pItemTransfWidth = nullptr; + const SfxPoolItem* pItemTransfHeight = nullptr; + double fUIScale = 1.0; + if (mpView) + { + fUIScale = ( mpView->GetModel() ? double(mpView->GetModel()->GetUIScale()) : 1.0); + - pItem = GetItem( rGeoAttr, SID_ATTR_TRANSFORM_WIDTH ); - m_fObjectWidth = std::max( pItem ? (double)static_cast(pItem)->GetValue() : 0.0, 1.0 ); + if (mpView->AreObjectsMarked()) + { + SfxItemSet rGeoAttr(mpView->GetGeoAttrFromMarked()); + pItemTransfWidth = GetItem( rGeoAttr, SID_ATTR_TRANSFORM_WIDTH ); + pItemTransfHeight= GetItem( rGeoAttr, SID_ATTR_TRANSFORM_HEIGHT ); + } + } + m_fObjectWidth = std::max( pItemTransfWidth ? (double)static_cast(pItemTransfWidth)->GetValue() : 0.0, 1.0 ); + m_fObjectHeight = std::max( pItemTransfHeight ? (double)static_cast(pItemTransfHeight)->GetValue() : 0.0, 1.0 ); double fTmpWidth((OutputDevice::LogicToLogic(static_cast(m_fObjectWidth), mePoolUnit, MapUnit::Map100thMM )) / fUIScale); m_fObjectWidth = fTmpWidth; - pItem = GetItem( rGeoAttr, SID_ATTR_TRANSFORM_HEIGHT ); - m_fObjectHeight = std::max( pItem ? (double)static_cast(pItem)->GetValue() : 0.0, 1.0 ); double fTmpHeight((OutputDevice::LogicToLogic(static_cast(m_fObjectHeight), mePoolUnit, MapUnit::Map100thMM )) / fUIScale); m_fObjectHeight = fTmpHeight; @@ -516,21 +525,29 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ModifyBitmapHdl, ValueSet*, void) } } - BitmapEx aBmpEx(pGraphicObject->GetGraphic().GetBitmapEx()); - Size aTempBitmapSize = aBmpEx.GetSizePixel(); - const double fUIScale(double(mpView->GetModel()->GetUIScale())); + if(pGraphicObject) + { + BitmapEx aBmpEx(pGraphicObject->GetGraphic().GetBitmapEx()); + Size aTempBitmapSize = aBmpEx.GetSizePixel(); + const double fUIScale = ( (mpView && mpView->GetModel()) ? double(mpView->GetModel()->GetUIScale()) : 1.0); - rBitmapSize.Width() = ((OutputDevice::LogicToLogic(static_cast(aTempBitmapSize.Width()),MapUnit::MapPixel, MapUnit::Map100thMM )) / fUIScale); - rBitmapSize.Height() = ((OutputDevice::LogicToLogic(static_cast(aTempBitmapSize.Height()),MapUnit::MapPixel, MapUnit::Map100thMM )) / fUIScale); - CalculateBitmapPresetSize(); - ModifyBitmapStyleHdl( *m_pBitmapStyleLB ); - ModifyBitmapPositionHdl( *m_pPositionLB ); + rBitmapSize.Width() = ((OutputDevice::LogicToLogic(static_cast(aTempBitmapSize.Width()),MapUnit::MapPixel, MapUnit::Map100thMM )) / fUIScale); + rBitmapSize.Height() = ((OutputDevice::LogicToLogic(static_cast(aTempBitmapSize.Height()),MapUnit::MapPixel, MapUnit::Map100thMM )) / fUIScale); + CalculateBitmapPresetSize(); + ModifyBitmapStyleHdl( *m_pBitmapStyleLB ); + ModifyBitmapPositionHdl( *m_pPositionLB ); - m_rXFSet.Put(XFillStyleItem(drawing::FillStyle_BITMAP)); - m_rXFSet.Put(XFillBitmapItem(OUString(), *pGraphicObject)); + m_rXFSet.Put(XFillStyleItem(drawing::FillStyle_BITMAP)); + m_rXFSet.Put(XFillBitmapItem(OUString(), *pGraphicObject)); + + m_pCtlBitmapPreview->SetAttributes( m_aXFillAttr.GetItemSet() ); + m_pCtlBitmapPreview->Invalidate(); + } + else + { + SAL_WARN("cui.tabpages", "SvxBitmapTabPage::ModifyBitmapHdl(): null pGraphicObject"); + } - m_pCtlBitmapPreview->SetAttributes( m_aXFillAttr.GetItemSet() ); - m_pCtlBitmapPreview->Invalidate(); } IMPL_LINK_NOARG(SvxBitmapTabPage, ClickRenameHdl, SvxPresetListBox*, void) diff --git a/cui/source/tabpages/tpcolor.cxx b/cui/source/tabpages/tpcolor.cxx index c31f57fce3f86..e4545b497d6eb 100644 --- a/cui/source/tabpages/tpcolor.cxx +++ b/cui/source/tabpages/tpcolor.cxx @@ -220,7 +220,10 @@ void SvxColorTabPage::FillPaletteLB() } OUString aPaletteName( officecfg::Office::Common::UserColors::PaletteName::get() ); m_pSelectPalette->SelectEntry(aPaletteName); - SelectPaletteLBHdl( *m_pSelectPalette ); + if (m_pSelectPalette->GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND) + { + SelectPaletteLBHdl( *m_pSelectPalette ); + } } void SvxColorTabPage::Construct() @@ -228,7 +231,6 @@ void SvxColorTabPage::Construct() if (pColorList.is()) { FillPaletteLB(); - SelectPaletteLBHdl( *m_pSelectPalette ); ImpColorCountChanged(); } } diff --git a/cui/uiconfig/ui/aboutdialog.ui b/cui/uiconfig/ui/aboutdialog.ui index d313cac4ef736..d55acee02e4d1 100644 --- a/cui/uiconfig/ui/aboutdialog.ui +++ b/cui/uiconfig/ui/aboutdialog.ui @@ -197,7 +197,7 @@ 12 12 True - Copyright © 2000–2016 LibreOffice contributors. + Copyright © 2000–2017 LibreOffice contributors. center True diff --git a/cui/uiconfig/ui/optuserpage.ui b/cui/uiconfig/ui/optuserpage.ui index 009ec6ec73be2..93a7db478f96f 100644 --- a/cui/uiconfig/ui/optuserpage.ui +++ b/cui/uiconfig/ui/optuserpage.ui @@ -39,9 +39,9 @@ False True end - Name/initials: + First/last _name/initials: True - lastname + firstname 0 @@ -142,6 +142,24 @@ False True 6 + + + True + True + center + True + + + + First name + + + + + 0 + 0 + + True @@ -151,12 +169,12 @@ - Name + Last name - 0 + 1 0 @@ -174,7 +192,7 @@ - 1 + 2 0 @@ -406,6 +424,182 @@ 12 + + + False + True + end + Last name/first _name/father’s name/initials: + True + ruslastname + + + 0 + 2 + + + + + False + True + 6 + + + True + True + center + True + + + + Last name + + + + + 0 + 0 + + + + + True + True + center + True + + + + Father's name + + + + + 2 + 0 + + + + + True + True + center + + 7 + + + Initials + + + + + 3 + 0 + + + + + True + True + center + True + + + + First name + + + + + 1 + 0 + + + + + 1 + 2 + + + + + False + True + end + Last/first _name/initials: + True + eastlastname + + + 0 + 3 + + + + + False + True + 6 + + + True + True + center + True + + + + Last name + + + + + 0 + 0 + + + + + True + True + center + True + + + + First name + + + + + 1 + 0 + + + + + True + True + center + + 7 + + + Initials + + + + + 2 + 0 + + + + + 1 + 3 + + False diff --git a/cui/uiconfig/ui/optviewpage.ui b/cui/uiconfig/ui/optviewpage.ui index 06cb489d7e77a..fc75fc821e9d9 100644 --- a/cui/uiconfig/ui/optviewpage.ui +++ b/cui/uiconfig/ui/optviewpage.ui @@ -1,5 +1,5 @@ - + @@ -166,11 +166,12 @@ True False - 12 + 6 True False + start Icons in men_us: True menuicons @@ -181,7 +182,7 @@ - + True False @@ -191,44 +192,39 @@ - 1 - 0 + 0 + 3 - + True False - - Automatic - Hide - Show - + start + Shortcuts in context menus: + True + contextmenushortcuts - 1 + 0 2 - + True False - 6 - 6 - Shortcuts in context menus: - True - contextmenushortcuts + + Automatic + Hide + Show + 0 1 - 2 - - - @@ -339,12 +335,11 @@ False True 6 - 12 True False - end + start Toolbar icon _size: True iconsize @@ -373,8 +368,8 @@ - 1 - 3 + 0 + 7 @@ -389,22 +384,22 @@ - 1 - 0 + 0 + 1 True False - end + start Icon s_tyle: True iconstyle 0 - 3 + 6 @@ -419,49 +414,21 @@ 0 - 4 - 2 - - - - - True - False - end - fro_m: - True - aanf:0pixels - - - 0 - 5 - - - - - True - True - start - - adjustment2 - - - 1 - 5 + 8 True False - end + start Sidebar _icon size: True iconsize 0 - 1 + 2 @@ -475,22 +442,22 @@ - 1 - 1 + 0 + 3 True False - end + start _Notebookbar icon size: True iconsize 0 - 2 + 4 @@ -504,8 +471,46 @@ - 1 - 2 + 0 + 5 + + + + + True + False + 18 + 12 + + + True + False + start + fro_m: + True + aanf:0pixels + + + 0 + 0 + + + + + True + True + + adjustment2 + + + 1 + 0 + + + + + 0 + 9 diff --git a/cui/uiconfig/ui/paraindentspacing.ui b/cui/uiconfig/ui/paraindentspacing.ui index 97ae6e9645626..18a0dc4ff7e48 100644 --- a/cui/uiconfig/ui/paraindentspacing.ui +++ b/cui/uiconfig/ui/paraindentspacing.ui @@ -439,6 +439,7 @@ True adjustmentED_LINEDISTMETRIC + 1 False diff --git a/cui/uiconfig/ui/textflowpage.ui b/cui/uiconfig/ui/textflowpage.ui index 6a0d14d78584d..8ce7a43b9100b 100644 --- a/cui/uiconfig/ui/textflowpage.ui +++ b/cui/uiconfig/ui/textflowpage.ui @@ -18,6 +18,7 @@ 9999 1 10 + 1 True @@ -243,6 +244,9 @@ True adjustment3 + + + 4 @@ -250,13 +254,13 @@ - + True - False + True Page _number: True + True right - spinPageNumber 1 diff --git a/cui/uiconfig/ui/tsaurldialog.ui b/cui/uiconfig/ui/tsaurldialog.ui index c1d6bc0a655a9..172970d3d9e1b 100644 --- a/cui/uiconfig/ui/tsaurldialog.ui +++ b/cui/uiconfig/ui/tsaurldialog.ui @@ -1,7 +1,6 @@ - - + False 6 @@ -118,16 +117,15 @@ 6 12 - + True False - True - True - 6 + vertical True False + 6 0 0 Add or delete Time Stamp Authority URLs @@ -136,8 +134,25 @@ 60 - 0 - 0 + False + True + 0 + + + + + True + True + True + True + + + + + + False + True + 1 @@ -154,6 +169,8 @@ 2 0 + 1 + 1 @@ -164,37 +181,11 @@ - 0 - 1 - - - - - True - True - True - True - in - - - True - True - True - True - - - - - - - - 1 - 0 + False + True + 2 - - - @@ -220,6 +211,7 @@ help + delete add ok cancel diff --git a/dbaccess/qa/complex/dbaccess/RowSet.java b/dbaccess/qa/complex/dbaccess/RowSet.java index 2cbf942d94e13..e617d25465252 100644 --- a/dbaccess/qa/complex/dbaccess/RowSet.java +++ b/dbaccess/qa/complex/dbaccess/RowSet.java @@ -528,7 +528,12 @@ private int currentRowCount() throws UnknownPropertyException, WrappedTargetExce */ private int positionRandom() throws SQLException, UnknownPropertyException, WrappedTargetException { - final int position = (new Random()).nextInt(currentRowCount() - 2) + 2; + // note: obviously this should subtract 2 but actually subtract 3 + // because if we have just deleted the current row then + // ORowSetBase::impl_getRowCount() will lie and currentRowCount() + // returns 1 more than the actual number of rows and then + // positionRandom() followed by deleteRow() deletes *last* row + final int position = (new Random()).nextInt(currentRowCount() - 3) + 2; assertTrue("sub task failed: could not position to row no. " + (Integer.valueOf(position)).toString(), m_resultSet.absolute(position)); return m_resultSet.getRow(); diff --git a/dbaccess/qa/unit/firebird.cxx b/dbaccess/qa/unit/firebird.cxx index e031e16a3494c..16a4fb60e8004 100644 --- a/dbaccess/qa/unit/firebird.cxx +++ b/dbaccess/qa/unit/firebird.cxx @@ -66,11 +66,7 @@ void FirebirdTest::testEmptyDBConnection() void FirebirdTest::testIntegerDatabase() { uno::Reference< XOfficeDatabaseDocument > xDocument = -#if HAVE_FIREBIRD_30 getDocumentForFileName("firebird_integer_x64le_ods12.odb"); -#else - getDocumentForFileName("firebird_integer_x64le.odb"); -#endif uno::Reference< XConnection > xConnection = getConnectionForDocument(xDocument); diff --git a/dbaccess/source/ui/dlg/odbcconfig.cxx b/dbaccess/source/ui/dlg/odbcconfig.cxx index cd1b583e18404..a880f3cccef52 100644 --- a/dbaccess/source/ui/dlg/odbcconfig.cxx +++ b/dbaccess/source/ui/dlg/odbcconfig.cxx @@ -38,8 +38,9 @@ #ifdef MACOSX #define ODBC_LIBRARY "libiodbc.dylib" #else +#define ODBC_LIBRARY_PLAIN "libodbc.so" #define ODBC_LIBRARY_1 "libodbc.so.1" -#define ODBC_LIBRARY "libodbc.so" +#define ODBC_LIBRARY "libodbc.so.2" #endif #endif @@ -124,6 +125,10 @@ OOdbcEnumeration::OOdbcEnumeration() if ( !bLoaded ) bLoaded = load(ODBC_LIBRARY_1); #endif +#ifdef ODBC_LIBRARY_PLAIN + if ( !bLoaded ) + bLoaded = load(ODBC_LIBRARY_PLAIN); +#endif if ( bLoaded ) { diff --git a/dbaccess/source/ui/misc/TokenWriter.cxx b/dbaccess/source/ui/misc/TokenWriter.cxx index 242a9aed88a56..eee419355bb5a 100644 --- a/dbaccess/source/ui/misc/TokenWriter.cxx +++ b/dbaccess/source/ui/misc/TokenWriter.cxx @@ -688,7 +688,7 @@ void OHTMLImportExport::WriteHeader() IncIndent(1); TAG_ON_LF( OOO_STRING_SVTOOLS_HTML_head ); SfxFrameHTMLWriter::Out_DocInfo( (*m_pStream), OUString(), - xDocProps, sIndent ); + xDocProps, sIndent, osl_getThreadTextEncoding() ); OUT_LF(); IncIndent(-1); OUT_LF(); TAG_OFF_LF( OOO_STRING_SVTOOLS_HTML_head ); } @@ -921,8 +921,7 @@ void OHTMLImportExport::WriteCell( sal_Int32 nFormat, sal_Int32 nWidthPixel, sal aStrTD = aStrTD + "="; aStrTD = aStrTD + pChar; - Reference< css::util::XNumberFormatsSupplier > xSupplier = m_xFormatter->getNumberFormatsSupplier(); - SvNumberFormatsSupplierObj* pSupplierImpl = SvNumberFormatsSupplierObj::getImplementation( xSupplier ); + SvNumberFormatsSupplierObj* pSupplierImpl = m_xFormatter.is() ? SvNumberFormatsSupplierObj::getImplementation(m_xFormatter->getNumberFormatsSupplier()) : nullptr; SvNumberFormatter* pFormatter = pSupplierImpl ? pSupplierImpl->GetNumberFormatter() : nullptr; if(pFormatter) { diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx index 7abfdda84c896..1f9307d0c26f2 100644 --- a/desktop/source/app/app.cxx +++ b/desktop/source/app/app.cxx @@ -23,6 +23,7 @@ #include #include +#include #if defined UNX #include #endif @@ -473,16 +474,17 @@ namespace OUString ReplaceStringHookProc( const OUString& rStr ) { - OUString sRet(rStr); + const static OUString sBuildId(utl::Bootstrap::getBuildIdData("development")); + static OUString sBrandName, sVersion, sAboutBoxVersion, sAboutBoxVersionSuffix, sExtension; - if (sRet.indexOf("%PRODUCT") != -1 || sRet.indexOf("%ABOUTBOX") != -1) + static std::once_flag aInitOnce; + std::call_once(aInitOnce, [] { - OUString sBrandName = BrandName::get(); - OUString sVersion = Version::get(); - OUString sBuildId = utl::Bootstrap::getBuildIdData("development"); - OUString sAboutBoxVersion = AboutBoxVersion::get(); - OUString sAboutBoxVersionSuffix = AboutBoxVersionSuffix::get(); - OUString sExtension = Extension::get(); + sBrandName = BrandName::get(); + sVersion = Version::get(); + sAboutBoxVersion = AboutBoxVersion::get(); + sAboutBoxVersionSuffix = AboutBoxVersionSuffix::get(); + sExtension = Extension::get(); if ( sBrandName.isEmpty() ) { @@ -490,12 +492,16 @@ OUString ReplaceStringHookProc( const OUString& rStr ) sVersion = utl::ConfigManager::getProductVersion(); sAboutBoxVersion = utl::ConfigManager::getAboutBoxProductVersion(); sAboutBoxVersionSuffix = utl::ConfigManager::getAboutBoxProductVersionSuffix(); - if ( sExtension.isEmpty() ) + if (sExtension.isEmpty()) { sExtension = utl::ConfigManager::getProductExtension(); } } + } ); + OUString sRet(rStr); + if (sRet.indexOf("%PRODUCT") != -1 || sRet.indexOf("%ABOUTBOX") != -1) + { sRet = sRet.replaceAll( "%PRODUCTNAME", sBrandName ); sRet = sRet.replaceAll( "%PRODUCTVERSION", sVersion ); sRet = sRet.replaceAll( "%BUILDID", sBuildId ); @@ -558,7 +564,10 @@ void Desktop::Init() // Check whether safe mode is enabled CommandLineArgs& rCmdLine = GetCommandLineArgs(); - if (rCmdLine.IsSafeMode() || sfx2::SafeMode::hasFlag()) + // Check if we are restarting from safe mode - in that case we don't want to enter it again + if (sfx2::SafeMode::hasRestartFlag()) + sfx2::SafeMode::removeRestartFlag(); + else if (rCmdLine.IsSafeMode() || sfx2::SafeMode::hasFlag()) Application::EnableSafeMode(); // When we are in SafeMode we need to do changes before the configuration @@ -2158,6 +2167,8 @@ void Desktop::OpenClients() } #if HAVE_FEATURE_BREAKPAD CrashReporter::writeCommonInfo(); + // write this information here to avoid depending on vcl in the crash reporter lib + CrashReporter::AddKeyValue("Language", Application::GetSettings().GetLanguageTag().getBcp47()); #endif RequestHandler::EnableRequests(); diff --git a/desktop/source/app/crashreport.cxx b/desktop/source/app/crashreport.cxx index c50c2e98eba25..9715fde513c92 100644 --- a/desktop/source/app/crashreport.cxx +++ b/desktop/source/app/crashreport.cxx @@ -35,28 +35,54 @@ osl::Mutex CrashReporter::maMutex; #endif google_breakpad::ExceptionHandler* CrashReporter::mpExceptionHandler = nullptr; +bool CrashReporter::mbInit = false; +std::map CrashReporter::maKeyValues; + +namespace { + +void writeToStream(std::ofstream& strm, const OUString& rKey, const OUString& rValue) +{ + strm << rtl::OUStringToOString(rKey, RTL_TEXTENCODING_UTF8).getStr() << "="; + strm << rtl::OUStringToOString(rValue, RTL_TEXTENCODING_UTF8).getStr() << "\n"; +} + +} void CrashReporter::AddKeyValue(const OUString& rKey, const OUString& rValue) { osl::MutexGuard aGuard(maMutex); - std::string ini_path = getIniFileName(); - std::ofstream ini_file(ini_path, std::ios_base::app); - ini_file << rtl::OUStringToOString(rKey, RTL_TEXTENCODING_UTF8).getStr() << "="; - ini_file << rtl::OUStringToOString(rValue, RTL_TEXTENCODING_UTF8).getStr() << "\n"; + if (mbInit) + { + std::string ini_path = getIniFileName(); + std::ofstream ini_file(ini_path, std::ios_base::app); + writeToStream(ini_file, rKey, rValue); + } + else + { + maKeyValues.insert(std::pair(rKey, rValue)); + } } #endif void CrashReporter::writeCommonInfo() { + osl::MutexGuard aGuard(maMutex); // limit the amount of code that needs to be executed before the crash reporting std::string ini_path = CrashReporter::getIniFileName(); std::ofstream minidump_file(ini_path, std::ios_base::trunc); minidump_file << "ProductName=LibreOffice\n"; minidump_file << "Version=" LIBO_VERSION_DOTTED "\n"; minidump_file << "URL=http://crashreport.libreoffice.org/submit/\n"; + for (auto& keyValue : maKeyValues) + { + writeToStream(minidump_file, keyValue.first, keyValue.second); + } + maKeyValues.clear(); minidump_file.close(); + mbInit = true; + updateMinidumpLocation(); } diff --git a/desktop/source/app/sofficemain.cxx b/desktop/source/app/sofficemain.cxx index b0d155b54c651..27b9efa600dbe 100644 --- a/desktop/source/app/sofficemain.cxx +++ b/desktop/source/app/sofficemain.cxx @@ -98,6 +98,7 @@ static bool dumpCallback(const wchar_t* path, const wchar_t* id, std::wstring_convert> conv1; std::string aPath = conv1.to_bytes(std::wstring(path)) + conv1.to_bytes(std::wstring(id)) + ".dmp"; minidump_file << "DumpFile=" << aPath << "\n"; + minidump_file << "GDIHandles=" << ::GetGuiResources (::GetCurrentProcess(), GR_GDIOBJECTS) << "\n"; minidump_file.close(); SAL_WARN("desktop", "minidump generated: " << aPath); return succeeded; diff --git a/desktop/source/deployment/gui/dp_gui_extlistbox.cxx b/desktop/source/deployment/gui/dp_gui_extlistbox.cxx index df198dc16115d..9d62aedbd80fa 100644 --- a/desktop/source/deployment/gui/dp_gui_extlistbox.cxx +++ b/desktop/source/deployment/gui/dp_gui_extlistbox.cxx @@ -376,45 +376,52 @@ void ExtensionBox_Impl::DeleteRemoved() //This function may be called with nPos < 0 void ExtensionBox_Impl::selectEntry( const long nPos ) { - //ToDo whe should not use the guard at such a big scope here. - //Currently it is used to guard m_vEntries and m_nActive. m_nActive will be - //modified in this function. - //It would be probably best to always use a copy of m_vEntries - //and some other state variables from ExtensionBox_Impl for - //the whole painting operation. See issue i86993 - ::osl::ClearableMutexGuard guard(m_entriesMutex); - - if ( m_bInCheckMode ) - return; - - if ( m_bHasActive ) + bool invalidate = false; { - if ( nPos == m_nActive ) + //ToDo whe should not use the guard at such a big scope here. + //Currently it is used to guard m_vEntries and m_nActive. m_nActive will be + //modified in this function. + //It would be probably best to always use a copy of m_vEntries + //and some other state variables from ExtensionBox_Impl for + //the whole painting operation. See issue i86993 + ::osl::MutexGuard guard(m_entriesMutex); + + if ( m_bInCheckMode ) return; - m_bHasActive = false; - m_vEntries[ m_nActive ]->m_bActive = false; - } + if ( m_bHasActive ) + { + if ( nPos == m_nActive ) + return; - if ( ( nPos >= 0 ) && ( nPos < (long) m_vEntries.size() ) ) - { - m_bHasActive = true; - m_nActive = nPos; - m_vEntries[ nPos ]->m_bActive = true; + m_bHasActive = false; + m_vEntries[ m_nActive ]->m_bActive = false; + } + + if ( ( nPos >= 0 ) && ( nPos < (long) m_vEntries.size() ) ) + { + m_bHasActive = true; + m_nActive = nPos; + m_vEntries[ nPos ]->m_bActive = true; + + if ( IsReallyVisible() ) + { + m_bAdjustActive = true; + } + } if ( IsReallyVisible() ) { - m_bAdjustActive = true; + m_bNeedsRecalc = true; + invalidate = true; } } - if ( IsReallyVisible() ) + if (invalidate) { - m_bNeedsRecalc = true; + SolarMutexGuard g; Invalidate(); } - - guard.clear(); } @@ -1005,45 +1012,54 @@ void ExtensionBox_Impl::removeEntry( const uno::Reference< deployment::XPackage { if ( ! m_bInDelete ) { - ::osl::ClearableMutexGuard aGuard( m_entriesMutex ); - - typedef std::vector< TEntry_Impl >::iterator ITER; - - for ( ITER iIndex = m_vEntries.begin(); iIndex < m_vEntries.end(); ++iIndex ) + bool invalidate = false; { - if ( (*iIndex)->m_xPackage == xPackage ) - { - long nPos = iIndex - m_vEntries.begin(); - - // Entries mustn't be removed here, because they contain a hyperlink control - // which can only be deleted when the thread has the solar mutex. Therefore - // the entry will be moved into the m_vRemovedEntries list which will be - // cleared on the next paint event - m_vRemovedEntries.push_back( *iIndex ); - (*iIndex)->m_xPackage->removeEventListener(m_xRemoveListener.get()); - m_vEntries.erase( iIndex ); - - m_bNeedsRecalc = true; + ::osl::ClearableMutexGuard aGuard( m_entriesMutex ); - if ( IsReallyVisible() ) - Invalidate(); + typedef std::vector< TEntry_Impl >::iterator ITER; - if ( m_bHasActive ) + for ( ITER iIndex = m_vEntries.begin(); iIndex < m_vEntries.end(); ++iIndex ) + { + if ( (*iIndex)->m_xPackage == xPackage ) { - if ( nPos < m_nActive ) - m_nActive -= 1; - else if ( ( nPos == m_nActive ) && - ( nPos == (long) m_vEntries.size() ) ) - m_nActive -= 1; - - m_bHasActive = false; - //clear before calling out of this method - aGuard.clear(); - selectEntry( m_nActive ); + long nPos = iIndex - m_vEntries.begin(); + + // Entries mustn't be removed here, because they contain a hyperlink control + // which can only be deleted when the thread has the solar mutex. Therefore + // the entry will be moved into the m_vRemovedEntries list which will be + // cleared on the next paint event + m_vRemovedEntries.push_back( *iIndex ); + (*iIndex)->m_xPackage->removeEventListener(m_xRemoveListener.get()); + m_vEntries.erase( iIndex ); + + m_bNeedsRecalc = true; + + if ( IsReallyVisible() ) + invalidate = true; + + if ( m_bHasActive ) + { + if ( nPos < m_nActive ) + m_nActive -= 1; + else if ( ( nPos == m_nActive ) && + ( nPos == (long) m_vEntries.size() ) ) + m_nActive -= 1; + + m_bHasActive = false; + //clear before calling out of this method + aGuard.clear(); + selectEntry( m_nActive ); + } + break; } - break; } } + + if (invalidate) + { + SolarMutexGuard g; + Invalidate(); + } } } diff --git a/desktop/unx/source/pagein.c b/desktop/unx/source/pagein.c index 56baffa79ca30..a401419fc162f 100644 --- a/desktop/unx/source/pagein.c +++ b/desktop/unx/source/pagein.c @@ -25,6 +25,7 @@ #include #include #include +#include #include /* do_pagein */ diff --git a/desktop/win32/source/guiloader/genericloader.cxx b/desktop/win32/source/guiloader/genericloader.cxx index 5398610d396e9..4e4c522a02a93 100644 --- a/desktop/win32/source/guiloader/genericloader.cxx +++ b/desktop/win32/source/guiloader/genericloader.cxx @@ -47,7 +47,7 @@ static int GenericMain() TCHAR szIniDirectory[MAX_PATH]; STARTUPINFO aStartupInfo; - desktop_win32::getPaths(szTargetFileName, szIniDirectory); + desktop_win32::extendLoaderEnvironment(szTargetFileName, szIniDirectory); ZeroMemory( &aStartupInfo, sizeof(aStartupInfo) ); aStartupInfo.cb = sizeof(aStartupInfo); diff --git a/desktop/win32/source/loader.cxx b/desktop/win32/source/loader.cxx index 948d370987b52..9cb133d1d5730 100644 --- a/desktop/win32/source/loader.cxx +++ b/desktop/win32/source/loader.cxx @@ -33,17 +33,28 @@ #include "loader.hxx" +#include + +namespace { + +void fail() +{ + LPWSTR buf = nullptr; + FormatMessageW( + FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, nullptr, + GetLastError(), 0, reinterpret_cast< LPWSTR >(&buf), 0, nullptr); + MessageBoxW(nullptr, buf, nullptr, MB_OK | MB_ICONERROR); + LocalFree(buf); + TerminateProcess(GetCurrentProcess(), 255); +} + +} + namespace desktop_win32 { -void getPaths(WCHAR * binPath, WCHAR * iniDirectory) { +void extendLoaderEnvironment(WCHAR * binPath, WCHAR * iniDirectory) { if (!GetModuleFileNameW(nullptr, iniDirectory, MAX_PATH)) { - LPWSTR buf = nullptr; - FormatMessageW( - FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, nullptr, - GetLastError(), 0, reinterpret_cast< LPWSTR >(&buf), 0, nullptr); - MessageBoxW(nullptr, buf, nullptr, MB_OK | MB_ICONERROR); - LocalFree(buf); - TerminateProcess(GetCurrentProcess(), 255); + fail(); } WCHAR * iniDirEnd = tools::filename(iniDirectory); WCHAR name[MAX_PATH + MY_LENGTH(L".bin")]; @@ -65,6 +76,32 @@ void getPaths(WCHAR * binPath, WCHAR * iniDirectory) { nameEnd[-1] = 'n'; tools::buildPath(binPath, iniDirectory, iniDirEnd, name, nameEnd - name); *iniDirEnd = L'\0'; + std::size_t const maxEnv = 32767; + WCHAR env[maxEnv]; + DWORD n = GetEnvironmentVariableW(L"PATH", env, maxEnv); + if ((n >= maxEnv || n == 0) && GetLastError() != ERROR_ENVVAR_NOT_FOUND) { + fail(); + } + // must be first in PATH to override other entries + assert(*(iniDirEnd - 1) == L'\\'); // hence -1 below + if (wcsncmp(env, iniDirectory, iniDirEnd - iniDirectory - 1) != 0 + || env[iniDirEnd - iniDirectory - 1] != L';') + { + WCHAR pad[MAX_PATH + maxEnv]; + // hopefully std::size_t is large enough to not overflow + WCHAR * p = commandLineAppend(pad, iniDirectory, iniDirEnd - iniDirectory - 1); + if (n != 0) { + *p++ = L';'; + for (DWORD i = 0; i <= n; ++i) { + *p++ = env[i]; + } + } else { + *p++ = L'\0'; + } + if (!SetEnvironmentVariableW(L"PATH", pad)) { + fail(); + } + } } } diff --git a/desktop/win32/source/loader.hxx b/desktop/win32/source/loader.hxx index e8a987650036f..365afa637ffeb 100644 --- a/desktop/win32/source/loader.hxx +++ b/desktop/win32/source/loader.hxx @@ -68,6 +68,8 @@ inline WCHAR * commandLineAppendEncoded(WCHAR * buffer, WCHAR const * text) { return buffer; } +// Set the PATH environment variable in the current (loader) process, so that a +// following CreateProcess has the necessary environment: // @param binPath // Must point to an array of size at least MAX_PATH. Is filled with the null // terminated full path to the "bin" file corresponding to the current @@ -76,7 +78,7 @@ inline WCHAR * commandLineAppendEncoded(WCHAR * buffer, WCHAR const * text) { // Must point to an array of size at least MAX_PATH. Is filled with the null // terminated full directory path (ending in "\") to the "ini" file // corresponding to the current executable. -void getPaths(WCHAR * binPath, WCHAR * iniDirectory); +void extendLoaderEnvironment(WCHAR * binPath, WCHAR * iniDirectory); } diff --git a/desktop/win32/source/officeloader/officeloader.cxx b/desktop/win32/source/officeloader/officeloader.cxx index 25277f1ff1437..dd7ddc8dfeceb 100644 --- a/desktop/win32/source/officeloader/officeloader.cxx +++ b/desktop/win32/source/officeloader/officeloader.cxx @@ -66,7 +66,7 @@ int WINAPI _tWinMain( HINSTANCE, HINSTANCE, LPTSTR, int ) TCHAR szIniDirectory[MAX_PATH]; STARTUPINFO aStartupInfo; - desktop_win32::getPaths(szTargetFileName, szIniDirectory); + desktop_win32::extendLoaderEnvironment(szTargetFileName, szIniDirectory); ZeroMemory( &aStartupInfo, sizeof(aStartupInfo) ); aStartupInfo.cb = sizeof(aStartupInfo); diff --git a/dictionaries b/dictionaries index f023ac778c978..94f10f3bdf176 160000 --- a/dictionaries +++ b/dictionaries @@ -1 +1 @@ -Subproject commit f023ac778c97881a53035f951fca95cee759888e +Subproject commit 94f10f3bdf176cd47f2c2e9ac26f357c2dd2007b diff --git a/distro-configs/LibreOfficeFlatpak.conf b/distro-configs/LibreOfficeFlatpak.conf index d5d6686936e49..a7a0c73d01311 100644 --- a/distro-configs/LibreOfficeFlatpak.conf +++ b/distro-configs/LibreOfficeFlatpak.conf @@ -27,10 +27,13 @@ --without-system-libodfgen --without-system-libpagemaker --without-system-librevenge +--without-system-libstaroffice +--without-system-libtommath --without-system-libvisio --without-system-libwpd --without-system-libwpg --without-system-libwps +--without-system-libzmf --without-system-lpsolve --without-system-mdds --without-system-mythes diff --git a/distro-configs/LibreOfficeLinux.conf b/distro-configs/LibreOfficeLinux.conf index 392b495627746..711d6c3aca6e2 100644 --- a/distro-configs/LibreOfficeLinux.conf +++ b/distro-configs/LibreOfficeLinux.conf @@ -22,7 +22,7 @@ --enable-kde4 --disable-gtk3 --enable-gstreamer-0-10 ---disable-gstreamer-1-0 +--enable-gstreamer-1-0 --enable-evolution2 --enable-gio --enable-scripting-beanshell diff --git a/download.lst b/download.lst index f114ba2671dbf..9faf3b4651304 100644 --- a/download.lst +++ b/download.lst @@ -24,8 +24,8 @@ export COLLADA2GLTF_TARBALL := 4b87018f7fff1d054939d19920b751a0-collada2gltf-mas export CPPUNIT_MD5SUM := d1c6bdd5a76c66d2c38331e2d287bc01 export CPPUNIT_TARBALL := cppunit-1.13.2.tar.gz export CT2N_TARBALL := 1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt -export CURL_MD5SUM := 490e19a8ccd1f4a244b50338a0eb9456 -export CURL_TARBALL := curl-7.51.0.tar.gz +export CURL_MD5SUM := 4e1ef056e117b4d25f4ec42ac609c0d4 +export CURL_TARBALL := curl-7.52.1.tar.gz export DBGHELP_DLL := 13fbc2e8b37ddf28181dd6d8081c2b8e-dbghelp.dll export EBOOK_MD5SUM := 6b48eda57914e6343efebc9381027b78 export EBOOK_TARBALL := libe-book-0.1.2.tar.bz2 @@ -33,8 +33,8 @@ export EPM_TARBALL := 3ade8cfe7e59ca8e65052644fed9fca4-epm-3.7.tar.gz export ETONYEK_MD5SUM := 77ff46936dcc83670557274e7dd2aa33 export ETONYEK_VERSION_MICRO := 6 export ETONYEK_TARBALL := libetonyek-0.1.$(ETONYEK_VERSION_MICRO).tar.bz2 -export EXPAT_MD5SUM := 2f47841c829facb346eb6e3fab5212e2 -export EXPAT_TARBALL := expat-2.2.0.tar.bz2 +export EXPAT_MD5SUM := f053af63ef5f39bd9b78d01fbc203334 +export EXPAT_TARBALL := expat-2.2.3.tar.bz2 export FIREBIRD_MD5SUM := 821260b61dafc22899d1464d4e91ee6a export FIREBIRD_TARBALL := Firebird-3.0.0.32483-0.tar.bz2 export FONTCONFIG_TARBALL := 77e15a92006ddc2adbb06f840d591c0e-fontconfig-2.8.0.tar.gz @@ -49,17 +49,19 @@ export FONT_OPENSANS_TARBALL := 7a15edea7d415ac5150ea403e27401fd-open-sans-font- export FONT_PTSERIF_TARBALL := c3c1a8ba7452950636e871d25020ce0d-pt-serif-font-1.0000W.tar.gz export FONT_SOURCECODE_TARBALL := 907d6e99f241876695c19ff3db0b8923-source-code-pro-2.030R-ro-1.050R-it.tar.gz export FONT_SOURCESANS_TARBALL := edc4d741888bc0d38e32dbaa17149596-source-sans-pro-2.010R-ro-1.065R-it.tar.gz -export FONT_NOTOEMOJI_TARBALL := 61f45f3d6cb7f874aecbe6cdc8ba26a2-NotoEmoji-unhinted.tar.gz +export FONT_EMOJIONE_COLOR_MD5SUM := 919389b307ee8696288ea3b8210ab974 +export FONT_EMOJIONE_COLOR_TARBALL := EmojiOneColor-SVGinOT-1.3.tar.gz export FREEHAND_MD5SUM := 8cf70c5dc4d24d2dc4a107f509d2d6d7 export FREEHAND_TARBALL := libfreehand-0.1.1.tar.bz2 export FREETYPE_TARBALL := dbf2caca1d3afd410a29217a9809d397-freetype-2.4.8.tar.bz2 export GLEW_TARBALL := 3941e9cab2f4f9d8faee3e8d57ae7664-glew-1.12.0.zip export GLM_TARBALL := bae83fa5dc7f081768daace6e199adc3-glm-0.9.4.6-libreoffice.zip -export GRAPHITE_TARBALL := 3069842a88b8f40c6b83ad2850cda293-graphite2-minimal-1.3.9.tgz +export GRAPHITE_MD5SUM := 9c499b8ec9f1b81fd0bb6a3b986f4b0f +export GRAPHITE_TARBALL := graphite2-minimal-1.3.10.tgz export HARFBUZZ_MD5SUM := 5986e1bfcd983d1f6caa53ef64c4abc5 export HARFBUZZ_TARBALL := harfbuzz-1.3.2.tar.bz2 export HSQLDB_TARBALL := 17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip -export HUNSPELL_TARBALL := 33d370f7fe5a030985e445a5672b2067-hunspell-1.4.1.tar.gz +export HUNSPELL_TARBALL := 047c3feb121261b76dc16cdb62f54483-hunspell-1.6.0.tar.gz export HYPHEN_TARBALL := 5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz export ICU_TARBALL := 1901302aaff1c1633ef81862663d2917-icu4c-58_1-src.tgz export JFREEREPORT_FLOW_ENGINE_TARBALL := ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip @@ -77,8 +79,8 @@ export JPEG_MD5SUM := 3353992aecaee1805ef4109aadd433e7 export JPEG_TARBALL := jpegsrc.v9a.tar.gz export JPEG_TURBO_MD5SUM := 86b0d5f7507c2e6c21c00219162c3c44 export JPEG_TURBO_TARBALL := libjpeg-turbo-1.4.2.tar.gz -export LANGTAGREG_MD5SUM := 8a037dc60b16bf8c5fe871b33390a4a2 -export LANGTAGREG_TARBALL := language-subtag-registry-2016-07-19.tar.bz2 +export LANGTAGREG_MD5SUM := 59a3595c1052c5b51f996f44fe9994b9 +export LANGTAGREG_TARBALL := language-subtag-registry-2017-04-19.tar.bz2 export LANGUAGETOOL_TARBALL := b63e6340a02ff1cacfeadb2c42286161-JLanguageTool-1.7.0.tar.bz2 export LCMS2_MD5SUM := f4c08d38ceade4a664ebff7228910a33 export LCMS2_TARBALL := lcms2-2.6.tar.gz @@ -104,13 +106,14 @@ export MDNSRESPONDER_MD5SUM := 940057ac8b513b00e8e9ca12ef796762 export MDNSRESPONDER_TARBALL := mDNSResponder-576.30.4.tar.gz export MSPUB_MD5SUM := ff9d0f9dd8fbc523408ea1953d5bde41 export MSPUB_TARBALL := libmspub-0.1.2.tar.bz2 -export MWAW_MD5SUM := 72ad446d76b157e30c1baf39bb288b99 -export MWAW_VERSION_MICRO := 8 +export MWAW_MD5SUM := d8532ad5630d3f3b2189a7ec5639151b +export MWAW_VERSION_MICRO := 9 export MWAW_TARBALL := libmwaw-0.3.$(MWAW_VERSION_MICRO).tar.bz2 export MYSQLCPPCONN_TARBALL := 7239a4430efd4d0189c4f24df67f08e5-mysql-connector-c++-1.1.4.tar.gz export MYTHES_TARBALL := a8c2c5b8f09e7ede322d5c602ff6a4b6-mythes-1.2.4.tar.gz export NEON_TARBALL := 231adebe5c2f78fded3e3df6e958878e-neon-0.30.1.tar.gz -export NSS_TARBALL := 0e3eee39402386cf16fd7aaa7399ebef-nss-3.27-with-nspr-4.13.tar.gz +export NSS_MD5SUM := e55ee06b22687df68fafc6a30c0554b2 +export NSS_TARBALL := nss-3.29.5-with-nspr-4.13.1.tar.gz export ODFGEN_MD5SUM := 32572ea48d9021bbd6fa317ddb697abc export ODFGEN_VERSION_MICRO := 6 export ODFGEN_TARBALL := libodfgen-0.1.$(ODFGEN_VERSION_MICRO).tar.bz2 @@ -129,18 +132,18 @@ export OWNCLOUD_ANDROID_LIB_TARBALL := owncloud-android-library-0.9.4-no-binary- export PAGEMAKER_MD5SUM := 5c4985a68be0b79d3f809da5e12b143c export PAGEMAKER_TARBALL := libpagemaker-0.0.3.tar.bz2 export PIXMAN_TARBALL := e80ebae4da01e77f68744319f01d52a3-pixman-0.34.0.tar.gz -export PNG_MD5SUM := 65213080dd30a9b16193d9b83adc1ee9 -export PNG_TARBALL := libpng-1.6.24.tar.gz -export POPPLER_MD5SUM := 8d61c91cb9e99ad38bba1b0b4432f174 -export POPPLER_TARBALL := poppler-0.48.0.tar.xz +export PNG_MD5SUM := 897ccec1ebfb0922e83c2bfaa1be8748 +export PNG_TARBALL := libpng-1.6.28.tar.gz +export POPPLER_MD5SUM := 9e057ed8eee1f9979fa75d8f044783b8 +export POPPLER_TARBALL := poppler-0.49.0.tar.xz export POSTGRESQL_TARBALL := c0b4799ea9850eae3ead14f0a60e9418-postgresql-9.2.1.tar.bz2 ifeq ($(PYTHON_VERSION_MINOR),3) export PYTHON_MD5SUM := 803a75927f8f241ca78633890c798021 export PYTHON_TARBALL := Python-3.3.5.tgz else -export PYTHON_MD5SUM := a56c0c0b45d75a0ec9c6dee933c41c36 -export PYTHON_TARBALL := Python-3.5.0.tgz +export PYTHON_MD5SUM := 2ed4802b7a2a7e40d2e797272bf388ec +export PYTHON_TARBALL := Python-3.5.4.tgz endif export RAPTOR_TARBALL := a39f6c07ddb20d7dd2ff1f95fa21e2cd-raptor2-2.0.15.tar.gz diff --git a/dtrans/source/win32/dtobj/XTDataObject.cxx b/dtrans/source/win32/dtobj/XTDataObject.cxx index 3ca9325a2d3cc..1c13d346aa5a8 100644 --- a/dtrans/source/win32/dtobj/XTDataObject.cxx +++ b/dtrans/source/win32/dtobj/XTDataObject.cxx @@ -25,8 +25,11 @@ #include "DTransHelper.hxx" #include "TxtCnvtHlp.hxx" #include +#include "com/sun/star/awt/AsyncCallback.hpp" +#include "com/sun/star/awt/XCallback.hpp" #include "FmtFilter.hxx" #include +#include #if defined _MSC_VER #pragma warning(push,1) @@ -82,6 +85,28 @@ void SAL_CALL setupStgMedium( const FORMATETC& fetc, OSL_ASSERT( false ); } +/** + We need to destroy XTransferable in the main thread to avoid dead lock + when locking in the clipboard thread. So we transfer the ownership of the + XTransferable reference to this object and release it when the callback + is executed in main thread. +*/ +class AsyncDereference : public cppu::WeakImplHelper +{ + Reference maTransferable; + +public: + AsyncDereference(css::uno::Reference const & rTransferable) + : maTransferable(rTransferable) + {} + + virtual void SAL_CALL notify(css::uno::Any const &) + throw (css::uno::RuntimeException, std::exception) override + { + maTransferable.set(nullptr); + } +}; + // a helper class that will be thrown by the function validateFormatEtc class CInvalidFormatEtcException @@ -174,12 +199,20 @@ CXTDataObject::CXTDataObject( const Reference< XComponentContext >& rxContext, const Reference< XTransferable >& aXTransferable ) : m_nRefCnt( 0 ) , m_XTransferable( aXTransferable ) + , m_XComponentContext( rxContext ) , m_bFormatEtcContainerInitialized( false ) , m_DataFormatTranslator( rxContext ) , m_FormatRegistrar( rxContext, m_DataFormatTranslator ) { } +CXTDataObject::~CXTDataObject() +{ + css::awt::AsyncCallback::create(m_XComponentContext)->addCallback( + new AsyncDereference(m_XTransferable), + css::uno::Any()); +} + // IUnknown->QueryInterface STDMETHODIMP CXTDataObject::QueryInterface( REFIID iid, LPVOID* ppvObject ) diff --git a/dtrans/source/win32/dtobj/XTDataObject.hxx b/dtrans/source/win32/dtobj/XTDataObject.hxx index 8bf3c10ed8c48..db3496dbab24f 100644 --- a/dtrans/source/win32/dtobj/XTDataObject.hxx +++ b/dtrans/source/win32/dtobj/XTDataObject.hxx @@ -64,7 +64,7 @@ class CXTDataObject : public IDataObject public: CXTDataObject( const css::uno::Reference< css::uno::XComponentContext >& rxContext, const css::uno::Reference< css::datatransfer::XTransferable >& aXTransferable ); - virtual ~CXTDataObject() {} + virtual ~CXTDataObject(); // ole interface implementation @@ -103,6 +103,7 @@ private: private: LONG m_nRefCnt; css::uno::Reference< css::datatransfer::XTransferable > m_XTransferable; + css::uno::Reference< css::uno::XComponentContext> m_XComponentContext; CFormatEtcContainer m_FormatEtcContainer; bool m_bFormatEtcContainerInitialized; CDataFormatTranslator m_DataFormatTranslator; diff --git a/dtrans/source/win32/ftransl/ftransl.cxx b/dtrans/source/win32/ftransl/ftransl.cxx index cb62bdd24be4b..3350211d07d69 100644 --- a/dtrans/source/win32/ftransl/ftransl.cxx +++ b/dtrans/source/win32/ftransl/ftransl.cxx @@ -134,7 +134,7 @@ static const std::vector< FormatEntry > g_TranslTable { // SotClipboardFormatId::SIMPLE_FILE FormatEntry("application/x-openoffice-file;windows_formatname=\"FileName\"", "FileName", nullptr, CF_INVALID, CPPUTYPE_DEFAULT), // SotClipboardFormatId::RTF - FormatEntry("text/richtext", "Rich Text Format", nullptr, CF_INVALID, CPPUTYPE_DEFAULT), + FormatEntry("text/rtf", "Rich Text Format", nullptr, CF_INVALID, CPPUTYPE_DEFAULT), // SotClipboardFormatId::DRAWING FormatEntry("application/x-openoffice-drawing;windows_formatname=\"Drawing Format\"", "Drawing Format", nullptr, CF_INVALID, CPPUTYPE_DEFAULT), // SotClipboardFormatId::SVXB @@ -352,6 +352,8 @@ static const std::vector< FormatEntry > g_TranslTable { FormatEntry("application/x-openoffice-dummy3;windows_formatname=\"SO_DUMMYFORMAT_3\"", "SO_DUMMYFORMAT_3", nullptr, CF_INVALID, CPPUTYPE_DEFAULT), //SotClipboardFormatId::DUMMY4 FormatEntry("application/x-openoffice-dummy4;windows_formatname=\"SO_DUMMYFORMAT_4\"", "SO_DUMMYFORMAT_4", nullptr, CF_INVALID, CPPUTYPE_DEFAULT), + // SotClipboardFormatId::RICHTEXT + FormatEntry("text/richtext", "Richtext Format", nullptr, CF_INVALID, CPPUTYPE_DEFAULT), }; namespace { diff --git a/editeng/source/accessibility/AccessibleContextBase.cxx b/editeng/source/accessibility/AccessibleContextBase.cxx index f93e4437bab56..32912aa91cf11 100644 --- a/editeng/source/accessibility/AccessibleContextBase.cxx +++ b/editeng/source/accessibility/AccessibleContextBase.cxx @@ -175,7 +175,6 @@ uno::Reference< XAccessibleContext> SAL_CALL AccessibleContextBase::getAccessibleContext() throw (uno::RuntimeException, std::exception) { - ThrowIfDisposed (); return this; } @@ -188,7 +187,6 @@ sal_Int32 SAL_CALL AccessibleContextBase::getAccessibleChildCount() throw (uno::RuntimeException, std::exception) { - ThrowIfDisposed (); return 0; } @@ -420,7 +418,6 @@ void SAL_CALL AccessibleContextBase::removeAccessibleEventListener ( OUString SAL_CALL AccessibleContextBase::getImplementationName() throw (css::uno::RuntimeException, std::exception) { - ThrowIfDisposed (); return OUString("AccessibleContextBase"); } @@ -434,7 +431,6 @@ uno::Sequence< OUString > SAL_CALL AccessibleContextBase::getSupportedServiceNames() throw (css::uno::RuntimeException, std::exception) { - ThrowIfDisposed (); return { "com.sun.star.accessibility.Accessible", "com.sun.star.accessibility.AccessibleContext"}; @@ -443,17 +439,6 @@ uno::Sequence< OUString > SAL_CALL // XTypeProvider -uno::Sequence< css::uno::Type> - AccessibleContextBase::getTypes() - throw (css::uno::RuntimeException, std::exception) -{ - ThrowIfDisposed (); - - // This class supports no interfaces on its own. Just return those - // supported by the base class. - return WeakComponentImplHelper::getTypes(); -} - uno::Sequence SAL_CALL AccessibleContextBase::getImplementationId() throw (css::uno::RuntimeException, std::exception) diff --git a/editeng/source/editeng/editdoc.hxx b/editeng/source/editeng/editdoc.hxx index 51b9ac2931944..3bdfa017f0fe6 100644 --- a/editeng/source/editeng/editdoc.hxx +++ b/editeng/source/editeng/editdoc.hxx @@ -379,7 +379,7 @@ struct ExtraPortionInfo class TextPortion { private: - ExtraPortionInfo* pExtraInfos; + std::unique_ptr xExtraInfos; sal_Int32 nLen; Size aOutSz; PortionKind nKind; @@ -389,8 +389,7 @@ private: public: TextPortion( sal_Int32 nL ) - : pExtraInfos( nullptr ) - , nLen( nL ) + : nLen( nL ) , aOutSz( -1, -1 ) , nKind( PortionKind::TEXT ) , nRightToLeftLevel( 0 ) @@ -399,8 +398,7 @@ public: } TextPortion( const TextPortion& r ) - : pExtraInfos( nullptr ) - , nLen( r.nLen ) + : nLen( r.nLen ) , aOutSz( r.aOutSz ) , nKind( r.nKind ) , nRightToLeftLevel( r.nRightToLeftLevel ) @@ -427,8 +425,8 @@ public: bool HasValidSize() const { return aOutSz.Width() != (-1); } - ExtraPortionInfo* GetExtraInfos() const { return pExtraInfos; } - void SetExtraInfos( ExtraPortionInfo* p ) { delete pExtraInfos; pExtraInfos = p; } + ExtraPortionInfo* GetExtraInfos() const { return xExtraInfos.get(); } + void SetExtraInfos( ExtraPortionInfo* p ) { xExtraInfos.reset(p); } }; diff --git a/editeng/source/editeng/editview.cxx b/editeng/source/editeng/editview.cxx index 32450049235e6..a246587bac451 100644 --- a/editeng/source/editeng/editview.cxx +++ b/editeng/source/editeng/editview.cxx @@ -976,7 +976,18 @@ void EditView::ExecuteSpellPopup( const Point& rPosPixel, LinkGetWindow()->OutputToScreenPixel( aScreenPos ); aTempRect = pImpEditView->GetWindow()->LogicToPixel( Rectangle(aScreenPos, aTempRect.GetSize() )); + //tdf#106123 store and restore the EditPaM around the menu Execute + //because the loss of focus in the current editeng causes writer + //annotations to save their contents, making the pContent of the + //current EditPams invalid + EPaM aP = pImpEditView->pEditEngine->pImpEditEngine->CreateEPaM(aPaM); + EPaM aP2 = pImpEditView->pEditEngine->pImpEditEngine->CreateEPaM(aPaM2); + sal_uInt16 nId = aPopupMenu->Execute( pImpEditView->GetWindow(), aTempRect, PopupMenuFlags::NoMouseUpClose ); + + aPaM2 = pImpEditView->pEditEngine->pImpEditEngine->CreateEditPaM(aP2); + aPaM = pImpEditView->pEditEngine->pImpEditEngine->CreateEditPaM(aP); + if ( nId == MN_IGNORE ) { OUString aWord = pImpEditView->SpellIgnoreWord(); diff --git a/editeng/source/editeng/eeobj.cxx b/editeng/source/editeng/eeobj.cxx index 7347fa3f9ca8d..c72354e3bb16a 100644 --- a/editeng/source/editeng/eeobj.cxx +++ b/editeng/source/editeng/eeobj.cxx @@ -57,7 +57,7 @@ uno::Any EditDataObject::getTransferData( const datatransfer::DataFlavor& rFlavo { aAny <<= GetString(); } - else if ( ( nT == SotClipboardFormatId::EDITENGINE ) || ( nT == SotClipboardFormatId::RTF ) ) + else if ( ( nT == SotClipboardFormatId::EDITENGINE ) || ( nT == SotClipboardFormatId::RTF ) || ( nT == SotClipboardFormatId::RICHTEXT ) ) { // No RTF on demand any more: // 1) Was not working, because I had to flush() the clipboard immediately anyway @@ -84,10 +84,11 @@ uno::Any EditDataObject::getTransferData( const datatransfer::DataFlavor& rFlavo uno::Sequence< datatransfer::DataFlavor > EditDataObject::getTransferDataFlavors( ) throw(uno::RuntimeException, std::exception) { - uno::Sequence< datatransfer::DataFlavor > aDataFlavors(3); + uno::Sequence< datatransfer::DataFlavor > aDataFlavors(4); SotExchange::GetFormatDataFlavor( SotClipboardFormatId::EDITENGINE, aDataFlavors.getArray()[0] ); SotExchange::GetFormatDataFlavor( SotClipboardFormatId::STRING, aDataFlavors.getArray()[1] ); SotExchange::GetFormatDataFlavor( SotClipboardFormatId::RTF, aDataFlavors.getArray()[2] ); + SotExchange::GetFormatDataFlavor( SotClipboardFormatId::RICHTEXT, aDataFlavors.getArray()[3] ); return aDataFlavors; } @@ -97,7 +98,8 @@ sal_Bool EditDataObject::isDataFlavorSupported( const datatransfer::DataFlavor& bool bSupported = false; SotClipboardFormatId nT = SotExchange::GetFormat( rFlavor ); - if ( ( nT == SotClipboardFormatId::STRING ) || ( nT == SotClipboardFormatId::RTF ) || ( nT == SotClipboardFormatId::EDITENGINE ) ) + if ( ( nT == SotClipboardFormatId::STRING ) || ( nT == SotClipboardFormatId::RTF ) || ( nT == SotClipboardFormatId::RICHTEXT ) + || ( nT == SotClipboardFormatId::EDITENGINE ) ) bSupported = true; return bSupported; diff --git a/editeng/source/editeng/eerdll.cxx b/editeng/source/editeng/eerdll.cxx index f1bf58cd07c11..b9aa26dcc9f43 100644 --- a/editeng/source/editeng/eerdll.cxx +++ b/editeng/source/editeng/eerdll.cxx @@ -70,6 +70,7 @@ #include #include #include +#include using namespace ::com::sun::star; @@ -83,9 +84,11 @@ EditDLL& EditDLL::Get() return theEditDLL::get(); } -GlobalEditData::GlobalEditData() +GlobalEditData::GlobalEditData() : + ppDefItems(nullptr), + mpVirDev(VclPtr::Create()) { - ppDefItems = nullptr; + mpVirDev->SetMapMode(MapUnit::MapTwip); } GlobalEditData::~GlobalEditData() @@ -193,6 +196,11 @@ uno::Reference< linguistic2::XLanguageGuessing > const & GlobalEditData::GetLang return xLanguageGuesser; } +VclPtr GlobalEditData::GetStdVirtualDevice() +{ + return mpVirDev; +} + EditResId::EditResId(sal_uInt16 nId) : ResId(nId, *EditDLL::GetResMgr()) { diff --git a/editeng/source/editeng/eerdll2.hxx b/editeng/source/editeng/eerdll2.hxx index ffb96fe0aa19b..615783b05990d 100644 --- a/editeng/source/editeng/eerdll2.hxx +++ b/editeng/source/editeng/eerdll2.hxx @@ -25,6 +25,7 @@ #include class SfxPoolItem; +class VirtualDevice; class GlobalEditData { @@ -33,6 +34,7 @@ private: SfxPoolItem** ppDefItems; rtl::Reference xForbiddenCharsTable; + VclPtr mpVirDev; public: GlobalEditData(); @@ -43,6 +45,8 @@ public: rtl::Reference const & GetForbiddenCharsTable(); void SetForbiddenCharsTable( rtl::Reference const & xForbiddenChars ) { xForbiddenCharsTable = xForbiddenChars; } css::uno::Reference< css::linguistic2::XLanguageGuessing > const & GetLanguageGuesser(); + + VclPtr GetStdVirtualDevice(); }; #endif // INCLUDED_EDITENG_SOURCE_EDITENG_EERDLL2_HXX diff --git a/editeng/source/editeng/impedit.cxx b/editeng/source/editeng/impedit.cxx index eeacfe0bdb4c0..f76bd36fecb6b 100644 --- a/editeng/source/editeng/impedit.cxx +++ b/editeng/source/editeng/impedit.cxx @@ -1521,9 +1521,14 @@ void ImpEditView::Paste( css::uno::Reference< css::datatransfer::clipboard::XCli } else { + // Prevent notifications of paragraph inserts et al that would trigger + // a11y to format content in a half-ready state when obtaining + // paragraphs. Collect and broadcast when done instead. + pEditEngine->pImpEditEngine->EnterBlockNotifications(); aSel = pEditEngine->InsertText( xDataObj, OUString(), aSel.Min(), bUseSpecial && pEditEngine->GetInternalEditStatus().AllowPasteSpecial()); + pEditEngine->pImpEditEngine->LeaveBlockNotifications(); } aPasteOrDropInfos.nEndPara = pEditEngine->GetEditDoc().GetPos( aSel.Max().GetNode() ); @@ -1723,6 +1728,7 @@ void ImpEditView::dragGestureRecognized(const css::datatransfer::dnd::DragGestur SolarMutexGuard aVclGuard; + delete pDragAndDropInfo; pDragAndDropInfo = nullptr; Point aMousePosPixel( rDGE.DragOriginX, rDGE.DragOriginY ); diff --git a/editeng/source/editeng/impedit.hxx b/editeng/source/editeng/impedit.hxx index b76fa58b749bd..84f961823b132 100644 --- a/editeng/source/editeng/impedit.hxx +++ b/editeng/source/editeng/impedit.hxx @@ -132,6 +132,10 @@ struct DragAndDropInfo bHasValidData = false; bUndoAction = false; bOutlinerMode = false; nSensibleRange = 0; nCursorWidth = 0; pField = nullptr; nOutlinerDropDest = 0; bDragAccepted = false; } + ~DragAndDropInfo() + { + pBackground.disposeAndClear(); + } }; struct ImplIMEInfos @@ -421,6 +425,7 @@ private: VclPtr< VirtualDevice> pVirtDev; VclPtr< OutputDevice > pRefDev; + VclPtr mpOwnDev; svtools::ColorConfig* pColorConfig; mutable SvtCTLOptions* pCTLOptions; @@ -506,7 +511,6 @@ private: bool bIsInUndo:1; bool bUpdate:1; bool bUndoEnabled:1; - bool bOwnerOfRefDev:1; bool bDowning:1; bool bUseAutoColor:1; bool bForceAutoColor:1; diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx index 4de0042675fca..bb0d71ad39d8b 100644 --- a/editeng/source/editeng/impedit2.cxx +++ b/editeng/source/editeng/impedit2.cxx @@ -95,7 +95,6 @@ ImpEditEngine::ImpEditEngine( EditEngine* pEE, SfxItemPool* pItemPool ) : bIsInUndo(false), bUpdate(true), bUndoEnabled(true), - bOwnerOfRefDev(false), bDowning(false), bUseAutoColor(true), bForceAutoColor(false), @@ -174,6 +173,7 @@ ImpEditEngine::~ImpEditEngine() bDowning = true; SetUpdateMode( false ); + mpOwnDev.disposeAndClear(); pVirtDev.disposeAndClear(); delete pEmptyItemSet; delete pUndoManager; @@ -181,26 +181,15 @@ ImpEditEngine::~ImpEditEngine() delete mpIMEInfos; delete pColorConfig; delete pCTLOptions; - if ( bOwnerOfRefDev ) - pRefDev.disposeAndClear(); delete pSpellInfo; } void ImpEditEngine::SetRefDevice( OutputDevice* pRef ) { - if ( bOwnerOfRefDev ) - pRefDev.disposeAndClear(); - - if ( !pRef ) - { - pRefDev = VclPtr::Create(); - pRefDev->SetMapMode( MapUnit::MapTwip ); - bOwnerOfRefDev = true; - } else - { + if (pRef) pRefDev = pRef; - bOwnerOfRefDev = false; - } + else + pRefDev = EditDLL::Get().GetGlobalData()->GetStdVirtualDevice(); nOnePixelInRef = (sal_uInt16)pRefDev->PixelToLogic( Size( 1, 0 ) ).Width(); @@ -216,13 +205,12 @@ void ImpEditEngine::SetRefMapMode( const MapMode& rMapMode ) if ( GetRefDevice()->GetMapMode() == rMapMode ) return; - if ( !bOwnerOfRefDev ) - { - pRefDev = VclPtr::Create(); - pRefDev->SetMapMode( MapUnit::MapTwip ); - SetRefDevice( pRefDev ); - bOwnerOfRefDev = true; - } + mpOwnDev.disposeAndClear(); + mpOwnDev = VclPtr::Create(); + pRefDev = mpOwnDev; + pRefDev->SetMapMode( MapUnit::MapTwip ); + SetRefDevice( pRefDev ); + pRefDev->SetMapMode( rMapMode ); nOnePixelInRef = (sal_uInt16)pRefDev->PixelToLogic( Size( 1, 0 ) ).Width(); if ( IsFormatted() ) @@ -1753,18 +1741,21 @@ sal_uInt16 ImpEditEngine::GetI18NScriptType( const EditPaM& rPaM, sal_Int32* pEn { sal_Int32 nPara = GetEditDoc().GetPos( rPaM.GetNode() ); const ParaPortion* pParaPortion = GetParaPortions().SafeGetObject( nPara ); - if ( pParaPortion->aScriptInfos.empty() ) - const_cast(this)->InitScriptTypes( nPara ); + if (pParaPortion) + { + if ( pParaPortion->aScriptInfos.empty() ) + const_cast(this)->InitScriptTypes( nPara ); - const ScriptTypePosInfos& rTypes = pParaPortion->aScriptInfos; + const ScriptTypePosInfos& rTypes = pParaPortion->aScriptInfos; - const sal_Int32 nPos = rPaM.GetIndex(); - ScriptTypePosInfos::const_iterator itr = std::find_if(rTypes.begin(), rTypes.end(), FindByPos(nPos)); - if(itr != rTypes.end()) - { - nScriptType = itr->nScriptType; - if( pEndPos ) - *pEndPos = itr->nEndPos; + const sal_Int32 nPos = rPaM.GetIndex(); + ScriptTypePosInfos::const_iterator itr = std::find_if(rTypes.begin(), rTypes.end(), FindByPos(nPos)); + if(itr != rTypes.end()) + { + nScriptType = itr->nScriptType; + if( pEndPos ) + *pEndPos = itr->nEndPos; + } } } return nScriptType ? nScriptType : SvtLanguageOptions::GetI18NScriptTypeOfLanguage( GetDefaultLanguage() ); @@ -2708,7 +2699,6 @@ EditPaM ImpEditEngine::ImpInsertText(const EditSelection& aCurSel, const OUStrin } ParaPortion* pPortion = FindParaPortion( aPaM.GetNode() ); OSL_ENSURE( pPortion, "Blind Portion in InsertText" ); - pPortion->SetMustRepaint(true); if ( GetStatus().DoOnlineSpelling() ) { @@ -3490,8 +3480,17 @@ EditSelection ImpEditEngine::InsertText( uno::Reference< datatransfer::XTransfer { // RTF SotExchange::GetFormatDataFlavor( SotClipboardFormatId::RTF, aFlavor ); - if ( rxDataObj->isDataFlavorSupported( aFlavor ) ) + // RICHTEXT + datatransfer::DataFlavor aFlavorRichtext; + SotExchange::GetFormatDataFlavor( SotClipboardFormatId::RICHTEXT, aFlavorRichtext ); + bool bRtfSupported = rxDataObj->isDataFlavorSupported( aFlavor ); + bool bRichtextSupported = rxDataObj->isDataFlavorSupported( aFlavorRichtext ); + if ( bRtfSupported || bRichtextSupported ) { + if(bRichtextSupported) + { + aFlavor = aFlavorRichtext; + } try { uno::Any aData = rxDataObj->getTransferData( aFlavor ); @@ -3587,11 +3586,12 @@ Range ImpEditEngine::GetInvalidYOffsets( ParaPortion* pPortion ) aRange.Max() += rL.GetHeight(); } - if( ( rLSItem.GetInterLineSpaceRule() == SvxInterLineSpaceRule::Prop ) && rLSItem.GetPropLineSpace() && - ( rLSItem.GetPropLineSpace() < 100 ) ) + sal_uInt16 nPropLineSpace = rLSItem.GetPropLineSpace(); + if ( ( rLSItem.GetInterLineSpaceRule() == SvxInterLineSpaceRule::Prop ) + && nPropLineSpace && ( nPropLineSpace < 100 ) ) { const EditLine& rL = pPortion->GetLines()[nFirstInvalid]; - long n = rL.GetTxtHeight() * ( 100L - rLSItem.GetPropLineSpace() ); + long n = rL.GetTxtHeight() * ( 100L - nPropLineSpace ); n /= 100; aRange.Min() -= n; aRange.Max() += n; diff --git a/editeng/source/editeng/impedit3.cxx b/editeng/source/editeng/impedit3.cxx index 81ef5db095b87..cb3723dcf1c49 100644 --- a/editeng/source/editeng/impedit3.cxx +++ b/editeng/source/editeng/impedit3.cxx @@ -893,14 +893,32 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) // search for Portion that no longer fits in line .... TextPortion* pPortion = nullptr; + sal_Int32 nPortionLen = 0; + bool bContinueLastPortion = false; bool bBrokenLine = false; bLineBreak = false; const EditCharAttrib* pNextFeature = pNode->GetCharAttribs().FindFeature( pLine->GetStart() ); - while ( ( nTmpWidth < nXWidth ) && !bEOL && ( nTmpPortion < pParaPortion->GetTextPortions().Count() ) ) + while ( ( nTmpWidth < nXWidth ) && !bEOL ) { + const sal_Int32 nTextPortions = pParaPortion->GetTextPortions().Count(); + assert(nTextPortions > 0); + bContinueLastPortion = (nTmpPortion >= nTextPortions); + if (bContinueLastPortion) + { + if (nTmpPos >= pNode->Len()) + break; // while + + // Continue with remainder. This only to have *some* valid + // X-values and not endlessly create new lines until DOOM.. + // Happened in the scenario of tdf#104152 where inserting a + // paragraph lead to a11y attempting to format the doc to + // obtain content when notified. + nTmpPortion = nTextPortions - 1; + } + nPortionStart = nTmpPos; pPortion = &pParaPortion->GetTextPortions()[nTmpPortion]; - if ( pPortion->GetKind() == PortionKind::HYPHENATOR ) + if ( !bContinueLastPortion && pPortion->GetKind() == PortionKind::HYPHENATOR ) { // Throw away a Portion, if necessary correct the one before, // if the Hyph portion has swallowed a character ... @@ -920,11 +938,25 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) DBG_ASSERT( nTmpPortion < pParaPortion->GetTextPortions().Count(), "No more Portions left!" ); pPortion = &pParaPortion->GetTextPortions()[nTmpPortion]; } + + if (bContinueLastPortion) + { + // Note that this may point behind the portion and is only to + // be used with the node's string offsets to generate X-values. + nPortionLen = pNode->Len() - nPortionStart; + } + else + { + nPortionLen = pPortion->GetLen(); + } + DBG_ASSERT( pPortion->GetKind() != PortionKind::HYPHENATOR, "CreateLines: Hyphenator-Portion!" ); - DBG_ASSERT( pPortion->GetLen() || bProcessingEmptyLine, "Empty Portion in CreateLines ?!" ); + DBG_ASSERT( nPortionLen || bProcessingEmptyLine, "Empty Portion in CreateLines ?!" ); (void)bProcessingEmptyLine; if ( pNextFeature && ( pNextFeature->GetStart() == nTmpPos ) ) { + SAL_WARN_IF( bContinueLastPortion, + "editeng","ImpEditEngine::CreateLines - feature in continued portion will be wrong"); sal_uInt16 nWhich = pNextFeature->GetItem()->Which(); switch ( nWhich ) { @@ -1068,36 +1100,48 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) } else { - DBG_ASSERT( pPortion->GetLen() || bProcessingEmptyLine, "Empty Portion - Extra Space?!" ); + DBG_ASSERT( nPortionLen || bProcessingEmptyLine, "Empty Portion - Extra Space?!" ); (void)bProcessingEmptyLine; SeekCursor( pNode, nTmpPos+1, aTmpFont ); aTmpFont.SetPhysFont( GetRefDevice() ); ImplInitDigitMode(GetRefDevice(), aTmpFont.GetLanguage()); - pPortion->SetRightToLeftLevel( GetRightToLeft( nPara, nTmpPos+1 ) ); + if (!bContinueLastPortion) + pPortion->SetRightToLeftLevel( GetRightToLeft( nPara, nTmpPos+1 ) ); if ( bCalcCharPositions || !pPortion->HasValidSize() ) { - pPortion->GetSize() = aTmpFont.QuickGetTextSize( GetRefDevice(), pParaPortion->GetNode()->GetString(), nTmpPos, pPortion->GetLen(), pBuf.get() ); + if (bContinueLastPortion) + { + Size aSize( aTmpFont.QuickGetTextSize( GetRefDevice(), + pParaPortion->GetNode()->GetString(), nTmpPos, nPortionLen, pBuf.get() )); + pPortion->GetSize().Width() += aSize.Width(); + if (pPortion->GetSize().Height() < aSize.Height()) + pPortion->GetSize().Height() = aSize.Height(); + } + else + { + pPortion->GetSize() = aTmpFont.QuickGetTextSize( GetRefDevice(), + pParaPortion->GetNode()->GetString(), nTmpPos, nPortionLen, pBuf.get() ); + } // #i9050# Do Kerning also behind portions... - if ( ( aTmpFont.GetFixKerning() > 0 ) && ( ( nTmpPos + pPortion->GetLen() ) < pNode->Len() ) ) + if ( ( aTmpFont.GetFixKerning() > 0 ) && ( ( nTmpPos + nPortionLen ) < pNode->Len() ) ) pPortion->GetSize().Width() += aTmpFont.GetFixKerning(); if ( IsFixedCellHeight() ) pPortion->GetSize().Height() = ImplCalculateFontIndependentLineSpacing( aTmpFont.GetFontHeight() ); } if ( bCalcCharPositions ) { - sal_Int32 nLen = pPortion->GetLen(); // The array is generally flattened at the beginning // => Always simply quick inserts. size_t nPos = nTmpPos - pLine->GetStart(); EditLine::CharPosArrayType& rArray = pLine->GetCharPosArray(); - rArray.insert(rArray.begin()+nPos, pBuf.get(), pBuf.get()+nLen); + rArray.insert( rArray.begin() + nPos, pBuf.get(), pBuf.get() + nPortionLen); } // And now check for Compression: - if ( pPortion->GetLen() && GetAsianCompressionMode() ) + if ( !bContinueLastPortion && nPortionLen && GetAsianCompressionMode() ) { EditLine::CharPosArrayType& rArray = pLine->GetCharPosArray(); long* pDXArray = rArray.data() + nTmpPos - pLine->GetStart(); @@ -1107,7 +1151,7 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) nTmpWidth += pPortion->GetSize().Width(); - sal_Int32 _nPortionEnd = nTmpPos + pPortion->GetLen(); + sal_Int32 _nPortionEnd = nTmpPos + nPortionLen; if( bScriptSpace && ( _nPortionEnd < pNode->Len() ) && ( nTmpWidth < nXWidth ) && IsScriptChange( EditPaM( pNode, _nPortionEnd ) ) ) { bool bAllow = false; @@ -1146,7 +1190,7 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) else if ( aCurrentTab.aTabStop.GetAdjustment() == SvxTabAdjust::Decimal ) { OUString aText = GetSelected( EditSelection( EditPaM( pParaPortion->GetNode(), nTmpPos ), - EditPaM( pParaPortion->GetNode(), nTmpPos + pPortion->GetLen() ) ) ); + EditPaM( pParaPortion->GetNode(), nTmpPos + nPortionLen ) ) ); sal_Int32 nDecPos = aText.indexOf( aCurrentTab.aTabStop.GetDecimal() ); if ( nDecPos != -1 ) { @@ -1170,7 +1214,7 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) nTmpWidth = aCurrentTab.nStartPosX + rTabPortion.GetSize().Width() + nWidthAfterTab; } - nTmpPos = nTmpPos + pPortion->GetLen(); + nTmpPos = nTmpPos + nPortionLen; nPortionEnd = nTmpPos; nTmpPortion++; if ( aStatus.OneCharPerLine() ) @@ -1186,7 +1230,7 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) if ( aStatus.OneCharPerLine() ) { // State before Portion (apart from nTmpWidth): - nTmpPos -= pPortion ? pPortion->GetLen() : 0; + nTmpPos -= pPortion ? nPortionLen : 0; nPortionStart = nTmpPos; nTmpPortion--; @@ -1198,7 +1242,7 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) nTmpPortion++; nPortionEnd = nTmpPortion; // one Non-Feature-Portion has to be wrapped - if ( pPortion && pPortion->GetLen() > 1 ) + if ( pPortion && nPortionLen > 1 ) { DBG_ASSERT( pPortion->GetKind() == PortionKind::TEXT, "Len>1, but no TextPortion?" ); nTmpWidth -= pPortion->GetSize().Width(); @@ -1209,7 +1253,7 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) else if ( nTmpWidth >= nXWidth ) { nPortionEnd = nTmpPos; - nTmpPos -= pPortion ? pPortion->GetLen() : 0; + nTmpPos -= pPortion ? nPortionLen : 0; nPortionStart = nTmpPos; nTmpPortion--; bEOL = false; @@ -1263,7 +1307,7 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) pLine->SetEndPortion( nTmpPortion-1 ); bEOC = false; // was set above, maybe change the sequence of the if's? } - else if ( !bEOL ) + else if ( !bEOL && !bContinueLastPortion ) { DBG_ASSERT( pPortion && ((nPortionEnd-nPortionStart) == pPortion->GetLen()), "However, another portion?!" ); long nRemainingWidth = nMaxLineWidth - nTmpWidth; @@ -1354,24 +1398,34 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) } else if ( rLSItem.GetInterLineSpaceRule() == SvxInterLineSpaceRule::Prop ) { - if ( nPara || pLine->GetStartPortion() ) // Not the very first line + // There are documents with PropLineSpace 0, why? + // (cmc: re above question :-) such documents can be seen by importing a .ppt + if ( rLSItem.GetPropLineSpace() && ( rLSItem.GetPropLineSpace() < 100 ) ) { - // There are documents with PropLineSpace 0, why? - // (cmc: re above question :-) such documents can be seen by importing a .ppt - if ( rLSItem.GetPropLineSpace() && ( rLSItem.GetPropLineSpace() != 100 ) ) + // Adapted code from sw/source/core/text/itrform2.cxx + sal_uInt16 nPropLineSpace = rLSItem.GetPropLineSpace(); + sal_uInt16 nAscent = pLine->GetMaxAscent(); + sal_uInt16 nNewAscent = pLine->GetTxtHeight() * nPropLineSpace / 100 * 4 / 5; // 80% + if ( !nAscent || nAscent > nNewAscent ) { - sal_uInt16 nTxtHeight = pLine->GetHeight(); - sal_Int32 nH = nTxtHeight; - nH *= rLSItem.GetPropLineSpace(); - nH /= 100; - // The Ascent has to be adjusted for the difference: - long nDiff = pLine->GetHeight() - nH; - if ( nDiff > pLine->GetMaxAscent() ) - nDiff = pLine->GetMaxAscent(); - pLine->SetMaxAscent( (sal_uInt16)(pLine->GetMaxAscent() - nDiff) ); - pLine->SetHeight( (sal_uInt16)nH, nTxtHeight ); + sal_uInt16 nHeight = pLine->GetHeight() * nPropLineSpace / 100; + pLine->SetHeight( nHeight, pLine->GetTxtHeight() ); + pLine->SetMaxAscent( nNewAscent ); } } + else if ( rLSItem.GetPropLineSpace() && ( rLSItem.GetPropLineSpace() != 100 ) ) + { + sal_uInt16 nTxtHeight = pLine->GetHeight(); + sal_Int32 nH = nTxtHeight; + nH *= rLSItem.GetPropLineSpace(); + nH /= 100; + // The Ascent has to be adjusted for the difference: + long nDiff = pLine->GetHeight() - nH; + if ( nDiff > pLine->GetMaxAscent() ) + nDiff = pLine->GetMaxAscent(); + pLine->SetMaxAscent( (sal_uInt16)( pLine->GetMaxAscent() - nDiff ) * 4 / 5 ); // 80% + pLine->SetHeight( (sal_uInt16)nH, nTxtHeight ); + } } } diff --git a/editeng/source/editeng/impedit4.cxx b/editeng/source/editeng/impedit4.cxx index dde54ad48dc4b..b0264d4f00b4c 100644 --- a/editeng/source/editeng/impedit4.cxx +++ b/editeng/source/editeng/impedit4.cxx @@ -2722,6 +2722,10 @@ EditSelection ImpEditEngine::TransliterateText( const EditSelection& rSelection, if ( !aSel.HasRange() ) aSel = SelectWord( aSel ); + // tdf#107176: if there's still no range, just return aSel + if ( !aSel.HasRange() ) + return aSel; + EditSelection aNewSel( aSel ); const sal_Int32 nStartNode = aEditDoc.GetPos( aSel.Min().GetNode() ); diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx index fafb4be81ebc7..27d721f2ab486 100644 --- a/editeng/source/misc/svxacorr.cxx +++ b/editeng/source/misc/svxacorr.cxx @@ -113,13 +113,13 @@ static inline bool IsAutoCapitalizeWordDelim( const sal_Unicode c ) static inline bool IsLowerLetter( sal_Int32 nCharType ) { return CharClass::isLetterType( nCharType ) && - 0 == ( css::i18n::KCharacterType::UPPER & nCharType); + ( css::i18n::KCharacterType::LOWER & nCharType); } static inline bool IsUpperLetter( sal_Int32 nCharType ) { return CharClass::isLetterType( nCharType ) && - 0 == ( css::i18n::KCharacterType::LOWER & nCharType); + ( css::i18n::KCharacterType::UPPER & nCharType); } bool lcl_IsUnsupportedUnicodeChar( CharClass& rCC, const OUString& rTxt, @@ -424,7 +424,7 @@ bool SvxAutoCorrect::FnCapitalStartWord( SvxAutoCorrDoc& rDoc, const OUString& r if( xSpeller->hasLanguage(eLang) ) { Sequence< css::beans::PropertyValue > aEmptySeq; - if (!xSpeller->spell(sWord, eLang, aEmptySeq).is()) + if (xSpeller->isValid(sWord, eLang, aEmptySeq)) { return false; } @@ -1564,7 +1564,7 @@ bool SvxAutoCorrect::CreateLanguageFile( const LanguageTag& rLanguageTag, bool b tools::Time nMinTime( 0, 2 ), nAktTime( tools::Time::SYSTEM ), nLastCheckTime( tools::Time::EMPTY ); - std::map::iterator nFndPos = aLastFileTable.find(rLanguageTag); + auto nFndPos = aLastFileTable.find(rLanguageTag); if(nFndPos != aLastFileTable.end() && (nLastCheckTime.SetTime(nFndPos->second), nLastCheckTime < nAktTime) && nAktTime - nLastCheckTime < nMinTime) diff --git a/embeddedobj/source/msole/oleembed.cxx b/embeddedobj/source/msole/oleembed.cxx index 91bc27c0ec782..e26875732ef35 100644 --- a/embeddedobj/source/msole/oleembed.cxx +++ b/embeddedobj/source/msole/oleembed.cxx @@ -665,18 +665,25 @@ sal_Int32 SAL_CALL OleEmbeddedObject::getCurrentState() namespace { #ifndef _WIN32 - bool lcl_CopyStream(const uno::Reference& xIn, const uno::Reference& xOut) + bool lcl_CopyStream(const uno::Reference& xIn, const uno::Reference& xOut, sal_Int32 nMaxCopy = SAL_MAX_INT32) { + if (nMaxCopy == 0) + return false; + const sal_Int32 nChunkSize = 4096; uno::Sequence< sal_Int8 > aData(nChunkSize); sal_Int32 nTotalRead = 0; sal_Int32 nRead; do { - nRead = xIn->readBytes(aData, nChunkSize); + if (nTotalRead + aData.getLength() > nMaxCopy) + { + aData.realloc(nMaxCopy - nTotalRead); + } + nRead = xIn->readBytes(aData, aData.getLength()); nTotalRead += nRead; xOut->writeBytes(aData); - } while (nRead == nChunkSize); + } while (nRead == nChunkSize && nTotalRead <= nMaxCopy); return nTotalRead != 0; } #endif @@ -704,17 +711,78 @@ namespace "com.sun.star.embed.OLESimpleStorage", aArgs ), uno::UNO_QUERY_THROW ); - uno::Reference< io::XStream > xCONTENTS; - try + //various stream names that can contain the real document contents for + //this object in a straightforward direct way + static const OUStringLiteral aStreamNames[] = { - xNameContainer->getByName("CONTENTS") >>= xCONTENTS; - } - catch (container::NoSuchElementException const&) + OUStringLiteral("CONTENTS"), + OUStringLiteral("Package"), + OUStringLiteral("EmbeddedOdf"), + OUStringLiteral("WordDocument"), + OUStringLiteral("Workbook"), + OUStringLiteral("PowerPoint Document") + }; + + bool bCopied = false; + for (size_t i = 0; i < SAL_N_ELEMENTS(aStreamNames) && !bCopied; ++i) { - // ignore + uno::Reference xEmbeddedFile; + try + { + xNameContainer->getByName(aStreamNames[i]) >>= xEmbeddedFile; + } + catch (const container::NoSuchElementException&) + { + // ignore + } + bCopied = xEmbeddedFile.is() && lcl_CopyStream(xEmbeddedFile->getInputStream(), xStream->getOutputStream()); } - bool bCopied = xCONTENTS.is() && lcl_CopyStream(xCONTENTS->getInputStream(), xStream->getOutputStream()); + if (!bCopied) + { + uno::Reference< io::XStream > xOle10Native; + try + { + xNameContainer->getByName("\1Ole10Native") >>= xOle10Native; + } + catch (container::NoSuchElementException const&) + { + // ignore + } + if (xOle10Native.is()) + { + const uno::Reference xIn = xOle10Native->getInputStream(); + xIn->skipBytes(4); //size of the entire stream minus 4 bytes + xIn->skipBytes(2); //word that represent the directory type + uno::Sequence< sal_Int8 > aData(1); + sal_Int32 nRead; + do + { + nRead = xIn->readBytes(aData, 1); + } while (nRead == 1 && aData[0] != 0); // file name plus extension of the attachment null terminated + do + { + nRead = xIn->readBytes(aData, 1); + } while (nRead == 1 && aData[0] != 0); // Fully Qualified File name with extension + xIn->skipBytes(1); //single byte + xIn->skipBytes(1); //single byte + xIn->skipBytes(2); //Word that represent the directory type + xIn->skipBytes(4); //len of string + do + { + nRead = xIn->readBytes(aData, 1); + } while (nRead == 1 && aData[0] != 0); // Actual string representing the file path + uno::Sequence< sal_Int8 > aLenData(4); + xIn->readBytes(aLenData, 4); //len of attachment + sal_uInt32 nLen = static_cast( + (aLenData[0] & 0xFF) | + ((aLenData[1] & 0xFF) << 8) | + ((aLenData[2] & 0xFF) << 16) | + ((aLenData[3] & 0xFF) << 24)); + + bCopied = lcl_CopyStream(xIn, xStream->getOutputStream(), nLen); + } + } uno::Reference< io::XSeekable > xSeekableStor(xObjectStream, uno::UNO_QUERY); if (xSeekableStor.is()) @@ -862,7 +930,7 @@ void SAL_CALL OleEmbeddedObject::doVerb( sal_Int32 nVerbID ) } } - if ( m_aFilterName != "Text" && (!m_pOwnView || !m_pOwnView->Open()) ) + if (!m_pOwnView || !m_pOwnView->Open()) { //Make a RO copy and see if the OS can find something to at //least display the content for us diff --git a/extensions/source/propctrlr/browserlistbox.cxx b/extensions/source/propctrlr/browserlistbox.cxx index 9d6b899ce0e25..93e901f981316 100644 --- a/extensions/source/propctrlr/browserlistbox.cxx +++ b/extensions/source/propctrlr/browserlistbox.cxx @@ -332,9 +332,11 @@ namespace pcr ,m_bUpdate(true) ,m_pControlContextImpl( new PropertyControlContext_Impl( *this ) ) { - ScopedVclPtrInstance< ListBox > aListBox(this,WB_DROPDOWN); - aListBox->SetPosSizePixel(Point(0,0),Size(100,100)); - m_nRowHeight = aListBox->GetSizePixel().Height()+2; + ScopedVclPtrInstance aListBox(this, WB_DROPDOWN); + ScopedVclPtrInstance aEditBox(this); + m_nRowHeight = std::max(aListBox->get_preferred_size().Height(), + aEditBox->get_preferred_size().Height()); + m_nRowHeight += 2; SetBackground( pParent->GetBackground() ); m_aLinesPlayground->SetBackground( GetBackground() ); @@ -345,7 +347,6 @@ namespace pcr m_aVScroll->SetScrollHdl(LINK(this, OBrowserListBox, ScrollHdl)); } - OBrowserListBox::~OBrowserListBox() { disposeOnce(); diff --git a/extensions/source/propctrlr/formcomponenthandler.cxx b/extensions/source/propctrlr/formcomponenthandler.cxx index 43fdf3ed956ee..1887a55f43acc 100644 --- a/extensions/source/propctrlr/formcomponenthandler.cxx +++ b/extensions/source/propctrlr/formcomponenthandler.cxx @@ -1369,7 +1369,7 @@ namespace pcr if ( ( aProperty.Attributes & PropertyAttribute::MAYBEVOID ) != 0 ) { // insert the string "Default" string, if necessary - if ( bNeedDefaultStringIfVoidAllowed || ( nControlType == PropertyControlType::ColorListBox ) ) + if (bNeedDefaultStringIfVoidAllowed) { Reference< XStringListControl > xStringList( aDescriptor.Control, UNO_QUERY_THROW ); xStringList->prependListEntry( m_sDefaultValueString ); diff --git a/extensions/source/propctrlr/standardcontrol.cxx b/extensions/source/propctrlr/standardcontrol.cxx index af15abfb508e0..b99445c6e3151 100644 --- a/extensions/source/propctrlr/standardcontrol.cxx +++ b/extensions/source/propctrlr/standardcontrol.cxx @@ -642,47 +642,27 @@ namespace pcr #define LB_DEFAULT_COUNT 20 - OUString MakeHexStr(sal_uInt32 nVal, sal_Int32 nLength) - { - OUStringBuffer aStr; - while (nVal>0) - { - char c = char(nVal & 0x000F); - nVal >>= 4; - if (c<=9) c += '0'; - else c += 'A' - 10; - aStr.insert(0, c); - } - while (aStr.getLength() < nLength) aStr.insert(0, '0'); - return aStr.makeStringAndClear(); - } - OColorControl::OColorControl(vcl::Window* pParent, WinBits nWinStyle) : OColorControl_Base(PropertyControlType::ColorListBox, pParent, nWinStyle) { + getTypedControlWindow()->SetSlotId(SID_FM_CTL_PROPERTIES); } void SAL_CALL OColorControl::setValue( const Any& _rValue ) throw (IllegalTypeException, RuntimeException, std::exception) { - if ( _rValue.hasValue() ) - { - css::util::Color nColor = COL_TRANSPARENT; + css::util::Color nColor = COL_TRANSPARENT; + if (_rValue.hasValue()) _rValue >>= nColor; - ::Color aRgbCol((ColorData)nColor); - getTypedControlWindow()->SelectEntry(std::make_pair(aRgbCol, MakeHexStr(nColor, 8))); - } - else - getTypedControlWindow()->SetNoSelection(); + getTypedControlWindow()->SelectEntry(::Color((ColorData)nColor)); } Any SAL_CALL OColorControl::getValue() throw (RuntimeException, std::exception) { Any aPropValue; - if (!getTypedControlWindow()->IsNoSelection()) - { - ::Color aRgbCol = getTypedControlWindow()->GetSelectEntryColor(); - aPropValue <<= (css::util::Color)aRgbCol.GetColor(); - } + ::Color aRgbCol = getTypedControlWindow()->GetSelectEntryColor(); + if (aRgbCol == COL_TRANSPARENT) + return aPropValue; + aPropValue <<= (css::util::Color)aRgbCol.GetColor(); return aPropValue; } diff --git a/extensions/source/update/check/download.cxx b/extensions/source/update/check/download.cxx index 43320b51fbdc1..3a822dd81c87c 100644 --- a/extensions/source/update/check/download.cxx +++ b/extensions/source/update/check/download.cxx @@ -238,6 +238,8 @@ bool curl_run(const OUString& rURL, OutData& out, const OString& aProxyHost, sal // enable redirection curl_easy_setopt(pCURL, CURLOPT_FOLLOWLOCATION, 1); + // only allow redirect to http:// and https:// + curl_easy_setopt(pCURL, CURLOPT_REDIR_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS); // write function curl_easy_setopt(pCURL, CURLOPT_WRITEDATA, &out); diff --git a/extensions/source/update/ui/updatecheckui.cxx b/extensions/source/update/ui/updatecheckui.cxx index 6973b657781fe..631379aa162e8 100644 --- a/extensions/source/update/ui/updatecheckui.cxx +++ b/extensions/source/update/ui/updatecheckui.cxx @@ -945,6 +945,7 @@ void BubbleWindow::RecalcTextRects() static uno::Reference SAL_CALL createInstance(const uno::Reference& xContext) { + SolarMutexGuard aGuard; return *new UpdateCheckUI(xContext); } diff --git a/external/Module_external.mk b/external/Module_external.mk index 3b54b52ade885..1dbf97b13265d 100644 --- a/external/Module_external.mk +++ b/external/Module_external.mk @@ -101,13 +101,6 @@ $(eval $(call gb_Module_add_moduledirs,external,\ $(call gb_Helper_optional,XSLTML,xsltml) \ $(call gb_Helper_optional,ZLIB,zlib) \ $(call gb_Helper_optional,ZMF,libzmf) \ - $(call gb_Helper_optional_for_host,DESKTOP, \ - $(if $(WITH_GALLERY_BUILD), \ - $(call gb_Helper_optional,HARFBUZZ,harfbuzz) \ - $(call gb_Helper_optional,LCMS2,lcms2) \ - $(call gb_Helper_optional,NSS,nss) \ - ) \ - ) \ )) # vim: set noet sw=4 ts=4: diff --git a/external/curl/ExternalProject_curl.mk b/external/curl/ExternalProject_curl.mk index 76b4a45561031..5151d75c3f888 100644 --- a/external/curl/ExternalProject_curl.mk +++ b/external/curl/ExternalProject_curl.mk @@ -46,11 +46,14 @@ $(call gb_ExternalProject_get_state_target,curl,build): --with-darwinssl,\ --with-nss$(if $(SYSTEM_NSS),,="$(call gb_UnpackedTarball_get_dir,nss)/dist/out")) \ --without-ssl --without-gnutls --without-polarssl --without-cyassl --without-axtls \ - --without-libidn --enable-ftp --enable-ipv6 --enable-http --disable-gopher \ - --disable-file --disable-ldap --disable-telnet --disable-dict --without-libssh2 \ - --without-librtmp --disable-ldaps --disable-tftp --disable-pop3 \ - --disable-imap --disable-smtp --disable-manual --without-metalink \ - --without-nghttp2 \ + --enable-ftp --enable-http --enable-ipv6 \ + --without-libidn2 --without-libpsl --without-librtmp \ + --without-libssh2 --without-metalink --without-nghttp2 \ + --disable-ares \ + --disable-dict --disable-file --disable-gopher --disable-imap \ + --disable-ldap --disable-ldaps --disable-manual --disable-pop3 \ + --disable-rtsp --disable-smb --disable-smtp --disable-telnet \ + --disable-tftp \ $(if $(filter LINUX,$(OS)),--without-ca-bundle --without-ca-path) \ $(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \ $(if $(filter TRUE,$(DISABLE_DYNLOADING)),--disable-shared,--disable-static) \ diff --git a/external/curl/UnpackedTarball_curl.mk b/external/curl/UnpackedTarball_curl.mk index 536474d4a30b7..546f4aa38aa91 100644 --- a/external/curl/UnpackedTarball_curl.mk +++ b/external/curl/UnpackedTarball_curl.mk @@ -19,6 +19,7 @@ $(eval $(call gb_UnpackedTarball_fix_end_of_line,curl,\ $(eval $(call gb_UnpackedTarball_add_patches,curl,\ external/curl/curl-msvc.patch.1 \ + external/curl/curl-msvc-disable-protocols.patch.1 \ external/curl/curl-msvc-schannel.patch.1 \ external/curl/curl-7.26.0_mingw.patch \ external/curl/curl-7.26.0_win-proxy.patch \ @@ -31,4 +32,12 @@ $(eval $(call gb_UnpackedTarball_add_patches,curl,\ )) endif +ifeq ($(OS),MACOSX) +ifneq ($(filter 1080 1090 101000,$(MAC_OS_X_VERSION_MIN_REQUIRED)),) +$(eval $(call gb_UnpackedTarball_add_patches,curl,\ + external/curl/curl-osx.patch.1 \ +)) +endif +endif + # vim: set noet sw=4 ts=4: diff --git a/external/curl/curl-7.26.0_win-proxy.patch b/external/curl/curl-7.26.0_win-proxy.patch index cf41850fc865f..1c478868d7d2c 100644 --- a/external/curl/curl-7.26.0_win-proxy.patch +++ b/external/curl/curl-7.26.0_win-proxy.patch @@ -27,14 +27,14 @@ } +#ifdef _WIN32 -+static char* wstrToCstr(LPWSTR wStr) ++static char *wstrToCstr(LPWSTR wStr) +{ + int bufSize; -+ char* out = NULL; ++ char *out = NULL; + if(wStr != NULL) { + bufSize = WideCharToMultiByte( + CP_ACP, 0, wStr, -1, NULL, 0, NULL, NULL); -+ out = (char*)malloc(bufSize * sizeof(char)); ++ out = (char *)malloc(bufSize * sizeof(char)); + WideCharToMultiByte(CP_ACP, 0, wStr, -1, out, bufSize, NULL, NULL); + } + return out; @@ -59,13 +59,13 @@ - char *no_proxy=NULL; +#ifdef _WIN32 + WINHTTP_CURRENT_USER_IE_PROXY_CONFIG *ieProxyConfig; -+ ieProxyConfig = (WINHTTP_CURRENT_USER_IE_PROXY_CONFIG*) ++ ieProxyConfig = (WINHTTP_CURRENT_USER_IE_PROXY_CONFIG *) + malloc(sizeof(WINHTTP_CURRENT_USER_IE_PROXY_CONFIG)); + if(WinHttpGetIEProxyConfigForCurrentUser(ieProxyConfig)) { + if(!ieProxyConfig->fAutoDetect) { + char *ieProxy; + char *ieNoProxy; -+ char* pos; ++ char *pos; + + ieProxy = wstrToCstr(ieProxyConfig->lpszProxy); + ieNoProxy = wstrToCstr(ieProxyConfig->lpszProxyBypass); @@ -82,7 +82,7 @@ + + if(!check_noproxy(conn->host.name, no_proxy)) { + /* Look for the http proxy setting */ -+ char* tok; ++ char *tok; + char *saveptr; + + if(NULL != ieProxy) { diff --git a/external/curl/curl-msvc-disable-protocols.patch.1 b/external/curl/curl-msvc-disable-protocols.patch.1 new file mode 100644 index 0000000000000..38ff5ccb5ac0c --- /dev/null +++ b/external/curl/curl-msvc-disable-protocols.patch.1 @@ -0,0 +1,24 @@ +disable protocols nobody needs in MSVC build + +--- curl/lib/config-win32.h.orig 2017-08-09 16:43:29.464000000 +0200 ++++ curl/lib/config-win32.h 2017-08-09 16:47:38.549200000 +0200 +@@ -733,4 +733,19 @@ + # define ENABLE_IPV6 1 + #endif + ++#define CURL_DISABLE_DICT 1 ++#define CURL_DISABLE_FILE 1 ++//#undef CURL_DISABLE_FTP ++#define CURL_DISABLE_GOPHER 1 ++//#undef CURL_DISABLE_HTTP ++#define CURL_DISABLE_IMAP 1 ++#define CURL_DISABLE_LDAP 1 ++#define CURL_DISABLE_LDAPS 1 ++#define CURL_DISABLE_POP3 1 ++#define CURL_DISABLE_RTSP 1 ++#define CURL_DISABLE_SMB 1 ++#define CURL_DISABLE_SMTP 1 ++#define CURL_DISABLE_TELNET 1 ++#define CURL_DISABLE_TFTP 1 ++ + #endif /* HEADER_CURL_CONFIG_WIN32_H */ diff --git a/external/curl/curl-msvc.patch.1 b/external/curl/curl-msvc.patch.1 index 88ced0a754936..57a292bb69a3c 100644 --- a/external/curl/curl-msvc.patch.1 +++ b/external/curl/curl-msvc.patch.1 @@ -11,14 +11,6 @@ MSVC: using SOLARINC and EXCFLAGS CFGSET = FALSE -@@ -632,7 +632,6 @@ - $(DIROBJ)\vtls.obj \ - $(DIROBJ)\openssl.obj \ - $(DIROBJ)\strdup.obj \ -- $(DIROBJ)\strequal.obj \ - $(DIROBJ)\strerror.obj \ - $(DIROBJ)\strtok.obj \ - $(DIROBJ)\strtoofft.obj \ @@ -620,11 +620,11 @@ debug-dll-ssl-dll\libcurl.res \ debug-dll-zlib-dll\libcurl.res \ diff --git a/external/curl/curl-osx.patch.1 b/external/curl/curl-osx.patch.1 new file mode 100644 index 0000000000000..7694a1dcda2c4 --- /dev/null +++ b/external/curl/curl-osx.patch.1 @@ -0,0 +1,285 @@ +From efebf4d4f882a57a98a0653d21d543cd4132d23d Mon Sep 17 00:00:00 2001 +From: Palo Markovic +Date: Sat, 18 Mar 2017 16:37:02 +1300 +Subject: [PATCH] macOS: Fixed crash on 10.8 caused by missing connectx() + function +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The connectx() function call appeared in Darwin 15.0.0 +That covers OS X 10.11, iOS 9 and tvOS 9. + +Because connectx is not declared with weak_import attribute it’s not possible +to build libcurl on OS X 10.11 and later and target systems which don’t have +_connectx symbol declared in libsystem_kernel.dylib (i.e. OS 10.8 and earlier). + +Solution is to use connectx only on platforms that officially support it +i.e. by defining CFLAGS="-mmacosx-version-min=10.11" in configure step. + +Note: It is possible to conditionally use connectx() in libcurl targeting +range of systems based on availability determined during runtime using dlsym(). + +[Bug: https://github.com/curl/curl/issues/1330] +--- + lib/connect.c | 2 +- + lib/curl_setup.h | 16 ++++++++++++++++ + lib/url.c | 2 +- + 3 files changed, 18 insertions(+), 2 deletions(-) + +diff --git a/lib/connect.c b/lib/connect.c +index 197eff242f..33251914b8 100644 +--- a/lib/connect.c ++++ b/lib/connect.c +@@ -1075,7 +1075,7 @@ static CURLcode singleipconnect(struct connectdata *conn, + /* Connect TCP sockets, bind UDP */ + if(!isconnected && (conn->socktype == SOCK_STREAM)) { + if(conn->bits.tcp_fastopen) { +-#if defined(CONNECT_DATA_IDEMPOTENT) /* OS X */ ++#if defined(HAVE_DARWIN_CONNECTX) /* Darwin */ + sa_endpoints_t endpoints; + endpoints.sae_srcif = 0; + endpoints.sae_srcaddr = NULL; +diff --git a/lib/curl_setup.h b/lib/curl_setup.h +index 0fe3633ec7..8643e1fd28 100644 +--- a/lib/curl_setup.h ++++ b/lib/curl_setup.h +@@ -762,4 +762,20 @@ endings either CRLF or LF so 't' is appropriate. + # endif + # endif + ++/* Detect Darwin connectx() function availability. ++ * The connectx() function call appeared in Darwin 15.0.0 ++ * but it's not declared using availability attribute. ++ */ ++#if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) ++# if (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100) ++# define HAVE_DARWIN_CONNECTX 1 ++# endif ++#elif defined(__IPHONE_OS_VERSION_MIN_REQUIRED) ++# if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) ++# define HAVE_DARWIN_CONNECTX 1 ++# endif ++#elif defined(CONNECT_DATA_IDEMPOTENT) /* Fallback for other Darwin OS */ ++# define HAVE_DARWIN_CONNECTX 1 ++#endif ++ + #endif /* HEADER_CURL_SETUP_H */ +diff --git a/lib/url.c b/lib/url.c +index 03feaa20f7..08fbe5132b 100644 +--- a/lib/url.c ++++ b/lib/url.c +@@ -2834,7 +2834,7 @@ CURLcode Curl_setopt(struct Curl_easy *data, CURLoption option, + data->set.tcp_keepintvl = va_arg(param, long); + break; + case CURLOPT_TCP_FASTOPEN: +-#if defined(CONNECT_DATA_IDEMPOTENT) || defined(MSG_FASTOPEN) ++#if defined(HAVE_DARWIN_CONNECTX) || defined(MSG_FASTOPEN) + data->set.tcp_fastopen = (0 != va_arg(param, long))?TRUE:FALSE; + #else + result = CURLE_NOT_BUILT_IN; +From 45756a8a23967570da1390f9b1475c1db38a52d1 Mon Sep 17 00:00:00 2001 +From: Palo Markovic +Date: Sat, 25 Mar 2017 13:20:51 +1300 +Subject: [PATCH] macOS: moved connectx check to configuration phase + +--- + acinclude.m4 | 40 ++++++++++++++++++++++++++++++++++++++++ + configure.ac | 1 + + lib/connect.c | 2 +- + lib/curl_setup.h | 16 ---------------- + lib/url.c | 2 +- + 5 files changed, 43 insertions(+), 18 deletions(-) + +diff --git a/acinclude.m4 b/acinclude.m4 +index 2abae8d8ad..769e67c510 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -3243,3 +3243,43 @@ AC_DEFUN([CURL_MAC_CFLAGS], [ + fi + + ]) ++ ++ ++dnl CURL_CHECK_FUNC_CONNECTX ++dnl ++dnl Check if connectx() function is present. ++dnl The connectx() function call appeared in Darwin 15.0.0 ++dnl but it's not declared using availability attribute. ++dnl Additionally _connectx symbol is part of OS X 10.9/10.10 ++dnl system lib but does not have specified functionality. ++dnl ++ ++AC_DEFUN([CURL_CHECK_FUNC_CONNECTX], [ ++ AC_REQUIRE([CURL_MAC_CFLAGS])dnl ++ AC_CHECK_FUNCS([connectx]) ++ AC_MSG_CHECKING([if connectx is available in deployment target]) ++ AC_COMPILE_IFELSE( ++ [AC_LANG_PROGRAM([[ ++#if defined(HAVE_CONNECTX) ++# include ++# if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) ++# if (__MAC_OS_X_VERSION_MIN_REQUIRED < 101100) ++# error Function requires deployment target OS X 10.11 or later ++# endif ++# elif defined(__IPHONE_OS_VERSION_MIN_REQUIRED) ++# if (__IPHONE_OS_VERSION_MIN_REQUIRED < 90000) ++# error Function requires deployment target iOS 9.0 or later ++# endif ++# endif ++#else ++# error Function not present in the headers ++#endif ++ ]])], ++ [ ++ AC_DEFINE(HAVE_VALID_CONNECTX, 1, ++ [Set to 1 if connectx() function have specified functionality.]) ++ AC_MSG_RESULT([yes]) ++ ], ++ [AC_MSG_RESULT([no])] ++ ) ++]) +diff --git a/configure.ac b/configure.ac +index abd0def369..a3930447c3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3226,6 +3226,7 @@ CURL_CHECK_FUNC_BASENAME + CURL_CHECK_FUNC_CLOSESOCKET + CURL_CHECK_FUNC_CLOSESOCKET_CAMEL + CURL_CHECK_FUNC_CONNECT ++CURL_CHECK_FUNC_CONNECTX + CURL_CHECK_FUNC_FCNTL + CURL_CHECK_FUNC_FDOPEN + CURL_CHECK_FUNC_FREEADDRINFO +diff --git a/lib/connect.c b/lib/connect.c +index 33251914b8..8c5e45aea5 100644 +--- a/lib/connect.c ++++ b/lib/connect.c +@@ -1075,7 +1075,7 @@ static CURLcode singleipconnect(struct connectdata *conn, + /* Connect TCP sockets, bind UDP */ + if(!isconnected && (conn->socktype == SOCK_STREAM)) { + if(conn->bits.tcp_fastopen) { +-#if defined(HAVE_DARWIN_CONNECTX) /* Darwin */ ++#if defined(HAVE_VALID_CONNECTX) /* Darwin */ + sa_endpoints_t endpoints; + endpoints.sae_srcif = 0; + endpoints.sae_srcaddr = NULL; +diff --git a/lib/curl_setup.h b/lib/curl_setup.h +index 8643e1fd28..0fe3633ec7 100644 +--- a/lib/curl_setup.h ++++ b/lib/curl_setup.h +@@ -762,20 +762,4 @@ endings either CRLF or LF so 't' is appropriate. + # endif + # endif + +-/* Detect Darwin connectx() function availability. +- * The connectx() function call appeared in Darwin 15.0.0 +- * but it's not declared using availability attribute. +- */ +-#if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) +-# if (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100) +-# define HAVE_DARWIN_CONNECTX 1 +-# endif +-#elif defined(__IPHONE_OS_VERSION_MIN_REQUIRED) +-# if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) +-# define HAVE_DARWIN_CONNECTX 1 +-# endif +-#elif defined(CONNECT_DATA_IDEMPOTENT) /* Fallback for other Darwin OS */ +-# define HAVE_DARWIN_CONNECTX 1 +-#endif +- + #endif /* HEADER_CURL_SETUP_H */ +diff --git a/lib/url.c b/lib/url.c +index 08fbe5132b..7160ae041d 100644 +--- a/lib/url.c ++++ b/lib/url.c +@@ -2834,7 +2834,7 @@ CURLcode Curl_setopt(struct Curl_easy *data, CURLoption option, + data->set.tcp_keepintvl = va_arg(param, long); + break; + case CURLOPT_TCP_FASTOPEN: +-#if defined(HAVE_DARWIN_CONNECTX) || defined(MSG_FASTOPEN) ++#if defined(HAVE_VALID_CONNECTX) || defined(MSG_FASTOPEN) + data->set.tcp_fastopen = (0 != va_arg(param, long))?TRUE:FALSE; + #else + result = CURLE_NOT_BUILT_IN; +From 113088ac81edbb9d51582a114d006bf60e3e6a87 Mon Sep 17 00:00:00 2001 +From: Palo Markovic +Date: Wed, 5 Apr 2017 06:04:42 +1200 +Subject: [PATCH] macOS: added connectx check for cmake + +--- + CMake/CurlTests.c | 18 ++++++++++++++++++ + CMakeLists.txt | 9 +++++++++ + lib/curl_config.h.cmake | 6 ++++++ + 3 files changed, 33 insertions(+) + +diff --git a/CMake/CurlTests.c b/CMake/CurlTests.c +index bc36c8ef7d..7077059f9c 100644 +--- a/CMake/CurlTests.c ++++ b/CMake/CurlTests.c +@@ -533,3 +533,21 @@ main() { + return 0; + } + #endif ++#ifdef HAVE_VALID_CONNECTX ++# include ++# include ++# if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) ++# if (__MAC_OS_X_VERSION_MIN_REQUIRED < 101100) ++# error Function requires deployment target OS X 10.11 or later ++# endif ++# elif defined(__IPHONE_OS_VERSION_MIN_REQUIRED) ++# if (__IPHONE_OS_VERSION_MIN_REQUIRED < 90000) ++# error Function requires deployment target iOS 9.0 or later ++# endif ++# endif ++ ++main() { ++ connectx(0, 0, 0, 0, 0, 0, 0, 0); ++ return 0; ++} ++#endif +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8390c38c99..ab8be51ebc 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -849,6 +849,15 @@ check_symbol_exists(fcntl "${CURL_INCLUDES}" HAVE_FCNTL) + check_symbol_exists(ioctl "${CURL_INCLUDES}" HAVE_IOCTL) + check_symbol_exists(setsockopt "${CURL_INCLUDES}" HAVE_SETSOCKOPT) + ++# The connectx() function call appeared in Darwin 15.0.0 ++# but it's not declared using availability attribute. ++# Additionally _connectx symbol is part of OS X 10.9/10.10 ++# system lib but does not have specified functionality. ++check_symbol_exists(connectx "${CURL_INCLUDES}" HAVE_CONNECTX) ++if(HAVE_CONNECTX) ++ curl_internal_test_run(HAVE_VALID_CONNECTX) ++endif(HAVE_CONNECTX) ++ + # symbol exists in win32, but function does not. + check_function_exists(inet_pton HAVE_INET_PTON) + +diff --git a/lib/curl_config.h.cmake b/lib/curl_config.h.cmake +index 9fcdd97f98..6fc4415a8d 100644 +--- a/lib/curl_config.h.cmake ++++ b/lib/curl_config.h.cmake +@@ -130,6 +130,9 @@ + /* Define to 1 if bool is an available type. */ + #cmakedefine HAVE_BOOL_T 1 + ++/* Define to 1 if you have the connectx function. */ ++#cmakedefine HAVE_CONNECTX 1 ++ + /* Define to 1 if you have the clock_gettime function and monotonic timer. */ + #cmakedefine HAVE_CLOCK_GETTIME_MONOTONIC 1 + +@@ -719,6 +722,9 @@ + /* Define to 1 if you have the header file. */ + #cmakedefine HAVE_UTIME_H 1 + ++/* Define to 1 if you have valid connectx function. */ ++#cmakedefine HAVE_VALID_CONNECTX 1 ++ + /* Define to 1 if compiler supports C99 variadic macro style. */ + #cmakedefine HAVE_VARIADIC_MACROS_C99 1 + diff --git a/external/expat/StaticLibrary_expat.mk b/external/expat/StaticLibrary_expat.mk index 4d6957f9ef52c..5a7d43d6c9bd7 100644 --- a/external/expat/StaticLibrary_expat.mk +++ b/external/expat/StaticLibrary_expat.mk @@ -48,6 +48,7 @@ $(eval $(call gb_StaticLibrary_add_cflags,expat,\ )) $(eval $(call gb_StaticLibrary_add_generated_cobjects,expat,\ + UnpackedTarball/expat/lib/loadlibrary \ UnpackedTarball/expat/lib/xmlparse \ UnpackedTarball/expat/lib/xmlrole \ UnpackedTarball/expat/lib/xmltok \ diff --git a/external/expat/StaticLibrary_expat_x64.mk b/external/expat/StaticLibrary_expat_x64.mk index a38ba28c80dd1..4f92d0fb284e0 100644 --- a/external/expat/StaticLibrary_expat_x64.mk +++ b/external/expat/StaticLibrary_expat_x64.mk @@ -25,6 +25,7 @@ $(eval $(call gb_StaticLibrary_add_defs,expat_x64,\ )) $(eval $(call gb_StaticLibrary_add_x64_generated_cobjects,expat_x64,\ + UnpackedTarball/expat/lib/loadlibrary_x64 \ UnpackedTarball/expat/lib/xmlparse_x64 \ UnpackedTarball/expat/lib/xmltok_x64 \ UnpackedTarball/expat/lib/xmlrole_x64 \ diff --git a/external/expat/UnpackedTarball_expat.mk b/external/expat/UnpackedTarball_expat.mk index 60e933d760908..f90fc8552568b 100644 --- a/external/expat/UnpackedTarball_expat.mk +++ b/external/expat/UnpackedTarball_expat.mk @@ -24,6 +24,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,expat,\ $(eval $(call gb_UnpackedTarball_set_post_action,expat,\ $(if $(filter $(BUILD_X64),TRUE), \ + cp lib/loadlibrary.c lib/loadlibrary_x64.c && \ cp lib/xmlparse.c lib/xmlparse_x64.c && \ cp lib/xmltok.c lib/xmltok_x64.c && \ cp lib/xmlrole.c lib/xmlrole_x64.c) \ diff --git a/external/firebird/0001-Avoid-hangup-in-SS-when-error-happens-at-system-atta.patch.1 b/external/firebird/0001-Avoid-hangup-in-SS-when-error-happens-at-system-atta.patch.1 new file mode 100644 index 0000000000000..e569fccdced68 --- /dev/null +++ b/external/firebird/0001-Avoid-hangup-in-SS-when-error-happens-at-system-atta.patch.1 @@ -0,0 +1,51 @@ +From 36a7a2634669075be3294a1d075524a0b6f80962 Mon Sep 17 00:00:00 2001 +From: hvlad +Date: Wed, 17 Aug 2016 15:45:30 +0300 +Subject: [PATCH] Avoid hangup in SS when error happens at system attachment + initialization time + +--- + src/jrd/cch.cpp | 7 ++++++- + src/jrd/vio.cpp | 5 +++++ + 2 files changed, 11 insertions(+), 1 deletion(-) + +diff --git a/src/jrd/cch.cpp b/src/jrd/cch.cpp +index 35ea096..643cf4d 100644 +--- a/src/jrd/cch.cpp ++++ b/src/jrd/cch.cpp +@@ -2963,10 +2963,15 @@ static THREAD_ENTRY_DECLARE cache_writer(THREAD_ENTRY_PARAM arg) + iscDbLogStatus(dbb->dbb_filename.c_str(), &status_vector); + } + +- bcb->bcb_flags &= ~(BCB_cache_writer | BCB_writer_start); ++ bcb->bcb_flags &= ~BCB_cache_writer; + + try + { ++ if (bcb->bcb_flags & BCB_writer_start) ++ { ++ bcb->bcb_flags &= ~BCB_writer_start; ++ bcb->bcb_writer_init.release(); ++ } + bcb->bcb_writer_fini.release(); + } + catch (const Firebird::Exception& ex) +diff --git a/src/jrd/vio.cpp b/src/jrd/vio.cpp +index a8cf0fc..3d35a27 100644 +--- a/src/jrd/vio.cpp ++++ b/src/jrd/vio.cpp +@@ -4988,6 +4988,11 @@ static THREAD_ENTRY_DECLARE garbage_collector(THREAD_ENTRY_PARAM arg) + try + { + // Notify the finalization caller that we're finishing. ++ if (dbb->dbb_flags & DBB_gc_starting) ++ { ++ dbb->dbb_flags &= ~DBB_gc_starting; ++ dbb->dbb_gc_init.release(); ++ } + dbb->dbb_gc_fini.release(); + } + catch (const Firebird::Exception& ex) +-- +2.9.3 + diff --git a/external/firebird/0002-Backported-fix-for-CORE-5452-Segfault-when-engine-s-.patch.1 b/external/firebird/0002-Backported-fix-for-CORE-5452-Segfault-when-engine-s-.patch.1 new file mode 100644 index 0000000000000..c55df4d0ae713 --- /dev/null +++ b/external/firebird/0002-Backported-fix-for-CORE-5452-Segfault-when-engine-s-.patch.1 @@ -0,0 +1,1013 @@ +From 40f782ae3e918c4f3842571ff8064be1c4f54961 Mon Sep 17 00:00:00 2001 +From: AlexPeshkoff +Date: Fri, 13 Jan 2017 14:29:54 +0300 +Subject: [PATCH] Backported fix for CORE-5452: Segfault when engine's dynamic + library is unloaded right after closing worker threads (GC and/or cache + writer) + +--- + src/alice/alice_meta.epp | 1 - + src/burp/burp.h | 2 - + src/common/ThreadStart.h | 86 ++++++++++++++++++++++++++++ + src/common/classes/Synchronize.h | 5 +- + src/common/classes/misc/class_perf.cpp | 1 - + src/common/xdr.cpp | 2 - + src/gpre/boot/gpre_meta_boot.cpp | 1 - + src/gpre/std/gpre_meta.epp | 1 - + src/include/fb_exception.h | 1 - + src/include/firebird.h | 1 - + src/isql/OptionsBase.cpp | 1 - + src/isql/extract.epp | 1 - + src/isql/isql.epp | 5 -- + src/jrd/Attachment.h | 1 + + src/jrd/Database.h | 6 +- + src/jrd/Mapping.cpp | 26 +++++---- + src/jrd/cch.cpp | 31 +++++----- + src/jrd/cch.h | 14 ++++- + src/jrd/event.cpp | 13 +++-- + src/jrd/event_proto.h | 7 +-- + src/jrd/intl.cpp | 1 - + src/jrd/trace/TraceConfigStorage.h | 1 + + src/jrd/vio.cpp | 23 ++++---- + src/lock/lock.cpp | 29 ++++++---- + src/lock/lock_proto.h | 8 +-- + src/qli/command.cpp | 1 - + src/qli/dtr.h | 1 - + src/qli/lex.cpp | 4 -- + src/qli/meta.epp | 1 - + src/utilities/gsec/gsecswi.h | 1 - + src/utilities/gstat/dba.epp | 1 + + src/utilities/nbackup/nbkswi.h | 1 - + src/utilities/ntrace/os/win32/FileObject.cpp | 1 - + src/yvalve/gds.cpp | 1 + + src/yvalve/preparse.cpp | 1 - + 35 files changed, 182 insertions(+), 99 deletions(-) + +diff --git a/src/alice/alice_meta.epp b/src/alice/alice_meta.epp +index d0f59bc..65dc37e 100644 +--- a/src/alice/alice_meta.epp ++++ b/src/alice/alice_meta.epp +@@ -30,7 +30,6 @@ + #include "firebird.h" + #include + #include "../jrd/ibase.h" +-//#include "../jrd/license.h" + #include "../alice/alice.h" + #include "../alice/alice_meta.h" + #include "../yvalve/gds_proto.h" +diff --git a/src/burp/burp.h b/src/burp/burp.h +index 293a91f..fe26335 100644 +--- a/src/burp/burp.h ++++ b/src/burp/burp.h +@@ -769,8 +769,6 @@ struct burp_meta_obj + // I need to review if we tolerate different lengths for different OS's here. + const unsigned int MAX_FILE_NAME_SIZE = 256; + +-//#include "../jrd/svc.h" +- + #include "../burp/std_desc.h" + + #ifdef WIN_NT +diff --git a/src/common/ThreadStart.h b/src/common/ThreadStart.h +index 85e6a38..823c5c1 100644 +--- a/src/common/ThreadStart.h ++++ b/src/common/ThreadStart.h +@@ -31,6 +31,7 @@ + #define JRD_THREADSTART_H + + #include "../common/ThreadData.h" ++#include "../common/classes/semaphore.h" + + #ifdef WIN_NT + #include +@@ -89,4 +90,89 @@ inline ThreadId getThreadId() + return Thread::getId(); + } + ++ ++#ifndef USE_POSIX_THREADS ++#define USE_FINI_SEM ++#endif ++ ++template ++class ThreadFinishSync ++{ ++public: ++ typedef void ThreadRoutine(TA); ++ ++ ThreadFinishSync(Firebird::MemoryPool& pool, ThreadRoutine* routine, int priority_arg) ++ : ++#ifdef USE_FINI_SEM ++ fini(pool), ++#else ++ threadHandle(0), ++#endif ++ threadRoutine(routine), ++ threadPriority(priority_arg) ++ { } ++ ++ void run(TA arg) ++ { ++ threadArg = arg; ++ ++ Thread::start(internalRun, this, threadPriority ++#ifndef USE_FINI_SEM ++ , &threadHandle ++#endif ++ ); ++ } ++ ++ void waitForCompletion() ++ { ++#ifdef USE_FINI_SEM ++ fini.enter(); ++#else ++ Thread::waitForCompletion(threadHandle); ++ threadHandle = 0; ++#endif ++ } ++ ++private: ++#ifdef USE_FINI_SEM ++ Firebird::Semaphore fini; ++#else ++ Thread::Handle threadHandle; ++#endif ++ ++ TA threadArg; ++ ThreadRoutine* threadRoutine; ++ int threadPriority; ++ bool starting; ++ ++ static THREAD_ENTRY_DECLARE internalRun(THREAD_ENTRY_PARAM arg) ++ { ++ ((ThreadFinishSync*)arg)->internalRun(); ++ return 0; ++ } ++ ++ void internalRun() ++ { ++ try ++ { ++ threadRoutine(threadArg); ++ } ++ catch (const Firebird::Exception& ex) ++ { ++ threadArg->exceptionHandler(ex, threadRoutine); ++ } ++ ++#ifdef USE_FINI_SEM ++ try ++ { ++ fini.release(); ++ } ++ catch (const Firebird::Exception& ex) ++ { ++ threadArg->exceptionHandler(ex, threadRoutine); ++ } ++#endif ++ } ++}; ++ + #endif // JRD_THREADSTART_H +diff --git a/src/common/classes/Synchronize.h b/src/common/classes/Synchronize.h +index 198de44..3788541 100644 +--- a/src/common/classes/Synchronize.h ++++ b/src/common/classes/Synchronize.h +@@ -33,10 +33,7 @@ + #define CLASSES_SYNCHRONIZE_H + + #include "../common/classes/SyncObject.h" +- +-#ifndef WIN_NT +-#include "fb_pthread.h" +-#endif ++#include "../common/ThreadStart.h" + + + namespace Firebird { +diff --git a/src/common/classes/misc/class_perf.cpp b/src/common/classes/misc/class_perf.cpp +index 97b7bb3..142bfde 100644 +--- a/src/common/classes/misc/class_perf.cpp ++++ b/src/common/classes/misc/class_perf.cpp +@@ -28,7 +28,6 @@ + + #include "tree.h" + #include "alloc.h" +-//#include "../memory/memory_pool.h" + #include + #include + #include +diff --git a/src/common/xdr.cpp b/src/common/xdr.cpp +index b9f9f4d..1dfff76 100644 +--- a/src/common/xdr.cpp ++++ b/src/common/xdr.cpp +@@ -26,9 +26,7 @@ + + #include "firebird.h" + #include +-//#include "../remote/remote.h" + #include "../common/xdr.h" +-//#include "../remote/proto_proto.h" + #include "../common/xdr_proto.h" + #include "../yvalve/gds_proto.h" + #include "../common/gdsassert.h" +diff --git a/src/gpre/boot/gpre_meta_boot.cpp b/src/gpre/boot/gpre_meta_boot.cpp +index 0fde018..1f302c6 100644 +--- a/src/gpre/boot/gpre_meta_boot.cpp ++++ b/src/gpre/boot/gpre_meta_boot.cpp +@@ -32,7 +32,6 @@ + #include + #include "../jrd/ibase.h" + #include "../gpre/gpre.h" +-//#include "../jrd/license.h" + #include "../jrd/intl.h" + #include "../gpre/gpre_proto.h" + #include "../gpre/hsh_proto.h" +diff --git a/src/gpre/std/gpre_meta.epp b/src/gpre/std/gpre_meta.epp +index 34ff932..0780dd4 100644 +--- a/src/gpre/std/gpre_meta.epp ++++ b/src/gpre/std/gpre_meta.epp +@@ -32,7 +32,6 @@ + #include + #include "../jrd/ibase.h" + #include "../gpre/gpre.h" +-//#include "../jrd/license.h" + #include "../jrd/intl.h" + #include "../gpre/gpre_proto.h" + #include "../gpre/hsh_proto.h" +diff --git a/src/include/fb_exception.h b/src/include/fb_exception.h +index 030cf94..c4c1df4 100644 +--- a/src/include/fb_exception.h ++++ b/src/include/fb_exception.h +@@ -43,7 +43,6 @@ + + #include "fb_types.h" + #include "firebird/Interface.h" +-#include "../common/ThreadStart.h" + + namespace Firebird + { +diff --git a/src/include/firebird.h b/src/include/firebird.h +index 3d74354..87f0a11 100644 +--- a/src/include/firebird.h ++++ b/src/include/firebird.h +@@ -68,7 +68,6 @@ + + #ifdef __cplusplus + #include "../common/common.h" +-//#include "fb_exception.h" + #endif + + #ifndef NULL +diff --git a/src/isql/OptionsBase.cpp b/src/isql/OptionsBase.cpp +index 5a78540..0974fa3 100644 +--- a/src/isql/OptionsBase.cpp ++++ b/src/isql/OptionsBase.cpp +@@ -24,7 +24,6 @@ + + #include "firebird.h" + #include "OptionsBase.h" +-//#include "../common/utils_proto.h" // strnicmp + #include "../common/gdsassert.h" + + +diff --git a/src/isql/extract.epp b/src/isql/extract.epp +index ec2ddb1..99e821c 100644 +--- a/src/isql/extract.epp ++++ b/src/isql/extract.epp +@@ -59,7 +59,6 @@ + #include "../jrd/ods.h" + #include "../common/utils_proto.h" + #include "../jrd/constants.h" +-//#include "../common/classes/ImplementHelper.h" + + using MsgFormat::SafeArg; + +diff --git a/src/isql/isql.epp b/src/isql/isql.epp +index ccadce2..98b37bb 100644 +--- a/src/isql/isql.epp ++++ b/src/isql/isql.epp +@@ -46,7 +46,6 @@ + #include "firebird.h" + #include + #include "../yvalve/keywords.h" +-//#include "../yvalve/gds_proto.h" + #include "../jrd/intl.h" + #include + #include +@@ -79,10 +78,6 @@ + #include + #endif + +-//#ifdef HAVE_IO_H +-//#include // mktemp +-//#endif +- + #ifdef HAVE_EDITLINE_H + // This is a local file included in our distribution - but not always + // compiled into the system +diff --git a/src/jrd/Attachment.h b/src/jrd/Attachment.h +index 2807db3..e71610e 100644 +--- a/src/jrd/Attachment.h ++++ b/src/jrd/Attachment.h +@@ -39,6 +39,7 @@ + #include "../common/classes/array.h" + #include "../common/classes/stack.h" + #include "../common/classes/timestamp.h" ++#include "../common/ThreadStart.h" + + #include "../jrd/EngineInterface.h" + +diff --git a/src/jrd/Database.h b/src/jrd/Database.h +index 0eab40d..f0f44d3 100644 +--- a/src/jrd/Database.h ++++ b/src/jrd/Database.h +@@ -440,7 +440,7 @@ public: + GarbageCollector* dbb_garbage_collector; // GarbageCollector class + Firebird::Semaphore dbb_gc_sem; // Event to wake up garbage collector + Firebird::Semaphore dbb_gc_init; // Event for initialization garbage collector +- Firebird::Semaphore dbb_gc_fini; // Event for finalization garbage collector ++ ThreadFinishSync dbb_gc_fini; // Sync for finalization garbage collector + + Firebird::MemoryStats dbb_memory_stats; + RuntimeStatistics dbb_stats; +@@ -511,6 +511,7 @@ private: + dbb_owner(*p), + dbb_pools(*p, 4), + dbb_sort_buffers(*p), ++ dbb_gc_fini(*p, garbage_collector, THREAD_medium), + dbb_stats(*p), + dbb_lock_owner_id(getLockOwnerId()), + dbb_tip_cache(NULL), +@@ -560,6 +561,9 @@ public: + // reset sweep flags and release sweep lock + void clearSweepFlags(thread_db* tdbb); + ++ static void garbage_collector(Database* dbb); ++ void exceptionHandler(const Firebird::Exception& ex, ThreadFinishSync::ThreadRoutine* routine); ++ + private: + //static int blockingAstSharedCounter(void*); + static int blocking_ast_sweep(void* ast_object); +diff --git a/src/jrd/Mapping.cpp b/src/jrd/Mapping.cpp +index c1bcf0e..8df7e2f 100644 +--- a/src/jrd/Mapping.cpp ++++ b/src/jrd/Mapping.cpp +@@ -581,7 +581,8 @@ class MappingIpc FB_FINAL : public Firebird::IpcObject + + public: + explicit MappingIpc(MemoryPool&) +- : processId(getpid()) ++ : processId(getpid()), ++ cleanupSync(*getDefaultMemoryPool(), clearDelivery, THREAD_high) + { } + + ~MappingIpc() +@@ -602,7 +603,7 @@ public: + sMem->process[process].flags &= ~MappingHeader::FLAG_ACTIVE; + (void) // Ignore errors in cleanup + sharedMemory->eventPost(&sMem->process[process].notifyEvent); +- cleanupSemaphore.tryEnter(5); ++ cleanupSync.waitForCompletion(); + + // Ignore errors in cleanup + sharedMemory->eventFini(&sMem->process[process].notifyEvent); +@@ -755,7 +756,7 @@ public: + + try + { +- Thread::start(clearDelivery, this, THREAD_high); ++ cleanupSync.run(this); + } + catch (const Exception&) + { +@@ -764,6 +765,12 @@ public: + } + } + ++ void exceptionHandler(const Exception& ex, ThreadFinishSync::ThreadRoutine*) ++ { ++ iscLogException("Fatal error in clearDeliveryThread", ex); ++ fb_utils::logAndDie("Fatal error in clearDeliveryThread"); ++ } ++ + private: + void clearDeliveryThread() + { +@@ -801,13 +808,10 @@ private: + } + if (startup) + startupSemaphore.release(); +- +- cleanupSemaphore.release(); + } + catch (const Exception& ex) + { +- iscLogException("Fatal error in clearDeliveryThread", ex); +- fb_utils::logAndDie("Fatal error in clearDeliveryThread"); ++ exceptionHandler(ex, NULL); + } + } + +@@ -862,11 +866,9 @@ private: + MappingIpc* const data; + }; + +- static THREAD_ENTRY_DECLARE clearDelivery(THREAD_ENTRY_PARAM par) ++ static void clearDelivery(MappingIpc* mapping) + { +- MappingIpc* m = (MappingIpc*)par; +- m->clearDeliveryThread(); +- return 0; ++ mapping->clearDeliveryThread(); + } + + AutoPtr > sharedMemory; +@@ -874,7 +876,7 @@ private: + const SLONG processId; + unsigned process; + Semaphore startupSemaphore; +- Semaphore cleanupSemaphore; ++ ThreadFinishSync cleanupSync; + }; + + GlobalPtr mappingIpc; +diff --git a/src/jrd/cch.cpp b/src/jrd/cch.cpp +index e1d403b..1bf714f 100644 +--- a/src/jrd/cch.cpp ++++ b/src/jrd/cch.cpp +@@ -120,14 +120,11 @@ static BufferDesc* alloc_bdb(thread_db*, BufferControl*, UCHAR **); + static Lock* alloc_page_lock(Jrd::thread_db*, BufferDesc*); + static int blocking_ast_bdb(void*); + #ifdef CACHE_READER +-static THREAD_ENTRY_DECLARE cache_reader(THREAD_ENTRY_PARAM); +- + static void prefetch_epilogue(Prefetch*, FbStatusVector *); + static void prefetch_init(Prefetch*, thread_db*); + static void prefetch_io(Prefetch*, FbStatusVector *); + static void prefetch_prologue(Prefetch*, SLONG *); + #endif +-static THREAD_ENTRY_DECLARE cache_writer(THREAD_ENTRY_PARAM); + static void check_precedence(thread_db*, WIN*, PageNumber); + static void clear_precedence(thread_db*, BufferDesc*); + static BufferDesc* dealloc_bdb(BufferDesc*); +@@ -1438,7 +1435,7 @@ void CCH_init2(thread_db* tdbb) + + try + { +- Thread::start(cache_writer, dbb, THREAD_medium); ++ bcb->bcb_writer_fini.run(bcb); + } + catch (const Exception&) + { +@@ -2017,7 +2014,7 @@ void CCH_shutdown(thread_db* tdbb) + { + bcb->bcb_flags &= ~BCB_cache_writer; + bcb->bcb_writer_sem.release(); // Wake up running thread +- bcb->bcb_writer_fini.enter(); ++ bcb->bcb_writer_fini.waitForCompletion(); + } + + SyncLockGuard bcbSync(&bcb->bcb_syncObject, SYNC_EXCLUSIVE, "CCH_shutdown"); +@@ -2692,7 +2689,7 @@ static void flushAll(thread_db* tdbb, USHORT flush_flag) + + + #ifdef CACHE_READER +-static THREAD_ENTRY_DECLARE cache_reader(THREAD_ENTRY_PARAM arg) ++void BufferControl::cache_reader(BufferControl* bcb) + { + /************************************** + * +@@ -2706,7 +2703,7 @@ static THREAD_ENTRY_DECLARE cache_reader(THREAD_ENTRY_PARAM arg) + * busy at a time. + * + **************************************/ +- Database* dbb = (Database*) arg; ++ Database* dbb = bcb->bcb_database; + Database::SyncGuard dsGuard(dbb); + + FbLocalStatus status_vector; +@@ -2846,7 +2843,7 @@ static THREAD_ENTRY_DECLARE cache_reader(THREAD_ENTRY_PARAM arg) + #endif + + +-static THREAD_ENTRY_DECLARE cache_writer(THREAD_ENTRY_PARAM arg) ++void BufferControl::cache_writer(BufferControl* bcb) + { + /************************************** + * +@@ -2859,8 +2856,7 @@ static THREAD_ENTRY_DECLARE cache_writer(THREAD_ENTRY_PARAM arg) + * + **************************************/ + FbLocalStatus status_vector; +- Database* const dbb = (Database*) arg; +- BufferControl* const bcb = dbb->dbb_bcb; ++ Database* const dbb = bcb->bcb_database; + + try + { +@@ -2964,8 +2960,7 @@ static THREAD_ENTRY_DECLARE cache_writer(THREAD_ENTRY_PARAM arg) + } // try + catch (const Firebird::Exception& ex) + { +- ex.stuffException(&status_vector); +- iscDbLogStatus(dbb->dbb_filename.c_str(), &status_vector); ++ bcb->exceptionHandler(ex, cache_writer); + } + + bcb->bcb_flags &= ~BCB_cache_writer; +@@ -2977,15 +2972,19 @@ static THREAD_ENTRY_DECLARE cache_writer(THREAD_ENTRY_PARAM arg) + bcb->bcb_flags &= ~BCB_writer_start; + bcb->bcb_writer_init.release(); + } +- bcb->bcb_writer_fini.release(); + } + catch (const Firebird::Exception& ex) + { +- ex.stuffException(&status_vector); +- iscDbLogStatus(dbb->dbb_filename.c_str(), &status_vector); ++ bcb->exceptionHandler(ex, cache_writer); + } ++} + +- return 0; ++ ++void BufferControl::exceptionHandler(const Firebird::Exception& ex, BcbSync::ThreadRoutine* /*routine*/) ++{ ++ FbLocalStatus status_vector; ++ ex.stuffException(&status_vector); ++ iscDbLogStatus(bcb_database->dbb_filename.c_str(), &status_vector); + } + + +diff --git a/src/jrd/cch.h b/src/jrd/cch.h +index b920566..b7f8486 100644 +--- a/src/jrd/cch.h ++++ b/src/jrd/cch.h +@@ -29,6 +29,7 @@ + #include "../common/classes/RefCounted.h" + #include "../common/classes/semaphore.h" + #include "../common/classes/SyncObject.h" ++#include "../common/ThreadStart.h" + #ifdef SUPERSERVER_V2 + #include "../jrd/sbm.h" + #include "../jrd/pag.h" +@@ -85,7 +86,8 @@ class BufferControl : public pool_alloc + BufferControl(MemoryPool& p, Firebird::MemoryStats& parentStats) + : bcb_bufferpool(&p), + bcb_memory_stats(&parentStats), +- bcb_memory(p) ++ bcb_memory(p), ++ bcb_writer_fini(p, cache_writer, THREAD_medium) + { + bcb_database = NULL; + QUE_INIT(bcb_in_use); +@@ -144,18 +146,24 @@ public: + Firebird::SyncObject bcb_syncLRU; + //Firebird::SyncObject bcb_syncPageWrite; + ++ typedef ThreadFinishSync BcbSync; ++ ++ static void cache_writer(BufferControl* bcb); + Firebird::Semaphore bcb_writer_sem; // Wake up cache writer + Firebird::Semaphore bcb_writer_init; // Cache writer initialization +- Firebird::Semaphore bcb_writer_fini; // Cache writer finalization ++ BcbSync bcb_writer_fini; // Cache writer finalization + #ifdef SUPERSERVER_V2 ++ static void cache_reader(BufferControl* bcb); + // the code in cch.cpp is not tested for semaphore instead event !!! + Firebird::Semaphore bcb_reader_sem; // Wake up cache reader + Firebird::Semaphore bcb_reader_init; // Cache reader initialization +- Firebird::Semaphore bcb_reader_fini; // Cache reader finalization ++ BcbSync bcb_reader_fini; // Cache reader finalization + + PageBitmap* bcb_prefetch; // Bitmap of pages to prefetch + #endif + ++ void exceptionHandler(const Firebird::Exception& ex, BcbSync::ThreadRoutine* routine); ++ + bcb_repeat* bcb_rpt; + }; + +diff --git a/src/jrd/event.cpp b/src/jrd/event.cpp +index 3a6bf28..cb6dc33 100644 +--- a/src/jrd/event.cpp ++++ b/src/jrd/event.cpp +@@ -126,6 +126,7 @@ EventManager::EventManager(const Firebird::string& id, Firebird::RefPtr + m_processOffset(0), + m_dbId(getPool(), id), + m_config(conf), ++ m_cleanupSync(getPool(), watcher_thread, THREAD_medium), + m_sharedFileCreated(false), + m_exiting(false) + { +@@ -146,7 +147,7 @@ EventManager::~EventManager() + // Terminate the event watcher thread + m_startupSemaphore.tryEnter(5); + (void) m_sharedMemory->eventPost(&m_process->prb_event); +- m_cleanupSemaphore.tryEnter(5); ++ m_cleanupSync.waitForCompletion(); + + #ifdef HAVE_OBJECT_MAP + m_sharedMemory->unmapObject(&localStatus, &m_process); +@@ -697,7 +698,7 @@ void EventManager::create_process() + + release_shmem(); + +- Thread::start(watcher_thread, this, THREAD_medium); ++ m_cleanupSync.run(this); + } + + +@@ -1414,12 +1415,16 @@ void EventManager::watcher_thread() + { + m_startupSemaphore.release(); + } +- m_cleanupSemaphore.release(); + } + catch (const Firebird::Exception& ex) + { +- iscLogException("Error closing event watcher thread\n", ex); ++ exceptionHandler(ex, NULL); + } + } + ++void EventManager::exceptionHandler(const Firebird::Exception& ex, ThreadFinishSync::ThreadRoutine*) ++{ ++ iscLogException("Error closing event watcher thread\n", ex); ++} ++ + } // namespace +diff --git a/src/jrd/event_proto.h b/src/jrd/event_proto.h +index 3301203..9bfd20e 100644 +--- a/src/jrd/event_proto.h ++++ b/src/jrd/event_proto.h +@@ -63,6 +63,7 @@ public: + + bool initialize(Firebird::SharedMemoryBase*, bool); + void mutexBug(int osErrorCode, const char* text); ++ void exceptionHandler(const Firebird::Exception& ex, ThreadFinishSync::ThreadRoutine* routine); + + private: + void acquire_shmem(); +@@ -91,11 +92,9 @@ private: + void detach_shared_file(); + void get_shared_file_name(Firebird::PathName&) const; + +- static THREAD_ENTRY_DECLARE watcher_thread(THREAD_ENTRY_PARAM arg) ++ static void watcher_thread(EventManager* eventMgr) + { +- EventManager* const eventMgr = static_cast(arg); + eventMgr->watcher_thread(); +- return 0; + } + + static void mutex_bugcheck(const TEXT*, int); +@@ -109,7 +108,7 @@ private: + Firebird::AutoPtr > m_sharedMemory; + + Firebird::Semaphore m_startupSemaphore; +- Firebird::Semaphore m_cleanupSemaphore; ++ ThreadFinishSync m_cleanupSync; + + bool m_sharedFileCreated; + bool m_exiting; +diff --git a/src/jrd/intl.cpp b/src/jrd/intl.cpp +index 6666c5f..b0e662b 100644 +--- a/src/jrd/intl.cpp ++++ b/src/jrd/intl.cpp +@@ -104,7 +104,6 @@ + #include "../intl/charsets.h" + #include "../intl/country_codes.h" + #include "../common/gdsassert.h" +-//#include "../jrd/license.h" + #ifdef INTL_BUILTIN + #include "../intl/ld_proto.h" + #endif +diff --git a/src/jrd/trace/TraceConfigStorage.h b/src/jrd/trace/TraceConfigStorage.h +index ca973c0..3d08143 100644 +--- a/src/jrd/trace/TraceConfigStorage.h ++++ b/src/jrd/trace/TraceConfigStorage.h +@@ -32,6 +32,7 @@ + #include "../../common/classes/fb_string.h" + #include "../../common/classes/init.h" + #include "../../common/isc_s_proto.h" ++#include "../../common/ThreadStart.h" + #include "../../jrd/trace/TraceSession.h" + #include "../../common/classes/RefCounted.h" + +diff --git a/src/jrd/vio.cpp b/src/jrd/vio.cpp +index 02c5809..8ca9f66 100644 +--- a/src/jrd/vio.cpp ++++ b/src/jrd/vio.cpp +@@ -107,7 +107,6 @@ static bool dfw_should_know(record_param* org_rpb, record_param* new_rpb, + USHORT irrelevant_field, bool void_update_is_relevant = false); + static void garbage_collect(thread_db*, record_param*, ULONG, RecordStack&); + static void garbage_collect_idx(thread_db*, record_param*, Record*, Record*); +-static THREAD_ENTRY_DECLARE garbage_collector(THREAD_ENTRY_PARAM); + + + #ifdef VIO_DEBUG +@@ -1958,7 +1957,7 @@ void VIO_fini(thread_db* tdbb) + { + dbb->dbb_flags &= ~DBB_garbage_collector; + dbb->dbb_gc_sem.release(); // Wake up running thread +- dbb->dbb_gc_fini.enter(); ++ dbb->dbb_gc_fini.waitForCompletion(); + } + } + +@@ -2420,7 +2419,7 @@ void VIO_init(thread_db* tdbb) + { + try + { +- Thread::start(garbage_collector, dbb, THREAD_medium); ++ dbb->dbb_gc_fini.run(dbb); + } + catch (const Exception&) + { +@@ -4741,7 +4740,7 @@ static void garbage_collect_idx(thread_db* tdbb, + } + + +-static THREAD_ENTRY_DECLARE garbage_collector(THREAD_ENTRY_PARAM arg) ++void Database::garbage_collector(Database* dbb) + { + /************************************** + * +@@ -4758,7 +4757,6 @@ static THREAD_ENTRY_DECLARE garbage_collector(THREAD_ENTRY_PARAM arg) + * + **************************************/ + FbLocalStatus status_vector; +- Database* const dbb = (Database*) arg; + + try + { +@@ -4989,8 +4987,7 @@ static THREAD_ENTRY_DECLARE garbage_collector(THREAD_ENTRY_PARAM arg) + } // try + catch (const Firebird::Exception& ex) + { +- ex.stuffException(&status_vector); +- iscDbLogStatus(dbb->dbb_filename.c_str(), &status_vector); ++ dbb->exceptionHandler(ex, NULL); + } + + dbb->dbb_flags &= ~(DBB_garbage_collector | DBB_gc_active | DBB_gc_pending); +@@ -5003,15 +5000,19 @@ static THREAD_ENTRY_DECLARE garbage_collector(THREAD_ENTRY_PARAM arg) + dbb->dbb_flags &= ~DBB_gc_starting; + dbb->dbb_gc_init.release(); + } +- dbb->dbb_gc_fini.release(); + } + catch (const Firebird::Exception& ex) + { +- ex.stuffException(&status_vector); +- iscDbLogStatus(dbb->dbb_filename.c_str(), &status_vector); ++ dbb->exceptionHandler(ex, NULL); + } ++} ++ + +- return 0; ++void Database::exceptionHandler(const Firebird::Exception& ex, ThreadFinishSync::ThreadRoutine* /*routine*/) ++{ ++ FbLocalStatus status_vector; ++ ex.stuffException(&status_vector); ++ iscDbLogStatus(dbb_filename.c_str(), &status_vector); + } + + +diff --git a/src/lock/lock.cpp b/src/lock/lock.cpp +index 89eb4c5..2ab3358 100644 +--- a/src/lock/lock.cpp ++++ b/src/lock/lock.cpp +@@ -214,6 +214,7 @@ LockManager::LockManager(const Firebird::string& id, RefPtr conf) + m_sharedFileCreated(false), + m_process(NULL), + m_processOffset(0), ++ m_cleanupSync(getPool(), blocking_action_thread, THREAD_high), + m_sharedMemory(NULL), + m_blockage(false), + m_dbId(getPool(), id), +@@ -259,7 +260,7 @@ LockManager::~LockManager() + m_sharedMemory->eventPost(&m_process->prc_blocking); + + // Wait for the AST thread to finish cleanup or for 5 seconds +- m_cleanupSemaphore.tryEnter(5); ++ m_cleanupSync.waitForCompletion(); + } + + #ifdef HAVE_OBJECT_MAP +@@ -1548,16 +1549,22 @@ void LockManager::blocking_action_thread() + { + iscLogException("Error in blocking action thread\n", x); + } ++} + +- try +- { +- // Wakeup the main thread waiting for our exit +- m_cleanupSemaphore.release(); +- } +- catch (const Firebird::Exception& x) +- { +- iscLogException("Error closing blocking action thread\n", x); +- } ++ ++void LockManager::exceptionHandler(const Firebird::Exception& ex, ThreadFinishSync::ThreadRoutine* /*routine*/) ++{ ++/************************************** ++ * ++ * e x c e p t i o n H a n d l e r ++ * ++ ************************************** ++ * ++ * Functional description ++ * Handler for blocking thread close bugs. ++ * ++ **************************************/ ++ iscLogException("Error closing blocking action thread\n", ex); + } + + +@@ -1815,7 +1822,7 @@ bool LockManager::create_process(CheckStatusWrapper* statusVector) + { + try + { +- Thread::start(blocking_action_thread, this, THREAD_high); ++ m_cleanupSync.run(this); + } + catch (const Exception& ex) + { +diff --git a/src/lock/lock_proto.h b/src/lock/lock_proto.h +index d991c1e..2faec49 100644 +--- a/src/lock/lock_proto.h ++++ b/src/lock/lock_proto.h +@@ -418,6 +418,8 @@ public: + SINT64 readData2(USHORT, const UCHAR*, USHORT, SRQ_PTR); + SINT64 writeData(SRQ_PTR, SINT64); + ++ void exceptionHandler(const Firebird::Exception& ex, ThreadFinishSync::ThreadRoutine* routine); ++ + private: + explicit LockManager(const Firebird::string&, Firebird::RefPtr); + ~LockManager(); +@@ -471,11 +473,9 @@ private: + void detach_shared_file(Firebird::CheckStatusWrapper*); + void get_shared_file_name(Firebird::PathName&, ULONG extend = 0) const; + +- static THREAD_ENTRY_DECLARE blocking_action_thread(THREAD_ENTRY_PARAM arg) ++ static void blocking_action_thread(LockManager* lockMgr) + { +- LockManager* const lockMgr = static_cast(arg); + lockMgr->blocking_action_thread(); +- return 0; + } + + bool initialize(Firebird::SharedMemoryBase* sm, bool init); +@@ -490,7 +490,7 @@ private: + Firebird::RWLock m_remapSync; + Firebird::AtomicCounter m_waitingOwners; + +- Firebird::Semaphore m_cleanupSemaphore; ++ ThreadFinishSync m_cleanupSync; + Firebird::Semaphore m_startupSemaphore; + + public: +diff --git a/src/qli/command.cpp b/src/qli/command.cpp +index 5f949f3..fbbf4fb 100644 +--- a/src/qli/command.cpp ++++ b/src/qli/command.cpp +@@ -30,7 +30,6 @@ + #include "../qli/parse.h" + #include "../qli/compile.h" + #include "../qli/exe.h" +-//#include "../jrd/license.h" + #include "../qli/all_proto.h" + #include "../qli/err_proto.h" + #include "../qli/exe_proto.h" +diff --git a/src/qli/dtr.h b/src/qli/dtr.h +index ba5cd64..e246ef4 100644 +--- a/src/qli/dtr.h ++++ b/src/qli/dtr.h +@@ -480,7 +480,6 @@ struct qli_fun + }; + + // Program wide globals +-//#include + + #ifdef QLI_MAIN + #define EXTERN +diff --git a/src/qli/lex.cpp b/src/qli/lex.cpp +index c20d1f9..9e26046 100644 +--- a/src/qli/lex.cpp ++++ b/src/qli/lex.cpp +@@ -50,10 +50,6 @@ using MsgFormat::SafeArg; + #include + #endif + +-//#ifdef HAVE_CTYPES_H +-//#include +-//#endif +- + #ifdef HAVE_IO_H + #include // isatty + #endif +diff --git a/src/qli/meta.epp b/src/qli/meta.epp +index a7f222c..2d55716 100644 +--- a/src/qli/meta.epp ++++ b/src/qli/meta.epp +@@ -28,7 +28,6 @@ + #include "../qli/dtr.h" + #include "../qli/compile.h" + #include "../qli/exe.h" +-//#include "../jrd/license.h" + #include "../jrd/flags.h" + #include "../jrd/ibase.h" + #include "../qli/reqs.h" +diff --git a/src/utilities/gsec/gsecswi.h b/src/utilities/gsec/gsecswi.h +index b8519f5..9b560e3 100644 +--- a/src/utilities/gsec/gsecswi.h ++++ b/src/utilities/gsec/gsecswi.h +@@ -24,7 +24,6 @@ + #ifndef GSEC_GSECSWI_H + #define GSEC_GSECSWI_H + +-//#include "../common/common.h" + #include "../jrd/constants.h" + + /* Switch handling constants. Note that the first IN_SW_DATA_ITEMS +diff --git a/src/utilities/gstat/dba.epp b/src/utilities/gstat/dba.epp +index 379b418..19b99d1 100644 +--- a/src/utilities/gstat/dba.epp ++++ b/src/utilities/gstat/dba.epp +@@ -56,6 +56,7 @@ + #include "../common/classes/UserBlob.h" + #include "../common/os/os_utils.h" + #include "../common/StatusHolder.h" ++#include "../common/ThreadStart.h" + + using MsgFormat::SafeArg; + +diff --git a/src/utilities/nbackup/nbkswi.h b/src/utilities/nbackup/nbkswi.h +index 4326c3d..b8d43da 100644 +--- a/src/utilities/nbackup/nbkswi.h ++++ b/src/utilities/nbackup/nbkswi.h +@@ -27,7 +27,6 @@ + #ifndef NBACKUP_NBKSWI_H + #define NBACKUP_NBKSWI_H + +-//#include "../common/common.h" + #include "../jrd/constants.h" + + // Switch handling constants +diff --git a/src/utilities/ntrace/os/win32/FileObject.cpp b/src/utilities/ntrace/os/win32/FileObject.cpp +index 73ed38f..53fbfc0 100644 +--- a/src/utilities/ntrace/os/win32/FileObject.cpp ++++ b/src/utilities/ntrace/os/win32/FileObject.cpp +@@ -27,7 +27,6 @@ + + #include "firebird.h" + #include "../FileObject.h" +-//#include "../common/classes/locks.h" + + using namespace Firebird; + Firebird::Mutex open_mutex; +diff --git a/src/yvalve/gds.cpp b/src/yvalve/gds.cpp +index c851f7c..998bbde 100644 +--- a/src/yvalve/gds.cpp ++++ b/src/yvalve/gds.cpp +@@ -57,6 +57,7 @@ + #include "../common/classes/init.h" + #include "../common/classes/TempFile.h" + #include "../common/utils_proto.h" ++#include "../common/ThreadStart.h" + + #ifdef HAVE_UNISTD_H + #include +diff --git a/src/yvalve/preparse.cpp b/src/yvalve/preparse.cpp +index b2335a5..e742784 100644 +--- a/src/yvalve/preparse.cpp ++++ b/src/yvalve/preparse.cpp +@@ -25,7 +25,6 @@ + #include "firebird.h" + #include + #include +-//#include "../dsql/chars.h" + #include "../yvalve/prepa_proto.h" + #include "../yvalve/gds_proto.h" + #include "../yvalve/YObjects.h" +--- a/src/common/isc_sync.cpp ++++ b/src/common/isc_sync.cpp +@@ -67,6 +67,7 @@ + #include "../common/classes/RefMutex.h" + #include "../common/classes/array.h" + #include "../common/StatusHolder.h" ++#include "../common/ThreadStart.h" + + static int process_id; + +-- +2.9.3 + diff --git a/external/firebird/UnpackedTarball_firebird.mk b/external/firebird/UnpackedTarball_firebird.mk index b65d0411c20bb..d62bad7b10f3a 100644 --- a/external/firebird/UnpackedTarball_firebird.mk +++ b/external/firebird/UnpackedTarball_firebird.mk @@ -22,6 +22,8 @@ $(eval $(call gb_UnpackedTarball_add_patches,firebird,\ external/firebird/wnt-dbgutil.patch \ external/firebird/debug-gfix-failure.patch \ external/firebird/libc++.patch \ + external/firebird/0001-Avoid-hangup-in-SS-when-error-happens-at-system-atta.patch.1 \ + external/firebird/0002-Backported-fix-for-CORE-5452-Segfault-when-engine-s-.patch.1 \ )) ifeq ($(OS)-$(COM),WNT-MSC) diff --git a/external/hunspell/0001-Revert-Remove-autotools-autogenerated-files.patch b/external/hunspell/0001-Revert-Remove-autotools-autogenerated-files.patch new file mode 100644 index 0000000000000..ab6b19d2442a1 --- /dev/null +++ b/external/hunspell/0001-Revert-Remove-autotools-autogenerated-files.patch @@ -0,0 +1,61599 @@ +From dbac0be3ac61fc73f557ff5c95d8d5d93c272191 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Mon, 23 Jan 2017 16:02:59 +0000 +Subject: [PATCH] Revert "Remove autotools autogenerated files" + +This reverts commit f53fc2c5f5a79b32010a76216fcdc0838243cc3f. +--- + Makefile.in | 951 ++ + aclocal.m4 | 1290 ++ + compile | 347 + + config.guess | 1421 +++ + config.h.in | 572 + + config.sub | 1807 +++ + configure | 25046 +++++++++++++++++++++++++++++++++++++ + depcomp | 791 ++ + install-sh | 501 + + ltmain.sh | 11147 +++++++++++++++++ + m4/Makefile.in | 518 + + m4/isc-posix.m4 | 26 + + m4/libtool.m4 | 8372 +++++++++++++ + m4/ltoptions.m4 | 437 + + m4/ltsugar.m4 | 124 + + m4/ltversion.m4 | 23 + + m4/lt~obsolete.m4 | 99 + + man/Makefile.in | 862 ++ + man/hu/Makefile.in | 638 + + missing | 215 + + mkinstalldirs | 162 + + src/Makefile.in | 690 + + src/hunspell/Makefile.in | 791 ++ + src/parsers/Makefile.in | 721 ++ + src/tools/Makefile.in | 875 ++ + src/win_api/Makefile.in | 515 + + test-driver | 148 + + tests/Makefile.in | 1749 +++ + tests/suggestiontest/Makefile.in | 517 + + 29 files changed, 61355 insertions(+) + create mode 100644 Makefile.in + create mode 100644 aclocal.m4 + create mode 100755 compile + create mode 100755 config.guess + create mode 100644 config.h.in + create mode 100755 config.sub + create mode 100755 configure + create mode 100755 depcomp + create mode 100755 install-sh + create mode 100644 ltmain.sh + create mode 100644 m4/Makefile.in + create mode 100644 m4/isc-posix.m4 + create mode 100644 m4/libtool.m4 + create mode 100644 m4/ltoptions.m4 + create mode 100644 m4/ltsugar.m4 + create mode 100644 m4/ltversion.m4 + create mode 100644 m4/lt~obsolete.m4 + create mode 100644 man/Makefile.in + create mode 100644 man/hu/Makefile.in + create mode 100755 missing + create mode 100755 mkinstalldirs + create mode 100644 src/Makefile.in + create mode 100644 src/hunspell/Makefile.in + create mode 100644 src/parsers/Makefile.in + create mode 100644 src/tools/Makefile.in + create mode 100644 src/win_api/Makefile.in + create mode 100755 test-driver + create mode 100644 tests/Makefile.in + create mode 100644 tests/suggestiontest/Makefile.in + +diff --git a/Makefile.in b/Makefile.in +new file mode 100644 +index 0000000..a09871c +--- /dev/null ++++ b/Makefile.in +@@ -0,0 +1,951 @@ ++# Makefile.in generated by automake 1.15 from Makefile.am. ++# @configure_input@ ++ ++# Copyright (C) 1994-2014 Free Software Foundation, Inc. ++ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++@SET_MAKE@ ++ ++VPATH = @srcdir@ ++am__is_gnu_make = { \ ++ if test -z '$(MAKELEVEL)'; then \ ++ false; \ ++ elif test -n '$(MAKE_HOST)'; then \ ++ true; \ ++ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ ++ true; \ ++ else \ ++ false; \ ++ fi; \ ++} ++am__make_running_with_option = \ ++ case $${target_option-} in \ ++ ?) ;; \ ++ *) echo "am__make_running_with_option: internal error: invalid" \ ++ "target option '$${target_option-}' specified" >&2; \ ++ exit 1;; \ ++ esac; \ ++ has_opt=no; \ ++ sane_makeflags=$$MAKEFLAGS; \ ++ if $(am__is_gnu_make); then \ ++ sane_makeflags=$$MFLAGS; \ ++ else \ ++ case $$MAKEFLAGS in \ ++ *\\[\ \ ]*) \ ++ bs=\\; \ ++ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ ++ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ ++ esac; \ ++ fi; \ ++ skip_next=no; \ ++ strip_trailopt () \ ++ { \ ++ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ ++ }; \ ++ for flg in $$sane_makeflags; do \ ++ test $$skip_next = yes && { skip_next=no; continue; }; \ ++ case $$flg in \ ++ *=*|--*) continue;; \ ++ -*I) strip_trailopt 'I'; skip_next=yes;; \ ++ -*I?*) strip_trailopt 'I';; \ ++ -*O) strip_trailopt 'O'; skip_next=yes;; \ ++ -*O?*) strip_trailopt 'O';; \ ++ -*l) strip_trailopt 'l'; skip_next=yes;; \ ++ -*l?*) strip_trailopt 'l';; \ ++ -[dEDm]) skip_next=yes;; \ ++ -[JT]) skip_next=yes;; \ ++ esac; \ ++ case $$flg in \ ++ *$$target_option*) has_opt=yes; break;; \ ++ esac; \ ++ done; \ ++ test $$has_opt = yes ++am__make_dryrun = (target_option=n; $(am__make_running_with_option)) ++am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkglibexecdir = $(libexecdir)/@PACKAGE@ ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = @build@ ++host_triplet = @host@ ++subdir = . ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ ++ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ ++ $(top_srcdir)/m4/glibc2.m4 $(top_srcdir)/m4/glibc21.m4 \ ++ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \ ++ $(top_srcdir)/m4/intl.m4 $(top_srcdir)/m4/intlmacosx.m4 \ ++ $(top_srcdir)/m4/intmax.m4 $(top_srcdir)/m4/inttypes-pri.m4 \ ++ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ ++ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ ++ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ ++ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ ++ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ++ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ ++ $(top_srcdir)/m4/printf-posix.m4 $(top_srcdir)/m4/progtest.m4 \ ++ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/stdint_h.m4 \ ++ $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/m4/uintmax_t.m4 \ ++ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ ++ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ++ $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ ++ $(am__configure_deps) $(am__DIST_COMMON) ++am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ ++ configure.lineno config.status.lineno ++mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs ++CONFIG_HEADER = config.h ++CONFIG_CLEAN_FILES = hunspell.pc intl/Makefile ++CONFIG_CLEAN_VPATH_FILES = ++AM_V_P = $(am__v_P_@AM_V@) ++am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) ++am__v_P_0 = false ++am__v_P_1 = : ++AM_V_GEN = $(am__v_GEN_@AM_V@) ++am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) ++am__v_GEN_0 = @echo " GEN " $@; ++am__v_GEN_1 = ++AM_V_at = $(am__v_at_@AM_V@) ++am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) ++am__v_at_0 = @ ++am__v_at_1 = ++SOURCES = ++DIST_SOURCES = ++RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ++ ctags-recursive dvi-recursive html-recursive info-recursive \ ++ install-data-recursive install-dvi-recursive \ ++ install-exec-recursive install-html-recursive \ ++ install-info-recursive install-pdf-recursive \ ++ install-ps-recursive install-recursive installcheck-recursive \ ++ installdirs-recursive pdf-recursive ps-recursive \ ++ tags-recursive uninstall-recursive ++am__can_run_installinfo = \ ++ case $$AM_UPDATE_INFO_DIR in \ ++ n|no|NO) false;; \ ++ *) (install-info --version) >/dev/null 2>&1;; \ ++ esac ++am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; ++am__vpath_adj = case $$p in \ ++ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ ++ *) f=$$p;; \ ++ esac; ++am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; ++am__install_max = 40 ++am__nobase_strip_setup = \ ++ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` ++am__nobase_strip = \ ++ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" ++am__nobase_list = $(am__nobase_strip_setup); \ ++ for p in $$list; do echo "$$p $$p"; done | \ ++ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ ++ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ ++ if (++n[$$2] == $(am__install_max)) \ ++ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ ++ END { for (dir in files) print dir, files[dir] }' ++am__base_list = \ ++ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ ++ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' ++am__uninstall_files_from_dir = { \ ++ test -z "$$files" \ ++ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ ++ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ ++ $(am__cd) "$$dir" && rm -f $$files; }; \ ++ } ++am__installdirs = "$(DESTDIR)$(pkgconfdir)" ++DATA = $(pkgconf_DATA) ++RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ ++ distclean-recursive maintainer-clean-recursive ++am__recursive_targets = \ ++ $(RECURSIVE_TARGETS) \ ++ $(RECURSIVE_CLEAN_TARGETS) \ ++ $(am__extra_recursive_targets) ++AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ ++ cscope distdir dist dist-all distcheck ++am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ ++ $(LISP)config.h.in ++# Read a list of newline-separated strings from the standard input, ++# and print each of them once, without duplicates. Input order is ++# *not* preserved. ++am__uniquify_input = $(AWK) '\ ++ BEGIN { nonempty = 0; } \ ++ { items[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in items) print i; }; } \ ++' ++# Make sure the list of sources is unique. This is necessary because, ++# e.g., the same source file might be shared among _SOURCES variables ++# for different programs/libraries. ++am__define_uniq_tagged_files = \ ++ list='$(am__tagged_files)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | $(am__uniquify_input)` ++ETAGS = etags ++CTAGS = ctags ++CSCOPE = cscope ++DIST_SUBDIRS = $(SUBDIRS) ++am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ ++ $(srcdir)/hunspell.pc.in $(top_srcdir)/intl/Makefile.in \ ++ ABOUT-NLS AUTHORS COPYING COPYING.LESSER ChangeLog INSTALL \ ++ NEWS README THANKS TODO compile config.guess config.rpath \ ++ config.sub install-sh ltmain.sh missing mkinstalldirs ++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ++distdir = $(PACKAGE)-$(VERSION) ++top_distdir = $(distdir) ++am__remove_distdir = \ ++ if test -d "$(distdir)"; then \ ++ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ ++ && rm -rf "$(distdir)" \ ++ || { sleep 5 && rm -rf "$(distdir)"; }; \ ++ else :; fi ++am__post_remove_distdir = $(am__remove_distdir) ++am__relativize = \ ++ dir0=`pwd`; \ ++ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ ++ sed_rest='s,^[^/]*/*,,'; \ ++ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ ++ sed_butlast='s,/*[^/]*$$,,'; \ ++ while test -n "$$dir1"; do \ ++ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ ++ if test "$$first" != "."; then \ ++ if test "$$first" = ".."; then \ ++ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ ++ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ ++ else \ ++ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ ++ if test "$$first2" = "$$first"; then \ ++ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ ++ else \ ++ dir2="../$$dir2"; \ ++ fi; \ ++ dir0="$$dir0"/"$$first"; \ ++ fi; \ ++ fi; \ ++ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ ++ done; \ ++ reldir="$$dir2" ++DIST_ARCHIVES = $(distdir).tar.gz ++GZIP_ENV = --best ++DIST_TARGETS = dist-gzip ++distuninstallcheck_listfiles = find . -type f -print ++am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ ++ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' ++distcleancheck_listfiles = find . -type f -print ++ACLOCAL = @ACLOCAL@ ++ALLOCA = @ALLOCA@ ++AMTAR = @AMTAR@ ++AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ ++AR = @AR@ ++AS = @AS@ ++AUTOCONF = @AUTOCONF@ ++AUTOHEADER = @AUTOHEADER@ ++AUTOMAKE = @AUTOMAKE@ ++AWK = @AWK@ ++BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ ++CATOBJEXT = @CATOBJEXT@ ++CC = @CC@ ++CCDEPMODE = @CCDEPMODE@ ++CFLAGS = @CFLAGS@ ++CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ ++CPP = @CPP@ ++CPPFLAGS = @CPPFLAGS@ ++CURSESLIB = @CURSESLIB@ ++CXX = @CXX@ ++CXXCPP = @CXXCPP@ ++CXXDEPMODE = @CXXDEPMODE@ ++CXXFLAGS = @CXXFLAGS@ ++CYGPATH_W = @CYGPATH_W@ ++DATADIRNAME = @DATADIRNAME@ ++DEFS = @DEFS@ ++DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ ++DSYMUTIL = @DSYMUTIL@ ++DUMPBIN = @DUMPBIN@ ++ECHO_C = @ECHO_C@ ++ECHO_N = @ECHO_N@ ++ECHO_T = @ECHO_T@ ++EGREP = @EGREP@ ++EXEEXT = @EXEEXT@ ++FGREP = @FGREP@ ++GENCAT = @GENCAT@ ++GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ ++GLIBC2 = @GLIBC2@ ++GLIBC21 = @GLIBC21@ ++GMSGFMT = @GMSGFMT@ ++GMSGFMT_015 = @GMSGFMT_015@ ++GREP = @GREP@ ++HAVE_ASPRINTF = @HAVE_ASPRINTF@ ++HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ ++HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ ++HAVE_SNPRINTF = @HAVE_SNPRINTF@ ++HAVE_VISIBILITY = @HAVE_VISIBILITY@ ++HAVE_WPRINTF = @HAVE_WPRINTF@ ++HUNSPELL_VERSION_MAJOR = @HUNSPELL_VERSION_MAJOR@ ++HUNSPELL_VERSION_MINOR = @HUNSPELL_VERSION_MINOR@ ++INSTALL = @INSTALL@ ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ++INSTOBJEXT = @INSTOBJEXT@ ++INTLBISON = @INTLBISON@ ++INTLLIBS = @INTLLIBS@ ++INTLOBJS = @INTLOBJS@ ++INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ ++INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ ++INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ++LD = @LD@ ++LDFLAGS = @LDFLAGS@ ++LIBICONV = @LIBICONV@ ++LIBINTL = @LIBINTL@ ++LIBMULTITHREAD = @LIBMULTITHREAD@ ++LIBOBJS = @LIBOBJS@ ++LIBPTH = @LIBPTH@ ++LIBPTH_PREFIX = @LIBPTH_PREFIX@ ++LIBS = @LIBS@ ++LIBTHREAD = @LIBTHREAD@ ++LIBTOOL = @LIBTOOL@ ++LIPO = @LIPO@ ++LN_S = @LN_S@ ++LTLIBC = @LTLIBC@ ++LTLIBICONV = @LTLIBICONV@ ++LTLIBINTL = @LTLIBINTL@ ++LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ ++LTLIBOBJS = @LTLIBOBJS@ ++LTLIBPTH = @LTLIBPTH@ ++LTLIBTHREAD = @LTLIBTHREAD@ ++LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ ++MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ ++MKDIR_P = @MKDIR_P@ ++MSGFMT = @MSGFMT@ ++MSGFMT_015 = @MSGFMT_015@ ++MSGMERGE = @MSGMERGE@ ++NM = @NM@ ++NMEDIT = @NMEDIT@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++OTOOL = @OTOOL@ ++OTOOL64 = @OTOOL64@ ++PACKAGE = @PACKAGE@ ++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ ++PACKAGE_NAME = @PACKAGE_NAME@ ++PACKAGE_STRING = @PACKAGE_STRING@ ++PACKAGE_TARNAME = @PACKAGE_TARNAME@ ++PACKAGE_URL = @PACKAGE_URL@ ++PACKAGE_VERSION = @PACKAGE_VERSION@ ++PATH_SEPARATOR = @PATH_SEPARATOR@ ++POSUB = @POSUB@ ++PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ ++RANLIB = @RANLIB@ ++READLINELIB = @READLINELIB@ ++SED = @SED@ ++SET_MAKE = @SET_MAKE@ ++SHELL = @SHELL@ ++STRIP = @STRIP@ ++USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ ++USE_NLS = @USE_NLS@ ++VERSION = @VERSION@ ++WINDRES = @WINDRES@ ++WOE32 = @WOE32@ ++WOE32DLL = @WOE32DLL@ ++XFAILED = @XFAILED@ ++XGETTEXT = @XGETTEXT@ ++XGETTEXT_015 = @XGETTEXT_015@ ++XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ++abs_builddir = @abs_builddir@ ++abs_srcdir = @abs_srcdir@ ++abs_top_builddir = @abs_top_builddir@ ++abs_top_srcdir = @abs_top_srcdir@ ++ac_ct_AR = @ac_ct_AR@ ++ac_ct_CC = @ac_ct_CC@ ++ac_ct_CXX = @ac_ct_CXX@ ++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ++am__include = @am__include@ ++am__leading_dot = @am__leading_dot@ ++am__quote = @am__quote@ ++am__tar = @am__tar@ ++am__untar = @am__untar@ ++bindir = @bindir@ ++build = @build@ ++build_alias = @build_alias@ ++build_cpu = @build_cpu@ ++build_os = @build_os@ ++build_vendor = @build_vendor@ ++builddir = @builddir@ ++datadir = @datadir@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++dvidir = @dvidir@ ++exec_prefix = @exec_prefix@ ++host = @host@ ++host_alias = @host_alias@ ++host_cpu = @host_cpu@ ++host_os = @host_os@ ++host_vendor = @host_vendor@ ++htmldir = @htmldir@ ++includedir = @includedir@ ++infodir = @infodir@ ++install_sh = @install_sh@ ++libdir = @libdir@ ++libexecdir = @libexecdir@ ++localedir = @localedir@ ++localstatedir = @localstatedir@ ++mandir = @mandir@ ++mkdir_p = @mkdir_p@ ++oldincludedir = @oldincludedir@ ++pdfdir = @pdfdir@ ++prefix = @prefix@ ++program_transform_name = @program_transform_name@ ++psdir = @psdir@ ++sbindir = @sbindir@ ++sharedstatedir = @sharedstatedir@ ++srcdir = @srcdir@ ++sysconfdir = @sysconfdir@ ++target_alias = @target_alias@ ++top_build_prefix = @top_build_prefix@ ++top_builddir = @top_builddir@ ++top_srcdir = @top_srcdir@ ++ACLOCAL_AMFLAGS = -I m4 ++SUBDIRS = intl po src man tests ++pkgconfdir = $(libdir)/pkgconfig ++pkgconf_DATA = hunspell.pc ++EXTRA_DIST = BUGS README.myspell AUTHORS.myspell license.myspell license.hunspell \ ++ ChangeLog.O COPYING.MPL COPYING.LESSER hunspell.pc.in ++ ++all: config.h ++ $(MAKE) $(AM_MAKEFLAGS) all-recursive ++ ++.SUFFIXES: ++am--refresh: Makefile ++ @: ++$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) ++ @for dep in $?; do \ ++ case '$(am__configure_deps)' in \ ++ *$$dep*) \ ++ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ ++ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ ++ && exit 0; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnu Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ echo ' $(SHELL) ./config.status'; \ ++ $(SHELL) ./config.status;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ ++ esac; ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ $(SHELL) ./config.status --recheck ++ ++$(top_srcdir)/configure: $(am__configure_deps) ++ $(am__cd) $(srcdir) && $(AUTOCONF) ++$(ACLOCAL_M4): $(am__aclocal_m4_deps) ++ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) ++$(am__aclocal_m4_deps): ++ ++config.h: stamp-h1 ++ @test -f $@ || rm -f stamp-h1 ++ @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 ++ ++stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status ++ @rm -f stamp-h1 ++ cd $(top_builddir) && $(SHELL) ./config.status config.h ++$(srcdir)/config.h.in: $(am__configure_deps) ++ ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) ++ rm -f stamp-h1 ++ touch $@ ++ ++distclean-hdr: ++ -rm -f config.h stamp-h1 ++hunspell.pc: $(top_builddir)/config.status $(srcdir)/hunspell.pc.in ++ cd $(top_builddir) && $(SHELL) ./config.status $@ ++intl/Makefile: $(top_builddir)/config.status $(top_srcdir)/intl/Makefile.in ++ cd $(top_builddir) && $(SHELL) ./config.status $@ ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++distclean-libtool: ++ -rm -f libtool config.lt ++install-pkgconfDATA: $(pkgconf_DATA) ++ @$(NORMAL_INSTALL) ++ @list='$(pkgconf_DATA)'; test -n "$(pkgconfdir)" || list=; \ ++ if test -n "$$list"; then \ ++ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfdir)'"; \ ++ $(MKDIR_P) "$(DESTDIR)$(pkgconfdir)" || exit 1; \ ++ fi; \ ++ for p in $$list; do \ ++ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ ++ echo "$$d$$p"; \ ++ done | $(am__base_list) | \ ++ while read files; do \ ++ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfdir)'"; \ ++ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfdir)" || exit $$?; \ ++ done ++ ++uninstall-pkgconfDATA: ++ @$(NORMAL_UNINSTALL) ++ @list='$(pkgconf_DATA)'; test -n "$(pkgconfdir)" || list=; \ ++ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ ++ dir='$(DESTDIR)$(pkgconfdir)'; $(am__uninstall_files_from_dir) ++ ++# This directory's subdirectories are mostly independent; you can cd ++# into them and run 'make' without going through this Makefile. ++# To change the values of 'make' variables: instead of editing Makefiles, ++# (1) if the variable is set in 'config.status', edit 'config.status' ++# (which will cause the Makefiles to be regenerated when you run 'make'); ++# (2) otherwise, pass the desired values on the 'make' command line. ++$(am__recursive_targets): ++ @fail=; \ ++ if $(am__make_keepgoing); then \ ++ failcom='fail=yes'; \ ++ else \ ++ failcom='exit 1'; \ ++ fi; \ ++ dot_seen=no; \ ++ target=`echo $@ | sed s/-recursive//`; \ ++ case "$@" in \ ++ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ ++ *) list='$(SUBDIRS)' ;; \ ++ esac; \ ++ for subdir in $$list; do \ ++ echo "Making $$target in $$subdir"; \ ++ if test "$$subdir" = "."; then \ ++ dot_seen=yes; \ ++ local_target="$$target-am"; \ ++ else \ ++ local_target="$$target"; \ ++ fi; \ ++ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ ++ || eval $$failcom; \ ++ done; \ ++ if test "$$dot_seen" = "no"; then \ ++ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ ++ fi; test -z "$$fail" ++ ++ID: $(am__tagged_files) ++ $(am__define_uniq_tagged_files); mkid -fID $$unique ++tags: tags-recursive ++TAGS: tags ++ ++tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ set x; \ ++ here=`pwd`; \ ++ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ ++ include_option=--etags-include; \ ++ empty_fix=.; \ ++ else \ ++ include_option=--include; \ ++ empty_fix=; \ ++ fi; \ ++ list='$(SUBDIRS)'; for subdir in $$list; do \ ++ if test "$$subdir" = .; then :; else \ ++ test ! -f $$subdir/TAGS || \ ++ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ ++ fi; \ ++ done; \ ++ $(am__define_uniq_tagged_files); \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ ++ test -n "$$unique" || unique=$$empty_fix; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ ++ fi ++ctags: ctags-recursive ++ ++CTAGS: ctags ++ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ $(am__define_uniq_tagged_files); \ ++ test -z "$(CTAGS_ARGS)$$unique" \ ++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ ++ $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" ++cscope: cscope.files ++ test ! -s cscope.files \ ++ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) ++clean-cscope: ++ -rm -f cscope.files ++cscope.files: clean-cscope cscopelist ++cscopelist: cscopelist-recursive ++ ++cscopelist-am: $(am__tagged_files) ++ list='$(am__tagged_files)'; \ ++ case "$(srcdir)" in \ ++ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ ++ *) sdir=$(subdir)/$(srcdir) ;; \ ++ esac; \ ++ for i in $$list; do \ ++ if test -f "$$i"; then \ ++ echo "$(subdir)/$$i"; \ ++ else \ ++ echo "$$sdir/$$i"; \ ++ fi; \ ++ done >> $(top_builddir)/cscope.files ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags ++ -rm -f cscope.out cscope.in.out cscope.po.out cscope.files ++ ++distdir: $(DISTFILES) ++ $(am__remove_distdir) ++ test -d "$(distdir)" || mkdir "$(distdir)" ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ ++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ ++ if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ ++ else \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ ++ || exit 1; \ ++ fi; \ ++ done ++ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ ++ if test "$$subdir" = .; then :; else \ ++ $(am__make_dryrun) \ ++ || test -d "$(distdir)/$$subdir" \ ++ || $(MKDIR_P) "$(distdir)/$$subdir" \ ++ || exit 1; \ ++ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ ++ $(am__relativize); \ ++ new_distdir=$$reldir; \ ++ dir1=$$subdir; dir2="$(top_distdir)"; \ ++ $(am__relativize); \ ++ new_top_distdir=$$reldir; \ ++ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ ++ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ++ ($(am__cd) $$subdir && \ ++ $(MAKE) $(AM_MAKEFLAGS) \ ++ top_distdir="$$new_top_distdir" \ ++ distdir="$$new_distdir" \ ++ am__remove_distdir=: \ ++ am__skip_length_check=: \ ++ am__skip_mode_fix=: \ ++ distdir) \ ++ || exit 1; \ ++ fi; \ ++ done ++ -test -n "$(am__skip_mode_fix)" \ ++ || find "$(distdir)" -type d ! -perm -755 \ ++ -exec chmod u+rwx,go+rx {} \; -o \ ++ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ++ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ++ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ ++ || chmod -R a+r "$(distdir)" ++dist-gzip: distdir ++ tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz ++ $(am__post_remove_distdir) ++ ++dist-bzip2: distdir ++ tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 ++ $(am__post_remove_distdir) ++ ++dist-lzip: distdir ++ tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz ++ $(am__post_remove_distdir) ++ ++dist-xz: distdir ++ tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz ++ $(am__post_remove_distdir) ++ ++dist-tarZ: distdir ++ @echo WARNING: "Support for distribution archives compressed with" \ ++ "legacy program 'compress' is deprecated." >&2 ++ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 ++ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z ++ $(am__post_remove_distdir) ++ ++dist-shar: distdir ++ @echo WARNING: "Support for shar distribution archives is" \ ++ "deprecated." >&2 ++ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 ++ shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz ++ $(am__post_remove_distdir) ++ ++dist-zip: distdir ++ -rm -f $(distdir).zip ++ zip -rq $(distdir).zip $(distdir) ++ $(am__post_remove_distdir) ++ ++dist dist-all: ++ $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' ++ $(am__post_remove_distdir) ++ ++# This target untars the dist file and tries a VPATH configuration. Then ++# it guarantees that the distribution is self-contained by making another ++# tarfile. ++distcheck: dist ++ case '$(DIST_ARCHIVES)' in \ ++ *.tar.gz*) \ ++ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ ++ *.tar.bz2*) \ ++ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ ++ *.tar.lz*) \ ++ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ ++ *.tar.xz*) \ ++ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ ++ *.tar.Z*) \ ++ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ ++ *.shar.gz*) \ ++ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ ++ *.zip*) \ ++ unzip $(distdir).zip ;;\ ++ esac ++ chmod -R a-w $(distdir) ++ chmod u+w $(distdir) ++ mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst ++ chmod a-w $(distdir) ++ test -d $(distdir)/_build || exit 0; \ ++ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ ++ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ ++ && am__cwd=`pwd` \ ++ && $(am__cd) $(distdir)/_build/sub \ ++ && ../../configure \ ++ --with-included-gettext \ ++ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ ++ $(DISTCHECK_CONFIGURE_FLAGS) \ ++ --srcdir=../.. --prefix="$$dc_install_base" \ ++ && $(MAKE) $(AM_MAKEFLAGS) \ ++ && $(MAKE) $(AM_MAKEFLAGS) dvi \ ++ && $(MAKE) $(AM_MAKEFLAGS) check \ ++ && $(MAKE) $(AM_MAKEFLAGS) install \ ++ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ ++ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ ++ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ ++ distuninstallcheck \ ++ && chmod -R a-w "$$dc_install_base" \ ++ && ({ \ ++ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ ++ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ ++ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ ++ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ ++ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ ++ } || { rm -rf "$$dc_destdir"; exit 1; }) \ ++ && rm -rf "$$dc_destdir" \ ++ && $(MAKE) $(AM_MAKEFLAGS) dist \ ++ && rm -rf $(DIST_ARCHIVES) \ ++ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ ++ && cd "$$am__cwd" \ ++ || exit 1 ++ $(am__post_remove_distdir) ++ @(echo "$(distdir) archives ready for distribution: "; \ ++ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ ++ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' ++distuninstallcheck: ++ @test -n '$(distuninstallcheck_dir)' || { \ ++ echo 'ERROR: trying to run $@ with an empty' \ ++ '$$(distuninstallcheck_dir)' >&2; \ ++ exit 1; \ ++ }; \ ++ $(am__cd) '$(distuninstallcheck_dir)' || { \ ++ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ ++ exit 1; \ ++ }; \ ++ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ ++ || { echo "ERROR: files left after uninstall:" ; \ ++ if test -n "$(DESTDIR)"; then \ ++ echo " (check DESTDIR support)"; \ ++ fi ; \ ++ $(distuninstallcheck_listfiles) ; \ ++ exit 1; } >&2 ++distcleancheck: distclean ++ @if test '$(srcdir)' = . ; then \ ++ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ ++ exit 1 ; \ ++ fi ++ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ ++ || { echo "ERROR: files left in build directory after distclean:" ; \ ++ $(distcleancheck_listfiles) ; \ ++ exit 1; } >&2 ++check-am: all-am ++check: check-recursive ++all-am: Makefile $(DATA) config.h ++installdirs: installdirs-recursive ++installdirs-am: ++ for dir in "$(DESTDIR)$(pkgconfdir)"; do \ ++ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ ++ done ++install: install-recursive ++install-exec: install-exec-recursive ++install-data: install-data-recursive ++uninstall: uninstall-recursive ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-recursive ++install-strip: ++ if test -z '$(STRIP)'; then \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ install; \ ++ else \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ ++ fi ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-recursive ++ ++clean-am: clean-generic clean-libtool mostlyclean-am ++ ++distclean: distclean-recursive ++ -rm -f $(am__CONFIG_DISTCLEAN_FILES) ++ -rm -f Makefile ++distclean-am: clean-am distclean-generic distclean-hdr \ ++ distclean-libtool distclean-tags ++ ++dvi: dvi-recursive ++ ++dvi-am: ++ ++html: html-recursive ++ ++html-am: ++ ++info: info-recursive ++ ++info-am: ++ ++install-data-am: install-pkgconfDATA ++ ++install-dvi: install-dvi-recursive ++ ++install-dvi-am: ++ ++install-exec-am: ++ ++install-html: install-html-recursive ++ ++install-html-am: ++ ++install-info: install-info-recursive ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-recursive ++ ++install-pdf-am: ++ ++install-ps: install-ps-recursive ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-recursive ++ -rm -f $(am__CONFIG_DISTCLEAN_FILES) ++ -rm -rf $(top_srcdir)/autom4te.cache ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-recursive ++ ++mostlyclean-am: mostlyclean-generic mostlyclean-libtool ++ ++pdf: pdf-recursive ++ ++pdf-am: ++ ++ps: ps-recursive ++ ++ps-am: ++ ++uninstall-am: uninstall-pkgconfDATA ++ ++.MAKE: $(am__recursive_targets) all install-am install-strip ++ ++.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ ++ am--refresh check check-am clean clean-cscope clean-generic \ ++ clean-libtool cscope cscopelist-am ctags ctags-am dist \ ++ dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ ++ dist-xz dist-zip distcheck distclean distclean-generic \ ++ distclean-hdr distclean-libtool distclean-tags distcleancheck \ ++ distdir distuninstallcheck dvi dvi-am html html-am info \ ++ info-am install install-am install-data install-data-am \ ++ install-dvi install-dvi-am install-exec install-exec-am \ ++ install-html install-html-am install-info install-info-am \ ++ install-man install-pdf install-pdf-am install-pkgconfDATA \ ++ install-ps install-ps-am install-strip installcheck \ ++ installcheck-am installdirs installdirs-am maintainer-clean \ ++ maintainer-clean-generic mostlyclean mostlyclean-generic \ ++ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ ++ uninstall-am uninstall-pkgconfDATA ++ ++.PRECIOUS: Makefile ++ ++ ++# 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/aclocal.m4 b/aclocal.m4 +new file mode 100644 +index 0000000..56658b6 +--- /dev/null ++++ b/aclocal.m4 +@@ -0,0 +1,1290 @@ ++# generated automatically by aclocal 1.15 -*- Autoconf -*- ++ ++# Copyright (C) 1996-2014 Free Software Foundation, Inc. ++ ++# This file is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) ++m4_ifndef([AC_AUTOCONF_VERSION], ++ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl ++m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, ++[m4_warning([this file was generated for autoconf 2.69. ++You have another version of autoconf. It may work, but is not guaranteed to. ++If you have problems, you may need to regenerate the build system entirely. ++To do so, use the procedure documented by the package, typically 'autoreconf'.])]) ++ ++dnl 'extern inline' a la ISO C99. ++ ++dnl Copyright 2012-2016 Free Software Foundation, Inc. ++dnl This file is free software; the Free Software Foundation ++dnl gives unlimited permission to copy and/or distribute it, ++dnl with or without modifications, as long as this notice is preserved. ++ ++AC_DEFUN([gl_EXTERN_INLINE], ++[ ++ AH_VERBATIM([extern_inline], ++[/* Please see the Gnulib manual for how to use these macros. ++ ++ Suppress extern inline with HP-UX cc, as it appears to be broken; see ++ . ++ ++ Suppress extern inline with Sun C in standards-conformance mode, as it ++ mishandles inline functions that call each other. E.g., for 'inline void f ++ (void) { } inline void g (void) { f (); }', c99 incorrectly complains ++ 'reference to static identifier "f" in extern inline function'. ++ This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16. ++ ++ Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) ++ on configurations that mistakenly use 'static inline' to implement ++ functions or macros in standard C headers like . For example, ++ if isdigit is mistakenly implemented via a static inline function, ++ a program containing an extern inline function that calls isdigit ++ may not work since the C standard prohibits extern inline functions ++ from calling static functions. This bug is known to occur on: ++ ++ OS X 10.8 and earlier; see: ++ http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html ++ ++ DragonFly; see ++ http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log ++ ++ FreeBSD; see: ++ http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00104.html ++ ++ OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and ++ for clang but remains for g++; see . ++ Assume DragonFly and FreeBSD will be similar. */ ++#if (((defined __APPLE__ && defined __MACH__) \ ++ || defined __DragonFly__ || defined __FreeBSD__) \ ++ && (defined __header_inline \ ++ ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ ++ && ! defined __clang__) \ ++ : ((! defined _DONT_USE_CTYPE_INLINE_ \ ++ && (defined __GNUC__ || defined __cplusplus)) \ ++ || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ ++ && defined __GNUC__ && ! defined __cplusplus)))) ++# define _GL_EXTERN_INLINE_STDHEADER_BUG ++#endif ++#if ((__GNUC__ \ ++ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ ++ : (199901L <= __STDC_VERSION__ \ ++ && !defined __HP_cc \ ++ && !defined __PGI \ ++ && !(defined __SUNPRO_C && __STDC__))) \ ++ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) ++# define _GL_INLINE inline ++# define _GL_EXTERN_INLINE extern inline ++# define _GL_EXTERN_INLINE_IN_USE ++#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ ++ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) ++# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ ++ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ ++# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) ++# else ++# define _GL_INLINE extern inline ++# endif ++# define _GL_EXTERN_INLINE extern ++# define _GL_EXTERN_INLINE_IN_USE ++#else ++# define _GL_INLINE static _GL_UNUSED ++# define _GL_EXTERN_INLINE static _GL_UNUSED ++#endif ++ ++/* In GCC 4.6 (inclusive) to 5.1 (exclusive), ++ suppress bogus "no previous prototype for 'FOO'" ++ and "no previous declaration for 'FOO'" diagnostics, ++ when FOO is an inline function in the header; see ++ and ++ . */ ++#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__ ++# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ ++# define _GL_INLINE_HEADER_CONST_PRAGMA ++# else ++# define _GL_INLINE_HEADER_CONST_PRAGMA \ ++ _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") ++# endif ++# define _GL_INLINE_HEADER_BEGIN \ ++ _Pragma ("GCC diagnostic push") \ ++ _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ ++ _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ ++ _GL_INLINE_HEADER_CONST_PRAGMA ++# define _GL_INLINE_HEADER_END \ ++ _Pragma ("GCC diagnostic pop") ++#else ++# define _GL_INLINE_HEADER_BEGIN ++# define _GL_INLINE_HEADER_END ++#endif]) ++]) ++ ++# Copyright (C) 2002-2014 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.15' ++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.15], [], ++ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ++]) ++ ++# _AM_AUTOCONF_VERSION(VERSION) ++# ----------------------------- ++# aclocal traces this macro to find the Autoconf version. ++# This is a private macro too. Using m4_define simplifies ++# the logic in aclocal, which can simply ignore this definition. ++m4_define([_AM_AUTOCONF_VERSION], []) ++ ++# AM_SET_CURRENT_AUTOMAKE_VERSION ++# ------------------------------- ++# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. ++# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. ++AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], ++[AM_AUTOMAKE_VERSION([1.15])dnl ++m4_ifndef([AC_AUTOCONF_VERSION], ++ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl ++_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) ++ ++# AM_AUX_DIR_EXPAND -*- Autoconf -*- ++ ++# Copyright (C) 2001-2014 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], ++[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl ++# Expand $ac_aux_dir to an absolute path. ++am_aux_dir=`cd "$ac_aux_dir" && pwd` ++]) ++ ++# AM_CONDITIONAL -*- Autoconf -*- ++ ++# Copyright (C) 1997-2014 Free Software Foundation, Inc. ++# ++# This file is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# AM_CONDITIONAL(NAME, SHELL-CONDITION) ++# ------------------------------------- ++# Define a conditional. ++AC_DEFUN([AM_CONDITIONAL], ++[AC_PREREQ([2.52])dnl ++ m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], ++ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl ++AC_SUBST([$1_TRUE])dnl ++AC_SUBST([$1_FALSE])dnl ++_AM_SUBST_NOTMAKE([$1_TRUE])dnl ++_AM_SUBST_NOTMAKE([$1_FALSE])dnl ++m4_define([_AM_COND_VALUE_$1], [$2])dnl ++if $2; then ++ $1_TRUE= ++ $1_FALSE='#' ++else ++ $1_TRUE='#' ++ $1_FALSE= ++fi ++AC_CONFIG_COMMANDS_PRE( ++[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then ++ AC_MSG_ERROR([[conditional "$1" was never defined. ++Usually this means the macro was only invoked conditionally.]]) ++fi])]) ++ ++# Copyright (C) 1999-2014 Free Software Foundation, Inc. ++# ++# This file is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++ ++# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be ++# written in clear, in which case automake, when reading aclocal.m4, ++# will think it sees a *use*, and therefore will trigger all it's ++# C support machinery. Also note that it means that autoscan, seeing ++# CC etc. in the Makefile, will ask for an AC_PROG_CC use... ++ ++ ++# _AM_DEPENDENCIES(NAME) ++# ---------------------- ++# See how the compiler implements dependency checking. ++# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". ++# We try a few techniques and use that to set a single cache variable. ++# ++# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was ++# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular ++# dependency, and given that the user is not expected to run this macro, ++# just rely on AC_PROG_CC. ++AC_DEFUN([_AM_DEPENDENCIES], ++[AC_REQUIRE([AM_SET_DEPDIR])dnl ++AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl ++AC_REQUIRE([AM_MAKE_INCLUDE])dnl ++AC_REQUIRE([AM_DEP_TRACK])dnl ++ ++m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], ++ [$1], [CXX], [depcc="$CXX" am_compiler_list=], ++ [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], ++ [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], ++ [$1], [UPC], [depcc="$UPC" am_compiler_list=], ++ [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], ++ [depcc="$$1" am_compiler_list=]) ++ ++AC_CACHE_CHECK([dependency style of $depcc], ++ [am_cv_$1_dependencies_compiler_type], ++[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then ++ # We make a subdir and do the tests there. Otherwise we can end up ++ # making bogus files that we don't know about and never remove. For ++ # instance it was reported that on HP-UX the gcc test will end up ++ # making a dummy file named 'D' -- because '-MD' means "put the output ++ # in D". ++ rm -rf conftest.dir ++ mkdir conftest.dir ++ # Copy depcomp to subdir because otherwise we won't find it if we're ++ # using a relative directory. ++ cp "$am_depcomp" conftest.dir ++ cd conftest.dir ++ # We will build objects and dependencies in a subdirectory because ++ # it helps to detect inapplicable dependency modes. For instance ++ # both Tru64's cc and ICC support -MD to output dependencies as a ++ # side effect of compilation, but ICC will put the dependencies in ++ # the current directory while Tru64 will put them in the object ++ # directory. ++ mkdir sub ++ ++ am_cv_$1_dependencies_compiler_type=none ++ if test "$am_compiler_list" = ""; then ++ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` ++ fi ++ am__universal=false ++ m4_case([$1], [CC], ++ [case " $depcc " in #( ++ *\ -arch\ *\ -arch\ *) am__universal=true ;; ++ esac], ++ [CXX], ++ [case " $depcc " in #( ++ *\ -arch\ *\ -arch\ *) am__universal=true ;; ++ esac]) ++ ++ for depmode in $am_compiler_list; do ++ # Setup a source with many dependencies, because some compilers ++ # like to wrap large dependency lists on column 80 (with \), and ++ # we should not choose a depcomp mode which is confused by this. ++ # ++ # We need to recreate these files for each test, as the compiler may ++ # overwrite some of them when testing with obscure command lines. ++ # This happens at least with the AIX C compiler. ++ : > sub/conftest.c ++ for i in 1 2 3 4 5 6; do ++ echo '#include "conftst'$i'.h"' >> sub/conftest.c ++ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with ++ # Solaris 10 /bin/sh. ++ echo '/* dummy */' > sub/conftst$i.h ++ done ++ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf ++ ++ # We check with '-c' and '-o' for the sake of the "dashmstdout" ++ # mode. It turns out that the SunPro C++ compiler does not properly ++ # handle '-M -o', and we need to detect this. Also, some Intel ++ # versions had trouble with output in subdirs. ++ am__obj=sub/conftest.${OBJEXT-o} ++ am__minus_obj="-o $am__obj" ++ case $depmode in ++ gcc) ++ # This depmode causes a compiler race in universal mode. ++ test "$am__universal" = false || continue ++ ;; ++ nosideeffect) ++ # After this tag, mechanisms are not by side-effect, so they'll ++ # only be used when explicitly requested. ++ if test "x$enable_dependency_tracking" = xyes; then ++ continue ++ else ++ break ++ fi ++ ;; ++ msvc7 | msvc7msys | msvisualcpp | msvcmsys) ++ # This compiler won't grok '-c -o', but also, the minuso test has ++ # not run yet. These depmodes are late enough in the game, and ++ # so weak that their functioning should not be impacted. ++ am__obj=conftest.${OBJEXT-o} ++ am__minus_obj= ++ ;; ++ none) break ;; ++ esac ++ if depmode=$depmode \ ++ source=sub/conftest.c object=$am__obj \ ++ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ ++ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ ++ >/dev/null 2>conftest.err && ++ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && ++ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && ++ grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ++ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then ++ # icc doesn't choke on unknown options, it will just issue warnings ++ # or remarks (even with -Werror). So we grep stderr for any message ++ # that says an option was ignored or not supported. ++ # When given -MP, icc 7.0 and 7.1 complain thusly: ++ # icc: Command line warning: ignoring option '-M'; no argument required ++ # The diagnosis changed in icc 8.0: ++ # icc: Command line remark: option '-MP' not supported ++ if (grep 'ignoring option' conftest.err || ++ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else ++ am_cv_$1_dependencies_compiler_type=$depmode ++ break ++ fi ++ fi ++ done ++ ++ cd .. ++ rm -rf conftest.dir ++else ++ am_cv_$1_dependencies_compiler_type=none ++fi ++]) ++AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) ++AM_CONDITIONAL([am__fastdep$1], [ ++ test "x$enable_dependency_tracking" != xno \ ++ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ++]) ++ ++ ++# AM_SET_DEPDIR ++# ------------- ++# Choose a directory name for dependency files. ++# This macro is AC_REQUIREd in _AM_DEPENDENCIES. ++AC_DEFUN([AM_SET_DEPDIR], ++[AC_REQUIRE([AM_SET_LEADING_DOT])dnl ++AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ++]) ++ ++ ++# AM_DEP_TRACK ++# ------------ ++AC_DEFUN([AM_DEP_TRACK], ++[AC_ARG_ENABLE([dependency-tracking], [dnl ++AS_HELP_STRING( ++ [--enable-dependency-tracking], ++ [do not reject slow dependency extractors]) ++AS_HELP_STRING( ++ [--disable-dependency-tracking], ++ [speeds up one-time build])]) ++if test "x$enable_dependency_tracking" != xno; then ++ am_depcomp="$ac_aux_dir/depcomp" ++ AMDEPBACKSLASH='\' ++ am__nodep='_no' ++fi ++AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) ++AC_SUBST([AMDEPBACKSLASH])dnl ++_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ++AC_SUBST([am__nodep])dnl ++_AM_SUBST_NOTMAKE([am__nodep])dnl ++]) ++ ++# Generate code to set up dependency tracking. -*- Autoconf -*- ++ ++# Copyright (C) 1999-2014 Free Software Foundation, Inc. ++# ++# This file is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++ ++# _AM_OUTPUT_DEPENDENCY_COMMANDS ++# ------------------------------ ++AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], ++[{ ++ # Older Autoconf quotes --file arguments for eval, but not when files ++ # are listed without --file. Let's play safe and only enable the eval ++ # if we detect the quoting. ++ case $CONFIG_FILES in ++ *\'*) eval set x "$CONFIG_FILES" ;; ++ *) set x $CONFIG_FILES ;; ++ esac ++ shift ++ for mf ++ do ++ # Strip MF so we end up with the name of the file. ++ mf=`echo "$mf" | sed -e 's/:.*$//'` ++ # Check whether this is an Automake generated Makefile or not. ++ # We used to match only the files named 'Makefile.in', but ++ # some people rename them; so instead we look at the file content. ++ # Grep'ing the first line is not enough: some people post-process ++ # each Makefile.in and add a new line on top of each file to say so. ++ # Grep'ing the whole file is not good either: AIX grep has a line ++ # limit of 2048, but all sed's we know have understand at least 4000. ++ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then ++ dirpart=`AS_DIRNAME("$mf")` ++ else ++ continue ++ fi ++ # Extract the definition of DEPDIR, am__include, and am__quote ++ # from the Makefile without running 'make'. ++ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` ++ test -z "$DEPDIR" && continue ++ am__include=`sed -n 's/^am__include = //p' < "$mf"` ++ test -z "$am__include" && continue ++ am__quote=`sed -n 's/^am__quote = //p' < "$mf"` ++ # Find all dependency output files, they are included files with ++ # $(DEPDIR) in their names. We invoke sed twice because it is the ++ # simplest approach to changing $(DEPDIR) to its actual value in the ++ # expansion. ++ for file in `sed -n " ++ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ ++ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do ++ # Make sure the directory exists. ++ test -f "$dirpart/$file" && continue ++ fdir=`AS_DIRNAME(["$file"])` ++ AS_MKDIR_P([$dirpart/$fdir]) ++ # echo "creating $dirpart/$file" ++ echo '# dummy' > "$dirpart/$file" ++ done ++ done ++} ++])# _AM_OUTPUT_DEPENDENCY_COMMANDS ++ ++ ++# AM_OUTPUT_DEPENDENCY_COMMANDS ++# ----------------------------- ++# This macro should only be invoked once -- use via AC_REQUIRE. ++# ++# This code is only required when automatic dependency tracking ++# is enabled. FIXME. This creates each '.P' file that we will ++# need in order to bootstrap the dependency handling code. ++AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], ++[AC_CONFIG_COMMANDS([depfiles], ++ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], ++ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ++]) ++ ++# Do all the work for Automake. -*- Autoconf -*- ++ ++# Copyright (C) 1996-2014 Free Software Foundation, Inc. ++# ++# This file is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This macro actually does too much. Some checks are only needed if ++# your package does certain things. But this isn't really a big deal. ++ ++dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. ++m4_define([AC_PROG_CC], ++m4_defn([AC_PROG_CC]) ++[_AM_PROG_CC_C_O ++]) ++ ++# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) ++# AM_INIT_AUTOMAKE([OPTIONS]) ++# ----------------------------------------------- ++# The call with PACKAGE and VERSION arguments is the old style ++# call (pre autoconf-2.50), which is being phased out. PACKAGE ++# and VERSION should now be passed to AC_INIT and removed from ++# the call to AM_INIT_AUTOMAKE. ++# We support both call styles for the transition. After ++# the next Automake release, Autoconf can make the AC_INIT ++# arguments mandatory, and then we can depend on a new Autoconf ++# release and drop the old call support. ++AC_DEFUN([AM_INIT_AUTOMAKE], ++[AC_PREREQ([2.65])dnl ++dnl Autoconf wants to disallow AM_ names. We explicitly allow ++dnl the ones we care about. ++m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl ++AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl ++AC_REQUIRE([AC_PROG_INSTALL])dnl ++if test "`cd $srcdir && pwd`" != "`pwd`"; then ++ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output ++ # is not polluted with repeated "-I." ++ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl ++ # test to see if srcdir already configured ++ if test -f $srcdir/config.status; then ++ AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) ++ fi ++fi ++ ++# test whether we have cygpath ++if test -z "$CYGPATH_W"; then ++ if (cygpath --version) >/dev/null 2>/dev/null; then ++ CYGPATH_W='cygpath -w' ++ else ++ CYGPATH_W=echo ++ fi ++fi ++AC_SUBST([CYGPATH_W]) ++ ++# Define the identity of the package. ++dnl Distinguish between old-style and new-style calls. ++m4_ifval([$2], ++[AC_DIAGNOSE([obsolete], ++ [$0: two- and three-arguments forms are deprecated.]) ++m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl ++ AC_SUBST([PACKAGE], [$1])dnl ++ AC_SUBST([VERSION], [$2])], ++[_AM_SET_OPTIONS([$1])dnl ++dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. ++m4_if( ++ m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), ++ [ok:ok],, ++ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl ++ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl ++ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl ++ ++_AM_IF_OPTION([no-define],, ++[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) ++ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl ++ ++# Some tools Automake needs. ++AC_REQUIRE([AM_SANITY_CHECK])dnl ++AC_REQUIRE([AC_ARG_PROGRAM])dnl ++AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) ++AM_MISSING_PROG([AUTOCONF], [autoconf]) ++AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) ++AM_MISSING_PROG([AUTOHEADER], [autoheader]) ++AM_MISSING_PROG([MAKEINFO], [makeinfo]) ++AC_REQUIRE([AM_PROG_INSTALL_SH])dnl ++AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl ++AC_REQUIRE([AC_PROG_MKDIR_P])dnl ++# For better backward compatibility. To be removed once Automake 1.9.x ++# dies out for good. For more background, see: ++# ++# ++AC_SUBST([mkdir_p], ['$(MKDIR_P)']) ++# We need awk for the "check" target (and possibly the TAP driver). The ++# system "awk" is bad on some platforms. ++AC_REQUIRE([AC_PROG_AWK])dnl ++AC_REQUIRE([AC_PROG_MAKE_SET])dnl ++AC_REQUIRE([AM_SET_LEADING_DOT])dnl ++_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], ++ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], ++ [_AM_PROG_TAR([v7])])]) ++_AM_IF_OPTION([no-dependencies],, ++[AC_PROVIDE_IFELSE([AC_PROG_CC], ++ [_AM_DEPENDENCIES([CC])], ++ [m4_define([AC_PROG_CC], ++ m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl ++AC_PROVIDE_IFELSE([AC_PROG_CXX], ++ [_AM_DEPENDENCIES([CXX])], ++ [m4_define([AC_PROG_CXX], ++ m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl ++AC_PROVIDE_IFELSE([AC_PROG_OBJC], ++ [_AM_DEPENDENCIES([OBJC])], ++ [m4_define([AC_PROG_OBJC], ++ m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl ++AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], ++ [_AM_DEPENDENCIES([OBJCXX])], ++ [m4_define([AC_PROG_OBJCXX], ++ m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ++]) ++AC_REQUIRE([AM_SILENT_RULES])dnl ++dnl The testsuite driver may need to know about EXEEXT, so add the ++dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This ++dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. ++AC_CONFIG_COMMANDS_PRE(dnl ++[m4_provide_if([_AM_COMPILER_EXEEXT], ++ [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ++ ++# POSIX will say in a future version that running "rm -f" with no argument ++# is OK; and we want to be able to make that assumption in our Makefile ++# recipes. So use an aggressive probe to check that the usage we want is ++# actually supported "in the wild" to an acceptable degree. ++# See automake bug#10828. ++# To make any issue more visible, cause the running configure to be aborted ++# by default if the 'rm' program in use doesn't match our expectations; the ++# user can still override this though. ++if rm -f && rm -fr && rm -rf; then : OK; else ++ cat >&2 <<'END' ++Oops! ++ ++Your 'rm' program seems unable to run without file operands specified ++on the command line, even when the '-f' option is present. This is contrary ++to the behaviour of most rm programs out there, and not conforming with ++the upcoming POSIX standard: ++ ++Please tell bug-automake@gnu.org about your system, including the value ++of your $PATH and any error possibly output before this message. This ++can help us improve future automake versions. ++ ++END ++ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then ++ echo 'Configuration will proceed anyway, since you have set the' >&2 ++ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 ++ echo >&2 ++ else ++ cat >&2 <<'END' ++Aborting the configuration process, to ensure you take notice of the issue. ++ ++You can download and install GNU coreutils to get an 'rm' implementation ++that behaves properly: . ++ ++If you want to complete the configuration process using your problematic ++'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM ++to "yes", and re-run configure. ++ ++END ++ AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) ++ fi ++fi ++dnl The trailing newline in this macro's definition is deliberate, for ++dnl backward compatibility and to allow trailing 'dnl'-style comments ++dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. ++]) ++ ++dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not ++dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further ++dnl mangled by Autoconf and run in a shell conditional statement. ++m4_define([_AC_COMPILER_EXEEXT], ++m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) ++ ++# When config.status generates a header, we must update the stamp-h file. ++# This file resides in the same directory as the config header ++# that is generated. The stamp files are numbered to have different names. ++ ++# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the ++# loop where config.status creates the headers, so we can generate ++# our stamp files there. ++AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], ++[# Compute $1's index in $config_headers. ++_am_arg=$1 ++_am_stamp_count=1 ++for _am_header in $config_headers :; do ++ case $_am_header in ++ $_am_arg | $_am_arg:* ) ++ break ;; ++ * ) ++ _am_stamp_count=`expr $_am_stamp_count + 1` ;; ++ esac ++done ++echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) ++ ++# Copyright (C) 2001-2014 Free Software Foundation, Inc. ++# ++# This file is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# AM_PROG_INSTALL_SH ++# ------------------ ++# Define $install_sh. ++AC_DEFUN([AM_PROG_INSTALL_SH], ++[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl ++if test x"${install_sh+set}" != xset; then ++ case $am_aux_dir in ++ *\ * | *\ *) ++ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; ++ *) ++ install_sh="\${SHELL} $am_aux_dir/install-sh" ++ esac ++fi ++AC_SUBST([install_sh])]) ++ ++# Copyright (C) 2003-2014 Free Software Foundation, Inc. ++# ++# This file is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# Check whether the underlying file-system supports filenames ++# with a leading dot. For instance MS-DOS doesn't. ++AC_DEFUN([AM_SET_LEADING_DOT], ++[rm -rf .tst 2>/dev/null ++mkdir .tst 2>/dev/null ++if test -d .tst; then ++ am__leading_dot=. ++else ++ am__leading_dot=_ ++fi ++rmdir .tst 2>/dev/null ++AC_SUBST([am__leading_dot])]) ++ ++# Check to see how 'make' treats includes. -*- Autoconf -*- ++ ++# Copyright (C) 2001-2014 Free Software Foundation, Inc. ++# ++# This file is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# AM_MAKE_INCLUDE() ++# ----------------- ++# Check to see how make treats includes. ++AC_DEFUN([AM_MAKE_INCLUDE], ++[am_make=${MAKE-make} ++cat > confinc << 'END' ++am__doit: ++ @echo this is the am__doit target ++.PHONY: am__doit ++END ++# If we don't find an include directive, just comment out the code. ++AC_MSG_CHECKING([for style of include used by $am_make]) ++am__include="#" ++am__quote= ++_am_result=none ++# First try GNU make style include. ++echo "include confinc" > confmf ++# Ignore all kinds of additional output from 'make'. ++case `$am_make -s -f confmf 2> /dev/null` in #( ++*the\ am__doit\ target*) ++ am__include=include ++ am__quote= ++ _am_result=GNU ++ ;; ++esac ++# Now try BSD make style include. ++if test "$am__include" = "#"; then ++ echo '.include "confinc"' > confmf ++ case `$am_make -s -f confmf 2> /dev/null` in #( ++ *the\ am__doit\ target*) ++ am__include=.include ++ am__quote="\"" ++ _am_result=BSD ++ ;; ++ esac ++fi ++AC_SUBST([am__include]) ++AC_SUBST([am__quote]) ++AC_MSG_RESULT([$_am_result]) ++rm -f confinc confmf ++]) ++ ++# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- ++ ++# Copyright (C) 1997-2014 Free Software Foundation, Inc. ++# ++# This file is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# AM_MISSING_PROG(NAME, PROGRAM) ++# ------------------------------ ++AC_DEFUN([AM_MISSING_PROG], ++[AC_REQUIRE([AM_MISSING_HAS_RUN]) ++$1=${$1-"${am_missing_run}$2"} ++AC_SUBST($1)]) ++ ++# AM_MISSING_HAS_RUN ++# ------------------ ++# Define MISSING if not defined so far and test if it is modern enough. ++# If it is, set am_missing_run to use it, otherwise, to nothing. ++AC_DEFUN([AM_MISSING_HAS_RUN], ++[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl ++AC_REQUIRE_AUX_FILE([missing])dnl ++if test x"${MISSING+set}" != xset; then ++ case $am_aux_dir in ++ *\ * | *\ *) ++ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; ++ *) ++ MISSING="\${SHELL} $am_aux_dir/missing" ;; ++ esac ++fi ++# Use eval to expand $SHELL ++if eval "$MISSING --is-lightweight"; then ++ am_missing_run="$MISSING " ++else ++ am_missing_run= ++ AC_MSG_WARN(['missing' script is too old or missing]) ++fi ++]) ++ ++# Helper functions for option handling. -*- Autoconf -*- ++ ++# Copyright (C) 2001-2014 Free Software Foundation, Inc. ++# ++# This file is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# _AM_MANGLE_OPTION(NAME) ++# ----------------------- ++AC_DEFUN([_AM_MANGLE_OPTION], ++[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) ++ ++# _AM_SET_OPTION(NAME) ++# -------------------- ++# Set option NAME. Presently that only means defining a flag for this option. ++AC_DEFUN([_AM_SET_OPTION], ++[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) ++ ++# _AM_SET_OPTIONS(OPTIONS) ++# ------------------------ ++# OPTIONS is a space-separated list of Automake options. ++AC_DEFUN([_AM_SET_OPTIONS], ++[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) ++ ++# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) ++# ------------------------------------------- ++# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. ++AC_DEFUN([_AM_IF_OPTION], ++[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) ++ ++# Copyright (C) 1999-2014 Free Software Foundation, Inc. ++# ++# This file is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# _AM_PROG_CC_C_O ++# --------------- ++# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC ++# to automatically call this. ++AC_DEFUN([_AM_PROG_CC_C_O], ++[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl ++AC_REQUIRE_AUX_FILE([compile])dnl ++AC_LANG_PUSH([C])dnl ++AC_CACHE_CHECK( ++ [whether $CC understands -c and -o together], ++ [am_cv_prog_cc_c_o], ++ [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) ++ # Make sure it works both with $CC and with simple cc. ++ # Following AC_PROG_CC_C_O, we do the test twice because some ++ # compilers refuse to overwrite an existing .o file with -o, ++ # though they will create one. ++ am_cv_prog_cc_c_o=yes ++ for am_i in 1 2; do ++ if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ ++ && test -f conftest2.$ac_objext; then ++ : OK ++ else ++ am_cv_prog_cc_c_o=no ++ break ++ fi ++ done ++ rm -f core conftest* ++ unset am_i]) ++if test "$am_cv_prog_cc_c_o" != yes; then ++ # Losing compiler, so override with the script. ++ # FIXME: It is wrong to rewrite CC. ++ # But if we don't then we get into trouble of one sort or another. ++ # A longer-term fix would be to have automake use am__CC in this case, ++ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" ++ CC="$am_aux_dir/compile $CC" ++fi ++AC_LANG_POP([C])]) ++ ++# For backward compatibility. ++AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) ++ ++# Copyright (C) 2001-2014 Free Software Foundation, Inc. ++# ++# This file is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# AM_RUN_LOG(COMMAND) ++# ------------------- ++# Run COMMAND, save the exit status in ac_status, and log it. ++# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) ++AC_DEFUN([AM_RUN_LOG], ++[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ++ ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD ++ (exit $ac_status); }]) ++ ++# Check to make sure that the build environment is sane. -*- Autoconf -*- ++ ++# Copyright (C) 1996-2014 Free Software Foundation, Inc. ++# ++# This file is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# AM_SANITY_CHECK ++# --------------- ++AC_DEFUN([AM_SANITY_CHECK], ++[AC_MSG_CHECKING([whether build environment is sane]) ++# Reject unsafe characters in $srcdir or the absolute working directory ++# name. Accept space and tab only in the latter. ++am_lf=' ++' ++case `pwd` in ++ *[[\\\"\#\$\&\'\`$am_lf]]*) ++ AC_MSG_ERROR([unsafe absolute working directory name]);; ++esac ++case $srcdir in ++ *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) ++ AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; ++esac ++ ++# Do 'set' in a subshell so we don't clobber the current shell's ++# arguments. Must try -L first in case configure is actually a ++# symlink; some systems play weird games with the mod time of symlinks ++# (eg FreeBSD returns the mod time of the symlink's containing ++# directory). ++if ( ++ am_has_slept=no ++ for am_try in 1 2; do ++ echo "timestamp, slept: $am_has_slept" > conftest.file ++ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` ++ if test "$[*]" = "X"; then ++ # -L didn't work. ++ set X `ls -t "$srcdir/configure" conftest.file` ++ fi ++ if test "$[*]" != "X $srcdir/configure conftest.file" \ ++ && test "$[*]" != "X conftest.file $srcdir/configure"; then ++ ++ # If neither matched, then we have a broken ls. This can happen ++ # if, for instance, CONFIG_SHELL is bash and it inherits a ++ # broken ls alias from the environment. This has actually ++ # happened. Such a system could not be considered "sane". ++ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken ++ alias in your environment]) ++ fi ++ if test "$[2]" = conftest.file || test $am_try -eq 2; then ++ break ++ fi ++ # Just in case. ++ sleep 1 ++ am_has_slept=yes ++ done ++ test "$[2]" = conftest.file ++ ) ++then ++ # Ok. ++ : ++else ++ AC_MSG_ERROR([newly created file is older than distributed files! ++Check your system clock]) ++fi ++AC_MSG_RESULT([yes]) ++# If we didn't sleep, we still need to ensure time stamps of config.status and ++# generated files are strictly newer. ++am_sleep_pid= ++if grep 'slept: no' conftest.file >/dev/null 2>&1; then ++ ( sleep 1 ) & ++ am_sleep_pid=$! ++fi ++AC_CONFIG_COMMANDS_PRE( ++ [AC_MSG_CHECKING([that generated files are newer than configure]) ++ if test -n "$am_sleep_pid"; then ++ # Hide warnings about reused PIDs. ++ wait $am_sleep_pid 2>/dev/null ++ fi ++ AC_MSG_RESULT([done])]) ++rm -f conftest.file ++]) ++ ++# Copyright (C) 2009-2014 Free Software Foundation, Inc. ++# ++# This file is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# AM_SILENT_RULES([DEFAULT]) ++# -------------------------- ++# Enable less verbose build rules; with the default set to DEFAULT ++# ("yes" being less verbose, "no" or empty being verbose). ++AC_DEFUN([AM_SILENT_RULES], ++[AC_ARG_ENABLE([silent-rules], [dnl ++AS_HELP_STRING( ++ [--enable-silent-rules], ++ [less verbose build output (undo: "make V=1")]) ++AS_HELP_STRING( ++ [--disable-silent-rules], ++ [verbose build output (undo: "make V=0")])dnl ++]) ++case $enable_silent_rules in @%:@ ((( ++ yes) AM_DEFAULT_VERBOSITY=0;; ++ no) AM_DEFAULT_VERBOSITY=1;; ++ *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; ++esac ++dnl ++dnl A few 'make' implementations (e.g., NonStop OS and NextStep) ++dnl do not support nested variable expansions. ++dnl See automake bug#9928 and bug#10237. ++am_make=${MAKE-make} ++AC_CACHE_CHECK([whether $am_make supports nested variables], ++ [am_cv_make_support_nested_variables], ++ [if AS_ECHO([['TRUE=$(BAR$(V)) ++BAR0=false ++BAR1=true ++V=1 ++am__doit: ++ @$(TRUE) ++.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then ++ am_cv_make_support_nested_variables=yes ++else ++ am_cv_make_support_nested_variables=no ++fi]) ++if test $am_cv_make_support_nested_variables = yes; then ++ dnl Using '$V' instead of '$(V)' breaks IRIX make. ++ AM_V='$(V)' ++ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' ++else ++ AM_V=$AM_DEFAULT_VERBOSITY ++ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY ++fi ++AC_SUBST([AM_V])dnl ++AM_SUBST_NOTMAKE([AM_V])dnl ++AC_SUBST([AM_DEFAULT_V])dnl ++AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl ++AC_SUBST([AM_DEFAULT_VERBOSITY])dnl ++AM_BACKSLASH='\' ++AC_SUBST([AM_BACKSLASH])dnl ++_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ++]) ++ ++# Copyright (C) 2001-2014 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-2014 Free Software Foundation, Inc. ++# ++# This file is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# _AM_SUBST_NOTMAKE(VARIABLE) ++# --------------------------- ++# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. ++# This macro is traced by Automake. ++AC_DEFUN([_AM_SUBST_NOTMAKE]) ++ ++# AM_SUBST_NOTMAKE(VARIABLE) ++# -------------------------- ++# Public sister of _AM_SUBST_NOTMAKE. ++AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) ++ ++# Check how to create a tarball. -*- Autoconf -*- ++ ++# Copyright (C) 2004-2014 Free Software Foundation, Inc. ++# ++# This file is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# _AM_PROG_TAR(FORMAT) ++# -------------------- ++# Check how to create a tarball in format FORMAT. ++# FORMAT should be one of 'v7', 'ustar', or 'pax'. ++# ++# Substitute a variable $(am__tar) that is a command ++# writing to stdout a FORMAT-tarball containing the directory ++# $tardir. ++# tardir=directory && $(am__tar) > result.tar ++# ++# Substitute a variable $(am__untar) that extract such ++# a tarball read from stdin. ++# $(am__untar) < result.tar ++# ++AC_DEFUN([_AM_PROG_TAR], ++[# Always define AMTAR for backward compatibility. Yes, it's still used ++# in the wild :-( We should find a proper way to deprecate it ... ++AC_SUBST([AMTAR], ['$${TAR-tar}']) ++ ++# We'll loop over all known methods to create a tar archive until one works. ++_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' ++ ++m4_if([$1], [v7], ++ [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], ++ ++ [m4_case([$1], ++ [ustar], ++ [# The POSIX 1988 'ustar' format is defined with fixed-size fields. ++ # There is notably a 21 bits limit for the UID and the GID. In fact, ++ # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 ++ # and bug#13588). ++ am_max_uid=2097151 # 2^21 - 1 ++ am_max_gid=$am_max_uid ++ # The $UID and $GID variables are not portable, so we need to resort ++ # to the POSIX-mandated id(1) utility. Errors in the 'id' calls ++ # below are definitely unexpected, so allow the users to see them ++ # (that is, avoid stderr redirection). ++ am_uid=`id -u || echo unknown` ++ am_gid=`id -g || echo unknown` ++ AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) ++ if test $am_uid -le $am_max_uid; then ++ AC_MSG_RESULT([yes]) ++ else ++ AC_MSG_RESULT([no]) ++ _am_tools=none ++ fi ++ AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) ++ if test $am_gid -le $am_max_gid; then ++ AC_MSG_RESULT([yes]) ++ else ++ AC_MSG_RESULT([no]) ++ _am_tools=none ++ fi], ++ ++ [pax], ++ [], ++ ++ [m4_fatal([Unknown tar format])]) ++ ++ AC_MSG_CHECKING([how to create a $1 tar archive]) ++ ++ # Go ahead even if we have the value already cached. We do so because we ++ # need to set the values for the 'am__tar' and 'am__untar' variables. ++ _am_tools=${am_cv_prog_tar_$1-$_am_tools} ++ ++ for _am_tool in $_am_tools; do ++ case $_am_tool in ++ gnutar) ++ for _am_tar in tar gnutar gtar; do ++ AM_RUN_LOG([$_am_tar --version]) && break ++ done ++ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' ++ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' ++ am__untar="$_am_tar -xf -" ++ ;; ++ plaintar) ++ # Must skip GNU tar: if it does not support --format= it doesn't create ++ # ustar tarball either. ++ (tar --version) >/dev/null 2>&1 && continue ++ am__tar='tar chf - "$$tardir"' ++ am__tar_='tar chf - "$tardir"' ++ am__untar='tar xf -' ++ ;; ++ pax) ++ am__tar='pax -L -x $1 -w "$$tardir"' ++ am__tar_='pax -L -x $1 -w "$tardir"' ++ am__untar='pax -r' ++ ;; ++ cpio) ++ am__tar='find "$$tardir" -print | cpio -o -H $1 -L' ++ am__tar_='find "$tardir" -print | cpio -o -H $1 -L' ++ am__untar='cpio -i -H $1 -d' ++ ;; ++ none) ++ am__tar=false ++ am__tar_=false ++ am__untar=false ++ ;; ++ esac ++ ++ # If the value was cached, stop now. We just wanted to have am__tar ++ # and am__untar set. ++ test -n "${am_cv_prog_tar_$1}" && break ++ ++ # tar/untar a dummy directory, and stop if the command works. ++ rm -rf conftest.dir ++ mkdir conftest.dir ++ echo GrepMe > conftest.dir/file ++ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) ++ rm -rf conftest.dir ++ if test -s conftest.tar; then ++ AM_RUN_LOG([$am__untar /dev/null 2>&1 && break ++ fi ++ done ++ rm -rf conftest.dir ++ ++ AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) ++ AC_MSG_RESULT([$am_cv_prog_tar_$1])]) ++ ++AC_SUBST([am__tar]) ++AC_SUBST([am__untar]) ++]) # _AM_PROG_TAR ++ ++m4_include([m4/codeset.m4]) ++m4_include([m4/fcntl-o.m4]) ++m4_include([m4/gettext.m4]) ++m4_include([m4/glibc2.m4]) ++m4_include([m4/glibc21.m4]) ++m4_include([m4/iconv.m4]) ++m4_include([m4/intdiv0.m4]) ++m4_include([m4/intl.m4]) ++m4_include([m4/intlmacosx.m4]) ++m4_include([m4/intmax.m4]) ++m4_include([m4/inttypes-pri.m4]) ++m4_include([m4/inttypes_h.m4]) ++m4_include([m4/lcmessage.m4]) ++m4_include([m4/lib-ld.m4]) ++m4_include([m4/lib-link.m4]) ++m4_include([m4/lib-prefix.m4]) ++m4_include([m4/libtool.m4]) ++m4_include([m4/lock.m4]) ++m4_include([m4/longlong.m4]) ++m4_include([m4/ltoptions.m4]) ++m4_include([m4/ltsugar.m4]) ++m4_include([m4/ltversion.m4]) ++m4_include([m4/lt~obsolete.m4]) ++m4_include([m4/nls.m4]) ++m4_include([m4/po.m4]) ++m4_include([m4/printf-posix.m4]) ++m4_include([m4/progtest.m4]) ++m4_include([m4/size_max.m4]) ++m4_include([m4/stdint_h.m4]) ++m4_include([m4/threadlib.m4]) ++m4_include([m4/uintmax_t.m4]) ++m4_include([m4/visibility.m4]) ++m4_include([m4/wchar_t.m4]) ++m4_include([m4/wint_t.m4]) ++m4_include([m4/xsize.m4]) +diff --git a/compile b/compile +new file mode 100755 +index 0000000..a85b723 +--- /dev/null ++++ b/compile +@@ -0,0 +1,347 @@ ++#! /bin/sh ++# Wrapper for compilers which do not understand '-c -o'. ++ ++scriptversion=2012-10-14.11; # UTC ++ ++# Copyright (C) 1999-2014 Free Software Foundation, Inc. ++# Written by Tom Tromey . ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2, or (at your option) ++# any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program. If not, see . ++ ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that program. ++ ++# This file is maintained in Automake, please report ++# bugs to or send patches to ++# . ++ ++nl=' ++' ++ ++# We need space, tab and new line, in precisely that order. Quoting is ++# there to prevent tools from complaining about whitespace usage. ++IFS=" "" $nl" ++ ++file_conv= ++ ++# func_file_conv build_file lazy ++# Convert a $build file to $host form and store it in $file ++# Currently only supports Windows hosts. If the determined conversion ++# type is listed in (the comma separated) LAZY, no conversion will ++# take place. ++func_file_conv () ++{ ++ file=$1 ++ case $file in ++ / | /[!/]*) # absolute file, and not a UNC file ++ if test -z "$file_conv"; then ++ # lazily determine how to convert abs files ++ case `uname -s` in ++ MINGW*) ++ file_conv=mingw ++ ;; ++ CYGWIN*) ++ file_conv=cygwin ++ ;; ++ *) ++ file_conv=wine ++ ;; ++ esac ++ fi ++ case $file_conv/,$2, in ++ *,$file_conv,*) ++ ;; ++ mingw/*) ++ file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ++ ;; ++ cygwin/*) ++ file=`cygpath -m "$file" || echo "$file"` ++ ;; ++ wine/*) ++ file=`winepath -w "$file" || echo "$file"` ++ ;; ++ esac ++ ;; ++ esac ++} ++ ++# func_cl_dashL linkdir ++# Make cl look for libraries in LINKDIR ++func_cl_dashL () ++{ ++ func_file_conv "$1" ++ if test -z "$lib_path"; then ++ lib_path=$file ++ else ++ lib_path="$lib_path;$file" ++ fi ++ linker_opts="$linker_opts -LIBPATH:$file" ++} ++ ++# func_cl_dashl library ++# Do a library search-path lookup for cl ++func_cl_dashl () ++{ ++ lib=$1 ++ found=no ++ save_IFS=$IFS ++ IFS=';' ++ for dir in $lib_path $LIB ++ do ++ IFS=$save_IFS ++ if $shared && test -f "$dir/$lib.dll.lib"; then ++ found=yes ++ lib=$dir/$lib.dll.lib ++ break ++ fi ++ if test -f "$dir/$lib.lib"; then ++ found=yes ++ lib=$dir/$lib.lib ++ break ++ fi ++ if test -f "$dir/lib$lib.a"; then ++ found=yes ++ lib=$dir/lib$lib.a ++ break ++ fi ++ done ++ IFS=$save_IFS ++ ++ if test "$found" != yes; then ++ lib=$lib.lib ++ fi ++} ++ ++# func_cl_wrapper cl arg... ++# Adjust compile command to suit cl ++func_cl_wrapper () ++{ ++ # Assume a capable shell ++ lib_path= ++ shared=: ++ linker_opts= ++ for arg ++ do ++ if test -n "$eat"; then ++ eat= ++ else ++ case $1 in ++ -o) ++ # configure might choose to run compile as 'compile cc -o foo foo.c'. ++ eat=1 ++ case $2 in ++ *.o | *.[oO][bB][jJ]) ++ func_file_conv "$2" ++ set x "$@" -Fo"$file" ++ shift ++ ;; ++ *) ++ func_file_conv "$2" ++ set x "$@" -Fe"$file" ++ shift ++ ;; ++ esac ++ ;; ++ -I) ++ eat=1 ++ func_file_conv "$2" mingw ++ set x "$@" -I"$file" ++ shift ++ ;; ++ -I*) ++ func_file_conv "${1#-I}" mingw ++ set x "$@" -I"$file" ++ shift ++ ;; ++ -l) ++ eat=1 ++ func_cl_dashl "$2" ++ set x "$@" "$lib" ++ shift ++ ;; ++ -l*) ++ func_cl_dashl "${1#-l}" ++ set x "$@" "$lib" ++ shift ++ ;; ++ -L) ++ eat=1 ++ func_cl_dashL "$2" ++ ;; ++ -L*) ++ func_cl_dashL "${1#-L}" ++ ;; ++ -static) ++ shared=false ++ ;; ++ -Wl,*) ++ arg=${1#-Wl,} ++ save_ifs="$IFS"; IFS=',' ++ for flag in $arg; do ++ IFS="$save_ifs" ++ linker_opts="$linker_opts $flag" ++ done ++ IFS="$save_ifs" ++ ;; ++ -Xlinker) ++ eat=1 ++ linker_opts="$linker_opts $2" ++ ;; ++ -*) ++ set x "$@" "$1" ++ shift ++ ;; ++ *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) ++ func_file_conv "$1" ++ set x "$@" -Tp"$file" ++ shift ++ ;; ++ *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) ++ func_file_conv "$1" mingw ++ set x "$@" "$file" ++ shift ++ ;; ++ *) ++ set x "$@" "$1" ++ shift ++ ;; ++ esac ++ fi ++ shift ++ done ++ if test -n "$linker_opts"; then ++ linker_opts="-link$linker_opts" ++ fi ++ exec "$@" $linker_opts ++ exit 1 ++} ++ ++eat= ++ ++case $1 in ++ '') ++ echo "$0: No command. Try '$0 --help' for more information." 1>&2 ++ exit 1; ++ ;; ++ -h | --h*) ++ cat <<\EOF ++Usage: compile [--help] [--version] PROGRAM [ARGS] ++ ++Wrapper for compilers which do not understand '-c -o'. ++Remove '-o dest.o' from ARGS, run PROGRAM with the remaining ++arguments, and rename the output as expected. ++ ++If you are trying to build a whole package this is not the ++right script to run: please start by reading the file 'INSTALL'. ++ ++Report bugs to . ++EOF ++ exit $? ++ ;; ++ -v | --v*) ++ echo "compile $scriptversion" ++ exit $? ++ ;; ++ cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) ++ func_cl_wrapper "$@" # Doesn't return... ++ ;; ++esac ++ ++ofile= ++cfile= ++ ++for arg ++do ++ if test -n "$eat"; then ++ eat= ++ else ++ case $1 in ++ -o) ++ # configure might choose to run compile as 'compile cc -o foo foo.c'. ++ # So we strip '-o arg' only if arg is an object. ++ eat=1 ++ case $2 in ++ *.o | *.obj) ++ ofile=$2 ++ ;; ++ *) ++ set x "$@" -o "$2" ++ shift ++ ;; ++ esac ++ ;; ++ *.c) ++ cfile=$1 ++ set x "$@" "$1" ++ shift ++ ;; ++ *) ++ set x "$@" "$1" ++ shift ++ ;; ++ esac ++ fi ++ shift ++done ++ ++if test -z "$ofile" || test -z "$cfile"; then ++ # If no '-o' option was seen then we might have been invoked from a ++ # pattern rule where we don't need one. That is ok -- this is a ++ # normal compilation that the losing compiler can handle. If no ++ # '.c' file was seen then we are probably linking. That is also ++ # ok. ++ exec "$@" ++fi ++ ++# Name of file we expect compiler to create. ++cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` ++ ++# Create the lock directory. ++# Note: use '[/\\:.-]' here to ensure that we don't use the same name ++# that we are using for the .o file. Also, base the name on the expected ++# object file name, since that is what matters with a parallel build. ++lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d ++while true; do ++ if mkdir "$lockdir" >/dev/null 2>&1; then ++ break ++ fi ++ sleep 1 ++done ++# FIXME: race condition here if user kills between mkdir and trap. ++trap "rmdir '$lockdir'; exit 1" 1 2 15 ++ ++# Run the compile. ++"$@" ++ret=$? ++ ++if test -f "$cofile"; then ++ test "$cofile" = "$ofile" || mv "$cofile" "$ofile" ++elif test -f "${cofile}bj"; then ++ test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" ++fi ++ ++rmdir "$lockdir" ++exit $ret ++ ++# Local Variables: ++# mode: shell-script ++# sh-indentation: 2 ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "scriptversion=" ++# time-stamp-format: "%:y-%02m-%02d.%02H" ++# time-stamp-time-zone: "UTC" ++# time-stamp-end: "; # UTC" ++# End: +diff --git a/config.guess b/config.guess +new file mode 100755 +index 0000000..dbfb978 +--- /dev/null ++++ b/config.guess +@@ -0,0 +1,1421 @@ ++#! /bin/sh ++# Attempt to guess a canonical system name. ++# Copyright 1992-2015 Free Software Foundation, Inc. ++ ++timestamp='2015-01-01' ++ ++# This file is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 3 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, see . ++# ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that ++# program. This Exception is an additional permission under section 7 ++# of the GNU General Public License, version 3 ("GPLv3"). ++# ++# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. ++# ++# You can get the latest version of this script from: ++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD ++# ++# Please send patches to . ++ ++ ++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 1992-2015 Free Software Foundation, Inc. ++ ++This is free software; see the source for copying conditions. There is NO ++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." ++ ++help=" ++Try \`$me --help' for more information." ++ ++# Parse command line ++while test $# -gt 0 ; do ++ case $1 in ++ --time-stamp | --time* | -t ) ++ echo "$timestamp" ; exit ;; ++ --version | -v ) ++ echo "$version" ; exit ;; ++ --help | --h* | -h ) ++ echo "$usage"; exit ;; ++ -- ) # Stop option processing ++ shift; break ;; ++ - ) # Use stdin as input. ++ break ;; ++ -* ) ++ echo "$me: invalid option $1$help" >&2 ++ exit 1 ;; ++ * ) ++ break ;; ++ esac ++done ++ ++if test $# != 0; then ++ echo "$me: too many arguments$help" >&2 ++ exit 1 ++fi ++ ++trap 'exit 1' 1 2 15 ++ ++# CC_FOR_BUILD -- compiler used by this script. Note that the use of a ++# compiler to aid in system detection is discouraged as it requires ++# temporary files to be created and, as you can see below, it is a ++# headache to deal with in a portable fashion. ++ ++# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still ++# use `HOST_CC' if defined, but it is deprecated. ++ ++# Portable tmp directory creation inspired by the Autoconf team. ++ ++set_cc_for_build=' ++trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; ++trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; ++: ${TMPDIR=/tmp} ; ++ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || ++ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || ++ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || ++ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; ++dummy=$tmp/dummy ; ++tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; ++case $CC_FOR_BUILD,$HOST_CC,$CC in ++ ,,) echo "int x;" > $dummy.c ; ++ for c in cc gcc c89 c99 ; do ++ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then ++ CC_FOR_BUILD="$c"; break ; ++ fi ; ++ done ; ++ if test x"$CC_FOR_BUILD" = x ; then ++ CC_FOR_BUILD=no_compiler_found ; ++ fi ++ ;; ++ ,,*) CC_FOR_BUILD=$CC ;; ++ ,*,*) CC_FOR_BUILD=$HOST_CC ;; ++esac ; set_cc_for_build= ;' ++ ++# This is needed to find uname on a Pyramid OSx when run in the BSD universe. ++# (ghazi@noc.rutgers.edu 1994-08-24) ++if (test -f /.attbin/uname) >/dev/null 2>&1 ; then ++ PATH=$PATH:/.attbin ; export PATH ++fi ++ ++UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown ++UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown ++UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown ++UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown ++ ++case "${UNAME_SYSTEM}" in ++Linux|GNU|GNU/*) ++ # If the system lacks a compiler, then just pick glibc. ++ # We could probably try harder. ++ LIBC=gnu ++ ++ eval $set_cc_for_build ++ cat <<-EOF > $dummy.c ++ #include ++ #if defined(__UCLIBC__) ++ LIBC=uclibc ++ #elif defined(__dietlibc__) ++ LIBC=dietlibc ++ #else ++ LIBC=gnu ++ #endif ++ EOF ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` ++ ;; ++esac ++ ++# Note: order is significant - the case branches are not exclusive. ++ ++case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ++ *:NetBSD:*:*) ++ # NetBSD (nbsd) targets should (where applicable) match one or ++ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, ++ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently ++ # switched to ELF, *-*-netbsd* would select the old ++ # object file format. This provides both forward ++ # compatibility and a consistent mechanism for selecting the ++ # object file format. ++ # ++ # Note: NetBSD doesn't particularly care about the vendor ++ # portion of the name. We always set it to "unknown". ++ sysctl="sysctl -n hw.machine_arch" ++ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ ++ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` ++ case "${UNAME_MACHINE_ARCH}" in ++ armeb) machine=armeb-unknown ;; ++ arm*) machine=arm-unknown ;; ++ sh3el) machine=shl-unknown ;; ++ sh3eb) machine=sh-unknown ;; ++ sh5el) machine=sh5le-unknown ;; ++ *) machine=${UNAME_MACHINE_ARCH}-unknown ;; ++ esac ++ # The Operating System including object format, if it has switched ++ # to ELF recently, or will in the future. ++ case "${UNAME_MACHINE_ARCH}" in ++ arm*|i386|m68k|ns32k|sh3*|sparc|vax) ++ eval $set_cc_for_build ++ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ELF__ ++ then ++ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). ++ # Return netbsd for either. FIX? ++ os=netbsd ++ else ++ os=netbsdelf ++ fi ++ ;; ++ *) ++ os=netbsd ++ ;; ++ esac ++ # The OS release ++ # Debian GNU/NetBSD machines have a different userland, and ++ # thus, need a distinct triplet. However, they do not need ++ # kernel version information, so it can be replaced with a ++ # suitable tag, in the style of linux-gnu. ++ case "${UNAME_VERSION}" in ++ Debian*) ++ release='-gnu' ++ ;; ++ *) ++ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ++ ;; ++ esac ++ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: ++ # contains redundant information, the shorter form: ++ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. ++ echo "${machine}-${os}${release}" ++ exit ;; ++ *:Bitrig:*:*) ++ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` ++ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} ++ exit ;; ++ *:OpenBSD:*:*) ++ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` ++ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} ++ exit ;; ++ *:ekkoBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} ++ exit ;; ++ *:SolidBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} ++ exit ;; ++ macppc:MirBSD:*:*) ++ echo powerpc-unknown-mirbsd${UNAME_RELEASE} ++ exit ;; ++ *:MirBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} ++ exit ;; ++ alpha:OSF1:*:*) ++ case $UNAME_RELEASE in ++ *4.0) ++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ++ ;; ++ *5.*) ++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ++ ;; ++ esac ++ # According to Compaq, /usr/sbin/psrinfo has been available on ++ # OSF/1 and Tru64 systems produced since 1995. I hope that ++ # covers most systems running today. This code pipes the CPU ++ # types through head -n 1, so we only detect the type of CPU 0. ++ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` ++ case "$ALPHA_CPU_TYPE" in ++ "EV4 (21064)") ++ UNAME_MACHINE="alpha" ;; ++ "EV4.5 (21064)") ++ UNAME_MACHINE="alpha" ;; ++ "LCA4 (21066/21068)") ++ UNAME_MACHINE="alpha" ;; ++ "EV5 (21164)") ++ UNAME_MACHINE="alphaev5" ;; ++ "EV5.6 (21164A)") ++ UNAME_MACHINE="alphaev56" ;; ++ "EV5.6 (21164PC)") ++ UNAME_MACHINE="alphapca56" ;; ++ "EV5.7 (21164PC)") ++ UNAME_MACHINE="alphapca57" ;; ++ "EV6 (21264)") ++ UNAME_MACHINE="alphaev6" ;; ++ "EV6.7 (21264A)") ++ UNAME_MACHINE="alphaev67" ;; ++ "EV6.8CB (21264C)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.8AL (21264B)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.8CX (21264D)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.9A (21264/EV69A)") ++ UNAME_MACHINE="alphaev69" ;; ++ "EV7 (21364)") ++ UNAME_MACHINE="alphaev7" ;; ++ "EV7.9 (21364A)") ++ UNAME_MACHINE="alphaev79" ;; ++ esac ++ # A Pn.n version is a patched version. ++ # A Vn.n version is a released version. ++ # A Tn.n version is a released field test version. ++ # A Xn.n version is an unreleased experimental baselevel. ++ # 1.2 uses "1.2" for uname -r. ++ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` ++ # Reset EXIT trap before exiting to avoid spurious non-zero exit code. ++ exitcode=$? ++ trap '' 0 ++ exit $exitcode ;; ++ Alpha\ *:Windows_NT*:*) ++ # How do we know it's Interix rather than the generic POSIX subsystem? ++ # Should we change UNAME_MACHINE based on the output of uname instead ++ # of the specific Alpha model? ++ echo alpha-pc-interix ++ exit ;; ++ 21064:Windows_NT:50:3) ++ echo alpha-dec-winnt3.5 ++ exit ;; ++ Amiga*:UNIX_System_V:4.0:*) ++ echo m68k-unknown-sysv4 ++ exit ;; ++ *:[Aa]miga[Oo][Ss]:*:*) ++ echo ${UNAME_MACHINE}-unknown-amigaos ++ exit ;; ++ *:[Mm]orph[Oo][Ss]:*:*) ++ echo ${UNAME_MACHINE}-unknown-morphos ++ exit ;; ++ *:OS/390:*:*) ++ echo i370-ibm-openedition ++ exit ;; ++ *:z/VM:*:*) ++ echo s390-ibm-zvmoe ++ exit ;; ++ *:OS400:*:*) ++ echo powerpc-ibm-os400 ++ exit ;; ++ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) ++ echo arm-acorn-riscix${UNAME_RELEASE} ++ exit ;; ++ arm*:riscos:*:*|arm*:RISCOS:*:*) ++ echo arm-unknown-riscos ++ exit ;; ++ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) ++ echo hppa1.1-hitachi-hiuxmpp ++ exit ;; ++ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) ++ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. ++ if test "`(/bin/universe) 2>/dev/null`" = att ; then ++ echo pyramid-pyramid-sysv3 ++ else ++ echo pyramid-pyramid-bsd ++ fi ++ exit ;; ++ NILE*:*:*:dcosx) ++ echo pyramid-pyramid-svr4 ++ exit ;; ++ DRS?6000:unix:4.0:6*) ++ echo sparc-icl-nx6 ++ exit ;; ++ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) ++ case `/usr/bin/uname -p` in ++ sparc) echo sparc-icl-nx7; exit ;; ++ esac ;; ++ s390x:SunOS:*:*) ++ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ sun4H:SunOS:5.*:*) ++ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) ++ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) ++ echo i386-pc-auroraux${UNAME_RELEASE} ++ exit ;; ++ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) ++ eval $set_cc_for_build ++ SUN_ARCH="i386" ++ # If there is a compiler, see if it is configured for 64-bit objects. ++ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. ++ # This test works for both compilers. ++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then ++ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ ++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ ++ grep IS_64BIT_ARCH >/dev/null ++ then ++ SUN_ARCH="x86_64" ++ fi ++ fi ++ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ sun4*:SunOS:6*:*) ++ # According to config.sub, this is the proper way to canonicalize ++ # SunOS6. Hard to guess exactly what SunOS6 will be like, but ++ # it's likely to be more like Solaris than SunOS4. ++ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ sun4*:SunOS:*:*) ++ case "`/usr/bin/arch -k`" in ++ Series*|S4*) ++ UNAME_RELEASE=`uname -v` ++ ;; ++ esac ++ # Japanese Language versions have a version number like `4.1.3-JL'. ++ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` ++ exit ;; ++ sun3*:SunOS:*:*) ++ echo m68k-sun-sunos${UNAME_RELEASE} ++ exit ;; ++ sun*:*:4.2BSD:*) ++ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` ++ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 ++ case "`/bin/arch`" in ++ sun3) ++ echo m68k-sun-sunos${UNAME_RELEASE} ++ ;; ++ sun4) ++ echo sparc-sun-sunos${UNAME_RELEASE} ++ ;; ++ esac ++ exit ;; ++ aushp:SunOS:*:*) ++ echo sparc-auspex-sunos${UNAME_RELEASE} ++ exit ;; ++ # The situation for MiNT is a little confusing. The machine name ++ # can be virtually everything (everything which is not ++ # "atarist" or "atariste" at least should have a processor ++ # > m68000). The system name ranges from "MiNT" over "FreeMiNT" ++ # to the lowercase version "mint" (or "freemint"). Finally ++ # the system name "TOS" denotes a system which is actually not ++ # MiNT. But MiNT is downward compatible to TOS, so this should ++ # be no problem. ++ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) ++ echo m68k-atari-mint${UNAME_RELEASE} ++ exit ;; ++ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) ++ echo m68k-atari-mint${UNAME_RELEASE} ++ exit ;; ++ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) ++ echo m68k-atari-mint${UNAME_RELEASE} ++ exit ;; ++ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) ++ echo m68k-milan-mint${UNAME_RELEASE} ++ exit ;; ++ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) ++ echo m68k-hades-mint${UNAME_RELEASE} ++ exit ;; ++ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) ++ echo m68k-unknown-mint${UNAME_RELEASE} ++ exit ;; ++ m68k:machten:*:*) ++ echo m68k-apple-machten${UNAME_RELEASE} ++ exit ;; ++ powerpc:machten:*:*) ++ echo powerpc-apple-machten${UNAME_RELEASE} ++ exit ;; ++ RISC*:Mach:*:*) ++ echo mips-dec-mach_bsd4.3 ++ exit ;; ++ RISC*:ULTRIX:*:*) ++ echo mips-dec-ultrix${UNAME_RELEASE} ++ exit ;; ++ VAX*:ULTRIX*:*:*) ++ echo vax-dec-ultrix${UNAME_RELEASE} ++ exit ;; ++ 2020:CLIX:*:* | 2430:CLIX:*:*) ++ echo clipper-intergraph-clix${UNAME_RELEASE} ++ exit ;; ++ mips:*:*:UMIPS | mips:*:*:RISCos) ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++#ifdef __cplusplus ++#include /* for printf() prototype */ ++ int main (int argc, char *argv[]) { ++#else ++ int main (argc, argv) int argc; char *argv[]; { ++#endif ++ #if defined (host_mips) && defined (MIPSEB) ++ #if defined (SYSTYPE_SYSV) ++ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); ++ #endif ++ #if defined (SYSTYPE_SVR4) ++ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); ++ #endif ++ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) ++ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); ++ #endif ++ #endif ++ exit (-1); ++ } ++EOF ++ $CC_FOR_BUILD -o $dummy $dummy.c && ++ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && ++ SYSTEM_NAME=`$dummy $dummyarg` && ++ { echo "$SYSTEM_NAME"; exit; } ++ echo mips-mips-riscos${UNAME_RELEASE} ++ exit ;; ++ Motorola:PowerMAX_OS:*:*) ++ echo powerpc-motorola-powermax ++ exit ;; ++ Motorola:*:4.3:PL8-*) ++ echo powerpc-harris-powermax ++ exit ;; ++ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) ++ echo powerpc-harris-powermax ++ exit ;; ++ Night_Hawk:Power_UNIX:*:*) ++ echo powerpc-harris-powerunix ++ exit ;; ++ m88k:CX/UX:7*:*) ++ echo m88k-harris-cxux7 ++ exit ;; ++ m88k:*:4*:R4*) ++ echo m88k-motorola-sysv4 ++ exit ;; ++ m88k:*:3*:R3*) ++ echo m88k-motorola-sysv3 ++ exit ;; ++ AViiON:dgux:*:*) ++ # DG/UX returns AViiON for all architectures ++ UNAME_PROCESSOR=`/usr/bin/uname -p` ++ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] ++ then ++ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ ++ [ ${TARGET_BINARY_INTERFACE}x = x ] ++ then ++ echo m88k-dg-dgux${UNAME_RELEASE} ++ else ++ echo m88k-dg-dguxbcs${UNAME_RELEASE} ++ fi ++ else ++ echo i586-dg-dgux${UNAME_RELEASE} ++ fi ++ exit ;; ++ M88*:DolphinOS:*:*) # DolphinOS (SVR3) ++ echo m88k-dolphin-sysv3 ++ exit ;; ++ M88*:*:R3*:*) ++ # Delta 88k system running SVR3 ++ echo m88k-motorola-sysv3 ++ exit ;; ++ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) ++ echo m88k-tektronix-sysv3 ++ exit ;; ++ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) ++ echo m68k-tektronix-bsd ++ exit ;; ++ *:IRIX*:*:*) ++ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` ++ exit ;; ++ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. ++ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id ++ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' ++ i*86:AIX:*:*) ++ echo i386-ibm-aix ++ exit ;; ++ ia64:AIX:*:*) ++ if [ -x /usr/bin/oslevel ] ; then ++ IBM_REV=`/usr/bin/oslevel` ++ else ++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} ++ fi ++ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} ++ exit ;; ++ *:AIX:2:3) ++ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #include ++ ++ main() ++ { ++ if (!__power_pc()) ++ exit(1); ++ puts("powerpc-ibm-aix3.2.5"); ++ exit(0); ++ } ++EOF ++ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` ++ then ++ echo "$SYSTEM_NAME" ++ else ++ echo rs6000-ibm-aix3.2.5 ++ fi ++ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then ++ echo rs6000-ibm-aix3.2.4 ++ else ++ echo rs6000-ibm-aix3.2 ++ fi ++ exit ;; ++ *:AIX:*:[4567]) ++ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` ++ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then ++ IBM_ARCH=rs6000 ++ else ++ IBM_ARCH=powerpc ++ fi ++ if [ -x /usr/bin/lslpp ] ; then ++ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | ++ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` ++ else ++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} ++ fi ++ echo ${IBM_ARCH}-ibm-aix${IBM_REV} ++ exit ;; ++ *:AIX:*:*) ++ echo rs6000-ibm-aix ++ exit ;; ++ ibmrt:4.4BSD:*|romp-ibm:BSD:*) ++ echo romp-ibm-bsd4.4 ++ exit ;; ++ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and ++ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to ++ exit ;; # report: romp-ibm BSD 4.3 ++ *:BOSX:*:*) ++ echo rs6000-bull-bosx ++ exit ;; ++ DPX/2?00:B.O.S.:*:*) ++ echo m68k-bull-sysv3 ++ exit ;; ++ 9000/[34]??:4.3bsd:1.*:*) ++ echo m68k-hp-bsd ++ exit ;; ++ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) ++ echo m68k-hp-bsd4.4 ++ exit ;; ++ 9000/[34678]??:HP-UX:*:*) ++ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` ++ case "${UNAME_MACHINE}" in ++ 9000/31? ) HP_ARCH=m68000 ;; ++ 9000/[34]?? ) HP_ARCH=m68k ;; ++ 9000/[678][0-9][0-9]) ++ if [ -x /usr/bin/getconf ]; then ++ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` ++ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` ++ case "${sc_cpu_version}" in ++ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 ++ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 ++ 532) # CPU_PA_RISC2_0 ++ case "${sc_kernel_bits}" in ++ 32) HP_ARCH="hppa2.0n" ;; ++ 64) HP_ARCH="hppa2.0w" ;; ++ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 ++ esac ;; ++ esac ++ fi ++ if [ "${HP_ARCH}" = "" ]; then ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ ++ #define _HPUX_SOURCE ++ #include ++ #include ++ ++ int main () ++ { ++ #if defined(_SC_KERNEL_BITS) ++ long bits = sysconf(_SC_KERNEL_BITS); ++ #endif ++ long cpu = sysconf (_SC_CPU_VERSION); ++ ++ switch (cpu) ++ { ++ case CPU_PA_RISC1_0: puts ("hppa1.0"); break; ++ case CPU_PA_RISC1_1: puts ("hppa1.1"); break; ++ case CPU_PA_RISC2_0: ++ #if defined(_SC_KERNEL_BITS) ++ switch (bits) ++ { ++ case 64: puts ("hppa2.0w"); break; ++ case 32: puts ("hppa2.0n"); break; ++ default: puts ("hppa2.0"); break; ++ } break; ++ #else /* !defined(_SC_KERNEL_BITS) */ ++ puts ("hppa2.0"); break; ++ #endif ++ default: puts ("hppa1.0"); break; ++ } ++ exit (0); ++ } ++EOF ++ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` ++ test -z "$HP_ARCH" && HP_ARCH=hppa ++ fi ;; ++ esac ++ if [ ${HP_ARCH} = "hppa2.0w" ] ++ then ++ eval $set_cc_for_build ++ ++ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating ++ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler ++ # generating 64-bit code. GNU and HP use different nomenclature: ++ # ++ # $ CC_FOR_BUILD=cc ./config.guess ++ # => hppa2.0w-hp-hpux11.23 ++ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess ++ # => hppa64-hp-hpux11.23 ++ ++ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | ++ grep -q __LP64__ ++ then ++ HP_ARCH="hppa2.0w" ++ else ++ HP_ARCH="hppa64" ++ fi ++ fi ++ echo ${HP_ARCH}-hp-hpux${HPUX_REV} ++ exit ;; ++ ia64:HP-UX:*:*) ++ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` ++ echo ia64-hp-hpux${HPUX_REV} ++ exit ;; ++ 3050*:HI-UX:*:*) ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #include ++ int ++ main () ++ { ++ long cpu = sysconf (_SC_CPU_VERSION); ++ /* The order matters, because CPU_IS_HP_MC68K erroneously returns ++ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct ++ results, however. */ ++ if (CPU_IS_PA_RISC (cpu)) ++ { ++ switch (cpu) ++ { ++ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; ++ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; ++ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; ++ default: puts ("hppa-hitachi-hiuxwe2"); break; ++ } ++ } ++ else if (CPU_IS_HP_MC68K (cpu)) ++ puts ("m68k-hitachi-hiuxwe2"); ++ else puts ("unknown-hitachi-hiuxwe2"); ++ exit (0); ++ } ++EOF ++ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && ++ { echo "$SYSTEM_NAME"; exit; } ++ echo unknown-hitachi-hiuxwe2 ++ exit ;; ++ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) ++ echo hppa1.1-hp-bsd ++ exit ;; ++ 9000/8??:4.3bsd:*:*) ++ echo hppa1.0-hp-bsd ++ exit ;; ++ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) ++ echo hppa1.0-hp-mpeix ++ exit ;; ++ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) ++ echo hppa1.1-hp-osf ++ exit ;; ++ hp8??:OSF1:*:*) ++ echo hppa1.0-hp-osf ++ exit ;; ++ i*86:OSF1:*:*) ++ if [ -x /usr/sbin/sysversion ] ; then ++ echo ${UNAME_MACHINE}-unknown-osf1mk ++ else ++ echo ${UNAME_MACHINE}-unknown-osf1 ++ fi ++ exit ;; ++ parisc*:Lites*:*:*) ++ echo hppa1.1-hp-lites ++ exit ;; ++ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) ++ echo c1-convex-bsd ++ exit ;; ++ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) ++ if getsysinfo -f scalar_acc ++ then echo c32-convex-bsd ++ else echo c2-convex-bsd ++ fi ++ exit ;; ++ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) ++ echo c34-convex-bsd ++ exit ;; ++ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) ++ echo c38-convex-bsd ++ exit ;; ++ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) ++ echo c4-convex-bsd ++ exit ;; ++ CRAY*Y-MP:*:*:*) ++ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ CRAY*[A-Z]90:*:*:*) ++ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ ++ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ ++ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ ++ -e 's/\.[^.]*$/.X/' ++ exit ;; ++ CRAY*TS:*:*:*) ++ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ CRAY*T3E:*:*:*) ++ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ CRAY*SV1:*:*:*) ++ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ *:UNICOS/mp:*:*) ++ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) ++ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` ++ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit ;; ++ 5000:UNIX_System_V:4.*:*) ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` ++ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit ;; ++ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) ++ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} ++ exit ;; ++ sparc*:BSD/OS:*:*) ++ echo sparc-unknown-bsdi${UNAME_RELEASE} ++ exit ;; ++ *:BSD/OS:*:*) ++ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} ++ exit ;; ++ *:FreeBSD:*:*) ++ UNAME_PROCESSOR=`/usr/bin/uname -p` ++ case ${UNAME_PROCESSOR} in ++ amd64) ++ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ *) ++ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ esac ++ exit ;; ++ i*:CYGWIN*:*) ++ echo ${UNAME_MACHINE}-pc-cygwin ++ exit ;; ++ *:MINGW64*:*) ++ echo ${UNAME_MACHINE}-pc-mingw64 ++ exit ;; ++ *:MINGW*:*) ++ echo ${UNAME_MACHINE}-pc-mingw32 ++ exit ;; ++ *:MSYS*:*) ++ echo ${UNAME_MACHINE}-pc-msys ++ exit ;; ++ i*:windows32*:*) ++ # uname -m includes "-pc" on this system. ++ echo ${UNAME_MACHINE}-mingw32 ++ exit ;; ++ i*:PW*:*) ++ echo ${UNAME_MACHINE}-pc-pw32 ++ exit ;; ++ *:Interix*:*) ++ case ${UNAME_MACHINE} in ++ x86) ++ echo i586-pc-interix${UNAME_RELEASE} ++ exit ;; ++ authenticamd | genuineintel | EM64T) ++ echo x86_64-unknown-interix${UNAME_RELEASE} ++ exit ;; ++ IA64) ++ echo ia64-unknown-interix${UNAME_RELEASE} ++ exit ;; ++ esac ;; ++ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) ++ echo i${UNAME_MACHINE}-pc-mks ++ exit ;; ++ 8664:Windows_NT:*) ++ echo x86_64-pc-mks ++ exit ;; ++ i*:Windows_NT*:* | Pentium*:Windows_NT*:*) ++ # How do we know it's Interix rather than the generic POSIX subsystem? ++ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we ++ # UNAME_MACHINE based on the output of uname instead of i386? ++ echo i586-pc-interix ++ exit ;; ++ i*:UWIN*:*) ++ echo ${UNAME_MACHINE}-pc-uwin ++ exit ;; ++ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) ++ echo x86_64-unknown-cygwin ++ exit ;; ++ p*:CYGWIN*:*) ++ echo powerpcle-unknown-cygwin ++ exit ;; ++ prep*:SunOS:5.*:*) ++ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ *:GNU:*:*) ++ # the GNU system ++ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` ++ exit ;; ++ *:GNU/*:*:*) ++ # other systems with GNU libc and userland ++ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} ++ exit ;; ++ i*86:Minix:*:*) ++ echo ${UNAME_MACHINE}-pc-minix ++ exit ;; ++ aarch64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ aarch64_be:Linux:*:*) ++ UNAME_MACHINE=aarch64_be ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ alpha:Linux:*:*) ++ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in ++ EV5) UNAME_MACHINE=alphaev5 ;; ++ EV56) UNAME_MACHINE=alphaev56 ;; ++ PCA56) UNAME_MACHINE=alphapca56 ;; ++ PCA57) UNAME_MACHINE=alphapca56 ;; ++ EV6) UNAME_MACHINE=alphaev6 ;; ++ EV67) UNAME_MACHINE=alphaev67 ;; ++ EV68*) UNAME_MACHINE=alphaev68 ;; ++ esac ++ objdump --private-headers /bin/sh | grep -q ld.so.1 ++ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ arc:Linux:*:* | arceb:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ arm*:Linux:*:*) ++ eval $set_cc_for_build ++ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ARM_EABI__ ++ then ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ else ++ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ARM_PCS_VFP ++ then ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi ++ else ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf ++ fi ++ fi ++ exit ;; ++ avr32*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ cris:Linux:*:*) ++ echo ${UNAME_MACHINE}-axis-linux-${LIBC} ++ exit ;; ++ crisv32:Linux:*:*) ++ echo ${UNAME_MACHINE}-axis-linux-${LIBC} ++ exit ;; ++ frv:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ hexagon:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ i*86:Linux:*:*) ++ echo ${UNAME_MACHINE}-pc-linux-${LIBC} ++ exit ;; ++ ia64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ m32r*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ m68*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ mips:Linux:*:* | mips64:Linux:*:*) ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #undef CPU ++ #undef ${UNAME_MACHINE} ++ #undef ${UNAME_MACHINE}el ++ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) ++ CPU=${UNAME_MACHINE}el ++ #else ++ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) ++ CPU=${UNAME_MACHINE} ++ #else ++ CPU= ++ #endif ++ #endif ++EOF ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` ++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ++ ;; ++ openrisc*:Linux:*:*) ++ echo or1k-unknown-linux-${LIBC} ++ exit ;; ++ or32:Linux:*:* | or1k*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ padre:Linux:*:*) ++ echo sparc-unknown-linux-${LIBC} ++ exit ;; ++ parisc64:Linux:*:* | hppa64:Linux:*:*) ++ echo hppa64-unknown-linux-${LIBC} ++ exit ;; ++ parisc:Linux:*:* | hppa:Linux:*:*) ++ # Look for CPU level ++ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in ++ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; ++ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; ++ *) echo hppa-unknown-linux-${LIBC} ;; ++ esac ++ exit ;; ++ ppc64:Linux:*:*) ++ echo powerpc64-unknown-linux-${LIBC} ++ exit ;; ++ ppc:Linux:*:*) ++ echo powerpc-unknown-linux-${LIBC} ++ exit ;; ++ ppc64le:Linux:*:*) ++ echo powerpc64le-unknown-linux-${LIBC} ++ exit ;; ++ ppcle:Linux:*:*) ++ echo powerpcle-unknown-linux-${LIBC} ++ exit ;; ++ s390:Linux:*:* | s390x:Linux:*:*) ++ echo ${UNAME_MACHINE}-ibm-linux-${LIBC} ++ exit ;; ++ sh64*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ sh*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ sparc:Linux:*:* | sparc64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ tile*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ vax:Linux:*:*) ++ echo ${UNAME_MACHINE}-dec-linux-${LIBC} ++ exit ;; ++ x86_64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ xtensa*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ i*86:DYNIX/ptx:4*:*) ++ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. ++ # earlier versions are messed up and put the nodename in both ++ # sysname and nodename. ++ echo i386-sequent-sysv4 ++ exit ;; ++ i*86:UNIX_SV:4.2MP:2.*) ++ # Unixware is an offshoot of SVR4, but it has its own version ++ # number series starting with 2... ++ # I am not positive that other SVR4 systems won't match this, ++ # I just have to hope. -- rms. ++ # Use sysv4.2uw... so that sysv4* matches it. ++ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} ++ exit ;; ++ i*86:OS/2:*:*) ++ # If we were able to find `uname', then EMX Unix compatibility ++ # is probably installed. ++ echo ${UNAME_MACHINE}-pc-os2-emx ++ exit ;; ++ i*86:XTS-300:*:STOP) ++ echo ${UNAME_MACHINE}-unknown-stop ++ exit ;; ++ i*86:atheos:*:*) ++ echo ${UNAME_MACHINE}-unknown-atheos ++ exit ;; ++ i*86:syllable:*:*) ++ echo ${UNAME_MACHINE}-pc-syllable ++ exit ;; ++ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) ++ echo i386-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ i*86:*DOS:*:*) ++ echo ${UNAME_MACHINE}-pc-msdosdjgpp ++ exit ;; ++ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) ++ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` ++ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then ++ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} ++ else ++ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} ++ fi ++ exit ;; ++ i*86:*:5:[678]*) ++ # UnixWare 7.x, OpenUNIX and OpenServer 6. ++ case `/bin/uname -X | grep "^Machine"` in ++ *486*) UNAME_MACHINE=i486 ;; ++ *Pentium) UNAME_MACHINE=i586 ;; ++ *Pent*|*Celeron) UNAME_MACHINE=i686 ;; ++ esac ++ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} ++ exit ;; ++ i*86:*:3.2:*) ++ if test -f /usr/options/cb.name; then ++ UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then ++ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` ++ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 ++ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ ++ && UNAME_MACHINE=i586 ++ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ ++ && UNAME_MACHINE=i686 ++ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ ++ && UNAME_MACHINE=i686 ++ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL ++ else ++ echo ${UNAME_MACHINE}-pc-sysv32 ++ fi ++ exit ;; ++ pc:*:*:*) ++ # Left here for compatibility: ++ # uname -m prints for DJGPP always 'pc', but it prints nothing about ++ # the processor, so we play safe by assuming i586. ++ # Note: whatever this is, it MUST be the same as what config.sub ++ # prints for the "djgpp" host, or else GDB configury will decide that ++ # this is a cross-build. ++ echo i586-pc-msdosdjgpp ++ exit ;; ++ Intel:Mach:3*:*) ++ echo i386-pc-mach3 ++ exit ;; ++ paragon:*:*:*) ++ echo i860-intel-osf1 ++ exit ;; ++ i860:*:4.*:*) # i860-SVR4 ++ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then ++ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 ++ else # Add other i860-SVR4 vendors below as they are discovered. ++ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 ++ fi ++ exit ;; ++ mini*:CTIX:SYS*5:*) ++ # "miniframe" ++ echo m68010-convergent-sysv ++ exit ;; ++ mc68k:UNIX:SYSTEM5:3.51m) ++ echo m68k-convergent-sysv ++ exit ;; ++ M680?0:D-NIX:5.3:*) ++ echo m68k-diab-dnix ++ exit ;; ++ M68*:*:R3V[5678]*:*) ++ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; ++ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) ++ OS_REL='' ++ test -r /etc/.relid \ ++ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } ++ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ ++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; ++ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4; exit; } ;; ++ NCR*:*:4.2:* | MPRAS*:*:4.2:*) ++ OS_REL='.3' ++ test -r /etc/.relid \ ++ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } ++ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ ++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ++ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ ++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; ++ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) ++ echo m68k-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ mc68030:UNIX_System_V:4.*:*) ++ echo m68k-atari-sysv4 ++ exit ;; ++ TSUNAMI:LynxOS:2.*:*) ++ echo sparc-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ rs6000:LynxOS:2.*:*) ++ echo rs6000-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) ++ echo powerpc-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ SM[BE]S:UNIX_SV:*:*) ++ echo mips-dde-sysv${UNAME_RELEASE} ++ exit ;; ++ RM*:ReliantUNIX-*:*:*) ++ echo mips-sni-sysv4 ++ exit ;; ++ RM*:SINIX-*:*:*) ++ echo mips-sni-sysv4 ++ exit ;; ++ *:SINIX-*:*:*) ++ if uname -p 2>/dev/null >/dev/null ; then ++ UNAME_MACHINE=`(uname -p) 2>/dev/null` ++ echo ${UNAME_MACHINE}-sni-sysv4 ++ else ++ echo ns32k-sni-sysv ++ fi ++ exit ;; ++ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort ++ # says ++ echo i586-unisys-sysv4 ++ exit ;; ++ *:UNIX_System_V:4*:FTX*) ++ # From Gerald Hewes . ++ # How about differentiating between stratus architectures? -djm ++ echo hppa1.1-stratus-sysv4 ++ exit ;; ++ *:*:*:FTX*) ++ # From seanf@swdc.stratus.com. ++ echo i860-stratus-sysv4 ++ exit ;; ++ i*86:VOS:*:*) ++ # From Paul.Green@stratus.com. ++ echo ${UNAME_MACHINE}-stratus-vos ++ exit ;; ++ *:VOS:*:*) ++ # From Paul.Green@stratus.com. ++ echo hppa1.1-stratus-vos ++ exit ;; ++ mc68*:A/UX:*:*) ++ echo m68k-apple-aux${UNAME_RELEASE} ++ exit ;; ++ news*:NEWS-OS:6*:*) ++ echo mips-sony-newsos6 ++ exit ;; ++ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) ++ if [ -d /usr/nec ]; then ++ echo mips-nec-sysv${UNAME_RELEASE} ++ else ++ echo mips-unknown-sysv${UNAME_RELEASE} ++ fi ++ exit ;; ++ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. ++ echo powerpc-be-beos ++ exit ;; ++ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. ++ echo powerpc-apple-beos ++ exit ;; ++ BePC:BeOS:*:*) # BeOS running on Intel PC compatible. ++ echo i586-pc-beos ++ exit ;; ++ BePC:Haiku:*:*) # Haiku running on Intel PC compatible. ++ echo i586-pc-haiku ++ exit ;; ++ x86_64:Haiku:*:*) ++ echo x86_64-unknown-haiku ++ exit ;; ++ SX-4:SUPER-UX:*:*) ++ echo sx4-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-5:SUPER-UX:*:*) ++ echo sx5-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-6:SUPER-UX:*:*) ++ echo sx6-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-7:SUPER-UX:*:*) ++ echo sx7-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-8:SUPER-UX:*:*) ++ echo sx8-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-8R:SUPER-UX:*:*) ++ echo sx8r-nec-superux${UNAME_RELEASE} ++ exit ;; ++ Power*:Rhapsody:*:*) ++ echo powerpc-apple-rhapsody${UNAME_RELEASE} ++ exit ;; ++ *:Rhapsody:*:*) ++ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} ++ exit ;; ++ *:Darwin:*:*) ++ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown ++ eval $set_cc_for_build ++ if test "$UNAME_PROCESSOR" = unknown ; then ++ UNAME_PROCESSOR=powerpc ++ fi ++ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then ++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then ++ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ ++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ ++ grep IS_64BIT_ARCH >/dev/null ++ then ++ case $UNAME_PROCESSOR in ++ i386) UNAME_PROCESSOR=x86_64 ;; ++ powerpc) UNAME_PROCESSOR=powerpc64 ;; ++ esac ++ fi ++ fi ++ elif test "$UNAME_PROCESSOR" = i386 ; then ++ # Avoid executing cc on OS X 10.9, as it ships with a stub ++ # that puts up a graphical alert prompting to install ++ # developer tools. Any system running Mac OS X 10.7 or ++ # later (Darwin 11 and later) is required to have a 64-bit ++ # processor. This is not true of the ARM version of Darwin ++ # that Apple uses in portable devices. ++ UNAME_PROCESSOR=x86_64 ++ fi ++ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} ++ exit ;; ++ *:procnto*:*:* | *:QNX:[0123456789]*:*) ++ UNAME_PROCESSOR=`uname -p` ++ if test "$UNAME_PROCESSOR" = "x86"; then ++ UNAME_PROCESSOR=i386 ++ UNAME_MACHINE=pc ++ fi ++ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} ++ exit ;; ++ *:QNX:*:4*) ++ echo i386-pc-qnx ++ exit ;; ++ NEO-?:NONSTOP_KERNEL:*:*) ++ echo neo-tandem-nsk${UNAME_RELEASE} ++ exit ;; ++ NSE-*:NONSTOP_KERNEL:*:*) ++ echo nse-tandem-nsk${UNAME_RELEASE} ++ exit ;; ++ NSR-?:NONSTOP_KERNEL:*:*) ++ echo nsr-tandem-nsk${UNAME_RELEASE} ++ exit ;; ++ *:NonStop-UX:*:*) ++ echo mips-compaq-nonstopux ++ exit ;; ++ BS2000:POSIX*:*:*) ++ echo bs2000-siemens-sysv ++ exit ;; ++ DS/*:UNIX_System_V:*:*) ++ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} ++ exit ;; ++ *:Plan9:*:*) ++ # "uname -m" is not consistent, so use $cputype instead. 386 ++ # is converted to i386 for consistency with other x86 ++ # operating systems. ++ if test "$cputype" = "386"; then ++ UNAME_MACHINE=i386 ++ else ++ UNAME_MACHINE="$cputype" ++ fi ++ echo ${UNAME_MACHINE}-unknown-plan9 ++ exit ;; ++ *:TOPS-10:*:*) ++ echo pdp10-unknown-tops10 ++ exit ;; ++ *:TENEX:*:*) ++ echo pdp10-unknown-tenex ++ exit ;; ++ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) ++ echo pdp10-dec-tops20 ++ exit ;; ++ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) ++ echo pdp10-xkl-tops20 ++ exit ;; ++ *:TOPS-20:*:*) ++ echo pdp10-unknown-tops20 ++ exit ;; ++ *:ITS:*:*) ++ echo pdp10-unknown-its ++ exit ;; ++ SEI:*:*:SEIUX) ++ echo mips-sei-seiux${UNAME_RELEASE} ++ exit ;; ++ *:DragonFly:*:*) ++ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ++ exit ;; ++ *:*VMS:*:*) ++ UNAME_MACHINE=`(uname -p) 2>/dev/null` ++ case "${UNAME_MACHINE}" in ++ A*) echo alpha-dec-vms ; exit ;; ++ I*) echo ia64-dec-vms ; exit ;; ++ V*) echo vax-dec-vms ; exit ;; ++ esac ;; ++ *:XENIX:*:SysV) ++ echo i386-pc-xenix ++ exit ;; ++ i*86:skyos:*:*) ++ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' ++ exit ;; ++ i*86:rdos:*:*) ++ echo ${UNAME_MACHINE}-pc-rdos ++ exit ;; ++ i*86:AROS:*:*) ++ echo ${UNAME_MACHINE}-pc-aros ++ exit ;; ++ x86_64:VMkernel:*:*) ++ echo ${UNAME_MACHINE}-unknown-esx ++ exit ;; ++esac ++ ++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/config.h.in b/config.h.in +new file mode 100644 +index 0000000..c5ee06e +--- /dev/null ++++ b/config.h.in +@@ -0,0 +1,572 @@ ++/* config.h.in. Generated from configure.ac by autoheader. */ ++ ++/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP ++ systems. This function is required for `alloca.c' support on those systems. ++ */ ++#undef CRAY_STACKSEG_END ++ ++/* Define to 1 if using `alloca.c'. */ ++#undef C_ALLOCA ++ ++/* Define to 1 if translation of program messages to the user's native ++ language is requested. */ ++#undef ENABLE_NLS ++ ++/* Define to 1 if you have `alloca', as a function or macro. */ ++#undef HAVE_ALLOCA ++ ++/* Define to 1 if you have and it should be used (not on Ultrix). ++ */ ++#undef HAVE_ALLOCA_H ++ ++/* Define to 1 if you have the `argz_count' function. */ ++#undef HAVE_ARGZ_COUNT ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_ARGZ_H ++ ++/* Define to 1 if you have the `argz_next' function. */ ++#undef HAVE_ARGZ_NEXT ++ ++/* Define to 1 if you have the `argz_stringify' function. */ ++#undef HAVE_ARGZ_STRINGIFY ++ ++/* Define to 1 if you have the `asprintf' function. */ ++#undef HAVE_ASPRINTF ++ ++/* Define to 1 if the compiler understands __builtin_expect. */ ++#undef HAVE_BUILTIN_EXPECT ++ ++/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the ++ CoreFoundation framework. */ ++#undef HAVE_CFLOCALECOPYCURRENT ++ ++/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in ++ the CoreFoundation framework. */ ++#undef HAVE_CFPREFERENCESCOPYAPPVALUE ++ ++/* "Define if you have the header" */ ++#undef HAVE_CURSES_H ++ ++/* Define if the GNU dcgettext() function is already present or preinstalled. ++ */ ++#undef HAVE_DCGETTEXT ++ ++/* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you ++ don't. */ ++#undef HAVE_DECL_FEOF_UNLOCKED ++ ++/* Define to 1 if you have the declaration of `fgets_unlocked', and to 0 if ++ you don't. */ ++#undef HAVE_DECL_FGETS_UNLOCKED ++ ++/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you ++ don't. */ ++#undef HAVE_DECL_GETC_UNLOCKED ++ ++/* Define to 1 if you have the declaration of `_snprintf', and to 0 if you ++ don't. */ ++#undef HAVE_DECL__SNPRINTF ++ ++/* Define to 1 if you have the declaration of `_snwprintf', and to 0 if you ++ don't. */ ++#undef HAVE_DECL__SNWPRINTF ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_DLFCN_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_FCNTL_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_FEATURES_H ++ ++/* Define to 1 if you have the `fwprintf' function. */ ++#undef HAVE_FWPRINTF ++ ++/* Define to 1 if you have the `getcwd' function. */ ++#undef HAVE_GETCWD ++ ++/* Define to 1 if you have the `getegid' function. */ ++#undef HAVE_GETEGID ++ ++/* Define to 1 if you have the `geteuid' function. */ ++#undef HAVE_GETEUID ++ ++/* Define to 1 if you have the `getgid' function. */ ++#undef HAVE_GETGID ++ ++/* Define to 1 if you have the `getlocalename_l' function. */ ++#undef HAVE_GETLOCALENAME_L ++ ++/* Define to 1 if you have the `getpagesize' function. */ ++#undef HAVE_GETPAGESIZE ++ ++/* Define if the GNU gettext() function is already present or preinstalled. */ ++#undef HAVE_GETTEXT ++ ++/* Define to 1 if you have the `getuid' function. */ ++#undef HAVE_GETUID ++ ++/* Define if you have the iconv() function and it works. */ ++#undef HAVE_ICONV ++ ++/* Define if you have the 'intmax_t' type in or . */ ++#undef HAVE_INTMAX_T ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_INTTYPES_H ++ ++/* Define if exists, doesn't clash with , and ++ declares uintmax_t. */ ++#undef HAVE_INTTYPES_H_WITH_UINTMAX ++ ++/* Define if you have and nl_langinfo(CODESET). */ ++#undef HAVE_LANGINFO_CODESET ++ ++/* Define if your file defines LC_MESSAGES. */ ++#undef HAVE_LC_MESSAGES ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_LIBINTL_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_LIMITS_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_LOCALE_H ++ ++/* Define to 1 if the system has the type 'long long int'. */ ++#undef HAVE_LONG_LONG_INT ++ ++/* Define to 1 if you have the `mbrtowc' function. */ ++#undef HAVE_MBRTOWC ++ ++/* Define to 1 if you have the `memchr' function. */ ++#undef HAVE_MEMCHR ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_MEMORY_H ++ ++/* Define to 1 if you have the `mempcpy' function. */ ++#undef HAVE_MEMPCPY ++ ++/* Define to 1 if you have a working `mmap' system call. */ ++#undef HAVE_MMAP ++ ++/* Define to 1 if you have the `munmap' function. */ ++#undef HAVE_MUNMAP ++ ++/* "Define if you have the header" */ ++#undef HAVE_NCURSESW_H ++ ++/* Define to 1 if you have the `newlocale' function. */ ++#undef HAVE_NEWLOCALE ++ ++/* Define if your printf() function supports format strings with positions. */ ++#undef HAVE_POSIX_PRINTF ++ ++/* Define if the defines PTHREAD_MUTEX_RECURSIVE. */ ++#undef HAVE_PTHREAD_MUTEX_RECURSIVE ++ ++/* Define if the POSIX multithreading library has read/write locks. */ ++#undef HAVE_PTHREAD_RWLOCK ++ ++/* Define to 1 if you have the `putenv' function. */ ++#undef HAVE_PUTENV ++ ++/* "Define if you have fancy command input editing with Readline" */ ++#undef HAVE_READLINE ++ ++/* Define to 1 if you have the `setenv' function. */ ++#undef HAVE_SETENV ++ ++/* Define to 1 if you have the `setlocale' function. */ ++#undef HAVE_SETLOCALE ++ ++/* Define to 1 if you have the `snprintf' function. */ ++#undef HAVE_SNPRINTF ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_STDDEF_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_STDINT_H ++ ++/* Define if exists, doesn't clash with , and declares ++ uintmax_t. */ ++#undef HAVE_STDINT_H_WITH_UINTMAX ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_STDLIB_H ++ ++/* Define to 1 if you have the `stpcpy' function. */ ++#undef HAVE_STPCPY ++ ++/* Define to 1 if you have the `strcasecmp' function. */ ++#undef HAVE_STRCASECMP ++ ++/* Define to 1 if you have the `strchr' function. */ ++#undef HAVE_STRCHR ++ ++/* Define to 1 if you have the `strdup' function. */ ++#undef HAVE_STRDUP ++ ++/* Define to 1 if you have the 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 `strnlen' function. */ ++#undef HAVE_STRNLEN ++ ++/* Define to 1 if you have the `strstr' function. */ ++#undef HAVE_STRSTR ++ ++/* Define to 1 if you have the `strtoul' function. */ ++#undef HAVE_STRTOUL ++ ++/* Define to 1 if you have the `symlink' function. */ ++#undef HAVE_SYMLINK ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_SYS_PARAM_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_SYS_STAT_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_SYS_TYPES_H ++ ++/* Define to 1 if you have the `tsearch' function. */ ++#undef HAVE_TSEARCH ++ ++/* Define if you have the 'uintmax_t' type in or . */ ++#undef HAVE_UINTMAX_T ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_UNISTD_H ++ ++/* Define to 1 if the system has the type 'unsigned long long int'. */ ++#undef HAVE_UNSIGNED_LONG_LONG_INT ++ ++/* Define to 1 if you have the `uselocale' function. */ ++#undef HAVE_USELOCALE ++ ++/* Define to 1 or 0, depending whether the compiler supports simple visibility ++ declarations. */ ++#undef HAVE_VISIBILITY ++ ++/* Define if you have the 'wchar_t' type. */ ++#undef HAVE_WCHAR_T ++ ++/* Define to 1 if you have the `wcrtomb' function. */ ++#undef HAVE_WCRTOMB ++ ++/* Define to 1 if you have the `wcslen' function. */ ++#undef HAVE_WCSLEN ++ ++/* Define to 1 if you have the `wcsnlen' function. */ ++#undef HAVE_WCSNLEN ++ ++/* Define if you have the 'wint_t' type. */ ++#undef HAVE_WINT_T ++ ++/* Define to 1 if O_NOATIME works. */ ++#undef HAVE_WORKING_O_NOATIME ++ ++/* Define to 1 if O_NOFOLLOW works. */ ++#undef HAVE_WORKING_O_NOFOLLOW ++ ++/* Define to 1 if you have the `__fsetlocking' function. */ ++#undef HAVE___FSETLOCKING ++ ++/* "Define if you need warning messages" */ ++#undef HUNSPELL_WARNING_ON ++ ++/* Define as const if the declaration of iconv() needs const. */ ++#undef ICONV_CONST ++ ++/* Define if integer division by zero raises signal SIGFPE. */ ++#undef INTDIV0_RAISES_SIGFPE ++ ++/* Define to the sub-directory where libtool stores uninstalled libraries. */ ++#undef LT_OBJDIR ++ ++/* Name of package */ ++#undef PACKAGE ++ ++/* Define to the address where bug reports for this package should be sent. */ ++#undef PACKAGE_BUGREPORT ++ ++/* Define to the full name of this package. */ ++#undef PACKAGE_NAME ++ ++/* Define to the full name and version of this package. */ ++#undef PACKAGE_STRING ++ ++/* Define to the one symbol short name of this package. */ ++#undef PACKAGE_TARNAME ++ ++/* Define to the home page for this package. */ ++#undef PACKAGE_URL ++ ++/* Define to the version of this package. */ ++#undef PACKAGE_VERSION ++ ++/* Define if exists and defines unusable PRI* macros. */ ++#undef PRI_MACROS_BROKEN ++ ++/* Define if the pthread_in_use() detection is hard. */ ++#undef PTHREAD_IN_USE_DETECTION_HARD ++ ++/* Define as the maximum value of type 'size_t', if the system doesn't define ++ it. */ ++#ifndef SIZE_MAX ++# undef SIZE_MAX ++#endif ++ ++/* If using the C implementation of alloca, define if you know the ++ direction of stack growth for your system; otherwise it will be ++ automatically deduced at runtime. ++ STACK_DIRECTION > 0 => grows toward higher addresses ++ STACK_DIRECTION < 0 => grows toward lower addresses ++ STACK_DIRECTION = 0 => direction of growth unknown */ ++#undef STACK_DIRECTION ++ ++/* Define to 1 if you have the ANSI C header files. */ ++#undef STDC_HEADERS ++ ++/* Define if the POSIX multithreading library can be used. */ ++#undef USE_POSIX_THREADS ++ ++/* Define if references to the POSIX multithreading library should be made ++ weak. */ ++#undef USE_POSIX_THREADS_WEAK ++ ++/* Define if the GNU Pth multithreading library can be used. */ ++#undef USE_PTH_THREADS ++ ++/* Define if references to the GNU Pth multithreading library should be made ++ weak. */ ++#undef USE_PTH_THREADS_WEAK ++ ++/* Define if the old Solaris multithreading library can be used. */ ++#undef USE_SOLARIS_THREADS ++ ++/* Define if references to the old Solaris multithreading library should be ++ made weak. */ ++#undef USE_SOLARIS_THREADS_WEAK ++ ++/* Enable extensions on AIX 3, Interix. */ ++#ifndef _ALL_SOURCE ++# undef _ALL_SOURCE ++#endif ++/* Enable GNU extensions on systems that have them. */ ++#ifndef _GNU_SOURCE ++# undef _GNU_SOURCE ++#endif ++/* Enable threading extensions on Solaris. */ ++#ifndef _POSIX_PTHREAD_SEMANTICS ++# undef _POSIX_PTHREAD_SEMANTICS ++#endif ++/* Enable extensions on HP NonStop. */ ++#ifndef _TANDEM_SOURCE ++# undef _TANDEM_SOURCE ++#endif ++/* Enable general extensions on Solaris. */ ++#ifndef __EXTENSIONS__ ++# undef __EXTENSIONS__ ++#endif ++ ++ ++/* Define if the native Windows multithreading API can be used. */ ++#undef USE_WINDOWS_THREADS ++ ++/* Version number of package */ ++#undef VERSION ++ ++/* Define to 1 if on MINIX. */ ++#undef _MINIX ++ ++/* Define to 2 if the system does not provide POSIX.1 features except with ++ this defined. */ ++#undef _POSIX_1_SOURCE ++ ++/* Define to 1 if you need to in order for `stat' and other things to work. */ ++#undef _POSIX_SOURCE ++ ++/* Define to empty if `const' does not conform to ANSI C. */ ++#undef const ++ ++/* Please see the Gnulib manual for how to use these macros. ++ ++ Suppress extern inline with HP-UX cc, as it appears to be broken; see ++ . ++ ++ Suppress extern inline with Sun C in standards-conformance mode, as it ++ mishandles inline functions that call each other. E.g., for 'inline void f ++ (void) { } inline void g (void) { f (); }', c99 incorrectly complains ++ 'reference to static identifier "f" in extern inline function'. ++ This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16. ++ ++ Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) ++ on configurations that mistakenly use 'static inline' to implement ++ functions or macros in standard C headers like . For example, ++ if isdigit is mistakenly implemented via a static inline function, ++ a program containing an extern inline function that calls isdigit ++ may not work since the C standard prohibits extern inline functions ++ from calling static functions. This bug is known to occur on: ++ ++ OS X 10.8 and earlier; see: ++ http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html ++ ++ DragonFly; see ++ http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log ++ ++ FreeBSD; see: ++ http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00104.html ++ ++ OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and ++ for clang but remains for g++; see . ++ Assume DragonFly and FreeBSD will be similar. */ ++#if (((defined __APPLE__ && defined __MACH__) \ ++ || defined __DragonFly__ || defined __FreeBSD__) \ ++ && (defined __header_inline \ ++ ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ ++ && ! defined __clang__) \ ++ : ((! defined _DONT_USE_CTYPE_INLINE_ \ ++ && (defined __GNUC__ || defined __cplusplus)) \ ++ || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ ++ && defined __GNUC__ && ! defined __cplusplus)))) ++# define _GL_EXTERN_INLINE_STDHEADER_BUG ++#endif ++#if ((__GNUC__ \ ++ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ ++ : (199901L <= __STDC_VERSION__ \ ++ && !defined __HP_cc \ ++ && !defined __PGI \ ++ && !(defined __SUNPRO_C && __STDC__))) \ ++ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) ++# define _GL_INLINE inline ++# define _GL_EXTERN_INLINE extern inline ++# define _GL_EXTERN_INLINE_IN_USE ++#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ ++ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) ++# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ ++ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ ++# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) ++# else ++# define _GL_INLINE extern inline ++# endif ++# define _GL_EXTERN_INLINE extern ++# define _GL_EXTERN_INLINE_IN_USE ++#else ++# define _GL_INLINE static _GL_UNUSED ++# define _GL_EXTERN_INLINE static _GL_UNUSED ++#endif ++ ++/* In GCC 4.6 (inclusive) to 5.1 (exclusive), ++ suppress bogus "no previous prototype for 'FOO'" ++ and "no previous declaration for 'FOO'" diagnostics, ++ when FOO is an inline function in the header; see ++ and ++ . */ ++#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__ ++# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ ++# define _GL_INLINE_HEADER_CONST_PRAGMA ++# else ++# define _GL_INLINE_HEADER_CONST_PRAGMA \ ++ _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") ++# endif ++# define _GL_INLINE_HEADER_BEGIN \ ++ _Pragma ("GCC diagnostic push") \ ++ _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ ++ _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ ++ _GL_INLINE_HEADER_CONST_PRAGMA ++# define _GL_INLINE_HEADER_END \ ++ _Pragma ("GCC diagnostic pop") ++#else ++# define _GL_INLINE_HEADER_BEGIN ++# define _GL_INLINE_HEADER_END ++#endif ++ ++/* Define as a marker that can be attached to declarations that might not ++ be used. This helps to reduce warnings, such as from ++ GCC -Wunused-parameter. */ ++#ifndef _GL_UNUSED ++# if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) ++# define _GL_UNUSED __attribute__ ((__unused__)) ++# else ++# define _GL_UNUSED ++# endif ++#endif ++ ++/* The __pure__ attribute was added in gcc 2.96. */ ++#ifndef _GL_ATTRIBUTE_PURE ++# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) ++# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) ++# else ++# define _GL_ATTRIBUTE_PURE /* empty */ ++# endif ++#endif ++ ++ ++/* Define to `__inline__' or `__inline' if that's what the C compiler ++ calls it, or to nothing if 'inline' is not supported under any name. */ ++#ifndef __cplusplus ++#undef inline ++#endif ++ ++/* Define as the type of the result of subtracting two pointers, if the system ++ doesn't define it. */ ++#undef ptrdiff_t ++ ++/* Define to `unsigned int' if does not define. */ ++#undef size_t ++ ++/* Define to unsigned long or unsigned long long if and ++ don't define. */ ++#undef uintmax_t ++ ++ ++#define __libc_lock_t gl_lock_t ++#define __libc_lock_define gl_lock_define ++#define __libc_lock_define_initialized gl_lock_define_initialized ++#define __libc_lock_init gl_lock_init ++#define __libc_lock_lock gl_lock_lock ++#define __libc_lock_unlock gl_lock_unlock ++#define __libc_lock_recursive_t gl_recursive_lock_t ++#define __libc_lock_define_recursive gl_recursive_lock_define ++#define __libc_lock_define_initialized_recursive gl_recursive_lock_define_initialized ++#define __libc_lock_init_recursive gl_recursive_lock_init ++#define __libc_lock_lock_recursive gl_recursive_lock_lock ++#define __libc_lock_unlock_recursive gl_recursive_lock_unlock ++#define glthread_in_use libintl_thread_in_use ++#define glthread_lock_init_func libintl_lock_init_func ++#define glthread_lock_lock_func libintl_lock_lock_func ++#define glthread_lock_unlock_func libintl_lock_unlock_func ++#define glthread_lock_destroy_func libintl_lock_destroy_func ++#define glthread_rwlock_init_multithreaded libintl_rwlock_init_multithreaded ++#define glthread_rwlock_init_func libintl_rwlock_init_func ++#define glthread_rwlock_rdlock_multithreaded libintl_rwlock_rdlock_multithreaded ++#define glthread_rwlock_rdlock_func libintl_rwlock_rdlock_func ++#define glthread_rwlock_wrlock_multithreaded libintl_rwlock_wrlock_multithreaded ++#define glthread_rwlock_wrlock_func libintl_rwlock_wrlock_func ++#define glthread_rwlock_unlock_multithreaded libintl_rwlock_unlock_multithreaded ++#define glthread_rwlock_unlock_func libintl_rwlock_unlock_func ++#define glthread_rwlock_destroy_multithreaded libintl_rwlock_destroy_multithreaded ++#define glthread_rwlock_destroy_func libintl_rwlock_destroy_func ++#define glthread_recursive_lock_init_multithreaded libintl_recursive_lock_init_multithreaded ++#define glthread_recursive_lock_init_func libintl_recursive_lock_init_func ++#define glthread_recursive_lock_lock_multithreaded libintl_recursive_lock_lock_multithreaded ++#define glthread_recursive_lock_lock_func libintl_recursive_lock_lock_func ++#define glthread_recursive_lock_unlock_multithreaded libintl_recursive_lock_unlock_multithreaded ++#define glthread_recursive_lock_unlock_func libintl_recursive_lock_unlock_func ++#define glthread_recursive_lock_destroy_multithreaded libintl_recursive_lock_destroy_multithreaded ++#define glthread_recursive_lock_destroy_func libintl_recursive_lock_destroy_func ++#define glthread_once_func libintl_once_func ++#define glthread_once_singlethreaded libintl_once_singlethreaded ++#define glthread_once_multithreaded libintl_once_multithreaded ++ +diff --git a/config.sub b/config.sub +new file mode 100755 +index 0000000..6467c95 +--- /dev/null ++++ b/config.sub +@@ -0,0 +1,1807 @@ ++#! /bin/sh ++# Configuration validation subroutine script. ++# Copyright 1992-2015 Free Software Foundation, Inc. ++ ++timestamp='2015-01-01' ++ ++# This file is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 3 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, see . ++# ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that ++# program. This Exception is an additional permission under section 7 ++# of the GNU General Public License, version 3 ("GPLv3"). ++ ++ ++# Please send patches to . ++# ++# Configuration subroutine to validate and canonicalize a configuration type. ++# Supply the specified configuration type as an argument. ++# If it is invalid, we print an error message on stderr and exit with code 1. ++# Otherwise, we print the canonical config type on stdout and succeed. ++ ++# You can get the latest version of this script from: ++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD ++ ++# This file is supposed to be the same for all GNU packages ++# and recognize all the CPU types, system types and aliases ++# that are meaningful with *any* GNU software. ++# Each package is responsible for reporting which valid configurations ++# it does not support. The user should be able to distinguish ++# a failure to support a valid configuration from a meaningless ++# configuration. ++ ++# The goal of this file is to map all the various variations of a given ++# machine specification into a single specification in the form: ++# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM ++# or in some cases, the newer four-part form: ++# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM ++# It is wrong to echo any other type of specification. ++ ++me=`echo "$0" | sed -e 's,.*/,,'` ++ ++usage="\ ++Usage: $0 [OPTION] CPU-MFR-OPSYS ++ $0 [OPTION] ALIAS ++ ++Canonicalize a configuration name. ++ ++Operation modes: ++ -h, --help print this help, then exit ++ -t, --time-stamp print date of last modification, then exit ++ -v, --version print version number, then exit ++ ++Report bugs and patches to ." ++ ++version="\ ++GNU config.sub ($timestamp) ++ ++Copyright 1992-2015 Free Software Foundation, Inc. ++ ++This is free software; see the source for copying conditions. There is NO ++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." ++ ++help=" ++Try \`$me --help' for more information." ++ ++# Parse command line ++while test $# -gt 0 ; do ++ case $1 in ++ --time-stamp | --time* | -t ) ++ echo "$timestamp" ; exit ;; ++ --version | -v ) ++ echo "$version" ; exit ;; ++ --help | --h* | -h ) ++ echo "$usage"; exit ;; ++ -- ) # Stop option processing ++ shift; break ;; ++ - ) # Use stdin as input. ++ break ;; ++ -* ) ++ echo "$me: invalid option $1$help" ++ exit 1 ;; ++ ++ *local*) ++ # First pass through any local machine types. ++ echo $1 ++ exit ;; ++ ++ * ) ++ break ;; ++ esac ++done ++ ++case $# in ++ 0) echo "$me: missing argument$help" >&2 ++ exit 1;; ++ 1) ;; ++ *) echo "$me: too many arguments$help" >&2 ++ exit 1;; ++esac ++ ++# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). ++# Here we must recognize all the valid KERNEL-OS combinations. ++maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` ++case $maybe_os in ++ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ ++ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ ++ knetbsd*-gnu* | netbsd*-gnu* | \ ++ kopensolaris*-gnu* | \ ++ storm-chaos* | os2-emx* | rtmk-nova*) ++ os=-$maybe_os ++ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ++ ;; ++ android-linux) ++ os=-linux-android ++ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ++ ;; ++ *) ++ basic_machine=`echo $1 | sed 's/-[^-]*$//'` ++ if [ $basic_machine != $1 ] ++ then os=`echo $1 | sed 's/.*-/-/'` ++ else os=; fi ++ ;; ++esac ++ ++### Let's recognize common machines as not being operating systems so ++### that things like config.sub decstation-3100 work. We also ++### recognize some manufacturers as not being operating systems, so we ++### can provide default operating systems below. ++case $os in ++ -sun*os*) ++ # Prevent following clause from handling this invalid input. ++ ;; ++ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ ++ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ ++ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ ++ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ ++ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ ++ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ ++ -apple | -axis | -knuth | -cray | -microblaze*) ++ os= ++ basic_machine=$1 ++ ;; ++ -bluegene*) ++ os=-cnk ++ ;; ++ -sim | -cisco | -oki | -wec | -winbond) ++ os= ++ basic_machine=$1 ++ ;; ++ -scout) ++ ;; ++ -wrs) ++ os=-vxworks ++ basic_machine=$1 ++ ;; ++ -chorusos*) ++ os=-chorusos ++ basic_machine=$1 ++ ;; ++ -chorusrdb) ++ os=-chorusrdb ++ basic_machine=$1 ++ ;; ++ -hiux*) ++ os=-hiuxwe2 ++ ;; ++ -sco6) ++ os=-sco5v6 ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco5) ++ os=-sco3.2v5 ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco4) ++ os=-sco3.2v4 ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco3.2.[4-9]*) ++ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco3.2v[4-9]*) ++ # Don't forget version if it is 3.2v4 or newer. ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco5v6*) ++ # Don't forget version if it is 3.2v4 or newer. ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco*) ++ os=-sco3.2v2 ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -udk*) ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -isc) ++ os=-isc2.2 ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -clix*) ++ basic_machine=clipper-intergraph ++ ;; ++ -isc*) ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -lynx*178) ++ os=-lynxos178 ++ ;; ++ -lynx*5) ++ os=-lynxos5 ++ ;; ++ -lynx*) ++ os=-lynxos ++ ;; ++ -ptx*) ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ++ ;; ++ -windowsnt*) ++ os=`echo $os | sed -e 's/windowsnt/winnt/'` ++ ;; ++ -psos*) ++ os=-psos ++ ;; ++ -mint | -mint[0-9]*) ++ basic_machine=m68k-atari ++ os=-mint ++ ;; ++esac ++ ++# Decode aliases for certain CPU-COMPANY combinations. ++case $basic_machine in ++ # Recognize the basic CPU types without company name. ++ # Some are omitted here because they have special meanings below. ++ 1750a | 580 \ ++ | a29k \ ++ | aarch64 | aarch64_be \ ++ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ ++ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ ++ | am33_2.0 \ ++ | arc | arceb \ ++ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ ++ | avr | avr32 \ ++ | be32 | be64 \ ++ | bfin \ ++ | c4x | c8051 | clipper \ ++ | d10v | d30v | dlx | dsp16xx \ ++ | epiphany \ ++ | fido | fr30 | frv | ft32 \ ++ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ ++ | hexagon \ ++ | i370 | i860 | i960 | ia64 \ ++ | ip2k | iq2000 \ ++ | k1om \ ++ | le32 | le64 \ ++ | lm32 \ ++ | m32c | m32r | m32rle | m68000 | m68k | m88k \ ++ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ ++ | mips | mipsbe | mipseb | mipsel | mipsle \ ++ | mips16 \ ++ | mips64 | mips64el \ ++ | mips64octeon | mips64octeonel \ ++ | mips64orion | mips64orionel \ ++ | mips64r5900 | mips64r5900el \ ++ | mips64vr | mips64vrel \ ++ | mips64vr4100 | mips64vr4100el \ ++ | mips64vr4300 | mips64vr4300el \ ++ | mips64vr5000 | mips64vr5000el \ ++ | mips64vr5900 | mips64vr5900el \ ++ | mipsisa32 | mipsisa32el \ ++ | mipsisa32r2 | mipsisa32r2el \ ++ | mipsisa32r6 | mipsisa32r6el \ ++ | mipsisa64 | mipsisa64el \ ++ | mipsisa64r2 | mipsisa64r2el \ ++ | mipsisa64r6 | mipsisa64r6el \ ++ | mipsisa64sb1 | mipsisa64sb1el \ ++ | mipsisa64sr71k | mipsisa64sr71kel \ ++ | mipsr5900 | mipsr5900el \ ++ | mipstx39 | mipstx39el \ ++ | mn10200 | mn10300 \ ++ | moxie \ ++ | mt \ ++ | msp430 \ ++ | nds32 | nds32le | nds32be \ ++ | nios | nios2 | nios2eb | nios2el \ ++ | ns16k | ns32k \ ++ | open8 | or1k | or1knd | or32 \ ++ | pdp10 | pdp11 | pj | pjl \ ++ | powerpc | powerpc64 | powerpc64le | powerpcle \ ++ | pyramid \ ++ | riscv32 | riscv64 \ ++ | rl78 | rx \ ++ | score \ ++ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ ++ | sh64 | sh64le \ ++ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ ++ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ ++ | spu \ ++ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ ++ | ubicom32 \ ++ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ ++ | visium \ ++ | we32k \ ++ | x86 | xc16x | xstormy16 | xtensa \ ++ | z8k | z80) ++ basic_machine=$basic_machine-unknown ++ ;; ++ c54x) ++ basic_machine=tic54x-unknown ++ ;; ++ c55x) ++ basic_machine=tic55x-unknown ++ ;; ++ c6x) ++ basic_machine=tic6x-unknown ++ ;; ++ leon|leon[3-9]) ++ basic_machine=sparc-$basic_machine ++ ;; ++ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) ++ basic_machine=$basic_machine-unknown ++ os=-none ++ ;; ++ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ++ ;; ++ ms1) ++ basic_machine=mt-unknown ++ ;; ++ ++ strongarm | thumb | xscale) ++ basic_machine=arm-unknown ++ ;; ++ xgate) ++ basic_machine=$basic_machine-unknown ++ os=-none ++ ;; ++ xscaleeb) ++ basic_machine=armeb-unknown ++ ;; ++ ++ xscaleel) ++ basic_machine=armel-unknown ++ ;; ++ ++ # We use `pc' rather than `unknown' ++ # because (1) that's what they normally are, and ++ # (2) the word "unknown" tends to confuse beginning users. ++ i*86 | x86_64) ++ basic_machine=$basic_machine-pc ++ ;; ++ # Object if more than one company name word. ++ *-*-*) ++ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 ++ exit 1 ++ ;; ++ # Recognize the basic CPU types with company name. ++ 580-* \ ++ | a29k-* \ ++ | aarch64-* | aarch64_be-* \ ++ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ ++ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ ++ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ ++ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ ++ | avr-* | avr32-* \ ++ | be32-* | be64-* \ ++ | bfin-* | bs2000-* \ ++ | c[123]* | c30-* | [cjt]90-* | c4x-* \ ++ | c8051-* | clipper-* | craynv-* | cydra-* \ ++ | d10v-* | d30v-* | dlx-* \ ++ | elxsi-* \ ++ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ ++ | h8300-* | h8500-* \ ++ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ ++ | hexagon-* \ ++ | i*86-* | i860-* | i960-* | ia64-* \ ++ | ip2k-* | iq2000-* \ ++ | k1om-* \ ++ | le32-* | le64-* \ ++ | lm32-* \ ++ | m32c-* | m32r-* | m32rle-* \ ++ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ ++ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ ++ | microblaze-* | microblazeel-* \ ++ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ ++ | mips16-* \ ++ | mips64-* | mips64el-* \ ++ | mips64octeon-* | mips64octeonel-* \ ++ | mips64orion-* | mips64orionel-* \ ++ | mips64r5900-* | mips64r5900el-* \ ++ | mips64vr-* | mips64vrel-* \ ++ | mips64vr4100-* | mips64vr4100el-* \ ++ | mips64vr4300-* | mips64vr4300el-* \ ++ | mips64vr5000-* | mips64vr5000el-* \ ++ | mips64vr5900-* | mips64vr5900el-* \ ++ | mipsisa32-* | mipsisa32el-* \ ++ | mipsisa32r2-* | mipsisa32r2el-* \ ++ | mipsisa32r6-* | mipsisa32r6el-* \ ++ | mipsisa64-* | mipsisa64el-* \ ++ | mipsisa64r2-* | mipsisa64r2el-* \ ++ | mipsisa64r6-* | mipsisa64r6el-* \ ++ | mipsisa64sb1-* | mipsisa64sb1el-* \ ++ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ ++ | mipsr5900-* | mipsr5900el-* \ ++ | mipstx39-* | mipstx39el-* \ ++ | mmix-* \ ++ | mt-* \ ++ | msp430-* \ ++ | nds32-* | nds32le-* | nds32be-* \ ++ | nios-* | nios2-* | nios2eb-* | nios2el-* \ ++ | none-* | np1-* | ns16k-* | ns32k-* \ ++ | open8-* \ ++ | or1k*-* \ ++ | orion-* \ ++ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ ++ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ ++ | pyramid-* \ ++ | rl78-* | romp-* | rs6000-* | rx-* \ ++ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ ++ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ ++ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ ++ | sparclite-* \ ++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ ++ | tahoe-* \ ++ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ ++ | tile*-* \ ++ | tron-* \ ++ | ubicom32-* \ ++ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ ++ | vax-* \ ++ | visium-* \ ++ | we32k-* \ ++ | x86-* | x86_64-* | xc16x-* | xps100-* \ ++ | xstormy16-* | xtensa*-* \ ++ | ymp-* \ ++ | z8k-* | z80-*) ++ ;; ++ # Recognize the basic CPU types without company name, with glob match. ++ xtensa*) ++ basic_machine=$basic_machine-unknown ++ ;; ++ # Recognize the various machine names and aliases which stand ++ # for a CPU type and a company and sometimes even an OS. ++ 386bsd) ++ basic_machine=i386-unknown ++ os=-bsd ++ ;; ++ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) ++ basic_machine=m68000-att ++ ;; ++ 3b*) ++ basic_machine=we32k-att ++ ;; ++ a29khif) ++ basic_machine=a29k-amd ++ os=-udi ++ ;; ++ abacus) ++ basic_machine=abacus-unknown ++ ;; ++ adobe68k) ++ basic_machine=m68010-adobe ++ os=-scout ++ ;; ++ alliant | fx80) ++ basic_machine=fx80-alliant ++ ;; ++ altos | altos3068) ++ basic_machine=m68k-altos ++ ;; ++ am29k) ++ basic_machine=a29k-none ++ os=-bsd ++ ;; ++ amd64) ++ basic_machine=x86_64-pc ++ ;; ++ amd64-*) ++ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ amdahl) ++ basic_machine=580-amdahl ++ os=-sysv ++ ;; ++ amiga | amiga-*) ++ basic_machine=m68k-unknown ++ ;; ++ amigaos | amigados) ++ basic_machine=m68k-unknown ++ os=-amigaos ++ ;; ++ amigaunix | amix) ++ basic_machine=m68k-unknown ++ os=-sysv4 ++ ;; ++ apollo68) ++ basic_machine=m68k-apollo ++ os=-sysv ++ ;; ++ apollo68bsd) ++ basic_machine=m68k-apollo ++ os=-bsd ++ ;; ++ aros) ++ basic_machine=i386-pc ++ os=-aros ++ ;; ++ aux) ++ basic_machine=m68k-apple ++ os=-aux ++ ;; ++ balance) ++ basic_machine=ns32k-sequent ++ os=-dynix ++ ;; ++ blackfin) ++ basic_machine=bfin-unknown ++ os=-linux ++ ;; ++ blackfin-*) ++ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` ++ os=-linux ++ ;; ++ bluegene*) ++ basic_machine=powerpc-ibm ++ os=-cnk ++ ;; ++ c54x-*) ++ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ c55x-*) ++ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ c6x-*) ++ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ c90) ++ basic_machine=c90-cray ++ os=-unicos ++ ;; ++ cegcc) ++ basic_machine=arm-unknown ++ os=-cegcc ++ ;; ++ convex-c1) ++ basic_machine=c1-convex ++ os=-bsd ++ ;; ++ convex-c2) ++ basic_machine=c2-convex ++ os=-bsd ++ ;; ++ convex-c32) ++ basic_machine=c32-convex ++ os=-bsd ++ ;; ++ convex-c34) ++ basic_machine=c34-convex ++ os=-bsd ++ ;; ++ convex-c38) ++ basic_machine=c38-convex ++ os=-bsd ++ ;; ++ cray | j90) ++ basic_machine=j90-cray ++ os=-unicos ++ ;; ++ craynv) ++ basic_machine=craynv-cray ++ os=-unicosmp ++ ;; ++ cr16 | cr16-*) ++ basic_machine=cr16-unknown ++ os=-elf ++ ;; ++ crds | unos) ++ basic_machine=m68k-crds ++ ;; ++ crisv32 | crisv32-* | etraxfs*) ++ basic_machine=crisv32-axis ++ ;; ++ cris | cris-* | etrax*) ++ basic_machine=cris-axis ++ ;; ++ crx) ++ basic_machine=crx-unknown ++ os=-elf ++ ;; ++ da30 | da30-*) ++ basic_machine=m68k-da30 ++ ;; ++ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) ++ basic_machine=mips-dec ++ ;; ++ decsystem10* | dec10*) ++ basic_machine=pdp10-dec ++ os=-tops10 ++ ;; ++ decsystem20* | dec20*) ++ basic_machine=pdp10-dec ++ os=-tops20 ++ ;; ++ delta | 3300 | motorola-3300 | motorola-delta \ ++ | 3300-motorola | delta-motorola) ++ basic_machine=m68k-motorola ++ ;; ++ delta88) ++ basic_machine=m88k-motorola ++ os=-sysv3 ++ ;; ++ dicos) ++ basic_machine=i686-pc ++ os=-dicos ++ ;; ++ djgpp) ++ basic_machine=i586-pc ++ os=-msdosdjgpp ++ ;; ++ dpx20 | dpx20-*) ++ basic_machine=rs6000-bull ++ os=-bosx ++ ;; ++ dpx2* | dpx2*-bull) ++ basic_machine=m68k-bull ++ os=-sysv3 ++ ;; ++ ebmon29k) ++ basic_machine=a29k-amd ++ os=-ebmon ++ ;; ++ elxsi) ++ basic_machine=elxsi-elxsi ++ os=-bsd ++ ;; ++ encore | umax | mmax) ++ basic_machine=ns32k-encore ++ ;; ++ es1800 | OSE68k | ose68k | ose | OSE) ++ basic_machine=m68k-ericsson ++ os=-ose ++ ;; ++ fx2800) ++ basic_machine=i860-alliant ++ ;; ++ genix) ++ basic_machine=ns32k-ns ++ ;; ++ gmicro) ++ basic_machine=tron-gmicro ++ os=-sysv ++ ;; ++ go32) ++ basic_machine=i386-pc ++ os=-go32 ++ ;; ++ h3050r* | hiux*) ++ basic_machine=hppa1.1-hitachi ++ os=-hiuxwe2 ++ ;; ++ h8300hms) ++ basic_machine=h8300-hitachi ++ os=-hms ++ ;; ++ h8300xray) ++ basic_machine=h8300-hitachi ++ os=-xray ++ ;; ++ h8500hms) ++ basic_machine=h8500-hitachi ++ os=-hms ++ ;; ++ harris) ++ basic_machine=m88k-harris ++ os=-sysv3 ++ ;; ++ hp300-*) ++ basic_machine=m68k-hp ++ ;; ++ hp300bsd) ++ basic_machine=m68k-hp ++ os=-bsd ++ ;; ++ hp300hpux) ++ basic_machine=m68k-hp ++ os=-hpux ++ ;; ++ hp3k9[0-9][0-9] | hp9[0-9][0-9]) ++ basic_machine=hppa1.0-hp ++ ;; ++ hp9k2[0-9][0-9] | hp9k31[0-9]) ++ basic_machine=m68000-hp ++ ;; ++ hp9k3[2-9][0-9]) ++ basic_machine=m68k-hp ++ ;; ++ hp9k6[0-9][0-9] | hp6[0-9][0-9]) ++ basic_machine=hppa1.0-hp ++ ;; ++ hp9k7[0-79][0-9] | hp7[0-79][0-9]) ++ basic_machine=hppa1.1-hp ++ ;; ++ hp9k78[0-9] | hp78[0-9]) ++ # FIXME: really hppa2.0-hp ++ basic_machine=hppa1.1-hp ++ ;; ++ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) ++ # FIXME: really hppa2.0-hp ++ basic_machine=hppa1.1-hp ++ ;; ++ hp9k8[0-9][13679] | hp8[0-9][13679]) ++ basic_machine=hppa1.1-hp ++ ;; ++ hp9k8[0-9][0-9] | hp8[0-9][0-9]) ++ basic_machine=hppa1.0-hp ++ ;; ++ hppa-next) ++ os=-nextstep3 ++ ;; ++ hppaosf) ++ basic_machine=hppa1.1-hp ++ os=-osf ++ ;; ++ hppro) ++ basic_machine=hppa1.1-hp ++ os=-proelf ++ ;; ++ i370-ibm* | ibm*) ++ basic_machine=i370-ibm ++ ;; ++ i*86v32) ++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` ++ os=-sysv32 ++ ;; ++ i*86v4*) ++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` ++ os=-sysv4 ++ ;; ++ i*86v) ++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` ++ os=-sysv ++ ;; ++ i*86sol2) ++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` ++ os=-solaris2 ++ ;; ++ i386mach) ++ basic_machine=i386-mach ++ os=-mach ++ ;; ++ i386-vsta | vsta) ++ basic_machine=i386-unknown ++ os=-vsta ++ ;; ++ iris | iris4d) ++ basic_machine=mips-sgi ++ case $os in ++ -irix*) ++ ;; ++ *) ++ os=-irix4 ++ ;; ++ esac ++ ;; ++ isi68 | isi) ++ basic_machine=m68k-isi ++ os=-sysv ++ ;; ++ leon-*|leon[3-9]-*) ++ basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` ++ ;; ++ m68knommu) ++ basic_machine=m68k-unknown ++ os=-linux ++ ;; ++ m68knommu-*) ++ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` ++ os=-linux ++ ;; ++ m88k-omron*) ++ basic_machine=m88k-omron ++ ;; ++ magnum | m3230) ++ basic_machine=mips-mips ++ os=-sysv ++ ;; ++ merlin) ++ basic_machine=ns32k-utek ++ os=-sysv ++ ;; ++ microblaze*) ++ basic_machine=microblaze-xilinx ++ ;; ++ mingw64) ++ basic_machine=x86_64-pc ++ os=-mingw64 ++ ;; ++ mingw32) ++ basic_machine=i686-pc ++ os=-mingw32 ++ ;; ++ mingw32ce) ++ basic_machine=arm-unknown ++ os=-mingw32ce ++ ;; ++ miniframe) ++ basic_machine=m68000-convergent ++ ;; ++ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) ++ basic_machine=m68k-atari ++ os=-mint ++ ;; ++ mips3*-*) ++ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ++ ;; ++ mips3*) ++ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ++ ;; ++ monitor) ++ basic_machine=m68k-rom68k ++ os=-coff ++ ;; ++ morphos) ++ basic_machine=powerpc-unknown ++ os=-morphos ++ ;; ++ moxiebox) ++ basic_machine=moxie-unknown ++ os=-moxiebox ++ ;; ++ msdos) ++ basic_machine=i386-pc ++ os=-msdos ++ ;; ++ ms1-*) ++ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ++ ;; ++ msys) ++ basic_machine=i686-pc ++ os=-msys ++ ;; ++ mvs) ++ basic_machine=i370-ibm ++ os=-mvs ++ ;; ++ nacl) ++ basic_machine=le32-unknown ++ os=-nacl ++ ;; ++ ncr3000) ++ basic_machine=i486-ncr ++ os=-sysv4 ++ ;; ++ netbsd386) ++ basic_machine=i386-unknown ++ os=-netbsd ++ ;; ++ netwinder) ++ basic_machine=armv4l-rebel ++ os=-linux ++ ;; ++ news | news700 | news800 | news900) ++ basic_machine=m68k-sony ++ os=-newsos ++ ;; ++ news1000) ++ basic_machine=m68030-sony ++ os=-newsos ++ ;; ++ news-3600 | risc-news) ++ basic_machine=mips-sony ++ os=-newsos ++ ;; ++ necv70) ++ basic_machine=v70-nec ++ os=-sysv ++ ;; ++ next | m*-next ) ++ basic_machine=m68k-next ++ case $os in ++ -nextstep* ) ++ ;; ++ -ns2*) ++ os=-nextstep2 ++ ;; ++ *) ++ os=-nextstep3 ++ ;; ++ esac ++ ;; ++ nh3000) ++ basic_machine=m68k-harris ++ os=-cxux ++ ;; ++ nh[45]000) ++ basic_machine=m88k-harris ++ os=-cxux ++ ;; ++ nindy960) ++ basic_machine=i960-intel ++ os=-nindy ++ ;; ++ mon960) ++ basic_machine=i960-intel ++ os=-mon960 ++ ;; ++ nonstopux) ++ basic_machine=mips-compaq ++ os=-nonstopux ++ ;; ++ np1) ++ basic_machine=np1-gould ++ ;; ++ neo-tandem) ++ basic_machine=neo-tandem ++ ;; ++ nse-tandem) ++ basic_machine=nse-tandem ++ ;; ++ nsr-tandem) ++ basic_machine=nsr-tandem ++ ;; ++ op50n-* | op60c-*) ++ basic_machine=hppa1.1-oki ++ os=-proelf ++ ;; ++ openrisc | openrisc-*) ++ basic_machine=or32-unknown ++ ;; ++ os400) ++ basic_machine=powerpc-ibm ++ os=-os400 ++ ;; ++ OSE68000 | ose68000) ++ basic_machine=m68000-ericsson ++ os=-ose ++ ;; ++ os68k) ++ basic_machine=m68k-none ++ os=-os68k ++ ;; ++ pa-hitachi) ++ basic_machine=hppa1.1-hitachi ++ os=-hiuxwe2 ++ ;; ++ paragon) ++ basic_machine=i860-intel ++ os=-osf ++ ;; ++ parisc) ++ basic_machine=hppa-unknown ++ os=-linux ++ ;; ++ parisc-*) ++ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` ++ os=-linux ++ ;; ++ pbd) ++ basic_machine=sparc-tti ++ ;; ++ pbb) ++ basic_machine=m68k-tti ++ ;; ++ pc532 | pc532-*) ++ basic_machine=ns32k-pc532 ++ ;; ++ pc98) ++ basic_machine=i386-pc ++ ;; ++ pc98-*) ++ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ pentium | p5 | k5 | k6 | nexgen | viac3) ++ basic_machine=i586-pc ++ ;; ++ pentiumpro | p6 | 6x86 | athlon | athlon_*) ++ basic_machine=i686-pc ++ ;; ++ pentiumii | pentium2 | pentiumiii | pentium3) ++ basic_machine=i686-pc ++ ;; ++ pentium4) ++ basic_machine=i786-pc ++ ;; ++ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) ++ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ pentiumpro-* | p6-* | 6x86-* | athlon-*) ++ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) ++ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ pentium4-*) ++ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ pn) ++ basic_machine=pn-gould ++ ;; ++ power) basic_machine=power-ibm ++ ;; ++ ppc | ppcbe) basic_machine=powerpc-unknown ++ ;; ++ ppc-* | ppcbe-*) ++ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ ppcle | powerpclittle | ppc-le | powerpc-little) ++ basic_machine=powerpcle-unknown ++ ;; ++ ppcle-* | powerpclittle-*) ++ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ ppc64) basic_machine=powerpc64-unknown ++ ;; ++ ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ ppc64le | powerpc64little | ppc64-le | powerpc64-little) ++ basic_machine=powerpc64le-unknown ++ ;; ++ ppc64le-* | powerpc64little-*) ++ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ ps2) ++ basic_machine=i386-ibm ++ ;; ++ pw32) ++ basic_machine=i586-unknown ++ os=-pw32 ++ ;; ++ rdos | rdos64) ++ basic_machine=x86_64-pc ++ os=-rdos ++ ;; ++ rdos32) ++ basic_machine=i386-pc ++ os=-rdos ++ ;; ++ rom68k) ++ basic_machine=m68k-rom68k ++ os=-coff ++ ;; ++ rm[46]00) ++ basic_machine=mips-siemens ++ ;; ++ rtpc | rtpc-*) ++ basic_machine=romp-ibm ++ ;; ++ s390 | s390-*) ++ basic_machine=s390-ibm ++ ;; ++ s390x | s390x-*) ++ basic_machine=s390x-ibm ++ ;; ++ sa29200) ++ basic_machine=a29k-amd ++ os=-udi ++ ;; ++ sb1) ++ basic_machine=mipsisa64sb1-unknown ++ ;; ++ sb1el) ++ basic_machine=mipsisa64sb1el-unknown ++ ;; ++ sde) ++ basic_machine=mipsisa32-sde ++ os=-elf ++ ;; ++ sei) ++ basic_machine=mips-sei ++ os=-seiux ++ ;; ++ sequent) ++ basic_machine=i386-sequent ++ ;; ++ sh) ++ basic_machine=sh-hitachi ++ os=-hms ++ ;; ++ sh5el) ++ basic_machine=sh5le-unknown ++ ;; ++ sh64) ++ basic_machine=sh64-unknown ++ ;; ++ sparclite-wrs | simso-wrs) ++ basic_machine=sparclite-wrs ++ os=-vxworks ++ ;; ++ sps7) ++ basic_machine=m68k-bull ++ os=-sysv2 ++ ;; ++ spur) ++ basic_machine=spur-unknown ++ ;; ++ st2000) ++ basic_machine=m68k-tandem ++ ;; ++ stratus) ++ basic_machine=i860-stratus ++ os=-sysv4 ++ ;; ++ strongarm-* | thumb-*) ++ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ sun2) ++ basic_machine=m68000-sun ++ ;; ++ sun2os3) ++ basic_machine=m68000-sun ++ os=-sunos3 ++ ;; ++ sun2os4) ++ basic_machine=m68000-sun ++ os=-sunos4 ++ ;; ++ sun3os3) ++ basic_machine=m68k-sun ++ os=-sunos3 ++ ;; ++ sun3os4) ++ basic_machine=m68k-sun ++ os=-sunos4 ++ ;; ++ sun4os3) ++ basic_machine=sparc-sun ++ os=-sunos3 ++ ;; ++ sun4os4) ++ basic_machine=sparc-sun ++ os=-sunos4 ++ ;; ++ sun4sol2) ++ basic_machine=sparc-sun ++ os=-solaris2 ++ ;; ++ sun3 | sun3-*) ++ basic_machine=m68k-sun ++ ;; ++ sun4) ++ basic_machine=sparc-sun ++ ;; ++ sun386 | sun386i | roadrunner) ++ basic_machine=i386-sun ++ ;; ++ sv1) ++ basic_machine=sv1-cray ++ os=-unicos ++ ;; ++ symmetry) ++ basic_machine=i386-sequent ++ os=-dynix ++ ;; ++ t3e) ++ basic_machine=alphaev5-cray ++ os=-unicos ++ ;; ++ t90) ++ basic_machine=t90-cray ++ os=-unicos ++ ;; ++ tile*) ++ basic_machine=$basic_machine-unknown ++ os=-linux-gnu ++ ;; ++ tx39) ++ basic_machine=mipstx39-unknown ++ ;; ++ tx39el) ++ basic_machine=mipstx39el-unknown ++ ;; ++ toad1) ++ basic_machine=pdp10-xkl ++ os=-tops20 ++ ;; ++ tower | tower-32) ++ basic_machine=m68k-ncr ++ ;; ++ tpf) ++ basic_machine=s390x-ibm ++ os=-tpf ++ ;; ++ udi29k) ++ basic_machine=a29k-amd ++ os=-udi ++ ;; ++ ultra3) ++ basic_machine=a29k-nyu ++ os=-sym1 ++ ;; ++ v810 | necv810) ++ basic_machine=v810-nec ++ os=-none ++ ;; ++ vaxv) ++ basic_machine=vax-dec ++ os=-sysv ++ ;; ++ vms) ++ basic_machine=vax-dec ++ os=-vms ++ ;; ++ vpp*|vx|vx-*) ++ basic_machine=f301-fujitsu ++ ;; ++ vxworks960) ++ basic_machine=i960-wrs ++ os=-vxworks ++ ;; ++ vxworks68) ++ basic_machine=m68k-wrs ++ os=-vxworks ++ ;; ++ vxworks29k) ++ basic_machine=a29k-wrs ++ os=-vxworks ++ ;; ++ w65*) ++ basic_machine=w65-wdc ++ os=-none ++ ;; ++ w89k-*) ++ basic_machine=hppa1.1-winbond ++ os=-proelf ++ ;; ++ xbox) ++ basic_machine=i686-pc ++ os=-mingw32 ++ ;; ++ xps | xps100) ++ basic_machine=xps100-honeywell ++ ;; ++ xscale-* | xscalee[bl]-*) ++ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ++ ;; ++ ymp) ++ basic_machine=ymp-cray ++ os=-unicos ++ ;; ++ z8k-*-coff) ++ basic_machine=z8k-unknown ++ os=-sim ++ ;; ++ z80-*-coff) ++ basic_machine=z80-unknown ++ os=-sim ++ ;; ++ none) ++ basic_machine=none-none ++ os=-none ++ ;; ++ ++# Here we handle the default manufacturer of certain CPU types. It is in ++# some cases the only manufacturer, in others, it is the most popular. ++ w89k) ++ basic_machine=hppa1.1-winbond ++ ;; ++ op50n) ++ basic_machine=hppa1.1-oki ++ ;; ++ op60c) ++ basic_machine=hppa1.1-oki ++ ;; ++ romp) ++ basic_machine=romp-ibm ++ ;; ++ mmix) ++ basic_machine=mmix-knuth ++ ;; ++ rs6000) ++ basic_machine=rs6000-ibm ++ ;; ++ vax) ++ basic_machine=vax-dec ++ ;; ++ pdp10) ++ # there are many clones, so DEC is not a safe bet ++ basic_machine=pdp10-unknown ++ ;; ++ pdp11) ++ basic_machine=pdp11-dec ++ ;; ++ we32k) ++ basic_machine=we32k-att ++ ;; ++ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) ++ basic_machine=sh-unknown ++ ;; ++ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) ++ basic_machine=sparc-sun ++ ;; ++ cydra) ++ basic_machine=cydra-cydrome ++ ;; ++ orion) ++ basic_machine=orion-highlevel ++ ;; ++ orion105) ++ basic_machine=clipper-highlevel ++ ;; ++ mac | mpw | mac-mpw) ++ basic_machine=m68k-apple ++ ;; ++ pmac | pmac-mpw) ++ basic_machine=powerpc-apple ++ ;; ++ *-unknown) ++ # Make sure to match an already-canonicalized machine name. ++ ;; ++ *) ++ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 ++ exit 1 ++ ;; ++esac ++ ++# Here we canonicalize certain aliases for manufacturers. ++case $basic_machine in ++ *-digital*) ++ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ++ ;; ++ *-commodore*) ++ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ++ ;; ++ *) ++ ;; ++esac ++ ++# Decode manufacturer-specific aliases for certain operating systems. ++ ++if [ x"$os" != x"" ] ++then ++case $os in ++ # First match some system type aliases ++ # that might get confused with valid system types. ++ # -solaris* is a basic system type, with this one exception. ++ -auroraux) ++ os=-auroraux ++ ;; ++ -solaris1 | -solaris1.*) ++ os=`echo $os | sed -e 's|solaris1|sunos4|'` ++ ;; ++ -solaris) ++ os=-solaris2 ++ ;; ++ -svr4*) ++ os=-sysv4 ++ ;; ++ -unixware*) ++ os=-sysv4.2uw ++ ;; ++ -gnu/linux*) ++ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ++ ;; ++ # First accept the basic system types. ++ # The portable systems comes first. ++ # Each alternative MUST END IN A *, to match a version number. ++ # -sysv* is not here because it comes later, after sysvr4. ++ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ ++ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ ++ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ ++ | -sym* | -kopensolaris* | -plan9* \ ++ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ ++ | -aos* | -aros* \ ++ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ ++ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ ++ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ ++ | -bitrig* | -openbsd* | -solidbsd* \ ++ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ ++ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ ++ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ ++ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ ++ | -chorusos* | -chorusrdb* | -cegcc* \ ++ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ ++ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ ++ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ ++ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ ++ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ ++ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ ++ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ ++ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ ++ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ ++ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ ++ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) ++ # Remember, each alternative MUST END IN *, to match a version number. ++ ;; ++ -qnx*) ++ case $basic_machine in ++ x86-* | i*86-*) ++ ;; ++ *) ++ os=-nto$os ++ ;; ++ esac ++ ;; ++ -nto-qnx*) ++ ;; ++ -nto*) ++ os=`echo $os | sed -e 's|nto|nto-qnx|'` ++ ;; ++ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ ++ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ ++ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ++ ;; ++ -mac*) ++ os=`echo $os | sed -e 's|mac|macos|'` ++ ;; ++ -linux-dietlibc) ++ os=-linux-dietlibc ++ ;; ++ -linux*) ++ os=`echo $os | sed -e 's|linux|linux-gnu|'` ++ ;; ++ -sunos5*) ++ os=`echo $os | sed -e 's|sunos5|solaris2|'` ++ ;; ++ -sunos6*) ++ os=`echo $os | sed -e 's|sunos6|solaris3|'` ++ ;; ++ -opened*) ++ os=-openedition ++ ;; ++ -os400*) ++ os=-os400 ++ ;; ++ -wince*) ++ os=-wince ++ ;; ++ -osfrose*) ++ os=-osfrose ++ ;; ++ -osf*) ++ os=-osf ++ ;; ++ -utek*) ++ os=-bsd ++ ;; ++ -dynix*) ++ os=-bsd ++ ;; ++ -acis*) ++ os=-aos ++ ;; ++ -atheos*) ++ os=-atheos ++ ;; ++ -syllable*) ++ os=-syllable ++ ;; ++ -386bsd) ++ os=-bsd ++ ;; ++ -ctix* | -uts*) ++ os=-sysv ++ ;; ++ -nova*) ++ os=-rtmk-nova ++ ;; ++ -ns2 ) ++ os=-nextstep2 ++ ;; ++ -nsk*) ++ os=-nsk ++ ;; ++ # Preserve the version number of sinix5. ++ -sinix5.*) ++ os=`echo $os | sed -e 's|sinix|sysv|'` ++ ;; ++ -sinix*) ++ os=-sysv4 ++ ;; ++ -tpf*) ++ os=-tpf ++ ;; ++ -triton*) ++ os=-sysv3 ++ ;; ++ -oss*) ++ os=-sysv3 ++ ;; ++ -svr4) ++ os=-sysv4 ++ ;; ++ -svr3) ++ os=-sysv3 ++ ;; ++ -sysvr4) ++ os=-sysv4 ++ ;; ++ # This must come after -sysvr4. ++ -sysv*) ++ ;; ++ -ose*) ++ os=-ose ++ ;; ++ -es1800*) ++ os=-ose ++ ;; ++ -xenix) ++ os=-xenix ++ ;; ++ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) ++ os=-mint ++ ;; ++ -aros*) ++ os=-aros ++ ;; ++ -zvmoe) ++ os=-zvmoe ++ ;; ++ -dicos*) ++ os=-dicos ++ ;; ++ -nacl*) ++ ;; ++ -none) ++ ;; ++ *) ++ # Get rid of the `-' at the beginning of $os. ++ os=`echo $os | sed 's/[^-]*-//'` ++ echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 ++ exit 1 ++ ;; ++esac ++else ++ ++# Here we handle the default operating systems that come with various machines. ++# The value should be what the vendor currently ships out the door with their ++# machine or put another way, the most popular os provided with the machine. ++ ++# Note that if you're going to try to match "-MANUFACTURER" here (say, ++# "-sun"), then you have to tell the case statement up towards the top ++# that MANUFACTURER isn't an operating system. Otherwise, code above ++# will signal an error saying that MANUFACTURER isn't an operating ++# system, and we'll never get to this point. ++ ++case $basic_machine in ++ score-*) ++ os=-elf ++ ;; ++ spu-*) ++ os=-elf ++ ;; ++ *-acorn) ++ os=-riscix1.2 ++ ;; ++ arm*-rebel) ++ os=-linux ++ ;; ++ arm*-semi) ++ os=-aout ++ ;; ++ c4x-* | tic4x-*) ++ os=-coff ++ ;; ++ c8051-*) ++ os=-elf ++ ;; ++ hexagon-*) ++ os=-elf ++ ;; ++ tic54x-*) ++ os=-coff ++ ;; ++ tic55x-*) ++ os=-coff ++ ;; ++ tic6x-*) ++ os=-coff ++ ;; ++ # This must come before the *-dec entry. ++ pdp10-*) ++ os=-tops20 ++ ;; ++ pdp11-*) ++ os=-none ++ ;; ++ *-dec | vax-*) ++ os=-ultrix4.2 ++ ;; ++ m68*-apollo) ++ os=-domain ++ ;; ++ i386-sun) ++ os=-sunos4.0.2 ++ ;; ++ m68000-sun) ++ os=-sunos3 ++ ;; ++ m68*-cisco) ++ os=-aout ++ ;; ++ mep-*) ++ os=-elf ++ ;; ++ mips*-cisco) ++ os=-elf ++ ;; ++ mips*-*) ++ os=-elf ++ ;; ++ or32-*) ++ os=-coff ++ ;; ++ *-tti) # must be before sparc entry or we get the wrong os. ++ os=-sysv3 ++ ;; ++ sparc-* | *-sun) ++ os=-sunos4.1.1 ++ ;; ++ *-be) ++ os=-beos ++ ;; ++ *-haiku) ++ os=-haiku ++ ;; ++ *-ibm) ++ os=-aix ++ ;; ++ *-knuth) ++ os=-mmixware ++ ;; ++ *-wec) ++ os=-proelf ++ ;; ++ *-winbond) ++ os=-proelf ++ ;; ++ *-oki) ++ os=-proelf ++ ;; ++ *-hp) ++ os=-hpux ++ ;; ++ *-hitachi) ++ os=-hiux ++ ;; ++ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) ++ os=-sysv ++ ;; ++ *-cbm) ++ os=-amigaos ++ ;; ++ *-dg) ++ os=-dgux ++ ;; ++ *-dolphin) ++ os=-sysv3 ++ ;; ++ m68k-ccur) ++ os=-rtu ++ ;; ++ m88k-omron*) ++ os=-luna ++ ;; ++ *-next ) ++ os=-nextstep ++ ;; ++ *-sequent) ++ os=-ptx ++ ;; ++ *-crds) ++ os=-unos ++ ;; ++ *-ns) ++ os=-genix ++ ;; ++ i370-*) ++ os=-mvs ++ ;; ++ *-next) ++ os=-nextstep3 ++ ;; ++ *-gould) ++ os=-sysv ++ ;; ++ *-highlevel) ++ os=-bsd ++ ;; ++ *-encore) ++ os=-bsd ++ ;; ++ *-sgi) ++ os=-irix ++ ;; ++ *-siemens) ++ os=-sysv4 ++ ;; ++ *-masscomp) ++ os=-rtu ++ ;; ++ f30[01]-fujitsu | f700-fujitsu) ++ os=-uxpv ++ ;; ++ *-rom68k) ++ os=-coff ++ ;; ++ *-*bug) ++ os=-coff ++ ;; ++ *-apple) ++ os=-macos ++ ;; ++ *-atari*) ++ os=-mint ++ ;; ++ *) ++ os=-none ++ ;; ++esac ++fi ++ ++# Here we handle the case where we know the os, and the CPU type, but not the ++# manufacturer. We pick the logical manufacturer. ++vendor=unknown ++case $basic_machine in ++ *-unknown) ++ case $os in ++ -riscix*) ++ vendor=acorn ++ ;; ++ -sunos*) ++ vendor=sun ++ ;; ++ -cnk*|-aix*) ++ vendor=ibm ++ ;; ++ -beos*) ++ vendor=be ++ ;; ++ -hpux*) ++ vendor=hp ++ ;; ++ -mpeix*) ++ vendor=hp ++ ;; ++ -hiux*) ++ vendor=hitachi ++ ;; ++ -unos*) ++ vendor=crds ++ ;; ++ -dgux*) ++ vendor=dg ++ ;; ++ -luna*) ++ vendor=omron ++ ;; ++ -genix*) ++ vendor=ns ++ ;; ++ -mvs* | -opened*) ++ vendor=ibm ++ ;; ++ -os400*) ++ vendor=ibm ++ ;; ++ -ptx*) ++ vendor=sequent ++ ;; ++ -tpf*) ++ vendor=ibm ++ ;; ++ -vxsim* | -vxworks* | -windiss*) ++ vendor=wrs ++ ;; ++ -aux*) ++ vendor=apple ++ ;; ++ -hms*) ++ vendor=hitachi ++ ;; ++ -mpw* | -macos*) ++ vendor=apple ++ ;; ++ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) ++ vendor=atari ++ ;; ++ -vos*) ++ vendor=stratus ++ ;; ++ esac ++ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ++ ;; ++esac ++ ++echo $basic_machine$os ++exit ++ ++# Local variables: ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "timestamp='" ++# time-stamp-format: "%:y-%02m-%02d" ++# time-stamp-end: "'" ++# End: +diff --git a/configure b/configure +new file mode 100755 +index 0000000..ff53158 +--- /dev/null ++++ b/configure +@@ -0,0 +1,25046 @@ ++#! /bin/sh ++# Guess values for system-dependent variables and create Makefiles. ++# Generated by GNU Autoconf 2.69 for hunspell 1.6.0. ++# ++# Report bugs to . ++# ++# ++# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. ++# ++# ++# This configure script is free software; the Free Software Foundation ++# gives unlimited permission to copy, distribute and modify it. ++## -------------------- ## ++## M4sh Initialization. ## ++## -------------------- ## ++ ++# Be more Bourne compatible ++DUALCASE=1; export DUALCASE # for MKS sh ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : ++ emulate sh ++ NULLCMD=: ++ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which ++ # is contrary to our usage. Disable this feature. ++ alias -g '${1+"$@"}'='"$@"' ++ setopt NO_GLOB_SUBST ++else ++ case `(set -o) 2>/dev/null` in #( ++ *posix*) : ++ set -o posix ;; #( ++ *) : ++ ;; ++esac ++fi ++ ++ ++as_nl=' ++' ++export as_nl ++# Printing a long string crashes Solaris 7 /usr/bin/printf. ++as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ++as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo ++as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo ++# Prefer a ksh shell builtin over an external printf program on Solaris, ++# but without wasting forks for bash or zsh. ++if test -z "$BASH_VERSION$ZSH_VERSION" \ ++ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then ++ as_echo='print -r --' ++ as_echo_n='print -rn --' ++elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then ++ as_echo='printf %s\n' ++ as_echo_n='printf %s' ++else ++ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then ++ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' ++ as_echo_n='/usr/ucb/echo -n' ++ else ++ as_echo_body='eval expr "X$1" : "X\\(.*\\)"' ++ as_echo_n_body='eval ++ arg=$1; ++ case $arg in #( ++ *"$as_nl"*) ++ expr "X$arg" : "X\\(.*\\)$as_nl"; ++ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; ++ esac; ++ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ++ ' ++ export as_echo_n_body ++ as_echo_n='sh -c $as_echo_n_body as_echo' ++ fi ++ export as_echo_body ++ as_echo='sh -c $as_echo_body as_echo' ++fi ++ ++# The user is always right. ++if test "${PATH_SEPARATOR+set}" != set; then ++ PATH_SEPARATOR=: ++ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { ++ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || ++ PATH_SEPARATOR=';' ++ } ++fi ++ ++ ++# IFS ++# We need space, tab and new line, in precisely that order. Quoting is ++# there to prevent editors from complaining about space-tab. ++# (If _AS_PATH_WALK were called with IFS unset, it would disable word ++# splitting by setting IFS to empty value.) ++IFS=" "" $as_nl" ++ ++# Find who we are. Look in the path if we contain no directory separator. ++as_myself= ++case $0 in #(( ++ *[\\/]* ) as_myself=$0 ;; ++ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break ++ done ++IFS=$as_save_IFS ++ ++ ;; ++esac ++# We did not find ourselves, most probably we were run as `sh COMMAND' ++# in which case we are not to be found in the path. ++if test "x$as_myself" = x; then ++ as_myself=$0 ++fi ++if test ! -f "$as_myself"; then ++ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 ++ exit 1 ++fi ++ ++# Unset variables that we do not need and which cause bugs (e.g. in ++# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" ++# suppresses any "Segmentation fault" message there. '((' could ++# trigger a bug in pdksh 5.2.14. ++for as_var in BASH_ENV ENV MAIL MAILPATH ++do eval test x\${$as_var+set} = xset \ ++ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : ++done ++PS1='$ ' ++PS2='> ' ++PS4='+ ' ++ ++# NLS nuisances. ++LC_ALL=C ++export LC_ALL ++LANGUAGE=C ++export LANGUAGE ++ ++# CDPATH. ++(unset CDPATH) >/dev/null 2>&1 && unset CDPATH ++ ++# Use a proper internal environment variable to ensure we don't fall ++ # into an infinite loop, continuously re-executing ourselves. ++ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then ++ _as_can_reexec=no; export _as_can_reexec; ++ # We cannot yet assume a decent shell, so we have to provide a ++# neutralization value for shells without unset; and this also ++# works around shells that cannot unset nonexistent variables. ++# Preserve -v and -x to the replacement shell. ++BASH_ENV=/dev/null ++ENV=/dev/null ++(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV ++case $- in # (((( ++ *v*x* | *x*v* ) as_opts=-vx ;; ++ *v* ) as_opts=-v ;; ++ *x* ) as_opts=-x ;; ++ * ) as_opts= ;; ++esac ++exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} ++# Admittedly, this is quite paranoid, since all the known shells bail ++# out after a failed `exec'. ++$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 ++as_fn_exit 255 ++ fi ++ # We don't want this to propagate to other subprocesses. ++ { _as_can_reexec=; unset _as_can_reexec;} ++if test "x$CONFIG_SHELL" = x; then ++ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : ++ emulate sh ++ NULLCMD=: ++ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which ++ # is contrary to our usage. Disable this feature. ++ alias -g '\${1+\"\$@\"}'='\"\$@\"' ++ setopt NO_GLOB_SUBST ++else ++ case \`(set -o) 2>/dev/null\` in #( ++ *posix*) : ++ set -o posix ;; #( ++ *) : ++ ;; ++esac ++fi ++" ++ as_required="as_fn_return () { (exit \$1); } ++as_fn_success () { as_fn_return 0; } ++as_fn_failure () { as_fn_return 1; } ++as_fn_ret_success () { return 0; } ++as_fn_ret_failure () { return 1; } ++ ++exitcode=0 ++as_fn_success || { exitcode=1; echo as_fn_success failed.; } ++as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } ++as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } ++as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } ++if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : ++ ++else ++ exitcode=1; echo positional parameters were not saved. ++fi ++test x\$exitcode = x0 || exit 1 ++test -x / || exit 1" ++ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO ++ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO ++ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && ++ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 ++ ++ test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ++ ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ++ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ++ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ++ PATH=/empty FPATH=/empty; export PATH FPATH ++ test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ ++ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 ++test \$(( 1 + 1 )) = 2 || exit 1" ++ if (eval "$as_required") 2>/dev/null; then : ++ as_have_required=yes ++else ++ as_have_required=no ++fi ++ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : ++ ++else ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++as_found=false ++for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ as_found=: ++ case $as_dir in #( ++ /*) ++ for as_base in sh bash ksh sh5; do ++ # Try only shells that exist, to save several forks. ++ as_shell=$as_dir/$as_base ++ if { test -f "$as_shell" || test -f "$as_shell.exe"; } && ++ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : ++ CONFIG_SHELL=$as_shell as_have_required=yes ++ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : ++ break 2 ++fi ++fi ++ done;; ++ esac ++ as_found=false ++done ++$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && ++ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : ++ CONFIG_SHELL=$SHELL as_have_required=yes ++fi; } ++IFS=$as_save_IFS ++ ++ ++ if test "x$CONFIG_SHELL" != x; then : ++ export CONFIG_SHELL ++ # We cannot yet assume a decent shell, so we have to provide a ++# neutralization value for shells without unset; and this also ++# works around shells that cannot unset nonexistent variables. ++# Preserve -v and -x to the replacement shell. ++BASH_ENV=/dev/null ++ENV=/dev/null ++(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV ++case $- in # (((( ++ *v*x* | *x*v* ) as_opts=-vx ;; ++ *v* ) as_opts=-v ;; ++ *x* ) as_opts=-x ;; ++ * ) as_opts= ;; ++esac ++exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} ++# Admittedly, this is quite paranoid, since all the known shells bail ++# out after a failed `exec'. ++$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 ++exit 255 ++fi ++ ++ if test x$as_have_required = xno; then : ++ $as_echo "$0: This script requires a shell more modern than all" ++ $as_echo "$0: the shells that I found on your system." ++ if test x${ZSH_VERSION+set} = xset ; then ++ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" ++ $as_echo "$0: be upgraded to zsh 4.3.4 or later." ++ else ++ $as_echo "$0: Please tell bug-autoconf@gnu.org and ++$0: nemeth@numbertext.org about your system, including any ++$0: error possibly output before this message. Then install ++$0: a modern shell, or manually run the script under such a ++$0: shell if you do have one." ++ fi ++ exit 1 ++fi ++fi ++fi ++SHELL=${CONFIG_SHELL-/bin/sh} ++export SHELL ++# Unset more variables known to interfere with behavior of common tools. ++CLICOLOR_FORCE= GREP_OPTIONS= ++unset CLICOLOR_FORCE GREP_OPTIONS ++ ++## --------------------- ## ++## M4sh Shell Functions. ## ++## --------------------- ## ++# as_fn_unset VAR ++# --------------- ++# Portably unset VAR. ++as_fn_unset () ++{ ++ { eval $1=; unset $1;} ++} ++as_unset=as_fn_unset ++ ++# as_fn_set_status STATUS ++# ----------------------- ++# Set $? to STATUS, without forking. ++as_fn_set_status () ++{ ++ return $1 ++} # as_fn_set_status ++ ++# as_fn_exit STATUS ++# ----------------- ++# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. ++as_fn_exit () ++{ ++ set +e ++ as_fn_set_status $1 ++ exit $1 ++} # as_fn_exit ++ ++# as_fn_mkdir_p ++# ------------- ++# Create "$as_dir" as a directory, including parents if necessary. ++as_fn_mkdir_p () ++{ ++ ++ case $as_dir in #( ++ -*) as_dir=./$as_dir;; ++ esac ++ test -d "$as_dir" || eval $as_mkdir_p || { ++ as_dirs= ++ while :; do ++ case $as_dir in #( ++ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( ++ *) as_qdir=$as_dir;; ++ esac ++ as_dirs="'$as_qdir' $as_dirs" ++ as_dir=`$as_dirname -- "$as_dir" || ++$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$as_dir" : 'X\(//\)[^/]' \| \ ++ X"$as_dir" : 'X\(//\)$' \| \ ++ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || ++$as_echo X"$as_dir" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)[^/].*/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\).*/{ ++ s//\1/ ++ q ++ } ++ s/.*/./; q'` ++ test -d "$as_dir" && break ++ done ++ test -z "$as_dirs" || eval "mkdir $as_dirs" ++ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" ++ ++ ++} # as_fn_mkdir_p ++ ++# as_fn_executable_p FILE ++# ----------------------- ++# Test if FILE is an executable regular file. ++as_fn_executable_p () ++{ ++ test -f "$1" && test -x "$1" ++} # as_fn_executable_p ++# as_fn_append VAR VALUE ++# ---------------------- ++# Append the text in VALUE to the end of the definition contained in VAR. Take ++# advantage of any shell optimizations that allow amortized linear growth over ++# repeated appends, instead of the typical quadratic growth present in naive ++# implementations. ++if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : ++ eval 'as_fn_append () ++ { ++ eval $1+=\$2 ++ }' ++else ++ as_fn_append () ++ { ++ eval $1=\$$1\$2 ++ } ++fi # as_fn_append ++ ++# as_fn_arith ARG... ++# ------------------ ++# Perform arithmetic evaluation on the ARGs, and store the result in the ++# global $as_val. Take advantage of shells that can avoid forks. The arguments ++# must be portable across $(()) and expr. ++if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : ++ eval 'as_fn_arith () ++ { ++ as_val=$(( $* )) ++ }' ++else ++ as_fn_arith () ++ { ++ as_val=`expr "$@" || test $? -eq 1` ++ } ++fi # as_fn_arith ++ ++ ++# as_fn_error STATUS ERROR [LINENO LOG_FD] ++# ---------------------------------------- ++# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are ++# provided, also output the error to LOG_FD, referencing LINENO. Then exit the ++# script with STATUS, using 1 if that was 0. ++as_fn_error () ++{ ++ as_status=$1; test $as_status -eq 0 && as_status=1 ++ if test "$4"; then ++ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ++ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 ++ fi ++ $as_echo "$as_me: error: $2" >&2 ++ as_fn_exit $as_status ++} # as_fn_error ++ ++if expr a : '\(a\)' >/dev/null 2>&1 && ++ test "X`expr 00001 : '.*\(...\)'`" = X001; then ++ as_expr=expr ++else ++ as_expr=false ++fi ++ ++if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then ++ as_basename=basename ++else ++ as_basename=false ++fi ++ ++if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then ++ as_dirname=dirname ++else ++ as_dirname=false ++fi ++ ++as_me=`$as_basename -- "$0" || ++$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ ++ X"$0" : 'X\(//\)$' \| \ ++ X"$0" : 'X\(/\)' \| . 2>/dev/null || ++$as_echo X/"$0" | ++ sed '/^.*\/\([^/][^/]*\)\/*$/{ ++ s//\1/ ++ q ++ } ++ /^X\/\(\/\/\)$/{ ++ s//\1/ ++ q ++ } ++ /^X\/\(\/\).*/{ ++ s//\1/ ++ q ++ } ++ s/.*/./; q'` ++ ++# Avoid depending upon Character Ranges. ++as_cr_letters='abcdefghijklmnopqrstuvwxyz' ++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' ++as_cr_Letters=$as_cr_letters$as_cr_LETTERS ++as_cr_digits='0123456789' ++as_cr_alnum=$as_cr_Letters$as_cr_digits ++ ++ ++ as_lineno_1=$LINENO as_lineno_1a=$LINENO ++ as_lineno_2=$LINENO as_lineno_2a=$LINENO ++ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && ++ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { ++ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) ++ sed -n ' ++ p ++ /[$]LINENO/= ++ ' <$as_myself | ++ sed ' ++ s/[$]LINENO.*/&-/ ++ t lineno ++ b ++ :lineno ++ N ++ :loop ++ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ ++ t loop ++ s/-\n.*// ++ ' >$as_me.lineno && ++ chmod +x "$as_me.lineno" || ++ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } ++ ++ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have ++ # already done that, so ensure we don't try to do so again and fall ++ # in an infinite loop. This has already happened in practice. ++ _as_can_reexec=no; export _as_can_reexec ++ # Don't try to exec as it changes $[0], causing all sort of problems ++ # (the dirname of $[0] is not the place where we might find the ++ # original and so on. Autoconf is especially sensitive to this). ++ . "./$as_me.lineno" ++ # Exit status is that of the last command. ++ exit ++} ++ ++ECHO_C= ECHO_N= ECHO_T= ++case `echo -n x` in #((((( ++-n*) ++ case `echo 'xy\c'` in ++ *c*) ECHO_T=' ';; # ECHO_T is single tab character. ++ xy) ECHO_C='\c';; ++ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ++ ECHO_T=' ';; ++ esac;; ++*) ++ ECHO_N='-n';; ++esac ++ ++rm -f conf$$ conf$$.exe conf$$.file ++if test -d conf$$.dir; then ++ rm -f conf$$.dir/conf$$.file ++else ++ rm -f conf$$.dir ++ mkdir conf$$.dir 2>/dev/null ++fi ++if (echo >conf$$.file) 2>/dev/null; then ++ if ln -s conf$$.file conf$$ 2>/dev/null; then ++ as_ln_s='ln -s' ++ # ... but there are two gotchas: ++ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. ++ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. ++ # In both cases, we have to default to `cp -pR'. ++ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || ++ as_ln_s='cp -pR' ++ elif ln conf$$.file conf$$ 2>/dev/null; then ++ as_ln_s=ln ++ else ++ as_ln_s='cp -pR' ++ fi ++else ++ as_ln_s='cp -pR' ++fi ++rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file ++rmdir conf$$.dir 2>/dev/null ++ ++if mkdir -p . 2>/dev/null; then ++ as_mkdir_p='mkdir -p "$as_dir"' ++else ++ test -d ./-p && rmdir ./-p ++ as_mkdir_p=false ++fi ++ ++as_test_x='test -x' ++as_executable_p=as_fn_executable_p ++ ++# Sed expression to map a string onto a valid CPP name. ++as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" ++ ++# Sed expression to map a string onto a valid variable name. ++as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" ++ ++SHELL=${CONFIG_SHELL-/bin/sh} ++ ++ ++test -n "$DJDIR" || exec 7<&0 &1 ++ ++# Name of the host. ++# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, ++# so uname gets run too. ++ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` ++ ++# ++# Initializations. ++# ++ac_default_prefix=/usr/local ++ac_clean_files= ++ac_config_libobj_dir=. ++LIBOBJS= ++cross_compiling=no ++subdirs= ++MFLAGS= ++MAKEFLAGS= ++ ++# Identity of this package. ++PACKAGE_NAME='hunspell' ++PACKAGE_TARNAME='hunspell' ++PACKAGE_VERSION='1.6.0' ++PACKAGE_STRING='hunspell 1.6.0' ++PACKAGE_BUGREPORT='nemeth@numbertext.org' ++PACKAGE_URL='' ++ ++ac_unique_file="config.h.in" ++# 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" ++ ++gt_needs= ++ac_header_list= ++gl_use_threads_default= ++ac_func_list= ++ac_subst_vars='am__EXEEXT_FALSE ++am__EXEEXT_TRUE ++LTLIBOBJS ++READLINELIB ++CURSESLIB ++POSUB ++LTLIBINTL ++LIBINTL ++INTLLIBS ++INTL_LIBTOOL_SUFFIX_PREFIX ++INTLOBJS ++GENCAT ++INSTOBJEXT ++DATADIRNAME ++CATOBJEXT ++USE_INCLUDED_LIBINTL ++BUILD_INCLUDED_LIBINTL ++LTLIBC ++WINDRES ++WOE32 ++WOE32DLL ++HAVE_WPRINTF ++HAVE_NEWLOCALE ++HAVE_SNPRINTF ++HAVE_ASPRINTF ++HAVE_POSIX_PRINTF ++INTL_DEFAULT_VERBOSITY ++INTL_MACOSX_LIBS ++GLIBC21 ++INTLBISON ++LTLIBICONV ++LIBICONV ++LTLIBMULTITHREAD ++LIBMULTITHREAD ++LTLIBTHREAD ++LIBTHREAD ++LIBPTH_PREFIX ++LTLIBPTH ++LIBPTH ++PRI_MACROS_BROKEN ++ALLOCA ++HAVE_VISIBILITY ++CFLAG_VISIBILITY ++GLIBC2 ++XGETTEXT_EXTRA_OPTIONS ++MSGMERGE ++XGETTEXT_015 ++XGETTEXT ++GMSGFMT_015 ++MSGFMT_015 ++GMSGFMT ++MSGFMT ++GETTEXT_MACRO_VERSION ++USE_NLS ++LIBOBJS ++AS ++CXXCPP ++CPP ++LT_SYS_LIBRARY_PATH ++OTOOL64 ++OTOOL ++LIPO ++NMEDIT ++DSYMUTIL ++MANIFEST_TOOL ++RANLIB ++ac_ct_AR ++AR ++DLLTOOL ++OBJDUMP ++LN_S ++NM ++ac_ct_DUMPBIN ++DUMPBIN ++LD ++FGREP ++EGREP ++GREP ++SED ++LIBTOOL ++am__fastdepCC_FALSE ++am__fastdepCC_TRUE ++CCDEPMODE ++ac_ct_CC ++CFLAGS ++CC ++am__fastdepCXX_FALSE ++am__fastdepCXX_TRUE ++CXXDEPMODE ++am__nodep ++AMDEPBACKSLASH ++AMDEP_FALSE ++AMDEP_TRUE ++am__quote ++am__include ++DEPDIR ++OBJEXT ++EXEEXT ++ac_ct_CXX ++CPPFLAGS ++LDFLAGS ++CXXFLAGS ++CXX ++HUNSPELL_VERSION_MINOR ++HUNSPELL_VERSION_MAJOR ++AM_BACKSLASH ++AM_DEFAULT_VERBOSITY ++AM_DEFAULT_V ++AM_V ++am__untar ++am__tar ++AMTAR ++am__leading_dot ++SET_MAKE ++AWK ++mkdir_p ++MKDIR_P ++INSTALL_STRIP_PROGRAM ++STRIP ++install_sh ++MAKEINFO ++AUTOHEADER ++AUTOMAKE ++AUTOCONF ++ACLOCAL ++VERSION ++PACKAGE ++CYGPATH_W ++am__isrc ++INSTALL_DATA ++INSTALL_SCRIPT ++INSTALL_PROGRAM ++XFAILED ++host_os ++host_vendor ++host_cpu ++host ++build_os ++build_vendor ++build_cpu ++build ++target_alias ++host_alias ++build_alias ++LIBS ++ECHO_T ++ECHO_N ++ECHO_C ++DEFS ++mandir ++localedir ++libdir ++psdir ++pdfdir ++dvidir ++htmldir ++infodir ++docdir ++oldincludedir ++includedir ++localstatedir ++sharedstatedir ++sysconfdir ++datadir ++datarootdir ++libexecdir ++sbindir ++bindir ++program_transform_name ++prefix ++exec_prefix ++PACKAGE_URL ++PACKAGE_BUGREPORT ++PACKAGE_STRING ++PACKAGE_VERSION ++PACKAGE_TARNAME ++PACKAGE_NAME ++PATH_SEPARATOR ++SHELL' ++ac_subst_files='' ++ac_user_opts=' ++enable_option_checking ++enable_silent_rules ++enable_dependency_tracking ++enable_shared ++enable_static ++with_pic ++enable_fast_install ++with_aix_soname ++with_gnu_ld ++with_sysroot ++enable_libtool_lock ++enable_nls ++enable_threads ++enable_rpath ++with_libpth_prefix ++with_libiconv_prefix ++with_included_gettext ++with_libintl_prefix ++with_warnings ++with_ui ++with_readline ++' ++ ac_precious_vars='build_alias ++host_alias ++target_alias ++CXX ++CXXFLAGS ++LDFLAGS ++LIBS ++CPPFLAGS ++CCC ++CC ++CFLAGS ++LT_SYS_LIBRARY_PATH ++CPP ++CXXCPP' ++ ++ ++# Initialize some variables set by options. ++ac_init_help= ++ac_init_version=false ++ac_unrecognized_opts= ++ac_unrecognized_sep= ++# The variables have the same names as the options, with ++# dashes changed to underlines. ++cache_file=/dev/null ++exec_prefix=NONE ++no_create= ++no_recursion= ++prefix=NONE ++program_prefix=NONE ++program_suffix=NONE ++program_transform_name=s,x,x, ++silent= ++site= ++srcdir= ++verbose= ++x_includes=NONE ++x_libraries=NONE ++ ++# Installation directory options. ++# These are left unexpanded so users can "make install exec_prefix=/foo" ++# and all the variables that are supposed to be based on exec_prefix ++# by default will actually change. ++# Use braces instead of parens because sh, perl, etc. also accept them. ++# (The list follows the same order as the GNU Coding Standards.) ++bindir='${exec_prefix}/bin' ++sbindir='${exec_prefix}/sbin' ++libexecdir='${exec_prefix}/libexec' ++datarootdir='${prefix}/share' ++datadir='${datarootdir}' ++sysconfdir='${prefix}/etc' ++sharedstatedir='${prefix}/com' ++localstatedir='${prefix}/var' ++includedir='${prefix}/include' ++oldincludedir='/usr/include' ++docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' ++infodir='${datarootdir}/info' ++htmldir='${docdir}' ++dvidir='${docdir}' ++pdfdir='${docdir}' ++psdir='${docdir}' ++libdir='${exec_prefix}/lib' ++localedir='${datarootdir}/locale' ++mandir='${datarootdir}/man' ++ ++ac_prev= ++ac_dashdash= ++for ac_option ++do ++ # If the previous option needs an argument, assign it. ++ if test -n "$ac_prev"; then ++ eval $ac_prev=\$ac_option ++ ac_prev= ++ continue ++ fi ++ ++ case $ac_option in ++ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; ++ *=) ac_optarg= ;; ++ *) ac_optarg=yes ;; ++ esac ++ ++ # Accept the important Cygnus configure options, so we can diagnose typos. ++ ++ case $ac_dashdash$ac_option in ++ --) ++ ac_dashdash=yes ;; ++ ++ -bindir | --bindir | --bindi | --bind | --bin | --bi) ++ ac_prev=bindir ;; ++ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) ++ bindir=$ac_optarg ;; ++ ++ -build | --build | --buil | --bui | --bu) ++ ac_prev=build_alias ;; ++ -build=* | --build=* | --buil=* | --bui=* | --bu=*) ++ build_alias=$ac_optarg ;; ++ ++ -cache-file | --cache-file | --cache-fil | --cache-fi \ ++ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ++ ac_prev=cache_file ;; ++ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ ++ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) ++ cache_file=$ac_optarg ;; ++ ++ --config-cache | -C) ++ cache_file=config.cache ;; ++ ++ -datadir | --datadir | --datadi | --datad) ++ ac_prev=datadir ;; ++ -datadir=* | --datadir=* | --datadi=* | --datad=*) ++ datadir=$ac_optarg ;; ++ ++ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ ++ | --dataroo | --dataro | --datar) ++ ac_prev=datarootdir ;; ++ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ ++ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) ++ datarootdir=$ac_optarg ;; ++ ++ -disable-* | --disable-*) ++ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` ++ # Reject names that are not valid shell variable names. ++ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && ++ as_fn_error $? "invalid feature name: $ac_useropt" ++ ac_useropt_orig=$ac_useropt ++ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` ++ case $ac_user_opts in ++ *" ++"enable_$ac_useropt" ++"*) ;; ++ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ++ ac_unrecognized_sep=', ';; ++ esac ++ eval enable_$ac_useropt=no ;; ++ ++ -docdir | --docdir | --docdi | --doc | --do) ++ ac_prev=docdir ;; ++ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) ++ docdir=$ac_optarg ;; ++ ++ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ++ ac_prev=dvidir ;; ++ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) ++ dvidir=$ac_optarg ;; ++ ++ -enable-* | --enable-*) ++ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` ++ # Reject names that are not valid shell variable names. ++ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && ++ as_fn_error $? "invalid feature name: $ac_useropt" ++ ac_useropt_orig=$ac_useropt ++ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` ++ case $ac_user_opts in ++ *" ++"enable_$ac_useropt" ++"*) ;; ++ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ++ ac_unrecognized_sep=', ';; ++ esac ++ eval enable_$ac_useropt=\$ac_optarg ;; ++ ++ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ ++ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ ++ | --exec | --exe | --ex) ++ ac_prev=exec_prefix ;; ++ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ ++ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ ++ | --exec=* | --exe=* | --ex=*) ++ exec_prefix=$ac_optarg ;; ++ ++ -gas | --gas | --ga | --g) ++ # Obsolete; use --with-gas. ++ with_gas=yes ;; ++ ++ -help | --help | --hel | --he | -h) ++ ac_init_help=long ;; ++ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ++ ac_init_help=recursive ;; ++ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ++ ac_init_help=short ;; ++ ++ -host | --host | --hos | --ho) ++ ac_prev=host_alias ;; ++ -host=* | --host=* | --hos=* | --ho=*) ++ host_alias=$ac_optarg ;; ++ ++ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ++ ac_prev=htmldir ;; ++ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ ++ | --ht=*) ++ htmldir=$ac_optarg ;; ++ ++ -includedir | --includedir | --includedi | --included | --include \ ++ | --includ | --inclu | --incl | --inc) ++ ac_prev=includedir ;; ++ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ ++ | --includ=* | --inclu=* | --incl=* | --inc=*) ++ includedir=$ac_optarg ;; ++ ++ -infodir | --infodir | --infodi | --infod | --info | --inf) ++ ac_prev=infodir ;; ++ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) ++ infodir=$ac_optarg ;; ++ ++ -libdir | --libdir | --libdi | --libd) ++ ac_prev=libdir ;; ++ -libdir=* | --libdir=* | --libdi=* | --libd=*) ++ libdir=$ac_optarg ;; ++ ++ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ ++ | --libexe | --libex | --libe) ++ ac_prev=libexecdir ;; ++ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ ++ | --libexe=* | --libex=* | --libe=*) ++ libexecdir=$ac_optarg ;; ++ ++ -localedir | --localedir | --localedi | --localed | --locale) ++ ac_prev=localedir ;; ++ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) ++ localedir=$ac_optarg ;; ++ ++ -localstatedir | --localstatedir | --localstatedi | --localstated \ ++ | --localstate | --localstat | --localsta | --localst | --locals) ++ ac_prev=localstatedir ;; ++ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ ++ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) ++ localstatedir=$ac_optarg ;; ++ ++ -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ++ ac_prev=mandir ;; ++ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) ++ mandir=$ac_optarg ;; ++ ++ -nfp | --nfp | --nf) ++ # Obsolete; use --without-fp. ++ with_fp=no ;; ++ ++ -no-create | --no-create | --no-creat | --no-crea | --no-cre \ ++ | --no-cr | --no-c | -n) ++ no_create=yes ;; ++ ++ -no-recursion | --no-recursion | --no-recursio | --no-recursi \ ++ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ++ no_recursion=yes ;; ++ ++ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ ++ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ ++ | --oldin | --oldi | --old | --ol | --o) ++ ac_prev=oldincludedir ;; ++ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ ++ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ ++ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) ++ oldincludedir=$ac_optarg ;; ++ ++ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ++ ac_prev=prefix ;; ++ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) ++ prefix=$ac_optarg ;; ++ ++ -program-prefix | --program-prefix | --program-prefi | --program-pref \ ++ | --program-pre | --program-pr | --program-p) ++ ac_prev=program_prefix ;; ++ -program-prefix=* | --program-prefix=* | --program-prefi=* \ ++ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) ++ program_prefix=$ac_optarg ;; ++ ++ -program-suffix | --program-suffix | --program-suffi | --program-suff \ ++ | --program-suf | --program-su | --program-s) ++ ac_prev=program_suffix ;; ++ -program-suffix=* | --program-suffix=* | --program-suffi=* \ ++ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) ++ program_suffix=$ac_optarg ;; ++ ++ -program-transform-name | --program-transform-name \ ++ | --program-transform-nam | --program-transform-na \ ++ | --program-transform-n | --program-transform- \ ++ | --program-transform | --program-transfor \ ++ | --program-transfo | --program-transf \ ++ | --program-trans | --program-tran \ ++ | --progr-tra | --program-tr | --program-t) ++ ac_prev=program_transform_name ;; ++ -program-transform-name=* | --program-transform-name=* \ ++ | --program-transform-nam=* | --program-transform-na=* \ ++ | --program-transform-n=* | --program-transform-=* \ ++ | --program-transform=* | --program-transfor=* \ ++ | --program-transfo=* | --program-transf=* \ ++ | --program-trans=* | --program-tran=* \ ++ | --progr-tra=* | --program-tr=* | --program-t=*) ++ program_transform_name=$ac_optarg ;; ++ ++ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ++ ac_prev=pdfdir ;; ++ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) ++ pdfdir=$ac_optarg ;; ++ ++ -psdir | --psdir | --psdi | --psd | --ps) ++ ac_prev=psdir ;; ++ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) ++ psdir=$ac_optarg ;; ++ ++ -q | -quiet | --quiet | --quie | --qui | --qu | --q \ ++ | -silent | --silent | --silen | --sile | --sil) ++ silent=yes ;; ++ ++ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ++ ac_prev=sbindir ;; ++ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ ++ | --sbi=* | --sb=*) ++ sbindir=$ac_optarg ;; ++ ++ -sharedstatedir | --sharedstatedir | --sharedstatedi \ ++ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ ++ | --sharedst | --shareds | --shared | --share | --shar \ ++ | --sha | --sh) ++ ac_prev=sharedstatedir ;; ++ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ ++ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ ++ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ ++ | --sha=* | --sh=*) ++ sharedstatedir=$ac_optarg ;; ++ ++ -site | --site | --sit) ++ ac_prev=site ;; ++ -site=* | --site=* | --sit=*) ++ site=$ac_optarg ;; ++ ++ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ++ ac_prev=srcdir ;; ++ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) ++ srcdir=$ac_optarg ;; ++ ++ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ ++ | --syscon | --sysco | --sysc | --sys | --sy) ++ ac_prev=sysconfdir ;; ++ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ ++ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) ++ sysconfdir=$ac_optarg ;; ++ ++ -target | --target | --targe | --targ | --tar | --ta | --t) ++ ac_prev=target_alias ;; ++ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) ++ target_alias=$ac_optarg ;; ++ ++ -v | -verbose | --verbose | --verbos | --verbo | --verb) ++ verbose=yes ;; ++ ++ -version | --version | --versio | --versi | --vers | -V) ++ ac_init_version=: ;; ++ ++ -with-* | --with-*) ++ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` ++ # Reject names that are not valid shell variable names. ++ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && ++ as_fn_error $? "invalid package name: $ac_useropt" ++ ac_useropt_orig=$ac_useropt ++ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` ++ case $ac_user_opts in ++ *" ++"with_$ac_useropt" ++"*) ;; ++ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ++ ac_unrecognized_sep=', ';; ++ esac ++ eval with_$ac_useropt=\$ac_optarg ;; ++ ++ -without-* | --without-*) ++ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` ++ # Reject names that are not valid shell variable names. ++ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && ++ as_fn_error $? "invalid package name: $ac_useropt" ++ ac_useropt_orig=$ac_useropt ++ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` ++ case $ac_user_opts in ++ *" ++"with_$ac_useropt" ++"*) ;; ++ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ++ ac_unrecognized_sep=', ';; ++ esac ++ eval with_$ac_useropt=no ;; ++ ++ --x) ++ # Obsolete; use --with-x. ++ with_x=yes ;; ++ ++ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ ++ | --x-incl | --x-inc | --x-in | --x-i) ++ ac_prev=x_includes ;; ++ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ ++ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) ++ x_includes=$ac_optarg ;; ++ ++ -x-libraries | --x-libraries | --x-librarie | --x-librari \ ++ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ++ ac_prev=x_libraries ;; ++ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ ++ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) ++ x_libraries=$ac_optarg ;; ++ ++ -*) as_fn_error $? "unrecognized option: \`$ac_option' ++Try \`$0 --help' for more information" ++ ;; ++ ++ *=*) ++ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` ++ # Reject names that are not valid shell variable names. ++ case $ac_envvar in #( ++ '' | [0-9]* | *[!_$as_cr_alnum]* ) ++ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; ++ esac ++ eval $ac_envvar=\$ac_optarg ++ export $ac_envvar ;; ++ ++ *) ++ # FIXME: should be removed in autoconf 3.0. ++ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 ++ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && ++ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 ++ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ++ ;; ++ ++ esac ++done ++ ++if test -n "$ac_prev"; then ++ ac_option=--`echo $ac_prev | sed 's/_/-/g'` ++ as_fn_error $? "missing argument to $ac_option" ++fi ++ ++if test -n "$ac_unrecognized_opts"; then ++ case $enable_option_checking in ++ no) ;; ++ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; ++ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; ++ esac ++fi ++ ++# Check all directory arguments for consistency. ++for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ ++ datadir sysconfdir sharedstatedir localstatedir includedir \ ++ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ ++ libdir localedir mandir ++do ++ eval ac_val=\$$ac_var ++ # Remove trailing slashes. ++ case $ac_val in ++ */ ) ++ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` ++ eval $ac_var=\$ac_val;; ++ esac ++ # Be sure to have absolute directory names. ++ case $ac_val in ++ [\\/$]* | ?:[\\/]* ) continue;; ++ NONE | '' ) case $ac_var in *prefix ) continue;; esac;; ++ esac ++ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" ++done ++ ++# There might be people who depend on the old broken behavior: `$host' ++# used to hold the argument of --host etc. ++# FIXME: To remove some day. ++build=$build_alias ++host=$host_alias ++target=$target_alias ++ ++# FIXME: To remove some day. ++if test "x$host_alias" != x; then ++ if test "x$build_alias" = x; then ++ cross_compiling=maybe ++ elif test "x$build_alias" != "x$host_alias"; then ++ cross_compiling=yes ++ fi ++fi ++ ++ac_tool_prefix= ++test -n "$host_alias" && ac_tool_prefix=$host_alias- ++ ++test "$silent" = yes && exec 6>/dev/null ++ ++ ++ac_pwd=`pwd` && test -n "$ac_pwd" && ++ac_ls_di=`ls -di .` && ++ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || ++ as_fn_error $? "working directory cannot be determined" ++test "X$ac_ls_di" = "X$ac_pwd_ls_di" || ++ as_fn_error $? "pwd does not report name of working directory" ++ ++ ++# Find the source files, if location was not specified. ++if test -z "$srcdir"; then ++ ac_srcdir_defaulted=yes ++ # Try the directory containing this script, then the parent directory. ++ ac_confdir=`$as_dirname -- "$as_myself" || ++$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$as_myself" : 'X\(//\)[^/]' \| \ ++ X"$as_myself" : 'X\(//\)$' \| \ ++ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || ++$as_echo X"$as_myself" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)[^/].*/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\).*/{ ++ s//\1/ ++ q ++ } ++ s/.*/./; q'` ++ srcdir=$ac_confdir ++ if test ! -r "$srcdir/$ac_unique_file"; then ++ srcdir=.. ++ fi ++else ++ ac_srcdir_defaulted=no ++fi ++if test ! -r "$srcdir/$ac_unique_file"; then ++ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." ++ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" ++fi ++ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ++ac_abs_confdir=`( ++ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" ++ pwd)` ++# When building in place, set srcdir=. ++if test "$ac_abs_confdir" = "$ac_pwd"; then ++ srcdir=. ++fi ++# Remove unnecessary trailing slashes from srcdir. ++# Double slashes in file names in object file debugging info ++# mess up M-x gdb in Emacs. ++case $srcdir in ++*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; ++esac ++for ac_var in $ac_precious_vars; do ++ eval ac_env_${ac_var}_set=\${${ac_var}+set} ++ eval ac_env_${ac_var}_value=\$${ac_var} ++ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} ++ eval ac_cv_env_${ac_var}_value=\$${ac_var} ++done ++ ++# ++# Report the --help message. ++# ++if test "$ac_init_help" = "long"; then ++ # Omit some internal or obsolete options to make the list less imposing. ++ # This message is too long to be a string in the A/UX 3.1 sh. ++ cat <<_ACEOF ++\`configure' configures hunspell 1.6.0 to adapt to many kinds of systems. ++ ++Usage: $0 [OPTION]... [VAR=VALUE]... ++ ++To assign environment variables (e.g., CC, CFLAGS...), specify them as ++VAR=VALUE. See below for descriptions of some of the useful variables. ++ ++Defaults for the options are specified in brackets. ++ ++Configuration: ++ -h, --help display this help and exit ++ --help=short display options specific to this package ++ --help=recursive display the short help of all the included packages ++ -V, --version display version information and exit ++ -q, --quiet, --silent do not print \`checking ...' messages ++ --cache-file=FILE cache test results in FILE [disabled] ++ -C, --config-cache alias for \`--cache-file=config.cache' ++ -n, --no-create do not create output files ++ --srcdir=DIR find the sources in DIR [configure dir or \`..'] ++ ++Installation directories: ++ --prefix=PREFIX install architecture-independent files in PREFIX ++ [$ac_default_prefix] ++ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX ++ [PREFIX] ++ ++By default, \`make install' will install all the files in ++\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify ++an installation prefix other than \`$ac_default_prefix' using \`--prefix', ++for instance \`--prefix=\$HOME'. ++ ++For better control, use the options below. ++ ++Fine tuning of the installation directories: ++ --bindir=DIR user executables [EPREFIX/bin] ++ --sbindir=DIR system admin executables [EPREFIX/sbin] ++ --libexecdir=DIR program executables [EPREFIX/libexec] ++ --sysconfdir=DIR read-only single-machine data [PREFIX/etc] ++ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] ++ --localstatedir=DIR modifiable single-machine data [PREFIX/var] ++ --libdir=DIR object code libraries [EPREFIX/lib] ++ --includedir=DIR C header files [PREFIX/include] ++ --oldincludedir=DIR C header files for non-gcc [/usr/include] ++ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] ++ --datadir=DIR read-only architecture-independent data [DATAROOTDIR] ++ --infodir=DIR info documentation [DATAROOTDIR/info] ++ --localedir=DIR locale-dependent data [DATAROOTDIR/locale] ++ --mandir=DIR man documentation [DATAROOTDIR/man] ++ --docdir=DIR documentation root [DATAROOTDIR/doc/hunspell] ++ --htmldir=DIR html documentation [DOCDIR] ++ --dvidir=DIR dvi documentation [DOCDIR] ++ --pdfdir=DIR pdf documentation [DOCDIR] ++ --psdir=DIR ps documentation [DOCDIR] ++_ACEOF ++ ++ cat <<\_ACEOF ++ ++Program names: ++ --program-prefix=PREFIX prepend PREFIX to installed program names ++ --program-suffix=SUFFIX append SUFFIX to installed program names ++ --program-transform-name=PROGRAM run sed PROGRAM on installed program names ++ ++System types: ++ --build=BUILD configure for building on BUILD [guessed] ++ --host=HOST cross-compile to build programs to run on HOST [BUILD] ++_ACEOF ++fi ++ ++if test -n "$ac_init_help"; then ++ case $ac_init_help in ++ short | recursive ) echo "Configuration of hunspell 1.6.0:";; ++ esac ++ cat <<\_ACEOF ++ ++Optional Features: ++ --disable-option-checking ignore unrecognized --enable/--with options ++ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) ++ --enable-FEATURE[=ARG] include FEATURE [ARG=yes] ++ --enable-silent-rules less verbose build output (undo: "make V=1") ++ --disable-silent-rules verbose build output (undo: "make V=0") ++ --enable-dependency-tracking ++ do not reject slow dependency extractors ++ --disable-dependency-tracking ++ speeds up one-time build ++ --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) ++ --disable-nls do not use Native Language Support ++ --enable-threads={posix|solaris|pth|windows} ++ specify multithreading API ++ --disable-threads build without multithread safety ++ --disable-rpath do not hardcode runtime library paths ++ ++Optional Packages: ++ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] ++ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) ++ --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use ++ both] ++ --with-aix-soname=aix|svr4|both ++ shared library versioning (aka "SONAME") variant to ++ provide on AIX, [default=aix]. ++ --with-gnu-ld assume the C compiler uses GNU ld [default=no] ++ --with-sysroot[=DIR] Search for dependent libraries within DIR (or the ++ compiler's sysroot if not specified). ++ --with-gnu-ld assume the C compiler uses GNU ld [default=no] ++ --with-libpth-prefix[=DIR] search for libpth in DIR/include and DIR/lib ++ --without-libpth-prefix don't search for libpth in includedir and libdir ++ --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib ++ --without-libiconv-prefix don't search for libiconv in includedir and libdir ++ --with-included-gettext use the GNU gettext library included here ++ --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib ++ --without-libintl-prefix don't search for libintl in includedir and libdir ++ --with-warnings compile with warning messages ++ --with-ui support Curses user interface ++ --with-readline support fancy command input editing ++ ++Some influential environment variables: ++ CXX C++ compiler command ++ CXXFLAGS C++ compiler flags ++ LDFLAGS linker flags, e.g. -L if you have libraries in a ++ nonstandard directory ++ LIBS libraries to pass to the linker, e.g. -l ++ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if ++ you have headers in a nonstandard directory ++ CC C compiler command ++ CFLAGS C compiler flags ++ LT_SYS_LIBRARY_PATH ++ User-defined run-time library search path. ++ CPP C preprocessor ++ CXXCPP C++ preprocessor ++ ++Use these variables to override the choices made by `configure' or to help ++it to find libraries and programs with nonstandard names/locations. ++ ++Report bugs to . ++_ACEOF ++ac_status=$? ++fi ++ ++if test "$ac_init_help" = "recursive"; then ++ # If there are subdirs, report their specific --help. ++ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue ++ test -d "$ac_dir" || ++ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || ++ continue ++ ac_builddir=. ++ ++case "$ac_dir" in ++.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; ++*) ++ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` ++ # A ".." for each directory in $ac_dir_suffix. ++ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` ++ case $ac_top_builddir_sub in ++ "") ac_top_builddir_sub=. ac_top_build_prefix= ;; ++ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; ++ esac ;; ++esac ++ac_abs_top_builddir=$ac_pwd ++ac_abs_builddir=$ac_pwd$ac_dir_suffix ++# for backward compatibility: ++ac_top_builddir=$ac_top_build_prefix ++ ++case $srcdir in ++ .) # We are building in place. ++ ac_srcdir=. ++ ac_top_srcdir=$ac_top_builddir_sub ++ ac_abs_top_srcdir=$ac_pwd ;; ++ [\\/]* | ?:[\\/]* ) # Absolute name. ++ ac_srcdir=$srcdir$ac_dir_suffix; ++ ac_top_srcdir=$srcdir ++ ac_abs_top_srcdir=$srcdir ;; ++ *) # Relative name. ++ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ++ ac_top_srcdir=$ac_top_build_prefix$srcdir ++ ac_abs_top_srcdir=$ac_pwd/$srcdir ;; ++esac ++ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix ++ ++ cd "$ac_dir" || { ac_status=$?; continue; } ++ # Check for guested configure. ++ if test -f "$ac_srcdir/configure.gnu"; then ++ echo && ++ $SHELL "$ac_srcdir/configure.gnu" --help=recursive ++ elif test -f "$ac_srcdir/configure"; then ++ echo && ++ $SHELL "$ac_srcdir/configure" --help=recursive ++ else ++ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 ++ fi || ac_status=$? ++ cd "$ac_pwd" || { ac_status=$?; break; } ++ done ++fi ++ ++test -n "$ac_init_help" && exit $ac_status ++if $ac_init_version; then ++ cat <<\_ACEOF ++hunspell configure 1.6.0 ++generated by GNU Autoconf 2.69 ++ ++Copyright (C) 2012 Free Software Foundation, Inc. ++This configure script is free software; the Free Software Foundation ++gives unlimited permission to copy, distribute and modify it. ++_ACEOF ++ exit ++fi ++ ++## ------------------------ ## ++## Autoconf initialization. ## ++## ------------------------ ## ++ ++# ac_fn_cxx_try_compile LINENO ++# ---------------------------- ++# Try to compile conftest.$ac_ext, and return whether this succeeded. ++ac_fn_cxx_try_compile () ++{ ++ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ++ rm -f conftest.$ac_objext ++ if { { ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" ++$as_echo "$ac_try_echo"; } >&5 ++ (eval "$ac_compile") 2>conftest.err ++ ac_status=$? ++ if test -s conftest.err; then ++ grep -v '^ *+' conftest.err >conftest.er1 ++ cat conftest.er1 >&5 ++ mv -f conftest.er1 conftest.err ++ fi ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } && { ++ test -z "$ac_cxx_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then : ++ ac_retval=0 ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_retval=1 ++fi ++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ++ as_fn_set_status $ac_retval ++ ++} # ac_fn_cxx_try_compile ++ ++# ac_fn_c_try_compile LINENO ++# -------------------------- ++# Try to compile conftest.$ac_ext, and return whether this succeeded. ++ac_fn_c_try_compile () ++{ ++ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ++ rm -f conftest.$ac_objext ++ if { { ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" ++$as_echo "$ac_try_echo"; } >&5 ++ (eval "$ac_compile") 2>conftest.err ++ ac_status=$? ++ if test -s conftest.err; then ++ grep -v '^ *+' conftest.err >conftest.er1 ++ cat conftest.er1 >&5 ++ mv -f conftest.er1 conftest.err ++ fi ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then : ++ ac_retval=0 ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_retval=1 ++fi ++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ++ as_fn_set_status $ac_retval ++ ++} # ac_fn_c_try_compile ++ ++# ac_fn_c_try_link LINENO ++# ----------------------- ++# Try to link conftest.$ac_ext, and return whether this succeeded. ++ac_fn_c_try_link () ++{ ++ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ++ rm -f conftest.$ac_objext conftest$ac_exeext ++ if { { ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" ++$as_echo "$ac_try_echo"; } >&5 ++ (eval "$ac_link") 2>conftest.err ++ ac_status=$? ++ if test -s conftest.err; then ++ grep -v '^ *+' conftest.err >conftest.er1 ++ cat conftest.er1 >&5 ++ mv -f conftest.er1 conftest.err ++ fi ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ test -x conftest$ac_exeext ++ }; then : ++ ac_retval=0 ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_retval=1 ++fi ++ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information ++ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would ++ # interfere with the next link command; also delete a directory that is ++ # left behind by Apple's compiler. We do this before executing the actions. ++ rm -rf conftest.dSYM conftest_ipa8_conftest.oo ++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ++ as_fn_set_status $ac_retval ++ ++} # ac_fn_c_try_link ++ ++# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES ++# ------------------------------------------------------- ++# Tests whether HEADER exists and can be compiled using the include files in ++# INCLUDES, setting the cache variable VAR accordingly. ++ac_fn_c_check_header_compile () ++{ ++ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 ++$as_echo_n "checking for $2... " >&6; } ++if eval \${$3+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++$4 ++#include <$2> ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ eval "$3=yes" ++else ++ eval "$3=no" ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++eval ac_res=\$$3 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ++ ++} # ac_fn_c_check_header_compile ++ ++# ac_fn_c_try_cpp LINENO ++# ---------------------- ++# Try to preprocess conftest.$ac_ext, and return whether this succeeded. ++ac_fn_c_try_cpp () ++{ ++ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ++ if { { ac_try="$ac_cpp conftest.$ac_ext" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" ++$as_echo "$ac_try_echo"; } >&5 ++ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ++ ac_status=$? ++ if test -s conftest.err; then ++ grep -v '^ *+' conftest.err >conftest.er1 ++ cat conftest.er1 >&5 ++ mv -f conftest.er1 conftest.err ++ fi ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } > conftest.i && { ++ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || ++ test ! -s conftest.err ++ }; then : ++ ac_retval=0 ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_retval=1 ++fi ++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ++ as_fn_set_status $ac_retval ++ ++} # ac_fn_c_try_cpp ++ ++# ac_fn_c_try_run LINENO ++# ---------------------- ++# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes ++# that executables *can* be run. ++ac_fn_c_try_run () ++{ ++ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ++ if { { ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" ++$as_echo "$ac_try_echo"; } >&5 ++ (eval "$ac_link") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' ++ { { case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" ++$as_echo "$ac_try_echo"; } >&5 ++ (eval "$ac_try") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; }; then : ++ ac_retval=0 ++else ++ $as_echo "$as_me: program exited with status $ac_status" >&5 ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_retval=$ac_status ++fi ++ rm -rf conftest.dSYM conftest_ipa8_conftest.oo ++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ++ as_fn_set_status $ac_retval ++ ++} # ac_fn_c_try_run ++ ++# ac_fn_c_check_func LINENO FUNC VAR ++# ---------------------------------- ++# Tests whether FUNC exists, setting the cache variable VAR accordingly ++ac_fn_c_check_func () ++{ ++ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 ++$as_echo_n "checking for $2... " >&6; } ++if eval \${$3+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++/* Define $2 to an innocuous variant, in case declares $2. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $2 innocuous_$2 ++ ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $2 (); below. ++ Prefer to if __STDC__ is defined, since ++ exists even on freestanding compilers. */ ++ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ ++#undef $2 ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char $2 (); ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined __stub_$2 || defined __stub___$2 ++choke me ++#endif ++ ++int ++main () ++{ ++return $2 (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ eval "$3=yes" ++else ++ eval "$3=no" ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++eval ac_res=\$$3 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ++ ++} # ac_fn_c_check_func ++ ++# ac_fn_cxx_try_cpp LINENO ++# ------------------------ ++# Try to preprocess conftest.$ac_ext, and return whether this succeeded. ++ac_fn_cxx_try_cpp () ++{ ++ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ++ if { { ac_try="$ac_cpp conftest.$ac_ext" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" ++$as_echo "$ac_try_echo"; } >&5 ++ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ++ ac_status=$? ++ if test -s conftest.err; then ++ grep -v '^ *+' conftest.err >conftest.er1 ++ cat conftest.er1 >&5 ++ mv -f conftest.er1 conftest.err ++ fi ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } > conftest.i && { ++ test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || ++ test ! -s conftest.err ++ }; then : ++ ac_retval=0 ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_retval=1 ++fi ++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ++ as_fn_set_status $ac_retval ++ ++} # ac_fn_cxx_try_cpp ++ ++# ac_fn_cxx_try_link LINENO ++# ------------------------- ++# Try to link conftest.$ac_ext, and return whether this succeeded. ++ac_fn_cxx_try_link () ++{ ++ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ++ rm -f conftest.$ac_objext conftest$ac_exeext ++ if { { ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" ++$as_echo "$ac_try_echo"; } >&5 ++ (eval "$ac_link") 2>conftest.err ++ ac_status=$? ++ if test -s conftest.err; then ++ grep -v '^ *+' conftest.err >conftest.er1 ++ cat conftest.er1 >&5 ++ mv -f conftest.er1 conftest.err ++ fi ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } && { ++ test -z "$ac_cxx_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ test -x conftest$ac_exeext ++ }; then : ++ ac_retval=0 ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_retval=1 ++fi ++ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information ++ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would ++ # interfere with the next link command; also delete a directory that is ++ # left behind by Apple's compiler. We do this before executing the actions. ++ rm -rf conftest.dSYM conftest_ipa8_conftest.oo ++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ++ as_fn_set_status $ac_retval ++ ++} # ac_fn_cxx_try_link ++ ++# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES ++# ------------------------------------------------------- ++# Tests whether HEADER exists, giving a warning if it cannot be compiled using ++# the include files in INCLUDES and setting the cache variable VAR ++# accordingly. ++ac_fn_c_check_header_mongrel () ++{ ++ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ++ if eval \${$3+:} false; then : ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 ++$as_echo_n "checking for $2... " >&6; } ++if eval \${$3+:} false; then : ++ $as_echo_n "(cached) " >&6 ++fi ++eval ac_res=\$$3 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++else ++ # Is the header compilable? ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 ++$as_echo_n "checking $2 usability... " >&6; } ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++$4 ++#include <$2> ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_header_compiler=yes ++else ++ ac_header_compiler=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 ++$as_echo "$ac_header_compiler" >&6; } ++ ++# Is the header present? ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 ++$as_echo_n "checking $2 presence... " >&6; } ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include <$2> ++_ACEOF ++if ac_fn_c_try_cpp "$LINENO"; then : ++ ac_header_preproc=yes ++else ++ ac_header_preproc=no ++fi ++rm -f conftest.err conftest.i conftest.$ac_ext ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 ++$as_echo "$ac_header_preproc" >&6; } ++ ++# So? What about this header? ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( ++ yes:no: ) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 ++$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 ++$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ++ ;; ++ no:yes:* ) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 ++$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 ++$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 ++$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 ++$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 ++$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ++( $as_echo "## ------------------------------------ ## ++## Report this to nemeth@numbertext.org ## ++## ------------------------------------ ##" ++ ) | sed "s/^/$as_me: WARNING: /" >&2 ++ ;; ++esac ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 ++$as_echo_n "checking for $2... " >&6; } ++if eval \${$3+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ eval "$3=\$ac_header_compiler" ++fi ++eval ac_res=\$$3 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++fi ++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ++ ++} # ac_fn_c_check_header_mongrel ++ ++# ac_fn_c_check_type LINENO TYPE VAR INCLUDES ++# ------------------------------------------- ++# Tests whether TYPE exists after having included INCLUDES, setting cache ++# variable VAR accordingly. ++ac_fn_c_check_type () ++{ ++ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 ++$as_echo_n "checking for $2... " >&6; } ++if eval \${$3+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ eval "$3=no" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++$4 ++int ++main () ++{ ++if (sizeof ($2)) ++ return 0; ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++$4 ++int ++main () ++{ ++if (sizeof (($2))) ++ return 0; ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ++else ++ eval "$3=yes" ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++eval ac_res=\$$3 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ++ ++} # ac_fn_c_check_type ++ ++# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES ++# --------------------------------------------- ++# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR ++# accordingly. ++ac_fn_c_check_decl () ++{ ++ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ++ as_decl_name=`echo $2|sed 's/ *(.*//'` ++ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 ++$as_echo_n "checking whether $as_decl_name is declared... " >&6; } ++if eval \${$3+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++$4 ++int ++main () ++{ ++#ifndef $as_decl_name ++#ifdef __cplusplus ++ (void) $as_decl_use; ++#else ++ (void) $as_decl_name; ++#endif ++#endif ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ eval "$3=yes" ++else ++ eval "$3=no" ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++eval ac_res=\$$3 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ++ ++} # ac_fn_c_check_decl ++ ++# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES ++# -------------------------------------------- ++# Tries to find the compile-time value of EXPR in a program that includes ++# INCLUDES, setting VAR accordingly. Returns whether the value could be ++# computed ++ac_fn_c_compute_int () ++{ ++ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ++ if test "$cross_compiling" = yes; then ++ # Depending upon the size, compute the lo and hi bounds. ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++$4 ++int ++main () ++{ ++static int test_array [1 - 2 * !(($2) >= 0)]; ++test_array [0] = 0; ++return test_array [0]; ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_lo=0 ac_mid=0 ++ while :; do ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++$4 ++int ++main () ++{ ++static int test_array [1 - 2 * !(($2) <= $ac_mid)]; ++test_array [0] = 0; ++return test_array [0]; ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_hi=$ac_mid; break ++else ++ as_fn_arith $ac_mid + 1 && ac_lo=$as_val ++ if test $ac_lo -le $ac_mid; then ++ ac_lo= ac_hi= ++ break ++ fi ++ as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ done ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++$4 ++int ++main () ++{ ++static int test_array [1 - 2 * !(($2) < 0)]; ++test_array [0] = 0; ++return test_array [0]; ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_hi=-1 ac_mid=-1 ++ while :; do ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++$4 ++int ++main () ++{ ++static int test_array [1 - 2 * !(($2) >= $ac_mid)]; ++test_array [0] = 0; ++return test_array [0]; ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_lo=$ac_mid; break ++else ++ as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val ++ if test $ac_mid -le $ac_hi; then ++ ac_lo= ac_hi= ++ break ++ fi ++ as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ done ++else ++ ac_lo= ac_hi= ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++# Binary search between lo and hi bounds. ++while test "x$ac_lo" != "x$ac_hi"; do ++ as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++$4 ++int ++main () ++{ ++static int test_array [1 - 2 * !(($2) <= $ac_mid)]; ++test_array [0] = 0; ++return test_array [0]; ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_hi=$ac_mid ++else ++ as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++done ++case $ac_lo in #(( ++?*) eval "$3=\$ac_lo"; ac_retval=0 ;; ++'') ac_retval=1 ;; ++esac ++ else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++$4 ++static long int longval () { return $2; } ++static unsigned long int ulongval () { return $2; } ++#include ++#include ++int ++main () ++{ ++ ++ FILE *f = fopen ("conftest.val", "w"); ++ if (! f) ++ return 1; ++ if (($2) < 0) ++ { ++ long int i = longval (); ++ if (i != ($2)) ++ return 1; ++ fprintf (f, "%ld", i); ++ } ++ else ++ { ++ unsigned long int i = ulongval (); ++ if (i != ($2)) ++ return 1; ++ fprintf (f, "%lu", i); ++ } ++ /* Do not output a trailing newline, as this causes \r\n confusion ++ on some platforms. */ ++ return ferror (f) || fclose (f) != 0; ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_run "$LINENO"; then : ++ echo >>conftest.val; read $3 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 hunspell $as_me 1.6.0, which was ++generated by GNU Autoconf 2.69. Invocation command line was ++ ++ $ $0 $@ ++ ++_ACEOF ++exec 5>>config.log ++{ ++cat <<_ASUNAME ++## --------- ## ++## Platform. ## ++## --------- ## ++ ++hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` ++uname -m = `(uname -m) 2>/dev/null || echo unknown` ++uname -r = `(uname -r) 2>/dev/null || echo unknown` ++uname -s = `(uname -s) 2>/dev/null || echo unknown` ++uname -v = `(uname -v) 2>/dev/null || echo unknown` ++ ++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` ++/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` ++ ++/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` ++/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` ++/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` ++/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` ++/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` ++/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` ++/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` ++ ++_ASUNAME ++ ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ $as_echo "PATH: $as_dir" ++ done ++IFS=$as_save_IFS ++ ++} >&5 ++ ++cat >&5 <<_ACEOF ++ ++ ++## ----------- ## ++## Core tests. ## ++## ----------- ## ++ ++_ACEOF ++ ++ ++# Keep a trace of the command line. ++# Strip out --no-create and --no-recursion so they do not pile up. ++# Strip out --silent because we don't want to record it for future runs. ++# Also quote any args containing shell meta-characters. ++# Make two passes to allow for proper duplicate-argument suppression. ++ac_configure_args= ++ac_configure_args0= ++ac_configure_args1= ++ac_must_keep_next=false ++for ac_pass in 1 2 ++do ++ for ac_arg ++ do ++ case $ac_arg in ++ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; ++ -q | -quiet | --quiet | --quie | --qui | --qu | --q \ ++ | -silent | --silent | --silen | --sile | --sil) ++ continue ;; ++ *\'*) ++ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; ++ esac ++ case $ac_pass in ++ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; ++ 2) ++ as_fn_append ac_configure_args1 " '$ac_arg'" ++ if test $ac_must_keep_next = true; then ++ ac_must_keep_next=false # Got value, back to normal. ++ else ++ case $ac_arg in ++ *=* | --config-cache | -C | -disable-* | --disable-* \ ++ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ ++ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ ++ | -with-* | --with-* | -without-* | --without-* | --x) ++ case "$ac_configure_args0 " in ++ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; ++ esac ++ ;; ++ -* ) ac_must_keep_next=true ;; ++ esac ++ fi ++ as_fn_append ac_configure_args " '$ac_arg'" ++ ;; ++ esac ++ done ++done ++{ ac_configure_args0=; unset ac_configure_args0;} ++{ ac_configure_args1=; unset ac_configure_args1;} ++ ++# When interrupted or exit'd, cleanup temporary files, and complete ++# config.log. We remove comments because anyway the quotes in there ++# would cause problems or look ugly. ++# WARNING: Use '\'' to represent an apostrophe within the trap. ++# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. ++trap 'exit_status=$? ++ # Save into config.log some information that might help in debugging. ++ { ++ echo ++ ++ $as_echo "## ---------------- ## ++## Cache variables. ## ++## ---------------- ##" ++ echo ++ # The following way of writing the cache mishandles newlines in values, ++( ++ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do ++ eval ac_val=\$$ac_var ++ case $ac_val in #( ++ *${as_nl}*) ++ case $ac_var in #( ++ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 ++$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; ++ esac ++ case $ac_var in #( ++ _ | IFS | as_nl) ;; #( ++ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( ++ *) { eval $ac_var=; unset $ac_var;} ;; ++ esac ;; ++ esac ++ done ++ (set) 2>&1 | ++ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( ++ *${as_nl}ac_space=\ *) ++ sed -n \ ++ "s/'\''/'\''\\\\'\'''\''/g; ++ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ++ ;; #( ++ *) ++ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ++ ;; ++ esac | ++ sort ++) ++ echo ++ ++ $as_echo "## ----------------- ## ++## Output variables. ## ++## ----------------- ##" ++ echo ++ for ac_var in $ac_subst_vars ++ do ++ eval ac_val=\$$ac_var ++ case $ac_val in ++ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; ++ esac ++ $as_echo "$ac_var='\''$ac_val'\''" ++ done | sort ++ echo ++ ++ if test -n "$ac_subst_files"; then ++ $as_echo "## ------------------- ## ++## File substitutions. ## ++## ------------------- ##" ++ echo ++ for ac_var in $ac_subst_files ++ do ++ eval ac_val=\$$ac_var ++ case $ac_val in ++ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; ++ esac ++ $as_echo "$ac_var='\''$ac_val'\''" ++ done | sort ++ echo ++ fi ++ ++ if test -s confdefs.h; then ++ $as_echo "## ----------- ## ++## confdefs.h. ## ++## ----------- ##" ++ echo ++ cat confdefs.h ++ echo ++ fi ++ test "$ac_signal" != 0 && ++ $as_echo "$as_me: caught signal $ac_signal" ++ $as_echo "$as_me: exit $exit_status" ++ } >&5 ++ rm -f core *.core core.conftest.* && ++ rm -f -r conftest* confdefs* conf$$* $ac_clean_files && ++ exit $exit_status ++' 0 ++for ac_signal in 1 2 13 15; do ++ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal ++done ++ac_signal=0 ++ ++# confdefs.h avoids OS command line length limits that DEFS can exceed. ++rm -f -r conftest* confdefs.h ++ ++$as_echo "/* confdefs.h */" > confdefs.h ++ ++# Predefined preprocessor variables. ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE_NAME "$PACKAGE_NAME" ++_ACEOF ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE_TARNAME "$PACKAGE_TARNAME" ++_ACEOF ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE_VERSION "$PACKAGE_VERSION" ++_ACEOF ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE_STRING "$PACKAGE_STRING" ++_ACEOF ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" ++_ACEOF ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE_URL "$PACKAGE_URL" ++_ACEOF ++ ++ ++# Let the site file select an alternate cache file if it wants to. ++# Prefer an explicitly selected file to automatically selected ones. ++ac_site_file1=NONE ++ac_site_file2=NONE ++if test -n "$CONFIG_SITE"; then ++ # We do not want a PATH search for config.site. ++ case $CONFIG_SITE in #(( ++ -*) ac_site_file1=./$CONFIG_SITE;; ++ */*) ac_site_file1=$CONFIG_SITE;; ++ *) ac_site_file1=./$CONFIG_SITE;; ++ esac ++elif test "x$prefix" != xNONE; then ++ ac_site_file1=$prefix/share/config.site ++ ac_site_file2=$prefix/etc/config.site ++else ++ ac_site_file1=$ac_default_prefix/share/config.site ++ ac_site_file2=$ac_default_prefix/etc/config.site ++fi ++for ac_site_file in "$ac_site_file1" "$ac_site_file2" ++do ++ test "x$ac_site_file" = xNONE && continue ++ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 ++$as_echo "$as_me: loading site script $ac_site_file" >&6;} ++ sed 's/^/| /' "$ac_site_file" >&5 ++ . "$ac_site_file" \ ++ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++as_fn_error $? "failed to load site script $ac_site_file ++See \`config.log' for more details" "$LINENO" 5; } ++ fi ++done ++ ++if test -r "$cache_file"; then ++ # Some versions of bash will fail to source /dev/null (special files ++ # actually), so we avoid doing that. DJGPP emulates it as a regular file. ++ if test /dev/null != "$cache_file" && test -f "$cache_file"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 ++$as_echo "$as_me: loading cache $cache_file" >&6;} ++ case $cache_file in ++ [\\/]* | ?:[\\/]* ) . "$cache_file";; ++ *) . "./$cache_file";; ++ esac ++ fi ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 ++$as_echo "$as_me: creating cache $cache_file" >&6;} ++ >$cache_file ++fi ++ ++gt_needs="$gt_needs " ++as_fn_append ac_header_list " stdlib.h" ++as_fn_append ac_header_list " unistd.h" ++as_fn_append ac_header_list " sys/param.h" ++as_fn_append ac_func_list " symlink" ++# Check that the precious variables saved in the cache have kept the same ++# value. ++ac_cache_corrupted=false ++for ac_var in $ac_precious_vars; do ++ eval ac_old_set=\$ac_cv_env_${ac_var}_set ++ eval ac_new_set=\$ac_env_${ac_var}_set ++ eval ac_old_val=\$ac_cv_env_${ac_var}_value ++ eval ac_new_val=\$ac_env_${ac_var}_value ++ case $ac_old_set,$ac_new_set in ++ set,) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 ++$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ++ ac_cache_corrupted=: ;; ++ ,set) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 ++$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ++ ac_cache_corrupted=: ;; ++ ,);; ++ *) ++ if test "x$ac_old_val" != "x$ac_new_val"; then ++ # differences in whitespace do not lead to failure. ++ ac_old_val_w=`echo x $ac_old_val` ++ ac_new_val_w=`echo x $ac_new_val` ++ if test "$ac_old_val_w" != "$ac_new_val_w"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 ++$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ++ ac_cache_corrupted=: ++ else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 ++$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} ++ eval $ac_var=\$ac_old_val ++ fi ++ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 ++$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} ++ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 ++$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} ++ fi;; ++ esac ++ # Pass precious variables to config.status. ++ if test "$ac_new_set" = set; then ++ case $ac_new_val in ++ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; ++ *) ac_arg=$ac_var=$ac_new_val ;; ++ esac ++ case " $ac_configure_args " in ++ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. ++ *) as_fn_append ac_configure_args " '$ac_arg'" ;; ++ esac ++ fi ++done ++if $ac_cache_corrupted; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 ++$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} ++ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 ++fi ++## -------------------- ## ++## Main body of script. ## ++## -------------------- ## ++ ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++ ++ ++ac_aux_dir= ++for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do ++ if test -f "$ac_dir/install-sh"; then ++ ac_aux_dir=$ac_dir ++ ac_install_sh="$ac_aux_dir/install-sh -c" ++ break ++ elif test -f "$ac_dir/install.sh"; then ++ ac_aux_dir=$ac_dir ++ ac_install_sh="$ac_aux_dir/install.sh -c" ++ break ++ elif test -f "$ac_dir/shtool"; then ++ ac_aux_dir=$ac_dir ++ ac_install_sh="$ac_aux_dir/shtool install -c" ++ break ++ fi ++done ++if test -z "$ac_aux_dir"; then ++ as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 ++fi ++ ++# These three variables are undocumented and unsupported, ++# and are intended to be withdrawn in a future Autoconf release. ++# They can cause serious problems if a builder's source tree is in a directory ++# whose full name contains unusual characters. ++ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ++ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ++ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. ++ ++ ++# Make sure we can run config.sub. ++$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || ++ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 ++$as_echo_n "checking build system type... " >&6; } ++if ${ac_cv_build+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_build_alias=$build_alias ++test "x$ac_build_alias" = x && ++ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` ++test "x$ac_build_alias" = x && ++ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ++ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || ++ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 ++$as_echo "$ac_cv_build" >&6; } ++case $ac_cv_build in ++*-*-*) ;; ++*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; ++esac ++build=$ac_cv_build ++ac_save_IFS=$IFS; IFS='-' ++set x $ac_cv_build ++shift ++build_cpu=$1 ++build_vendor=$2 ++shift; shift ++# Remember, the first character of IFS is used to create $*, ++# except with old shells: ++build_os=$* ++IFS=$ac_save_IFS ++case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 ++$as_echo_n "checking host system type... " >&6; } ++if ${ac_cv_host+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test "x$host_alias" = x; then ++ ac_cv_host=$ac_cv_build ++else ++ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || ++ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 ++fi ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 ++$as_echo "$ac_cv_host" >&6; } ++case $ac_cv_host in ++*-*-*) ;; ++*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; ++esac ++host=$ac_cv_host ++ac_save_IFS=$IFS; IFS='-' ++set x $ac_cv_host ++shift ++host_cpu=$1 ++host_vendor=$2 ++shift; shift ++# Remember, the first character of IFS is used to create $*, ++# except with old shells: ++host_os=$* ++IFS=$ac_save_IFS ++case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac ++ ++ ++ ++ ++am__api_version='1.15' ++ ++# Find a good install program. We prefer a C program (faster), ++# so one script is as good as another. But avoid the broken or ++# incompatible versions: ++# SysV /etc/install, /usr/sbin/install ++# SunOS /usr/etc/install ++# IRIX /sbin/install ++# AIX /bin/install ++# AmigaOS /C/install, which installs bootblocks on floppy discs ++# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag ++# AFS /usr/afsws/bin/install, which mishandles nonexistent args ++# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" ++# OS/2's system install, which has a completely different semantic ++# ./install, which can be erroneously created by make from ./install.sh. ++# Reject install programs that cannot install multiple files. ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 ++$as_echo_n "checking for a BSD-compatible install... " >&6; } ++if test -z "$INSTALL"; then ++if ${ac_cv_path_install+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ # Account for people who put trailing slashes in PATH elements. ++case $as_dir/ in #(( ++ ./ | .// | /[cC]/* | \ ++ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ++ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ ++ /usr/ucb/* ) ;; ++ *) ++ # OSF1 and SCO ODT 3.0 have their own names for install. ++ # Don't use installbsd from OSF since it installs stuff as root ++ # by default. ++ for ac_prog in ginstall scoinst install; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ++ if test $ac_prog = install && ++ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ++ # AIX install. It has an incompatible calling convention. ++ : ++ elif test $ac_prog = install && ++ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ++ # program-specific install script used by HP pwplus--don't use. ++ : ++ else ++ rm -rf conftest.one conftest.two conftest.dir ++ echo one > conftest.one ++ echo two > conftest.two ++ mkdir conftest.dir ++ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && ++ test -s conftest.one && test -s conftest.two && ++ test -s conftest.dir/conftest.one && ++ test -s conftest.dir/conftest.two ++ then ++ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" ++ break 3 ++ fi ++ fi ++ fi ++ done ++ done ++ ;; ++esac ++ ++ done ++IFS=$as_save_IFS ++ ++rm -rf conftest.one conftest.two conftest.dir ++ ++fi ++ if test "${ac_cv_path_install+set}" = set; then ++ INSTALL=$ac_cv_path_install ++ else ++ # As a last resort, use the slow shell script. Don't cache a ++ # value for INSTALL within a source directory, because that will ++ # break other packages using the cache if that directory is ++ # removed, or if the value is a relative name. ++ INSTALL=$ac_install_sh ++ fi ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 ++$as_echo "$INSTALL" >&6; } ++ ++# Use test -z because SunOS4 sh mishandles braces in ${var-val}. ++# It thinks the first close brace ends the variable substitution. ++test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' ++ ++test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' ++ ++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 ++$as_echo_n "checking whether build environment is sane... " >&6; } ++# Reject unsafe characters in $srcdir or the absolute working directory ++# name. Accept space and tab only in the latter. ++am_lf=' ++' ++case `pwd` in ++ *[\\\"\#\$\&\'\`$am_lf]*) ++ as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; ++esac ++case $srcdir in ++ *[\\\"\#\$\&\'\`$am_lf\ \ ]*) ++ as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; ++esac ++ ++# Do 'set' in a subshell so we don't clobber the current shell's ++# arguments. Must try -L first in case configure is actually a ++# symlink; some systems play weird games with the mod time of symlinks ++# (eg FreeBSD returns the mod time of the symlink's containing ++# directory). ++if ( ++ am_has_slept=no ++ for am_try in 1 2; do ++ echo "timestamp, slept: $am_has_slept" > conftest.file ++ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` ++ if test "$*" = "X"; then ++ # -L didn't work. ++ set X `ls -t "$srcdir/configure" conftest.file` ++ fi ++ if test "$*" != "X $srcdir/configure conftest.file" \ ++ && test "$*" != "X conftest.file $srcdir/configure"; then ++ ++ # If neither matched, then we have a broken ls. This can happen ++ # if, for instance, CONFIG_SHELL is bash and it inherits a ++ # broken ls alias from the environment. This has actually ++ # happened. Such a system could not be considered "sane". ++ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken ++ alias in your environment" "$LINENO" 5 ++ fi ++ if test "$2" = conftest.file || test $am_try -eq 2; then ++ break ++ fi ++ # Just in case. ++ sleep 1 ++ am_has_slept=yes ++ done ++ test "$2" = conftest.file ++ ) ++then ++ # Ok. ++ : ++else ++ as_fn_error $? "newly created file is older than distributed files! ++Check your system clock" "$LINENO" 5 ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; } ++# If we didn't sleep, we still need to ensure time stamps of config.status and ++# generated files are strictly newer. ++am_sleep_pid= ++if grep 'slept: no' conftest.file >/dev/null 2>&1; then ++ ( sleep 1 ) & ++ am_sleep_pid=$! ++fi ++ ++rm -f conftest.file ++ ++test "$program_prefix" != NONE && ++ program_transform_name="s&^&$program_prefix&;$program_transform_name" ++# Use a double $ so make ignores it. ++test "$program_suffix" != NONE && ++ program_transform_name="s&\$&$program_suffix&;$program_transform_name" ++# Double any \ or $. ++# By default was `s,x,x', remove it if useless. ++ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' ++program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` ++ ++# Expand $ac_aux_dir to an absolute path. ++am_aux_dir=`cd "$ac_aux_dir" && pwd` ++ ++if test x"${MISSING+set}" != xset; then ++ case $am_aux_dir in ++ *\ * | *\ *) ++ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; ++ *) ++ MISSING="\${SHELL} $am_aux_dir/missing" ;; ++ esac ++fi ++# Use eval to expand $SHELL ++if eval "$MISSING --is-lightweight"; then ++ am_missing_run="$MISSING " ++else ++ am_missing_run= ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 ++$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} ++fi ++ ++if test x"${install_sh+set}" != xset; then ++ case $am_aux_dir in ++ *\ * | *\ *) ++ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; ++ *) ++ install_sh="\${SHELL} $am_aux_dir/install-sh" ++ esac ++fi ++ ++# Installed binaries are usually stripped using 'strip' when the user ++# run "make install-strip". However 'strip' might not be the right ++# tool to use in cross-compilation environments, therefore Automake ++# will honor the 'STRIP' environment variable to overrule this program. ++if test "$cross_compiling" != no; then ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. ++set dummy ${ac_tool_prefix}strip; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_STRIP+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$STRIP"; then ++ ac_cv_prog_STRIP="$STRIP" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_STRIP="${ac_tool_prefix}strip" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++STRIP=$ac_cv_prog_STRIP ++if test -n "$STRIP"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 ++$as_echo "$STRIP" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_STRIP"; then ++ ac_ct_STRIP=$STRIP ++ # Extract the first word of "strip", so it can be a program name with args. ++set dummy strip; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_STRIP+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_STRIP"; then ++ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_STRIP="strip" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP ++if test -n "$ac_ct_STRIP"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 ++$as_echo "$ac_ct_STRIP" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_STRIP" = x; then ++ STRIP=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ STRIP=$ac_ct_STRIP ++ fi ++else ++ STRIP="$ac_cv_prog_STRIP" ++fi ++ ++fi ++INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 ++$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } ++if test -z "$MKDIR_P"; then ++ if ${ac_cv_path_mkdir+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_prog in mkdir gmkdir; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue ++ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( ++ 'mkdir (GNU coreutils) '* | \ ++ 'mkdir (coreutils) '* | \ ++ 'mkdir (fileutils) '4.1*) ++ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext ++ break 3;; ++ esac ++ done ++ done ++ done ++IFS=$as_save_IFS ++ ++fi ++ ++ test -d ./--version && rmdir ./--version ++ if test "${ac_cv_path_mkdir+set}" = set; then ++ MKDIR_P="$ac_cv_path_mkdir -p" ++ else ++ # As a last resort, use the slow shell script. Don't cache a ++ # value for MKDIR_P within a source directory, because that will ++ # break other packages using the cache if that directory is ++ # removed, or if the value is a relative name. ++ MKDIR_P="$ac_install_sh -d" ++ fi ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 ++$as_echo "$MKDIR_P" >&6; } ++ ++for ac_prog in gawk mawk nawk awk ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_AWK+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$AWK"; then ++ ac_cv_prog_AWK="$AWK" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_AWK="$ac_prog" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++AWK=$ac_cv_prog_AWK ++if test -n "$AWK"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 ++$as_echo "$AWK" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ test -n "$AWK" && break ++done ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 ++$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } ++set x ${MAKE-make} ++ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` ++if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat >conftest.make <<\_ACEOF ++SHELL = /bin/sh ++all: ++ @echo '@@@%%%=$(MAKE)=@@@%%%' ++_ACEOF ++# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. ++case `${MAKE-make} -f conftest.make 2>/dev/null` in ++ *@@@%%%=?*=@@@%%%*) ++ eval ac_cv_prog_make_${ac_make}_set=yes;; ++ *) ++ eval ac_cv_prog_make_${ac_make}_set=no;; ++esac ++rm -f conftest.make ++fi ++if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; } ++ SET_MAKE= ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++ SET_MAKE="MAKE=${MAKE-make}" ++fi ++ ++rm -rf .tst 2>/dev/null ++mkdir .tst 2>/dev/null ++if test -d .tst; then ++ am__leading_dot=. ++else ++ am__leading_dot=_ ++fi ++rmdir .tst 2>/dev/null ++ ++# Check whether --enable-silent-rules was given. ++if test "${enable_silent_rules+set}" = set; then : ++ enableval=$enable_silent_rules; ++fi ++ ++case $enable_silent_rules in # ((( ++ yes) AM_DEFAULT_VERBOSITY=0;; ++ no) AM_DEFAULT_VERBOSITY=1;; ++ *) AM_DEFAULT_VERBOSITY=1;; ++esac ++am_make=${MAKE-make} ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 ++$as_echo_n "checking whether $am_make supports nested variables... " >&6; } ++if ${am_cv_make_support_nested_variables+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if $as_echo 'TRUE=$(BAR$(V)) ++BAR0=false ++BAR1=true ++V=1 ++am__doit: ++ @$(TRUE) ++.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then ++ am_cv_make_support_nested_variables=yes ++else ++ am_cv_make_support_nested_variables=no ++fi ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 ++$as_echo "$am_cv_make_support_nested_variables" >&6; } ++if test $am_cv_make_support_nested_variables = yes; then ++ AM_V='$(V)' ++ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' ++else ++ AM_V=$AM_DEFAULT_VERBOSITY ++ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY ++fi ++AM_BACKSLASH='\' ++ ++if test "`cd $srcdir && pwd`" != "`pwd`"; then ++ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output ++ # is not polluted with repeated "-I." ++ am__isrc=' -I$(srcdir)' ++ # test to see if srcdir already configured ++ if test -f $srcdir/config.status; then ++ as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 ++ fi ++fi ++ ++# test whether we have cygpath ++if test -z "$CYGPATH_W"; then ++ if (cygpath --version) >/dev/null 2>/dev/null; then ++ CYGPATH_W='cygpath -w' ++ else ++ CYGPATH_W=echo ++ fi ++fi ++ ++ ++# Define the identity of the package. ++ ++ PACKAGE=hunspell ++ VERSION=1.6.0 ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE "$PACKAGE" ++_ACEOF ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define VERSION "$VERSION" ++_ACEOF ++ ++# Some tools Automake needs. ++ ++ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} ++ ++ ++AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} ++ ++ ++AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} ++ ++ ++AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} ++ ++ ++MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} ++ ++# For better backward compatibility. To be removed once Automake 1.9.x ++# dies out for good. For more background, see: ++# ++# ++mkdir_p='$(MKDIR_P)' ++ ++# We need awk for the "check" target (and possibly the TAP driver). The ++# system "awk" is bad on some platforms. ++# Always define AMTAR for backward compatibility. Yes, it's still used ++# in the wild :-( We should find a proper way to deprecate it ... ++AMTAR='$${TAR-tar}' ++ ++ ++# We'll loop over all known methods to create a tar archive until one works. ++_am_tools='gnutar pax cpio none' ++ ++am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' ++ ++ ++ ++ ++ ++ ++# POSIX will say in a future version that running "rm -f" with no argument ++# is OK; and we want to be able to make that assumption in our Makefile ++# recipes. So use an aggressive probe to check that the usage we want is ++# actually supported "in the wild" to an acceptable degree. ++# See automake bug#10828. ++# To make any issue more visible, cause the running configure to be aborted ++# by default if the 'rm' program in use doesn't match our expectations; the ++# user can still override this though. ++if rm -f && rm -fr && rm -rf; then : OK; else ++ cat >&2 <<'END' ++Oops! ++ ++Your 'rm' program seems unable to run without file operands specified ++on the command line, even when the '-f' option is present. This is contrary ++to the behaviour of most rm programs out there, and not conforming with ++the upcoming POSIX standard: ++ ++Please tell bug-automake@gnu.org about your system, including the value ++of your $PATH and any error possibly output before this message. This ++can help us improve future automake versions. ++ ++END ++ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then ++ echo 'Configuration will proceed anyway, since you have set the' >&2 ++ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 ++ echo >&2 ++ else ++ cat >&2 <<'END' ++Aborting the configuration process, to ensure you take notice of the issue. ++ ++You can download and install GNU coreutils to get an 'rm' implementation ++that behaves properly: . ++ ++If you want to complete the configuration process using your problematic ++'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM ++to "yes", and re-run configure. ++ ++END ++ as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 ++ fi ++fi ++ ++HUNSPELL_VERSION_MAJOR=`echo $VERSION | cut -d"." -f1` ++HUNSPELL_VERSION_MINOR=`echo $VERSION | cut -d"." -f2` ++ ++ ++ ++ ++ac_config_headers="$ac_config_headers config.h" ++ ++ ++# Checks for programs. ++ac_ext=cpp ++ac_cpp='$CXXCPP $CPPFLAGS' ++ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ++if test -z "$CXX"; then ++ if test -n "$CCC"; then ++ CXX=$CCC ++ else ++ if test -n "$ac_tool_prefix"; then ++ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC ++ do ++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ++set dummy $ac_tool_prefix$ac_prog; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_CXX+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$CXX"; then ++ ac_cv_prog_CXX="$CXX" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++CXX=$ac_cv_prog_CXX ++if test -n "$CXX"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 ++$as_echo "$CXX" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ test -n "$CXX" && break ++ done ++fi ++if test -z "$CXX"; then ++ ac_ct_CXX=$CXX ++ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_CXX+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_CXX"; then ++ ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_CXX="$ac_prog" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_CXX=$ac_cv_prog_ac_ct_CXX ++if test -n "$ac_ct_CXX"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 ++$as_echo "$ac_ct_CXX" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ test -n "$ac_ct_CXX" && break ++done ++ ++ if test "x$ac_ct_CXX" = x; then ++ CXX="g++" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ CXX=$ac_ct_CXX ++ fi ++fi ++ ++ fi ++fi ++# Provide some information about the compiler. ++$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 ++set X $ac_compile ++ac_compiler=$2 ++for ac_option in --version -v -V -qversion; do ++ { { ac_try="$ac_compiler $ac_option >&5" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" ++$as_echo "$ac_try_echo"; } >&5 ++ (eval "$ac_compiler $ac_option >&5") 2>conftest.err ++ ac_status=$? ++ if test -s conftest.err; then ++ sed '10a\ ++... rest of stderr output deleted ... ++ 10q' conftest.err >conftest.er1 ++ cat conftest.er1 >&5 ++ fi ++ rm -f conftest.er1 conftest.err ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++done ++ ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++ac_clean_files_save=$ac_clean_files ++ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" ++# Try to create an executable without -o first, disregard a.out. ++# It will help us diagnose broken compilers, and finding out an intuition ++# of exeext. ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5 ++$as_echo_n "checking whether the C++ compiler works... " >&6; } ++ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` ++ ++# The possible output files: ++ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ++ ++ac_rmfiles= ++for ac_file in $ac_files ++do ++ case $ac_file in ++ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; ++ * ) ac_rmfiles="$ac_rmfiles $ac_file";; ++ esac ++done ++rm -f $ac_rmfiles ++ ++if { { ac_try="$ac_link_default" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" ++$as_echo "$ac_try_echo"; } >&5 ++ (eval "$ac_link_default") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; then : ++ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. ++# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' ++# in a Makefile. We should not override ac_cv_exeext if it was cached, ++# so that the user can short-circuit this test for compilers unknown to ++# Autoconf. ++for ac_file in $ac_files '' ++do ++ test -f "$ac_file" || continue ++ case $ac_file in ++ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ++ ;; ++ [ab].out ) ++ # We found the default executable, but exeext='' is most ++ # certainly right. ++ break;; ++ *.* ) ++ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; ++ then :; else ++ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ++ fi ++ # We set ac_cv_exeext here because the later test for it is not ++ # safe: cross compilers may not add the suffix if given an `-o' ++ # argument, so we may need to know it at that point already. ++ # Even if this section looks crufty: it has the advantage of ++ # actually working. ++ break;; ++ * ) ++ break;; ++ esac ++done ++test "$ac_cv_exeext" = no && ac_cv_exeext= ++ ++else ++ ac_file='' ++fi ++if test -z "$ac_file"; then : ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++$as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++as_fn_error 77 "C++ compiler cannot create executables ++See \`config.log' for more details" "$LINENO" 5; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; } ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler default output file name" >&5 ++$as_echo_n "checking for C++ compiler default output file name... " >&6; } ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 ++$as_echo "$ac_file" >&6; } ++ac_exeext=$ac_cv_exeext ++ ++rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ++ac_clean_files=$ac_clean_files_save ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 ++$as_echo_n "checking for suffix of executables... " >&6; } ++if { { ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" ++$as_echo "$ac_try_echo"; } >&5 ++ (eval "$ac_link") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; then : ++ # If both `conftest.exe' and `conftest' are `present' (well, observable) ++# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will ++# work properly (i.e., refer to `conftest.exe'), while it won't with ++# `rm'. ++for ac_file in conftest.exe conftest conftest.*; do ++ test -f "$ac_file" || continue ++ case $ac_file in ++ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; ++ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ++ break;; ++ * ) break;; ++ esac ++done ++else ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++as_fn_error $? "cannot compute suffix of executables: cannot compile and link ++See \`config.log' for more details" "$LINENO" 5; } ++fi ++rm -f conftest conftest$ac_cv_exeext ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 ++$as_echo "$ac_cv_exeext" >&6; } ++ ++rm -f conftest.$ac_ext ++EXEEXT=$ac_cv_exeext ++ac_exeext=$EXEEXT ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++int ++main () ++{ ++FILE *f = fopen ("conftest.out", "w"); ++ return ferror (f) || fclose (f) != 0; ++ ++ ; ++ return 0; ++} ++_ACEOF ++ac_clean_files="$ac_clean_files conftest.out" ++# Check that the compiler produces executables we can run. If not, either ++# the compiler is broken, or we cross compile. ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 ++$as_echo_n "checking whether we are cross compiling... " >&6; } ++if test "$cross_compiling" != yes; then ++ { { ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" ++$as_echo "$ac_try_echo"; } >&5 ++ (eval "$ac_link") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if { ac_try='./conftest$ac_cv_exeext' ++ { { case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" ++$as_echo "$ac_try_echo"; } >&5 ++ (eval "$ac_try") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; }; then ++ cross_compiling=no ++ else ++ if test "$cross_compiling" = maybe; then ++ cross_compiling=yes ++ else ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++as_fn_error $? "cannot run C++ compiled programs. ++If you meant to cross compile, use \`--host'. ++See \`config.log' for more details" "$LINENO" 5; } ++ fi ++ fi ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 ++$as_echo "$cross_compiling" >&6; } ++ ++rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ++ac_clean_files=$ac_clean_files_save ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 ++$as_echo_n "checking for suffix of object files... " >&6; } ++if ${ac_cv_objext+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.o conftest.obj ++if { { ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" ++$as_echo "$ac_try_echo"; } >&5 ++ (eval "$ac_compile") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; then : ++ for ac_file in conftest.o conftest.obj conftest.*; do ++ test -f "$ac_file" || continue; ++ case $ac_file in ++ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; ++ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` ++ break;; ++ esac ++done ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++as_fn_error $? "cannot compute suffix of object files: cannot compile ++See \`config.log' for more details" "$LINENO" 5; } ++fi ++rm -f conftest.$ac_cv_objext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 ++$as_echo "$ac_cv_objext" >&6; } ++OBJEXT=$ac_cv_objext ++ac_objext=$OBJEXT ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 ++$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } ++if ${ac_cv_cxx_compiler_gnu+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++#ifndef __GNUC__ ++ choke me ++#endif ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_cxx_try_compile "$LINENO"; then : ++ ac_compiler_gnu=yes ++else ++ ac_compiler_gnu=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ac_cv_cxx_compiler_gnu=$ac_compiler_gnu ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 ++$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } ++if test $ac_compiler_gnu = yes; then ++ GXX=yes ++else ++ GXX= ++fi ++ac_test_CXXFLAGS=${CXXFLAGS+set} ++ac_save_CXXFLAGS=$CXXFLAGS ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 ++$as_echo_n "checking whether $CXX accepts -g... " >&6; } ++if ${ac_cv_prog_cxx_g+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_save_cxx_werror_flag=$ac_cxx_werror_flag ++ ac_cxx_werror_flag=yes ++ ac_cv_prog_cxx_g=no ++ CXXFLAGS="-g" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_cxx_try_compile "$LINENO"; then : ++ ac_cv_prog_cxx_g=yes ++else ++ CXXFLAGS="" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_cxx_try_compile "$LINENO"; then : ++ ++else ++ ac_cxx_werror_flag=$ac_save_cxx_werror_flag ++ CXXFLAGS="-g" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_cxx_try_compile "$LINENO"; then : ++ ac_cv_prog_cxx_g=yes ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ac_cxx_werror_flag=$ac_save_cxx_werror_flag ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 ++$as_echo "$ac_cv_prog_cxx_g" >&6; } ++if test "$ac_test_CXXFLAGS" = set; then ++ CXXFLAGS=$ac_save_CXXFLAGS ++elif test $ac_cv_prog_cxx_g = yes; then ++ if test "$GXX" = yes; then ++ CXXFLAGS="-g -O2" ++ else ++ CXXFLAGS="-g" ++ fi ++else ++ if test "$GXX" = yes; then ++ CXXFLAGS="-O2" ++ else ++ CXXFLAGS= ++ fi ++fi ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++DEPDIR="${am__leading_dot}deps" ++ ++ac_config_commands="$ac_config_commands depfiles" ++ ++ ++am_make=${MAKE-make} ++cat > confinc << 'END' ++am__doit: ++ @echo this is the am__doit target ++.PHONY: am__doit ++END ++# If we don't find an include directive, just comment out the code. ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 ++$as_echo_n "checking for style of include used by $am_make... " >&6; } ++am__include="#" ++am__quote= ++_am_result=none ++# First try GNU make style include. ++echo "include confinc" > confmf ++# Ignore all kinds of additional output from 'make'. ++case `$am_make -s -f confmf 2> /dev/null` in #( ++*the\ am__doit\ target*) ++ am__include=include ++ am__quote= ++ _am_result=GNU ++ ;; ++esac ++# Now try BSD make style include. ++if test "$am__include" = "#"; then ++ echo '.include "confinc"' > confmf ++ case `$am_make -s -f confmf 2> /dev/null` in #( ++ *the\ am__doit\ target*) ++ am__include=.include ++ am__quote="\"" ++ _am_result=BSD ++ ;; ++ esac ++fi ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 ++$as_echo "$_am_result" >&6; } ++rm -f confinc confmf ++ ++# Check whether --enable-dependency-tracking was given. ++if test "${enable_dependency_tracking+set}" = set; then : ++ enableval=$enable_dependency_tracking; ++fi ++ ++if test "x$enable_dependency_tracking" != xno; then ++ am_depcomp="$ac_aux_dir/depcomp" ++ AMDEPBACKSLASH='\' ++ am__nodep='_no' ++fi ++ if test "x$enable_dependency_tracking" != xno; then ++ AMDEP_TRUE= ++ AMDEP_FALSE='#' ++else ++ AMDEP_TRUE='#' ++ AMDEP_FALSE= ++fi ++ ++ ++ ++depcc="$CXX" am_compiler_list= ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 ++$as_echo_n "checking dependency style of $depcc... " >&6; } ++if ${am_cv_CXX_dependencies_compiler_type+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then ++ # We make a subdir and do the tests there. Otherwise we can end up ++ # making bogus files that we don't know about and never remove. For ++ # instance it was reported that on HP-UX the gcc test will end up ++ # making a dummy file named 'D' -- because '-MD' means "put the output ++ # in D". ++ rm -rf conftest.dir ++ mkdir conftest.dir ++ # Copy depcomp to subdir because otherwise we won't find it if we're ++ # using a relative directory. ++ cp "$am_depcomp" conftest.dir ++ cd conftest.dir ++ # We will build objects and dependencies in a subdirectory because ++ # it helps to detect inapplicable dependency modes. For instance ++ # both Tru64's cc and ICC support -MD to output dependencies as a ++ # side effect of compilation, but ICC will put the dependencies in ++ # the current directory while Tru64 will put them in the object ++ # directory. ++ mkdir sub ++ ++ am_cv_CXX_dependencies_compiler_type=none ++ if test "$am_compiler_list" = ""; then ++ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` ++ fi ++ am__universal=false ++ case " $depcc " in #( ++ *\ -arch\ *\ -arch\ *) am__universal=true ;; ++ esac ++ ++ for depmode in $am_compiler_list; do ++ # Setup a source with many dependencies, because some compilers ++ # like to wrap large dependency lists on column 80 (with \), and ++ # we should not choose a depcomp mode which is confused by this. ++ # ++ # We need to recreate these files for each test, as the compiler may ++ # overwrite some of them when testing with obscure command lines. ++ # This happens at least with the AIX C compiler. ++ : > sub/conftest.c ++ for i in 1 2 3 4 5 6; do ++ echo '#include "conftst'$i'.h"' >> sub/conftest.c ++ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with ++ # Solaris 10 /bin/sh. ++ echo '/* dummy */' > sub/conftst$i.h ++ done ++ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf ++ ++ # We check with '-c' and '-o' for the sake of the "dashmstdout" ++ # mode. It turns out that the SunPro C++ compiler does not properly ++ # handle '-M -o', and we need to detect this. Also, some Intel ++ # versions had trouble with output in subdirs. ++ am__obj=sub/conftest.${OBJEXT-o} ++ am__minus_obj="-o $am__obj" ++ case $depmode in ++ gcc) ++ # This depmode causes a compiler race in universal mode. ++ test "$am__universal" = false || continue ++ ;; ++ nosideeffect) ++ # After this tag, mechanisms are not by side-effect, so they'll ++ # only be used when explicitly requested. ++ if test "x$enable_dependency_tracking" = xyes; then ++ continue ++ else ++ break ++ fi ++ ;; ++ msvc7 | msvc7msys | msvisualcpp | msvcmsys) ++ # This compiler won't grok '-c -o', but also, the minuso test has ++ # not run yet. These depmodes are late enough in the game, and ++ # so weak that their functioning should not be impacted. ++ am__obj=conftest.${OBJEXT-o} ++ am__minus_obj= ++ ;; ++ none) break ;; ++ esac ++ if depmode=$depmode \ ++ source=sub/conftest.c object=$am__obj \ ++ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ ++ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ ++ >/dev/null 2>conftest.err && ++ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && ++ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && ++ grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ++ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then ++ # icc doesn't choke on unknown options, it will just issue warnings ++ # or remarks (even with -Werror). So we grep stderr for any message ++ # that says an option was ignored or not supported. ++ # When given -MP, icc 7.0 and 7.1 complain thusly: ++ # icc: Command line warning: ignoring option '-M'; no argument required ++ # The diagnosis changed in icc 8.0: ++ # icc: Command line remark: option '-MP' not supported ++ if (grep 'ignoring option' conftest.err || ++ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else ++ am_cv_CXX_dependencies_compiler_type=$depmode ++ break ++ fi ++ fi ++ done ++ ++ cd .. ++ rm -rf conftest.dir ++else ++ am_cv_CXX_dependencies_compiler_type=none ++fi ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 ++$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } ++CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type ++ ++ if ++ test "x$enable_dependency_tracking" != xno \ ++ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then ++ am__fastdepCXX_TRUE= ++ am__fastdepCXX_FALSE='#' ++else ++ am__fastdepCXX_TRUE='#' ++ am__fastdepCXX_FALSE= ++fi ++ ++ ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. ++set dummy ${ac_tool_prefix}gcc; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_CC+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$CC"; then ++ ac_cv_prog_CC="$CC" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_CC="${ac_tool_prefix}gcc" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++CC=$ac_cv_prog_CC ++if test -n "$CC"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 ++$as_echo "$CC" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_CC"; then ++ ac_ct_CC=$CC ++ # Extract the first word of "gcc", so it can be a program name with args. ++set dummy gcc; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_CC+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_CC"; then ++ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_CC="gcc" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_CC=$ac_cv_prog_ac_ct_CC ++if test -n "$ac_ct_CC"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 ++$as_echo "$ac_ct_CC" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_CC" = x; then ++ CC="" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ CC=$ac_ct_CC ++ fi ++else ++ CC="$ac_cv_prog_CC" ++fi ++ ++if test -z "$CC"; then ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. ++set dummy ${ac_tool_prefix}cc; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_CC+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$CC"; then ++ ac_cv_prog_CC="$CC" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_CC="${ac_tool_prefix}cc" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++CC=$ac_cv_prog_CC ++if test -n "$CC"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 ++$as_echo "$CC" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ fi ++fi ++if test -z "$CC"; then ++ # Extract the first word of "cc", so it can be a program name with args. ++set dummy cc; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_CC+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$CC"; then ++ ac_cv_prog_CC="$CC" # Let the user override the test. ++else ++ ac_prog_rejected=no ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ++ ac_prog_rejected=yes ++ continue ++ fi ++ ac_cv_prog_CC="cc" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++if test $ac_prog_rejected = yes; then ++ # We found a bogon in the path, so make sure we never use it. ++ set dummy $ac_cv_prog_CC ++ shift ++ if test $# != 0; then ++ # We chose a different compiler from the bogus one. ++ # However, it has the same basename, so the bogon will be chosen ++ # first if we set CC to just the basename; use the full file name. ++ shift ++ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" ++ fi ++fi ++fi ++fi ++CC=$ac_cv_prog_CC ++if test -n "$CC"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 ++$as_echo "$CC" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$CC"; then ++ if test -n "$ac_tool_prefix"; then ++ for ac_prog in cl.exe ++ do ++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ++set dummy $ac_tool_prefix$ac_prog; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_CC+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$CC"; then ++ ac_cv_prog_CC="$CC" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_CC="$ac_tool_prefix$ac_prog" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++CC=$ac_cv_prog_CC ++if test -n "$CC"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 ++$as_echo "$CC" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ test -n "$CC" && break ++ done ++fi ++if test -z "$CC"; then ++ ac_ct_CC=$CC ++ for ac_prog in cl.exe ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_CC+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_CC"; then ++ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_CC="$ac_prog" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_CC=$ac_cv_prog_ac_ct_CC ++if test -n "$ac_ct_CC"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 ++$as_echo "$ac_ct_CC" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ test -n "$ac_ct_CC" && break ++done ++ ++ if test "x$ac_ct_CC" = x; then ++ CC="" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ CC=$ac_ct_CC ++ fi ++fi ++ ++fi ++ ++ ++test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++as_fn_error $? "no acceptable C compiler found in \$PATH ++See \`config.log' for more details" "$LINENO" 5; } ++ ++# Provide some information about the compiler. ++$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 ++set X $ac_compile ++ac_compiler=$2 ++for ac_option in --version -v -V -qversion; do ++ { { ac_try="$ac_compiler $ac_option >&5" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" ++$as_echo "$ac_try_echo"; } >&5 ++ (eval "$ac_compiler $ac_option >&5") 2>conftest.err ++ ac_status=$? ++ if test -s conftest.err; then ++ sed '10a\ ++... rest of stderr output deleted ... ++ 10q' conftest.err >conftest.er1 ++ cat conftest.er1 >&5 ++ fi ++ rm -f conftest.er1 conftest.err ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++done ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 ++$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } ++if ${ac_cv_c_compiler_gnu+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++#ifndef __GNUC__ ++ choke me ++#endif ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_compiler_gnu=yes ++else ++ ac_compiler_gnu=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ac_cv_c_compiler_gnu=$ac_compiler_gnu ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 ++$as_echo "$ac_cv_c_compiler_gnu" >&6; } ++if test $ac_compiler_gnu = yes; then ++ GCC=yes ++else ++ GCC= ++fi ++ac_test_CFLAGS=${CFLAGS+set} ++ac_save_CFLAGS=$CFLAGS ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 ++$as_echo_n "checking whether $CC accepts -g... " >&6; } ++if ${ac_cv_prog_cc_g+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_save_c_werror_flag=$ac_c_werror_flag ++ ac_c_werror_flag=yes ++ ac_cv_prog_cc_g=no ++ CFLAGS="-g" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_prog_cc_g=yes ++else ++ CFLAGS="" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ++else ++ ac_c_werror_flag=$ac_save_c_werror_flag ++ CFLAGS="-g" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_prog_cc_g=yes ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ac_c_werror_flag=$ac_save_c_werror_flag ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 ++$as_echo "$ac_cv_prog_cc_g" >&6; } ++if test "$ac_test_CFLAGS" = set; then ++ CFLAGS=$ac_save_CFLAGS ++elif test $ac_cv_prog_cc_g = yes; then ++ if test "$GCC" = yes; then ++ CFLAGS="-g -O2" ++ else ++ CFLAGS="-g" ++ fi ++else ++ if test "$GCC" = yes; then ++ CFLAGS="-O2" ++ else ++ CFLAGS= ++ fi ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 ++$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } ++if ${ac_cv_prog_cc_c89+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_cv_prog_cc_c89=no ++ac_save_CC=$CC ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++#include ++struct stat; ++/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ ++struct buf { int x; }; ++FILE * (*rcsopen) (struct buf *, struct stat *, int); ++static char *e (p, i) ++ char **p; ++ int i; ++{ ++ return p[i]; ++} ++static char *f (char * (*g) (char **, int), char **p, ...) ++{ ++ char *s; ++ va_list v; ++ va_start (v,p); ++ s = g (p, va_arg (v,int)); ++ va_end (v); ++ return s; ++} ++ ++/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has ++ function prototypes and stuff, but not '\xHH' hex character constants. ++ These don't provoke an error unfortunately, instead are silently treated ++ as 'x'. The following induces an error, until -std is added to get ++ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an ++ array size at least. It's necessary to write '\x00'==0 to get something ++ that's true only with -std. */ ++int osf4_cc_array ['\x00' == 0 ? 1 : -1]; ++ ++/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters ++ inside strings and character constants. */ ++#define FOO(x) 'x' ++int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; ++ ++int test (int i, double x); ++struct s1 {int (*f) (int a);}; ++struct s2 {int (*f) (double a);}; ++int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); ++int argc; ++char **argv; ++int ++main () ++{ ++return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ++ ; ++ return 0; ++} ++_ACEOF ++for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ ++ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" ++do ++ CC="$ac_save_CC $ac_arg" ++ if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_prog_cc_c89=$ac_arg ++fi ++rm -f core conftest.err conftest.$ac_objext ++ test "x$ac_cv_prog_cc_c89" != "xno" && break ++done ++rm -f conftest.$ac_ext ++CC=$ac_save_CC ++ ++fi ++# AC_CACHE_VAL ++case "x$ac_cv_prog_cc_c89" in ++ x) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 ++$as_echo "none needed" >&6; } ;; ++ xno) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 ++$as_echo "unsupported" >&6; } ;; ++ *) ++ CC="$CC $ac_cv_prog_cc_c89" ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 ++$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; ++esac ++if test "x$ac_cv_prog_cc_c89" != xno; then : ++ ++fi ++ ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 ++$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } ++if ${am_cv_prog_cc_c_o+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++ # Make sure it works both with $CC and with simple cc. ++ # Following AC_PROG_CC_C_O, we do the test twice because some ++ # compilers refuse to overwrite an existing .o file with -o, ++ # though they will create one. ++ am_cv_prog_cc_c_o=yes ++ for am_i in 1 2; do ++ if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ++ ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } \ ++ && test -f conftest2.$ac_objext; then ++ : OK ++ else ++ am_cv_prog_cc_c_o=no ++ break ++ fi ++ done ++ rm -f core conftest* ++ unset am_i ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 ++$as_echo "$am_cv_prog_cc_c_o" >&6; } ++if test "$am_cv_prog_cc_c_o" != yes; then ++ # Losing compiler, so override with the script. ++ # FIXME: It is wrong to rewrite CC. ++ # But if we don't then we get into trouble of one sort or another. ++ # A longer-term fix would be to have automake use am__CC in this case, ++ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" ++ CC="$am_aux_dir/compile $CC" ++fi ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++ ++depcc="$CC" am_compiler_list= ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 ++$as_echo_n "checking dependency style of $depcc... " >&6; } ++if ${am_cv_CC_dependencies_compiler_type+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then ++ # We make a subdir and do the tests there. Otherwise we can end up ++ # making bogus files that we don't know about and never remove. For ++ # instance it was reported that on HP-UX the gcc test will end up ++ # making a dummy file named 'D' -- because '-MD' means "put the output ++ # in D". ++ rm -rf conftest.dir ++ mkdir conftest.dir ++ # Copy depcomp to subdir because otherwise we won't find it if we're ++ # using a relative directory. ++ cp "$am_depcomp" conftest.dir ++ cd conftest.dir ++ # We will build objects and dependencies in a subdirectory because ++ # it helps to detect inapplicable dependency modes. For instance ++ # both Tru64's cc and ICC support -MD to output dependencies as a ++ # side effect of compilation, but ICC will put the dependencies in ++ # the current directory while Tru64 will put them in the object ++ # directory. ++ mkdir sub ++ ++ am_cv_CC_dependencies_compiler_type=none ++ if test "$am_compiler_list" = ""; then ++ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` ++ fi ++ am__universal=false ++ case " $depcc " in #( ++ *\ -arch\ *\ -arch\ *) am__universal=true ;; ++ esac ++ ++ for depmode in $am_compiler_list; do ++ # Setup a source with many dependencies, because some compilers ++ # like to wrap large dependency lists on column 80 (with \), and ++ # we should not choose a depcomp mode which is confused by this. ++ # ++ # We need to recreate these files for each test, as the compiler may ++ # overwrite some of them when testing with obscure command lines. ++ # This happens at least with the AIX C compiler. ++ : > sub/conftest.c ++ for i in 1 2 3 4 5 6; do ++ echo '#include "conftst'$i'.h"' >> sub/conftest.c ++ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with ++ # Solaris 10 /bin/sh. ++ echo '/* dummy */' > sub/conftst$i.h ++ done ++ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf ++ ++ # We check with '-c' and '-o' for the sake of the "dashmstdout" ++ # mode. It turns out that the SunPro C++ compiler does not properly ++ # handle '-M -o', and we need to detect this. Also, some Intel ++ # versions had trouble with output in subdirs. ++ am__obj=sub/conftest.${OBJEXT-o} ++ am__minus_obj="-o $am__obj" ++ case $depmode in ++ gcc) ++ # This depmode causes a compiler race in universal mode. ++ test "$am__universal" = false || continue ++ ;; ++ nosideeffect) ++ # After this tag, mechanisms are not by side-effect, so they'll ++ # only be used when explicitly requested. ++ if test "x$enable_dependency_tracking" = xyes; then ++ continue ++ else ++ break ++ fi ++ ;; ++ msvc7 | msvc7msys | msvisualcpp | msvcmsys) ++ # This compiler won't grok '-c -o', but also, the minuso test has ++ # not run yet. These depmodes are late enough in the game, and ++ # so weak that their functioning should not be impacted. ++ am__obj=conftest.${OBJEXT-o} ++ am__minus_obj= ++ ;; ++ none) break ;; ++ esac ++ if depmode=$depmode \ ++ source=sub/conftest.c object=$am__obj \ ++ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ ++ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ ++ >/dev/null 2>conftest.err && ++ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && ++ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && ++ grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ++ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then ++ # icc doesn't choke on unknown options, it will just issue warnings ++ # or remarks (even with -Werror). So we grep stderr for any message ++ # that says an option was ignored or not supported. ++ # When given -MP, icc 7.0 and 7.1 complain thusly: ++ # icc: Command line warning: ignoring option '-M'; no argument required ++ # The diagnosis changed in icc 8.0: ++ # icc: Command line remark: option '-MP' not supported ++ if (grep 'ignoring option' conftest.err || ++ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else ++ am_cv_CC_dependencies_compiler_type=$depmode ++ break ++ fi ++ fi ++ done ++ ++ cd .. ++ rm -rf conftest.dir ++else ++ am_cv_CC_dependencies_compiler_type=none ++fi ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 ++$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } ++CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type ++ ++ if ++ test "x$enable_dependency_tracking" != xno \ ++ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then ++ am__fastdepCC_TRUE= ++ am__fastdepCC_FALSE='#' ++else ++ am__fastdepCC_TRUE='#' ++ am__fastdepCC_FALSE= ++fi ++ ++ ++case `pwd` in ++ *\ * | *\ *) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 ++$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; ++esac ++ ++ ++ ++macro_version='2.4.6' ++macro_revision='2.4.6' ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ltmain=$ac_aux_dir/ltmain.sh ++ ++# Backslashify metacharacters that are still active within ++# double-quoted strings. ++sed_quote_subst='s/\(["`$\\]\)/\\\1/g' ++ ++# Same as above, but do not quote variable references. ++double_quote_subst='s/\(["`\\]\)/\\\1/g' ++ ++# Sed substitution to delay expansion of an escaped shell variable in a ++# double_quote_subst'ed string. ++delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' ++ ++# Sed substitution to delay expansion of an escaped single quote. ++delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' ++ ++# Sed substitution to avoid accidental globbing in evaled expressions ++no_glob_subst='s/\*/\\\*/g' ++ ++ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ++ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ++ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 ++$as_echo_n "checking how to print strings... " >&6; } ++# Test print first, because it will be a builtin if present. ++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ ++ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ++ ECHO='print -r --' ++elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ++ ECHO='printf %s\n' ++else ++ # Use this function as a fallback that always works. ++ func_fallback_echo () ++ { ++ eval 'cat <<_LTECHO_EOF ++$1 ++_LTECHO_EOF' ++ } ++ ECHO='func_fallback_echo' ++fi ++ ++# func_echo_all arg... ++# Invoke $ECHO with all args, space-separated. ++func_echo_all () ++{ ++ $ECHO "" ++} ++ ++case $ECHO in ++ printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 ++$as_echo "printf" >&6; } ;; ++ print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 ++$as_echo "print -r" >&6; } ;; ++ *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 ++$as_echo "cat" >&6; } ;; ++esac ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 ++$as_echo_n "checking for a sed that does not truncate output... " >&6; } ++if ${ac_cv_path_SED+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ ++ for ac_i in 1 2 3 4 5 6 7; do ++ ac_script="$ac_script$as_nl$ac_script" ++ done ++ echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed ++ { ac_script=; unset ac_script;} ++ if test -z "$SED"; then ++ ac_path_SED_found=false ++ # Loop through the user's path and test for each of PROGNAME-LIST ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_prog in sed gsed; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" ++ as_fn_executable_p "$ac_path_SED" || continue ++# Check for GNU ac_path_SED and select it if it is found. ++ # Check for GNU $ac_path_SED ++case `"$ac_path_SED" --version 2>&1` in ++*GNU*) ++ ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; ++*) ++ ac_count=0 ++ $as_echo_n 0123456789 >"conftest.in" ++ while : ++ do ++ cat "conftest.in" "conftest.in" >"conftest.tmp" ++ mv "conftest.tmp" "conftest.in" ++ cp "conftest.in" "conftest.nl" ++ $as_echo '' >> "conftest.nl" ++ "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break ++ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ++ as_fn_arith $ac_count + 1 && ac_count=$as_val ++ if test $ac_count -gt ${ac_path_SED_max-0}; then ++ # Best one so far, save it but keep looking for a better one ++ ac_cv_path_SED="$ac_path_SED" ++ ac_path_SED_max=$ac_count ++ fi ++ # 10*(2^10) chars as input seems more than enough ++ test $ac_count -gt 10 && break ++ done ++ rm -f conftest.in conftest.tmp conftest.nl conftest.out;; ++esac ++ ++ $ac_path_SED_found && break 3 ++ done ++ done ++ done ++IFS=$as_save_IFS ++ if test -z "$ac_cv_path_SED"; then ++ as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 ++ fi ++else ++ ac_cv_path_SED=$SED ++fi ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 ++$as_echo "$ac_cv_path_SED" >&6; } ++ SED="$ac_cv_path_SED" ++ rm -f conftest.sed ++ ++test -z "$SED" && SED=sed ++Xsed="$SED -e 1s/^X//" ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 ++$as_echo_n "checking for grep that handles long lines and -e... " >&6; } ++if ${ac_cv_path_GREP+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -z "$GREP"; then ++ ac_path_GREP_found=false ++ # Loop through the user's path and test for each of PROGNAME-LIST ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_prog in grep ggrep; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" ++ as_fn_executable_p "$ac_path_GREP" || continue ++# Check for GNU ac_path_GREP and select it if it is found. ++ # Check for GNU $ac_path_GREP ++case `"$ac_path_GREP" --version 2>&1` in ++*GNU*) ++ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; ++*) ++ ac_count=0 ++ $as_echo_n 0123456789 >"conftest.in" ++ while : ++ do ++ cat "conftest.in" "conftest.in" >"conftest.tmp" ++ mv "conftest.tmp" "conftest.in" ++ cp "conftest.in" "conftest.nl" ++ $as_echo 'GREP' >> "conftest.nl" ++ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break ++ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ++ as_fn_arith $ac_count + 1 && ac_count=$as_val ++ if test $ac_count -gt ${ac_path_GREP_max-0}; then ++ # Best one so far, save it but keep looking for a better one ++ ac_cv_path_GREP="$ac_path_GREP" ++ ac_path_GREP_max=$ac_count ++ fi ++ # 10*(2^10) chars as input seems more than enough ++ test $ac_count -gt 10 && break ++ done ++ rm -f conftest.in conftest.tmp conftest.nl conftest.out;; ++esac ++ ++ $ac_path_GREP_found && break 3 ++ done ++ done ++ done ++IFS=$as_save_IFS ++ if test -z "$ac_cv_path_GREP"; then ++ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 ++ fi ++else ++ ac_cv_path_GREP=$GREP ++fi ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 ++$as_echo "$ac_cv_path_GREP" >&6; } ++ GREP="$ac_cv_path_GREP" ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 ++$as_echo_n "checking for egrep... " >&6; } ++if ${ac_cv_path_EGREP+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 ++ then ac_cv_path_EGREP="$GREP -E" ++ else ++ if test -z "$EGREP"; then ++ ac_path_EGREP_found=false ++ # Loop through the user's path and test for each of PROGNAME-LIST ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_prog in egrep; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" ++ as_fn_executable_p "$ac_path_EGREP" || continue ++# Check for GNU ac_path_EGREP and select it if it is found. ++ # Check for GNU $ac_path_EGREP ++case `"$ac_path_EGREP" --version 2>&1` in ++*GNU*) ++ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; ++*) ++ ac_count=0 ++ $as_echo_n 0123456789 >"conftest.in" ++ while : ++ do ++ cat "conftest.in" "conftest.in" >"conftest.tmp" ++ mv "conftest.tmp" "conftest.in" ++ cp "conftest.in" "conftest.nl" ++ $as_echo 'EGREP' >> "conftest.nl" ++ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break ++ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ++ as_fn_arith $ac_count + 1 && ac_count=$as_val ++ if test $ac_count -gt ${ac_path_EGREP_max-0}; then ++ # Best one so far, save it but keep looking for a better one ++ ac_cv_path_EGREP="$ac_path_EGREP" ++ ac_path_EGREP_max=$ac_count ++ fi ++ # 10*(2^10) chars as input seems more than enough ++ test $ac_count -gt 10 && break ++ done ++ rm -f conftest.in conftest.tmp conftest.nl conftest.out;; ++esac ++ ++ $ac_path_EGREP_found && break 3 ++ done ++ done ++ done ++IFS=$as_save_IFS ++ if test -z "$ac_cv_path_EGREP"; then ++ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 ++ fi ++else ++ ac_cv_path_EGREP=$EGREP ++fi ++ ++ fi ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 ++$as_echo "$ac_cv_path_EGREP" >&6; } ++ EGREP="$ac_cv_path_EGREP" ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 ++$as_echo_n "checking for fgrep... " >&6; } ++if ${ac_cv_path_FGREP+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 ++ then ac_cv_path_FGREP="$GREP -F" ++ else ++ if test -z "$FGREP"; then ++ ac_path_FGREP_found=false ++ # Loop through the user's path and test for each of PROGNAME-LIST ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_prog in fgrep; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" ++ as_fn_executable_p "$ac_path_FGREP" || continue ++# Check for GNU ac_path_FGREP and select it if it is found. ++ # Check for GNU $ac_path_FGREP ++case `"$ac_path_FGREP" --version 2>&1` in ++*GNU*) ++ ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; ++*) ++ ac_count=0 ++ $as_echo_n 0123456789 >"conftest.in" ++ while : ++ do ++ cat "conftest.in" "conftest.in" >"conftest.tmp" ++ mv "conftest.tmp" "conftest.in" ++ cp "conftest.in" "conftest.nl" ++ $as_echo 'FGREP' >> "conftest.nl" ++ "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break ++ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ++ as_fn_arith $ac_count + 1 && ac_count=$as_val ++ if test $ac_count -gt ${ac_path_FGREP_max-0}; then ++ # Best one so far, save it but keep looking for a better one ++ ac_cv_path_FGREP="$ac_path_FGREP" ++ ac_path_FGREP_max=$ac_count ++ fi ++ # 10*(2^10) chars as input seems more than enough ++ test $ac_count -gt 10 && break ++ done ++ rm -f conftest.in conftest.tmp conftest.nl conftest.out;; ++esac ++ ++ $ac_path_FGREP_found && break 3 ++ done ++ done ++ done ++IFS=$as_save_IFS ++ if test -z "$ac_cv_path_FGREP"; then ++ as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 ++ fi ++else ++ ac_cv_path_FGREP=$FGREP ++fi ++ ++ fi ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 ++$as_echo "$ac_cv_path_FGREP" >&6; } ++ FGREP="$ac_cv_path_FGREP" ++ ++ ++test -z "$GREP" && GREP=grep ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++# Check whether --with-gnu-ld was given. ++if test "${with_gnu_ld+set}" = set; then : ++ withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes ++else ++ with_gnu_ld=no ++fi ++ ++ac_prog=ld ++if test yes = "$GCC"; then ++ # Check if gcc -print-prog-name=ld gives a path. ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 ++$as_echo_n "checking for ld used by $CC... " >&6; } ++ 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 yes = "$with_gnu_ld"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 ++$as_echo_n "checking for GNU ld... " >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 ++$as_echo_n "checking for non-GNU ld... " >&6; } ++fi ++if ${lt_cv_path_LD+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -z "$LD"; then ++ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ++ for ac_dir in $PATH; do ++ IFS=$lt_save_ifs ++ test -z "$ac_dir" && ac_dir=. ++ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then ++ lt_cv_path_LD=$ac_dir/$ac_prog ++ # Check to see if the program is GNU ld. I'd rather use --version, ++ # but apparently some variants of GNU ld only accept -v. ++ # Break only if it was the GNU/non-GNU ld that we prefer. ++ case `"$lt_cv_path_LD" -v 2>&1 &5 ++$as_echo "$LD" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 ++$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } ++if ${lt_cv_prog_gnu_ld+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ # I'd rather use --version here, but apparently some GNU lds only accept -v. ++case `$LD -v 2>&1 &5 ++$as_echo "$lt_cv_prog_gnu_ld" >&6; } ++with_gnu_ld=$lt_cv_prog_gnu_ld ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 ++$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } ++if ${lt_cv_path_NM+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$NM"; then ++ # Let the user override the test. ++ lt_cv_path_NM=$NM ++else ++ lt_nm_to_check=${ac_tool_prefix}nm ++ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then ++ lt_nm_to_check="$lt_nm_to_check nm" ++ fi ++ for lt_tmp_nm in $lt_nm_to_check; do ++ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ++ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do ++ IFS=$lt_save_ifs ++ test -z "$ac_dir" && ac_dir=. ++ tmp_nm=$ac_dir/$lt_tmp_nm ++ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then ++ # Check to see if the nm accepts a BSD-compat flag. ++ # Adding the 'sed 1q' prevents false positives on HP-UX, which says: ++ # nm: unknown option "B" ignored ++ # Tru64's nm complains that /dev/null is an invalid object file ++ # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty ++ case $build_os in ++ mingw*) lt_bad_file=conftest.nm/nofile ;; ++ *) lt_bad_file=/dev/null ;; ++ esac ++ case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in ++ *$lt_bad_file* | *'Invalid file or object type'*) ++ lt_cv_path_NM="$tmp_nm -B" ++ break 2 ++ ;; ++ *) ++ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in ++ */dev/null*) ++ lt_cv_path_NM="$tmp_nm -p" ++ break 2 ++ ;; ++ *) ++ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but ++ continue # so that we can try to find one that supports BSD flags ++ ;; ++ esac ++ ;; ++ esac ++ fi ++ done ++ IFS=$lt_save_ifs ++ done ++ : ${lt_cv_path_NM=no} ++fi ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 ++$as_echo "$lt_cv_path_NM" >&6; } ++if test no != "$lt_cv_path_NM"; then ++ NM=$lt_cv_path_NM ++else ++ # Didn't find any BSD compatible name lister, look for dumpbin. ++ if test -n "$DUMPBIN"; then : ++ # Let the user override the test. ++ else ++ if test -n "$ac_tool_prefix"; then ++ for ac_prog in dumpbin "link -dump" ++ do ++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ++set dummy $ac_tool_prefix$ac_prog; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_DUMPBIN+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$DUMPBIN"; then ++ ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++DUMPBIN=$ac_cv_prog_DUMPBIN ++if test -n "$DUMPBIN"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 ++$as_echo "$DUMPBIN" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ test -n "$DUMPBIN" && break ++ done ++fi ++if test -z "$DUMPBIN"; then ++ ac_ct_DUMPBIN=$DUMPBIN ++ for ac_prog in dumpbin "link -dump" ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_DUMPBIN"; then ++ ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN ++if test -n "$ac_ct_DUMPBIN"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 ++$as_echo "$ac_ct_DUMPBIN" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ test -n "$ac_ct_DUMPBIN" && break ++done ++ ++ if test "x$ac_ct_DUMPBIN" = x; then ++ DUMPBIN=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ DUMPBIN=$ac_ct_DUMPBIN ++ fi ++fi ++ ++ case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in ++ *COFF*) ++ DUMPBIN="$DUMPBIN -symbols -headers" ++ ;; ++ *) ++ DUMPBIN=: ++ ;; ++ esac ++ fi ++ ++ if test : != "$DUMPBIN"; then ++ NM=$DUMPBIN ++ fi ++fi ++test -z "$NM" && NM=nm ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 ++$as_echo_n "checking the name lister ($NM) interface... " >&6; } ++if ${lt_cv_nm_interface+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_nm_interface="BSD nm" ++ echo "int some_variable = 0;" > conftest.$ac_ext ++ (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) ++ (eval "$ac_compile" 2>conftest.err) ++ cat conftest.err >&5 ++ (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) ++ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) ++ cat conftest.err >&5 ++ (eval echo "\"\$as_me:$LINENO: output\"" >&5) ++ cat conftest.out >&5 ++ if $GREP 'External.*some_variable' conftest.out > /dev/null; then ++ lt_cv_nm_interface="MS dumpbin" ++ fi ++ rm -f conftest* ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 ++$as_echo "$lt_cv_nm_interface" >&6; } ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 ++$as_echo_n "checking whether ln -s works... " >&6; } ++LN_S=$as_ln_s ++if test "$LN_S" = "ln -s"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 ++$as_echo "no, using $LN_S" >&6; } ++fi ++ ++# find the maximum length of command line arguments ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 ++$as_echo_n "checking the maximum length of command line arguments... " >&6; } ++if ${lt_cv_sys_max_cmd_len+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ i=0 ++ teststring=ABCD ++ ++ case $build_os in ++ msdosdjgpp*) ++ # On DJGPP, this test can blow up pretty badly due to problems in libc ++ # (any single argument exceeding 2000 bytes causes a buffer overrun ++ # during glob expansion). Even if it were fixed, the result of this ++ # check would be larger than it should be. ++ lt_cv_sys_max_cmd_len=12288; # 12K is about right ++ ;; ++ ++ gnu*) ++ # Under GNU Hurd, this test is not required because there is ++ # no limit to the length of command line arguments. ++ # Libtool will interpret -1 as no limit whatsoever ++ lt_cv_sys_max_cmd_len=-1; ++ ;; ++ ++ cygwin* | mingw* | cegcc*) ++ # On Win9x/ME, this test blows up -- it succeeds, but takes ++ # about 5 minutes as the teststring grows exponentially. ++ # Worse, since 9x/ME are not pre-emptively multitasking, ++ # you end up with a "frozen" computer, even though with patience ++ # the test eventually succeeds (with a max line length of 256k). ++ # Instead, let's just punt: use the minimum linelength reported by ++ # all of the supported platforms: 8192 (on NT/2K/XP). ++ lt_cv_sys_max_cmd_len=8192; ++ ;; ++ ++ mint*) ++ # On MiNT this can take a long time and run out of memory. ++ lt_cv_sys_max_cmd_len=8192; ++ ;; ++ ++ amigaos*) ++ # On AmigaOS with pdksh, this test takes hours, literally. ++ # So we just punt and use a minimum line length of 8192. ++ lt_cv_sys_max_cmd_len=8192; ++ ;; ++ ++ bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) ++ # This has been around since 386BSD, at least. Likely further. ++ if test -x /sbin/sysctl; then ++ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` ++ elif test -x /usr/sbin/sysctl; then ++ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` ++ else ++ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs ++ fi ++ # And add a safety zone ++ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` ++ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ++ ;; ++ ++ interix*) ++ # We know the value 262144 and hardcode it with a safety zone (like BSD) ++ lt_cv_sys_max_cmd_len=196608 ++ ;; ++ ++ os2*) ++ # The test takes a long time on OS/2. ++ lt_cv_sys_max_cmd_len=8192 ++ ;; ++ ++ osf*) ++ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure ++ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not ++ # nice to cause kernel panics so lets avoid the loop below. ++ # First set a reasonable default. ++ lt_cv_sys_max_cmd_len=16384 ++ # ++ if test -x /sbin/sysconfig; then ++ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in ++ *1*) lt_cv_sys_max_cmd_len=-1 ;; ++ esac ++ fi ++ ;; ++ sco3.2v5*) ++ lt_cv_sys_max_cmd_len=102400 ++ ;; ++ sysv5* | sco5v6* | sysv4.2uw2*) ++ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` ++ if test -n "$kargmax"; then ++ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` ++ else ++ lt_cv_sys_max_cmd_len=32768 ++ fi ++ ;; ++ *) ++ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` ++ if test -n "$lt_cv_sys_max_cmd_len" && \ ++ test undefined != "$lt_cv_sys_max_cmd_len"; then ++ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` ++ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ++ else ++ # Make teststring a little bigger before we do anything with it. ++ # a 1K string should be a reasonable start. ++ for i in 1 2 3 4 5 6 7 8; do ++ teststring=$teststring$teststring ++ done ++ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} ++ # If test is not a shell built-in, we'll probably end up computing a ++ # maximum length that is only half of the actual maximum length, but ++ # we can't tell. ++ while { test X`env echo "$teststring$teststring" 2>/dev/null` \ ++ = "X$teststring$teststring"; } >/dev/null 2>&1 && ++ test 17 != "$i" # 1/2 MB should be enough ++ do ++ i=`expr $i + 1` ++ teststring=$teststring$teststring ++ done ++ # Only check the string length outside the loop. ++ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` ++ teststring= ++ # Add a significant safety factor because C++ compilers can tack on ++ # massive amounts of additional arguments before passing them to the ++ # linker. It appears as though 1/2 is a usable value. ++ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` ++ fi ++ ;; ++ esac ++ ++fi ++ ++if test -n "$lt_cv_sys_max_cmd_len"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 ++$as_echo "$lt_cv_sys_max_cmd_len" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 ++$as_echo "none" >&6; } ++fi ++max_cmd_len=$lt_cv_sys_max_cmd_len ++ ++ ++ ++ ++ ++ ++: ${CP="cp -f"} ++: ${MV="mv -f"} ++: ${RM="rm -f"} ++ ++if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then ++ lt_unset=unset ++else ++ lt_unset=false ++fi ++ ++ ++ ++ ++ ++# test EBCDIC or ASCII ++case `echo X|tr X '\101'` in ++ A) # ASCII based system ++ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr ++ lt_SP2NL='tr \040 \012' ++ lt_NL2SP='tr \015\012 \040\040' ++ ;; ++ *) # EBCDIC based system ++ lt_SP2NL='tr \100 \n' ++ lt_NL2SP='tr \r\n \100\100' ++ ;; ++esac ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 ++$as_echo_n "checking how to convert $build file names to $host format... " >&6; } ++if ${lt_cv_to_host_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ++ ;; ++ esac ++ ;; ++ *-*-cygwin* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ++ ;; ++ esac ++ ;; ++ * ) # unhandled hosts (and "normal" native builds) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++esac ++ ++fi ++ ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 ++$as_echo "$lt_cv_to_host_file_cmd" >&6; } ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 ++$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } ++if ${lt_cv_to_tool_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ #assume ordinary cross tools, or native build. ++lt_cv_to_tool_file_cmd=func_convert_file_noop ++case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ esac ++ ;; ++esac ++ ++fi ++ ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 ++$as_echo "$lt_cv_to_tool_file_cmd" >&6; } ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 ++$as_echo_n "checking for $LD option to reload object files... " >&6; } ++if ${lt_cv_ld_reload_flag+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_ld_reload_flag='-r' ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 ++$as_echo "$lt_cv_ld_reload_flag" >&6; } ++reload_flag=$lt_cv_ld_reload_flag ++case $reload_flag in ++"" | " "*) ;; ++*) reload_flag=" $reload_flag" ;; ++esac ++reload_cmds='$LD$reload_flag -o $output$reload_objs' ++case $host_os in ++ cygwin* | mingw* | pw32* | cegcc*) ++ if test yes != "$GCC"; then ++ reload_cmds=false ++ fi ++ ;; ++ darwin*) ++ if test yes = "$GCC"; then ++ reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' ++ else ++ reload_cmds='$LD$reload_flag -o $output$reload_objs' ++ fi ++ ;; ++esac ++ ++ ++ ++ ++ ++ ++ ++ ++ ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. ++set dummy ${ac_tool_prefix}objdump; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_OBJDUMP+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$OBJDUMP"; then ++ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++OBJDUMP=$ac_cv_prog_OBJDUMP ++if test -n "$OBJDUMP"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 ++$as_echo "$OBJDUMP" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_OBJDUMP"; then ++ ac_ct_OBJDUMP=$OBJDUMP ++ # Extract the first word of "objdump", so it can be a program name with args. ++set dummy objdump; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_OBJDUMP"; then ++ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_OBJDUMP="objdump" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP ++if test -n "$ac_ct_OBJDUMP"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 ++$as_echo "$ac_ct_OBJDUMP" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_OBJDUMP" = x; then ++ OBJDUMP="false" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ OBJDUMP=$ac_ct_OBJDUMP ++ fi ++else ++ OBJDUMP="$ac_cv_prog_OBJDUMP" ++fi ++ ++test -z "$OBJDUMP" && OBJDUMP=objdump ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 ++$as_echo_n "checking how to recognize dependent libraries... " >&6; } ++if ${lt_cv_deplibs_check_method+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_file_magic_cmd='$MAGIC_CMD' ++lt_cv_file_magic_test_file= ++lt_cv_deplibs_check_method='unknown' ++# Need to set the preceding variable on all platforms that support ++# interlibrary dependencies. ++# 'none' -- dependencies not supported. ++# 'unknown' -- same as none, but documents that we really don't know. ++# 'pass_all' -- all dependencies passed with no checks. ++# 'test_compile' -- check by making test program. ++# 'file_magic [[regex]]' -- check by looking for files in library path ++# that 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 ++ # Keep this pattern in sync with the one in func_win32_libid. ++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' ++ lt_cv_file_magic_cmd='$OBJDUMP -f' ++ fi ++ ;; ++ ++cegcc*) ++ # use the weaker test based on 'objdump'. See mingw*. ++ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' ++ lt_cv_file_magic_cmd='$OBJDUMP -f' ++ ;; ++ ++darwin* | rhapsody*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++freebsd* | dragonfly*) ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then ++ case $host_cpu in ++ i*86 ) ++ # Not sure whether the presence of OpenBSD here was a mistake. ++ # Let's accept both of them until this is cleared up. ++ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ++ ;; ++ esac ++ else ++ lt_cv_deplibs_check_method=pass_all ++ fi ++ ;; ++ ++haiku*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++hpux10.20* | hpux11*) ++ lt_cv_file_magic_cmd=/usr/bin/file ++ case $host_cpu in ++ ia64*) ++ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' ++ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ++ ;; ++ hppa*64*) ++ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' ++ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ++ ;; ++ *) ++ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' ++ lt_cv_file_magic_test_file=/usr/lib/libc.sl ++ ;; ++ esac ++ ;; ++ ++interix[3-9]*) ++ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here ++ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $LD in ++ *-32|*"-32 ") libmagic=32-bit;; ++ *-n32|*"-n32 ") libmagic=N32;; ++ *-64|*"-64 ") libmagic=64-bit;; ++ *) libmagic=never-match;; ++ esac ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++# This must be glibc/ELF. ++linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++netbsd*) ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then ++ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' ++ else ++ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' ++ fi ++ ;; ++ ++newos6*) ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=/usr/lib/libnls.so ++ ;; ++ ++*nto* | *qnx*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++openbsd* | bitrig*) ++ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then ++ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' ++ else ++ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' ++ fi ++ ;; ++ ++osf3* | osf4* | osf5*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++rdos*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++solaris*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sysv4 | sysv4.3*) ++ case $host_vendor in ++ motorola) ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ++ ;; ++ ncr) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ sequent) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ++ ;; ++ sni) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" ++ lt_cv_file_magic_test_file=/lib/libc.so ++ ;; ++ siemens) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ pc) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ esac ++ ;; ++ ++tpf*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++os2*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++esac ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 ++$as_echo "$lt_cv_deplibs_check_method" >&6; } ++ ++file_magic_glob= ++want_nocaseglob=no ++if test "$build" = "$host"; then ++ case $host_os in ++ mingw* | pw32*) ++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then ++ want_nocaseglob=yes ++ else ++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` ++ fi ++ ;; ++ esac ++fi ++ ++file_magic_cmd=$lt_cv_file_magic_cmd ++deplibs_check_method=$lt_cv_deplibs_check_method ++test -z "$deplibs_check_method" && deplibs_check_method=unknown ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. ++set dummy ${ac_tool_prefix}dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$DLLTOOL"; then ++ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++DLLTOOL=$ac_cv_prog_DLLTOOL ++if test -n "$DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 ++$as_echo "$DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_DLLTOOL"; then ++ ac_ct_DLLTOOL=$DLLTOOL ++ # Extract the first word of "dlltool", so it can be a program name with args. ++set dummy dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_DLLTOOL"; then ++ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_DLLTOOL="dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL ++if test -n "$ac_ct_DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 ++$as_echo "$ac_ct_DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_DLLTOOL" = x; then ++ DLLTOOL="false" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ DLLTOOL=$ac_ct_DLLTOOL ++ fi ++else ++ DLLTOOL="$ac_cv_prog_DLLTOOL" ++fi ++ ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 ++$as_echo_n "checking how to associate runtime and link libraries... " >&6; } ++if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_sharedlib_from_linklib_cmd='unknown' ++ ++case $host_os in ++cygwin* | mingw* | pw32* | cegcc*) ++ # two different shell functions defined in ltmain.sh; ++ # decide which one to use based on capabilities of $DLLTOOL ++ case `$DLLTOOL --help 2>&1` in ++ *--identify-strict*) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ++ ;; ++ *) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ++ ;; ++ esac ++ ;; ++*) ++ # fallback: assume linklib IS sharedlib ++ lt_cv_sharedlib_from_linklib_cmd=$ECHO ++ ;; ++esac ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 ++$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } ++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd ++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO ++ ++ ++ ++ ++ ++ ++ ++ ++if test -n "$ac_tool_prefix"; then ++ for ac_prog in ar ++ do ++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ++set dummy $ac_tool_prefix$ac_prog; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_AR+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$AR"; then ++ ac_cv_prog_AR="$AR" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++AR=$ac_cv_prog_AR ++if test -n "$AR"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 ++$as_echo "$AR" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ test -n "$AR" && break ++ done ++fi ++if test -z "$AR"; then ++ ac_ct_AR=$AR ++ for ac_prog in ar ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_AR+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_AR"; then ++ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_AR="$ac_prog" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_AR=$ac_cv_prog_ac_ct_AR ++if test -n "$ac_ct_AR"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 ++$as_echo "$ac_ct_AR" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ test -n "$ac_ct_AR" && break ++done ++ ++ if test "x$ac_ct_AR" = x; then ++ AR="false" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ AR=$ac_ct_AR ++ fi ++fi ++ ++: ${AR=ar} ++: ${AR_FLAGS=cru} ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 ++$as_echo_n "checking for archiver @FILE support... " >&6; } ++if ${lt_cv_ar_at_file+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_ar_at_file=no ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ echo conftest.$ac_objext > conftest.lst ++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test 0 -eq "$ac_status"; then ++ # Ensure the archiver fails upon bogus file names. ++ rm -f conftest.$ac_objext libconftest.a ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test 0 -ne "$ac_status"; then ++ lt_cv_ar_at_file=@ ++ fi ++ fi ++ rm -f conftest.* libconftest.a ++ ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 ++$as_echo "$lt_cv_ar_at_file" >&6; } ++ ++if test no = "$lt_cv_ar_at_file"; then ++ archiver_list_spec= ++else ++ archiver_list_spec=$lt_cv_ar_at_file ++fi ++ ++ ++ ++ ++ ++ ++ ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. ++set dummy ${ac_tool_prefix}strip; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_STRIP+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$STRIP"; then ++ ac_cv_prog_STRIP="$STRIP" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_STRIP="${ac_tool_prefix}strip" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++STRIP=$ac_cv_prog_STRIP ++if test -n "$STRIP"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 ++$as_echo "$STRIP" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_STRIP"; then ++ ac_ct_STRIP=$STRIP ++ # Extract the first word of "strip", so it can be a program name with args. ++set dummy strip; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_STRIP+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_STRIP"; then ++ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_STRIP="strip" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP ++if test -n "$ac_ct_STRIP"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 ++$as_echo "$ac_ct_STRIP" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_STRIP" = x; then ++ STRIP=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ STRIP=$ac_ct_STRIP ++ fi ++else ++ STRIP="$ac_cv_prog_STRIP" ++fi ++ ++test -z "$STRIP" && STRIP=: ++ ++ ++ ++ ++ ++ ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. ++set dummy ${ac_tool_prefix}ranlib; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_RANLIB+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$RANLIB"; then ++ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++RANLIB=$ac_cv_prog_RANLIB ++if test -n "$RANLIB"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 ++$as_echo "$RANLIB" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_RANLIB"; then ++ ac_ct_RANLIB=$RANLIB ++ # Extract the first word of "ranlib", so it can be a program name with args. ++set dummy ranlib; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_RANLIB"; then ++ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_RANLIB="ranlib" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB ++if test -n "$ac_ct_RANLIB"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 ++$as_echo "$ac_ct_RANLIB" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_RANLIB" = x; then ++ RANLIB=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ RANLIB=$ac_ct_RANLIB ++ fi ++else ++ RANLIB="$ac_cv_prog_RANLIB" ++fi ++ ++test -z "$RANLIB" && RANLIB=: ++ ++ ++ ++ ++ ++ ++# Determine commands to create old-style static archives. ++old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' ++old_postinstall_cmds='chmod 644 $oldlib' ++old_postuninstall_cmds= ++ ++if test -n "$RANLIB"; then ++ case $host_os in ++ bitrig* | openbsd*) ++ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ++ ;; ++ *) ++ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ++ ;; ++ esac ++ old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" ++fi ++ ++case $host_os in ++ darwin*) ++ lock_old_archive_extraction=yes ;; ++ *) ++ lock_old_archive_extraction=no ;; ++esac ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++# If no C compiler was specified, use CC. ++LTCC=${LTCC-"$CC"} ++ ++# If no C compiler flags were specified, use CFLAGS. ++LTCFLAGS=${LTCFLAGS-"$CFLAGS"} ++ ++# Allow CC to be a program name with arguments. ++compiler=$CC ++ ++ ++# Check for command to grab the raw symbol name followed by C symbol from nm. ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 ++$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } ++if ${lt_cv_sys_global_symbol_pipe+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ++# These are sane defaults that work on at least a few old systems. ++# [They come from Ultrix. What could be older than Ultrix?!! ;)] ++ ++# Character class describing NM global symbol codes. ++symcode='[BCDEGRST]' ++ ++# Regexp to match symbols that can be accessed directly from C. ++sympat='\([_A-Za-z][_A-Za-z0-9]*\)' ++ ++# Define system-specific variables. ++case $host_os in ++aix*) ++ symcode='[BCDT]' ++ ;; ++cygwin* | mingw* | pw32* | cegcc*) ++ symcode='[ABCDGISTW]' ++ ;; ++hpux*) ++ if test ia64 = "$host_cpu"; then ++ symcode='[ABCDEGRST]' ++ fi ++ ;; ++irix* | nonstopux*) ++ symcode='[BCDEGRST]' ++ ;; ++osf*) ++ symcode='[BCDEGQRST]' ++ ;; ++solaris*) ++ symcode='[BDRT]' ++ ;; ++sco3.2v5*) ++ symcode='[DT]' ++ ;; ++sysv4.2uw2*) ++ symcode='[DT]' ++ ;; ++sysv5* | sco5v6* | unixware* | OpenUNIX*) ++ symcode='[ABDT]' ++ ;; ++sysv4) ++ symcode='[DFNSTU]' ++ ;; ++esac ++ ++# If we're using GNU nm, then use its standard symbol codes. ++case `$NM -V 2>&1` in ++*GNU* | *'with BFD'*) ++ symcode='[ABCDGIRSTW]' ;; ++esac ++ ++if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ # Gets list of data symbols to import. ++ lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" ++ # Adjust the below global symbol transforms to fixup imported variables. ++ lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" ++ lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" ++ lt_c_name_lib_hook="\ ++ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ ++ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" ++else ++ # Disable hooks by default. ++ lt_cv_sys_global_symbol_to_import= ++ lt_cdecl_hook= ++ lt_c_name_hook= ++ lt_c_name_lib_hook= ++fi ++ ++# Transform an extracted symbol line into a proper C declaration. ++# Some systems (esp. on ia64) link data and code symbols differently, ++# so use this general approach. ++lt_cv_sys_global_symbol_to_cdecl="sed -n"\ ++$lt_cdecl_hook\ ++" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ ++" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" ++ ++# Transform an extracted symbol line into symbol name and symbol address ++lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ ++$lt_c_name_hook\ ++" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ ++" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" ++ ++# Transform an extracted symbol line into symbol name with lib prefix and ++# symbol address. ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ ++$lt_c_name_lib_hook\ ++" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ ++" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ ++" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" ++ ++# Handle CRLF in mingw tool chain ++opt_cr= ++case $build_os in ++mingw*) ++ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ++ ;; ++esac ++ ++# Try without a prefix underscore, then with it. ++for ac_symprfx in "" "_"; do ++ ++ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. ++ symxfrm="\\1 $ac_symprfx\\2 \\2" ++ ++ # Write the raw and C identifiers. ++ if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ # Fake it for dumpbin and say T for any non-static function, ++ # D for any global variable and I for any imported variable. ++ # Also find C++ and __fastcall symbols from MSVC++, ++ # which start with @ or ?. ++ lt_cv_sys_global_symbol_pipe="$AWK '"\ ++" {last_section=section; section=\$ 3};"\ ++" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ ++" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ ++" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ ++" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ ++" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ ++" \$ 0!~/External *\|/{next};"\ ++" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ ++" {if(hide[section]) next};"\ ++" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ ++" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ ++" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ ++" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ ++" ' prfx=^$ac_symprfx" ++ else ++ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" ++ fi ++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" ++ ++ # Check to see that the pipe works correctly. ++ pipe_works=no ++ ++ rm -f conftest* ++ cat > conftest.$ac_ext <<_LT_EOF ++#ifdef __cplusplus ++extern "C" { ++#endif ++char nm_test_var; ++void nm_test_func(void); ++void nm_test_func(void){} ++#ifdef __cplusplus ++} ++#endif ++int main(){nm_test_var='a';nm_test_func();return(0);} ++_LT_EOF ++ ++ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; then ++ # Now try to grab the symbols. ++ nlist=conftest.nm ++ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 ++ (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } && test -s "$nlist"; then ++ # Try sorting and uniquifying the output. ++ if sort "$nlist" | uniq > "$nlist"T; then ++ mv -f "$nlist"T "$nlist" ++ else ++ rm -f "$nlist"T ++ fi ++ ++ # Make sure that we snagged all the symbols we need. ++ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then ++ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then ++ cat <<_LT_EOF > conftest.$ac_ext ++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ ++#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE ++/* DATA imports from DLLs on WIN32 can't be const, because runtime ++ relocations are performed -- see ld's documentation on pseudo-relocs. */ ++# define LT_DLSYM_CONST ++#elif defined __osf__ ++/* This system does not cope well with relocations in const data. */ ++# define LT_DLSYM_CONST ++#else ++# define LT_DLSYM_CONST const ++#endif ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++_LT_EOF ++ # Now generate the symbol file. ++ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' ++ ++ cat <<_LT_EOF >> conftest.$ac_ext ++ ++/* The mapping between symbol names and symbols. */ ++LT_DLSYM_CONST struct { ++ const char *name; ++ void *address; ++} ++lt__PROGRAM__LTX_preloaded_symbols[] = ++{ ++ { "@PROGRAM@", (void *) 0 }, ++_LT_EOF ++ $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext ++ cat <<\_LT_EOF >> conftest.$ac_ext ++ {0, (void *) 0} ++}; ++ ++/* This works around a problem in FreeBSD linker */ ++#ifdef FREEBSD_WORKAROUND ++static const void *lt_preloaded_setup() { ++ return lt__PROGRAM__LTX_preloaded_symbols; ++} ++#endif ++ ++#ifdef __cplusplus ++} ++#endif ++_LT_EOF ++ # Now try linking the two files. ++ mv conftest.$ac_objext conftstm.$ac_objext ++ lt_globsym_save_LIBS=$LIBS ++ lt_globsym_save_CFLAGS=$CFLAGS ++ LIBS=conftstm.$ac_objext ++ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" ++ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } && test -s conftest$ac_exeext; then ++ pipe_works=yes ++ fi ++ LIBS=$lt_globsym_save_LIBS ++ CFLAGS=$lt_globsym_save_CFLAGS ++ else ++ echo "cannot find nm_test_func in $nlist" >&5 ++ fi ++ else ++ echo "cannot find nm_test_var in $nlist" >&5 ++ fi ++ else ++ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 ++ fi ++ else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ fi ++ rm -rf conftest* conftst* ++ ++ # Do not use the global_symbol_pipe unless it works. ++ if test yes = "$pipe_works"; then ++ break ++ else ++ lt_cv_sys_global_symbol_pipe= ++ fi ++done ++ ++fi ++ ++if test -z "$lt_cv_sys_global_symbol_pipe"; then ++ lt_cv_sys_global_symbol_to_cdecl= ++fi ++if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 ++$as_echo "failed" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 ++$as_echo "ok" >&6; } ++fi ++ ++# Response file support. ++if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ nm_file_list_spec='@' ++elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then ++ nm_file_list_spec='@' ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 ++$as_echo_n "checking for sysroot... " >&6; } ++ ++# Check whether --with-sysroot was given. ++if test "${with_sysroot+set}" = set; then : ++ withval=$with_sysroot; ++else ++ with_sysroot=no ++fi ++ ++ ++lt_sysroot= ++case $with_sysroot in #( ++ yes) ++ if test yes = "$GCC"; then ++ lt_sysroot=`$CC --print-sysroot 2>/dev/null` ++ fi ++ ;; #( ++ /*) ++ lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ++ ;; #( ++ no|'') ++ ;; #( ++ *) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 ++$as_echo "$with_sysroot" >&6; } ++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ++ ;; ++esac ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 ++$as_echo "${lt_sysroot:-no}" >&6; } ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 ++$as_echo_n "checking for a working dd... " >&6; } ++if ${ac_cv_path_lt_DD+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ printf 0123456789abcdef0123456789abcdef >conftest.i ++cat conftest.i conftest.i >conftest2.i ++: ${lt_DD:=$DD} ++if test -z "$lt_DD"; then ++ ac_path_lt_DD_found=false ++ # Loop through the user's path and test for each of PROGNAME-LIST ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_prog in dd; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" ++ as_fn_executable_p "$ac_path_lt_DD" || continue ++if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then ++ cmp -s conftest.i conftest.out \ ++ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: ++fi ++ $ac_path_lt_DD_found && break 3 ++ done ++ done ++ done ++IFS=$as_save_IFS ++ if test -z "$ac_cv_path_lt_DD"; then ++ : ++ fi ++else ++ ac_cv_path_lt_DD=$lt_DD ++fi ++ ++rm -f conftest.i conftest2.i conftest.out ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 ++$as_echo "$ac_cv_path_lt_DD" >&6; } ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 ++$as_echo_n "checking how to truncate binary pipes... " >&6; } ++if ${lt_cv_truncate_bin+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ printf 0123456789abcdef0123456789abcdef >conftest.i ++cat conftest.i conftest.i >conftest2.i ++lt_cv_truncate_bin= ++if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then ++ cmp -s conftest.i conftest.out \ ++ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" ++fi ++rm -f conftest.i conftest2.i conftest.out ++test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 ++$as_echo "$lt_cv_truncate_bin" >&6; } ++ ++ ++ ++ ++ ++ ++ ++# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. ++func_cc_basename () ++{ ++ for cc_temp in $*""; do ++ case $cc_temp in ++ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; ++ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; ++ \-*) ;; ++ *) break;; ++ esac ++ done ++ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ++} ++ ++# Check whether --enable-libtool-lock was given. ++if test "${enable_libtool_lock+set}" = set; then : ++ enableval=$enable_libtool_lock; ++fi ++ ++test no = "$enable_libtool_lock" || 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 what ABI is being produced by ac_compile, and set mode ++ # options accordingly. ++ echo 'int i;' > conftest.$ac_ext ++ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; then ++ case `/usr/bin/file conftest.$ac_objext` in ++ *ELF-32*) ++ HPUX_IA64_MODE=32 ++ ;; ++ *ELF-64*) ++ HPUX_IA64_MODE=64 ++ ;; ++ esac ++ fi ++ rm -rf conftest* ++ ;; ++*-*-irix6*) ++ # Find out what ABI is being produced by ac_compile, and set linker ++ # options accordingly. ++ echo '#line '$LINENO' "configure"' > conftest.$ac_ext ++ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; then ++ if test yes = "$lt_cv_prog_gnu_ld"; 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* ++ ;; ++ ++mips64*-*linux*) ++ # Find out what ABI is being produced by ac_compile, and set linker ++ # options accordingly. ++ echo '#line '$LINENO' "configure"' > conftest.$ac_ext ++ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; then ++ emul=elf ++ case `/usr/bin/file conftest.$ac_objext` in ++ *32-bit*) ++ emul="${emul}32" ++ ;; ++ *64-bit*) ++ emul="${emul}64" ++ ;; ++ esac ++ case `/usr/bin/file conftest.$ac_objext` in ++ *MSB*) ++ emul="${emul}btsmip" ++ ;; ++ *LSB*) ++ emul="${emul}ltsmip" ++ ;; ++ esac ++ case `/usr/bin/file conftest.$ac_objext` in ++ *N32*) ++ emul="${emul}n32" ++ ;; ++ esac ++ LD="${LD-ld} -m $emul" ++ fi ++ rm -rf conftest* ++ ;; ++ ++x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ ++s390*-*linux*|s390*-*tpf*|sparc*-*linux*) ++ # Find out what ABI is being produced by ac_compile, and set linker ++ # options accordingly. Note that the listed cases only cover the ++ # situations where additional linker options are needed (such as when ++ # doing 32-bit compilation for a host where ld defaults to 64-bit, or ++ # vice versa); the common cases where no linker options are needed do ++ # not appear in the list. ++ echo 'int i;' > conftest.$ac_ext ++ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; then ++ case `/usr/bin/file conftest.o` in ++ *32-bit*) ++ case $host in ++ x86_64-*kfreebsd*-gnu) ++ LD="${LD-ld} -m elf_i386_fbsd" ++ ;; ++ x86_64-*linux*) ++ case `/usr/bin/file conftest.o` in ++ *x86-64*) ++ LD="${LD-ld} -m elf32_x86_64" ++ ;; ++ *) ++ LD="${LD-ld} -m elf_i386" ++ ;; ++ esac ++ ;; ++ powerpc64le-*linux*) ++ LD="${LD-ld} -m elf32lppclinux" ++ ;; ++ 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" ++ ;; ++ powerpcle-*linux*) ++ LD="${LD-ld} -m elf64lppc" ++ ;; ++ powerpc-*linux*) ++ LD="${LD-ld} -m elf64ppc" ++ ;; ++ s390*-*linux*|s390*-*tpf*) ++ LD="${LD-ld} -m elf64_s390" ++ ;; ++ sparc*-*linux*) ++ LD="${LD-ld} -m elf64_sparc" ++ ;; ++ esac ++ ;; ++ esac ++ fi ++ rm -rf conftest* ++ ;; ++ ++*-*-sco3.2v5*) ++ # On SCO OpenServer 5, we need -belf to get full-featured binaries. ++ SAVE_CFLAGS=$CFLAGS ++ CFLAGS="$CFLAGS -belf" ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 ++$as_echo_n "checking whether the C compiler needs -belf... " >&6; } ++if ${lt_cv_cc_needs_belf+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ lt_cv_cc_needs_belf=yes ++else ++ lt_cv_cc_needs_belf=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 ++$as_echo "$lt_cv_cc_needs_belf" >&6; } ++ if test yes != "$lt_cv_cc_needs_belf"; then ++ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf ++ CFLAGS=$SAVE_CFLAGS ++ fi ++ ;; ++*-*solaris*) ++ # Find out what ABI is being produced by ac_compile, and set linker ++ # options accordingly. ++ echo 'int i;' > conftest.$ac_ext ++ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; then ++ case `/usr/bin/file conftest.o` in ++ *64-bit*) ++ case $lt_cv_prog_gnu_ld in ++ yes*) ++ case $host in ++ i?86-*-solaris*|x86_64-*-solaris*) ++ LD="${LD-ld} -m elf_x86_64" ++ ;; ++ sparc*-*-solaris*) ++ LD="${LD-ld} -m elf64_sparc" ++ ;; ++ esac ++ # GNU ld 2.21 introduced _sol2 emulations. Use them if available. ++ if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then ++ LD=${LD-ld}_sol2 ++ fi ++ ;; ++ *) ++ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then ++ LD="${LD-ld} -64" ++ fi ++ ;; ++ esac ++ ;; ++ esac ++ fi ++ rm -rf conftest* ++ ;; ++esac ++ ++need_locks=$enable_libtool_lock ++ ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. ++set dummy ${ac_tool_prefix}mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$MANIFEST_TOOL"; then ++ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL ++if test -n "$MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 ++$as_echo "$MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ++ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL ++ # Extract the first word of "mt", so it can be a program name with args. ++set dummy mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_MANIFEST_TOOL"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL ++if test -n "$ac_ct_MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 ++$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_MANIFEST_TOOL" = x; then ++ MANIFEST_TOOL=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL ++ fi ++else ++ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" ++fi ++ ++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 ++$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } ++if ${lt_cv_path_mainfest_tool+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_path_mainfest_tool=no ++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 ++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out ++ cat conftest.err >&5 ++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then ++ lt_cv_path_mainfest_tool=yes ++ fi ++ rm -f conftest* ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 ++$as_echo "$lt_cv_path_mainfest_tool" >&6; } ++if test yes != "$lt_cv_path_mainfest_tool"; then ++ MANIFEST_TOOL=: ++fi ++ ++ ++ ++ ++ ++ ++ case $host_os in ++ rhapsody* | darwin*) ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. ++set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_DSYMUTIL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$DSYMUTIL"; then ++ ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++DSYMUTIL=$ac_cv_prog_DSYMUTIL ++if test -n "$DSYMUTIL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 ++$as_echo "$DSYMUTIL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_DSYMUTIL"; then ++ ac_ct_DSYMUTIL=$DSYMUTIL ++ # Extract the first word of "dsymutil", so it can be a program name with args. ++set dummy dsymutil; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_DSYMUTIL"; then ++ ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL ++if test -n "$ac_ct_DSYMUTIL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 ++$as_echo "$ac_ct_DSYMUTIL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_DSYMUTIL" = x; then ++ DSYMUTIL=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ DSYMUTIL=$ac_ct_DSYMUTIL ++ fi ++else ++ DSYMUTIL="$ac_cv_prog_DSYMUTIL" ++fi ++ ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. ++set dummy ${ac_tool_prefix}nmedit; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_NMEDIT+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$NMEDIT"; then ++ ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++NMEDIT=$ac_cv_prog_NMEDIT ++if test -n "$NMEDIT"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 ++$as_echo "$NMEDIT" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_NMEDIT"; then ++ ac_ct_NMEDIT=$NMEDIT ++ # Extract the first word of "nmedit", so it can be a program name with args. ++set dummy nmedit; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_NMEDIT"; then ++ ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_NMEDIT="nmedit" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT ++if test -n "$ac_ct_NMEDIT"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 ++$as_echo "$ac_ct_NMEDIT" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_NMEDIT" = x; then ++ NMEDIT=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ NMEDIT=$ac_ct_NMEDIT ++ fi ++else ++ NMEDIT="$ac_cv_prog_NMEDIT" ++fi ++ ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. ++set dummy ${ac_tool_prefix}lipo; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_LIPO+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$LIPO"; then ++ ac_cv_prog_LIPO="$LIPO" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_LIPO="${ac_tool_prefix}lipo" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++LIPO=$ac_cv_prog_LIPO ++if test -n "$LIPO"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 ++$as_echo "$LIPO" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_LIPO"; then ++ ac_ct_LIPO=$LIPO ++ # Extract the first word of "lipo", so it can be a program name with args. ++set dummy lipo; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_LIPO+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_LIPO"; then ++ ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_LIPO="lipo" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO ++if test -n "$ac_ct_LIPO"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 ++$as_echo "$ac_ct_LIPO" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_LIPO" = x; then ++ LIPO=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ LIPO=$ac_ct_LIPO ++ fi ++else ++ LIPO="$ac_cv_prog_LIPO" ++fi ++ ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. ++set dummy ${ac_tool_prefix}otool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_OTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$OTOOL"; then ++ ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_OTOOL="${ac_tool_prefix}otool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++OTOOL=$ac_cv_prog_OTOOL ++if test -n "$OTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 ++$as_echo "$OTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_OTOOL"; then ++ ac_ct_OTOOL=$OTOOL ++ # Extract the first word of "otool", so it can be a program name with args. ++set dummy otool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_OTOOL"; then ++ ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_OTOOL="otool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL ++if test -n "$ac_ct_OTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 ++$as_echo "$ac_ct_OTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_OTOOL" = x; then ++ OTOOL=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ OTOOL=$ac_ct_OTOOL ++ fi ++else ++ OTOOL="$ac_cv_prog_OTOOL" ++fi ++ ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. ++set dummy ${ac_tool_prefix}otool64; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_OTOOL64+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$OTOOL64"; then ++ ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++OTOOL64=$ac_cv_prog_OTOOL64 ++if test -n "$OTOOL64"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 ++$as_echo "$OTOOL64" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_OTOOL64"; then ++ ac_ct_OTOOL64=$OTOOL64 ++ # Extract the first word of "otool64", so it can be a program name with args. ++set dummy otool64; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_OTOOL64"; then ++ ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_OTOOL64="otool64" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 ++if test -n "$ac_ct_OTOOL64"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 ++$as_echo "$ac_ct_OTOOL64" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_OTOOL64" = x; then ++ OTOOL64=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ OTOOL64=$ac_ct_OTOOL64 ++ fi ++else ++ OTOOL64="$ac_cv_prog_OTOOL64" ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 ++$as_echo_n "checking for -single_module linker flag... " >&6; } ++if ${lt_cv_apple_cc_single_mod+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_apple_cc_single_mod=no ++ if test -z "$LT_MULTI_MODULE"; then ++ # By default we will add the -single_module flag. You can override ++ # by either setting the environment variable LT_MULTI_MODULE ++ # non-empty at configure time, or by adding -multi_module to the ++ # link flags. ++ rm -rf libconftest.dylib* ++ echo "int foo(void){return 1;}" > conftest.c ++ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ ++-dynamiclib -Wl,-single_module conftest.c" >&5 ++ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ ++ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err ++ _lt_result=$? ++ # If there is a non-empty error log, and "single_module" ++ # appears in it, assume the flag caused a linker warning ++ if test -s conftest.err && $GREP single_module conftest.err; then ++ cat conftest.err >&5 ++ # Otherwise, if the output was created with a 0 exit code from ++ # the compiler, it worked. ++ elif test -f libconftest.dylib && test 0 = "$_lt_result"; then ++ lt_cv_apple_cc_single_mod=yes ++ else ++ cat conftest.err >&5 ++ fi ++ rm -rf libconftest.dylib* ++ rm -f conftest.* ++ fi ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 ++$as_echo "$lt_cv_apple_cc_single_mod" >&6; } ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 ++$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } ++if ${lt_cv_ld_exported_symbols_list+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_ld_exported_symbols_list=no ++ save_LDFLAGS=$LDFLAGS ++ echo "_main" > conftest.sym ++ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ lt_cv_ld_exported_symbols_list=yes ++else ++ lt_cv_ld_exported_symbols_list=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ LDFLAGS=$save_LDFLAGS ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 ++$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 ++$as_echo_n "checking for -force_load linker flag... " >&6; } ++if ${lt_cv_ld_force_load+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_ld_force_load=no ++ cat > conftest.c << _LT_EOF ++int forced_loaded() { return 2;} ++_LT_EOF ++ echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 ++ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 ++ echo "$AR cru libconftest.a conftest.o" >&5 ++ $AR cru libconftest.a conftest.o 2>&5 ++ echo "$RANLIB libconftest.a" >&5 ++ $RANLIB libconftest.a 2>&5 ++ cat > conftest.c << _LT_EOF ++int main() { return 0;} ++_LT_EOF ++ echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 ++ $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err ++ _lt_result=$? ++ if test -s conftest.err && $GREP force_load conftest.err; then ++ cat conftest.err >&5 ++ elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then ++ lt_cv_ld_force_load=yes ++ else ++ cat conftest.err >&5 ++ fi ++ rm -f conftest.err libconftest.a conftest conftest.c ++ rm -rf conftest.dSYM ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 ++$as_echo "$lt_cv_ld_force_load" >&6; } ++ case $host_os in ++ rhapsody* | darwin1.[012]) ++ _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; ++ darwin1.*) ++ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; ++ darwin*) # darwin 5.x on ++ # if running on 10.5 or later, the deployment target defaults ++ # to the OS version, if on x86, and 10.4, the deployment ++ # target defaults to 10.4. Don't you love it? ++ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in ++ 10.0,*86*-darwin8*|10.0,*-darwin[91]*) ++ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; ++ 10.[012][,.]*) ++ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; ++ 10.*) ++ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; ++ esac ++ ;; ++ esac ++ if test yes = "$lt_cv_apple_cc_single_mod"; then ++ _lt_dar_single_mod='$single_module' ++ fi ++ if test yes = "$lt_cv_ld_exported_symbols_list"; then ++ _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' ++ else ++ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' ++ fi ++ if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then ++ _lt_dsymutil='~$DSYMUTIL $lib || :' ++ else ++ _lt_dsymutil= ++ fi ++ ;; ++ esac ++ ++# func_munge_path_list VARIABLE PATH ++# ----------------------------------- ++# VARIABLE is name of variable containing _space_ separated list of ++# directories to be munged by the contents of PATH, which is string ++# having a format: ++# "DIR[:DIR]:" ++# string "DIR[ DIR]" will be prepended to VARIABLE ++# ":DIR[:DIR]" ++# string "DIR[ DIR]" will be appended to VARIABLE ++# "DIRP[:DIRP]::[DIRA:]DIRA" ++# string "DIRP[ DIRP]" will be prepended to VARIABLE and string ++# "DIRA[ DIRA]" will be appended to VARIABLE ++# "DIR[:DIR]" ++# VARIABLE will be replaced by "DIR[ DIR]" ++func_munge_path_list () ++{ ++ case x$2 in ++ x) ++ ;; ++ *:) ++ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" ++ ;; ++ x:*) ++ eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" ++ ;; ++ *::*) ++ eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" ++ eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" ++ ;; ++ *) ++ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" ++ ;; ++ esac ++} ++ ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 ++$as_echo_n "checking how to run the C preprocessor... " >&6; } ++# On Suns, sometimes $CPP names a directory. ++if test -n "$CPP" && test -d "$CPP"; then ++ CPP= ++fi ++if test -z "$CPP"; then ++ if ${ac_cv_prog_CPP+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ # Double quotes because CPP needs to be expanded ++ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" ++ do ++ ac_preproc_ok=false ++for ac_c_preproc_warn_flag in '' yes ++do ++ # Use a header file that comes with gcc, so configuring glibc ++ # with a fresh cross-compiler works. ++ # Prefer to if __STDC__ is defined, since ++ # exists even on freestanding compilers. ++ # On the NeXT, cc -E runs the code through the compiler's parser, ++ # not just through cpp. "Syntax error" is here to catch this case. ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ Syntax error ++_ACEOF ++if ac_fn_c_try_cpp "$LINENO"; then : ++ ++else ++ # Broken: fails on valid input. ++continue ++fi ++rm -f conftest.err conftest.i conftest.$ac_ext ++ ++ # OK, works on sane cases. Now check whether nonexistent headers ++ # can be detected and how. ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++_ACEOF ++if ac_fn_c_try_cpp "$LINENO"; then : ++ # Broken: success on invalid input. ++continue ++else ++ # Passes both tests. ++ac_preproc_ok=: ++break ++fi ++rm -f conftest.err conftest.i conftest.$ac_ext ++ ++done ++# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. ++rm -f conftest.i conftest.err conftest.$ac_ext ++if $ac_preproc_ok; then : ++ break ++fi ++ ++ done ++ ac_cv_prog_CPP=$CPP ++ ++fi ++ CPP=$ac_cv_prog_CPP ++else ++ ac_cv_prog_CPP=$CPP ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 ++$as_echo "$CPP" >&6; } ++ac_preproc_ok=false ++for ac_c_preproc_warn_flag in '' yes ++do ++ # Use a header file that comes with gcc, so configuring glibc ++ # with a fresh cross-compiler works. ++ # Prefer to if __STDC__ is defined, since ++ # exists even on freestanding compilers. ++ # On the NeXT, cc -E runs the code through the compiler's parser, ++ # not just through cpp. "Syntax error" is here to catch this case. ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ Syntax error ++_ACEOF ++if ac_fn_c_try_cpp "$LINENO"; then : ++ ++else ++ # Broken: fails on valid input. ++continue ++fi ++rm -f conftest.err conftest.i conftest.$ac_ext ++ ++ # OK, works on sane cases. Now check whether nonexistent headers ++ # can be detected and how. ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++_ACEOF ++if ac_fn_c_try_cpp "$LINENO"; then : ++ # Broken: success on invalid input. ++continue ++else ++ # Passes both tests. ++ac_preproc_ok=: ++break ++fi ++rm -f conftest.err conftest.i conftest.$ac_ext ++ ++done ++# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. ++rm -f conftest.i conftest.err conftest.$ac_ext ++if $ac_preproc_ok; then : ++ ++else ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++as_fn_error $? "C preprocessor \"$CPP\" fails sanity check ++See \`config.log' for more details" "$LINENO" 5; } ++fi ++ ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 ++$as_echo_n "checking for ANSI C header files... " >&6; } ++if ${ac_cv_header_stdc+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++#include ++#include ++#include ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_header_stdc=yes ++else ++ ac_cv_header_stdc=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ++if test $ac_cv_header_stdc = yes; then ++ # SunOS 4.x string.h does not declare mem*, contrary to ANSI. ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "memchr" >/dev/null 2>&1; then : ++ ++else ++ ac_cv_header_stdc=no ++fi ++rm -f conftest* ++ ++fi ++ ++if test $ac_cv_header_stdc = yes; then ++ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "free" >/dev/null 2>&1; then : ++ ++else ++ ac_cv_header_stdc=no ++fi ++rm -f conftest* ++ ++fi ++ ++if test $ac_cv_header_stdc = yes; then ++ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. ++ if test "$cross_compiling" = yes; then : ++ : ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++#include ++#if ((' ' & 0x0FF) == 0x020) ++# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') ++# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) ++#else ++# define ISLOWER(c) \ ++ (('a' <= (c) && (c) <= 'i') \ ++ || ('j' <= (c) && (c) <= 'r') \ ++ || ('s' <= (c) && (c) <= 'z')) ++# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) ++#endif ++ ++#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) ++int ++main () ++{ ++ int i; ++ for (i = 0; i < 256; i++) ++ if (XOR (islower (i), ISLOWER (i)) ++ || toupper (i) != TOUPPER (i)) ++ return 2; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_run "$LINENO"; then : ++ ++else ++ ac_cv_header_stdc=no ++fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext ++fi ++ ++fi ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 ++$as_echo "$ac_cv_header_stdc" >&6; } ++if test $ac_cv_header_stdc = yes; then ++ ++$as_echo "#define STDC_HEADERS 1" >>confdefs.h ++ ++fi ++ ++# On IRIX 5.3, sys/types and inttypes.h are conflicting. ++for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ ++ inttypes.h stdint.h unistd.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default ++" ++if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++ ++done ++ ++ ++for ac_header in dlfcn.h ++do : ++ ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default ++" ++if test "x$ac_cv_header_dlfcn_h" = xyes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_DLFCN_H 1 ++_ACEOF ++ ++fi ++ ++done ++ ++ ++ ++ ++func_stripname_cnf () ++{ ++ case $2 in ++ .*) func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%\\\\$2\$%%"`;; ++ *) func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%$2\$%%"`;; ++ esac ++} # func_stripname_cnf ++ ++ ++ ++ ++ ++# Set options ++ ++ ++ ++ enable_dlopen=no ++ ++ ++ enable_win32_dll=no ++ ++ ++ # Check whether --enable-shared was given. ++if test "${enable_shared+set}" = set; then : ++ enableval=$enable_shared; p=${PACKAGE-default} ++ case $enableval in ++ yes) enable_shared=yes ;; ++ no) enable_shared=no ;; ++ *) ++ enable_shared=no ++ # Look at the argument we got. We use all the common list separators. ++ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, ++ for pkg in $enableval; do ++ IFS=$lt_save_ifs ++ if test "X$pkg" = "X$p"; then ++ enable_shared=yes ++ fi ++ done ++ IFS=$lt_save_ifs ++ ;; ++ esac ++else ++ enable_shared=yes ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ # Check whether --enable-static was given. ++if test "${enable_static+set}" = set; then : ++ enableval=$enable_static; p=${PACKAGE-default} ++ case $enableval in ++ yes) enable_static=yes ;; ++ no) enable_static=no ;; ++ *) ++ enable_static=no ++ # Look at the argument we got. We use all the common list separators. ++ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, ++ for pkg in $enableval; do ++ IFS=$lt_save_ifs ++ if test "X$pkg" = "X$p"; then ++ enable_static=yes ++ fi ++ done ++ IFS=$lt_save_ifs ++ ;; ++ esac ++else ++ enable_static=yes ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++# Check whether --with-pic was given. ++if test "${with_pic+set}" = set; then : ++ withval=$with_pic; lt_p=${PACKAGE-default} ++ case $withval in ++ yes|no) pic_mode=$withval ;; ++ *) ++ pic_mode=default ++ # Look at the argument we got. We use all the common list separators. ++ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, ++ for lt_pkg in $withval; do ++ IFS=$lt_save_ifs ++ if test "X$lt_pkg" = "X$lt_p"; then ++ pic_mode=yes ++ fi ++ done ++ IFS=$lt_save_ifs ++ ;; ++ esac ++else ++ pic_mode=default ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ # 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 ++ ++ ++ ++ ++ ++ ++ ++ ++ shared_archive_member_spec= ++case $host,$enable_shared in ++power*-*-aix[5-9]*,yes) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 ++$as_echo_n "checking which variant of shared library versioning to provide... " >&6; } ++ ++# Check whether --with-aix-soname was given. ++if test "${with_aix_soname+set}" = set; then : ++ withval=$with_aix_soname; case $withval in ++ aix|svr4|both) ++ ;; ++ *) ++ as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 ++ ;; ++ esac ++ lt_cv_with_aix_soname=$with_aix_soname ++else ++ if ${lt_cv_with_aix_soname+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_with_aix_soname=aix ++fi ++ ++ with_aix_soname=$lt_cv_with_aix_soname ++fi ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 ++$as_echo "$with_aix_soname" >&6; } ++ if test aix != "$with_aix_soname"; then ++ # For the AIX way of multilib, we name the shared archive member ++ # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', ++ # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. ++ # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, ++ # the AIX toolchain works better with OBJECT_MODE set (default 32). ++ if test 64 = "${OBJECT_MODE-32}"; then ++ shared_archive_member_spec=shr_64 ++ else ++ shared_archive_member_spec=shr ++ fi ++ fi ++ ;; ++*) ++ with_aix_soname=aix ++ ;; ++esac ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++# This can be used to rebuild libtool when needed ++LIBTOOL_DEPS=$ltmain ++ ++# Always use our own libtool. ++LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++test -z "$LN_S" && LN_S="ln -s" ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++if test -n "${ZSH_VERSION+set}"; then ++ setopt NO_GLOB_SUBST ++fi ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 ++$as_echo_n "checking for objdir... " >&6; } ++if ${lt_cv_objdir+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ rm -f .libs 2>/dev/null ++mkdir .libs 2>/dev/null ++if test -d .libs; then ++ lt_cv_objdir=.libs ++else ++ # MS-DOS does not allow filenames that begin with a dot. ++ lt_cv_objdir=_libs ++fi ++rmdir .libs 2>/dev/null ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 ++$as_echo "$lt_cv_objdir" >&6; } ++objdir=$lt_cv_objdir ++ ++ ++ ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define LT_OBJDIR "$lt_cv_objdir/" ++_ACEOF ++ ++ ++ ++ ++case $host_os in ++aix3*) ++ # AIX sometimes has problems with the GCC collect2 program. For some ++ # reason, if we set the COLLECT_NAMES environment variable, the problems ++ # vanish in a puff of smoke. ++ if test set != "${COLLECT_NAMES+set}"; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++ fi ++ ;; ++esac ++ ++# Global variables: ++ofile=libtool ++can_build_shared=yes ++ ++# All known linkers require a '.a' archive for static linking (except MSVC, ++# which needs '.lib'). ++libext=a ++ ++with_gnu_ld=$lt_cv_prog_gnu_ld ++ ++old_CC=$CC ++old_CFLAGS=$CFLAGS ++ ++# Set sane defaults for various variables ++test -z "$CC" && CC=cc ++test -z "$LTCC" && LTCC=$CC ++test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS ++test -z "$LD" && LD=ld ++test -z "$ac_objext" && ac_objext=o ++ ++func_cc_basename $compiler ++cc_basename=$func_cc_basename_result ++ ++ ++# Only perform the check for file, if the check method requires it ++test -z "$MAGIC_CMD" && MAGIC_CMD=file ++case $deplibs_check_method in ++file_magic*) ++ if test "$file_magic_cmd" = '$MAGIC_CMD'; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 ++$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } ++if ${lt_cv_path_MAGIC_CMD+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case $MAGIC_CMD in ++[\\/*] | ?:[\\/]*) ++ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ++ ;; ++*) ++ lt_save_MAGIC_CMD=$MAGIC_CMD ++ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ++ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" ++ for ac_dir in $ac_dummy; do ++ IFS=$lt_save_ifs ++ test -z "$ac_dir" && ac_dir=. ++ if test -f "$ac_dir/${ac_tool_prefix}file"; then ++ lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" ++ if test -n "$file_magic_test_file"; then ++ case $deplibs_check_method in ++ "file_magic "*) ++ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` ++ MAGIC_CMD=$lt_cv_path_MAGIC_CMD ++ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ++ $EGREP "$file_magic_regex" > /dev/null; then ++ : ++ else ++ cat <<_LT_EOF 1>&2 ++ ++*** Warning: the command libtool uses to detect shared libraries, ++*** $file_magic_cmd, produces output that libtool cannot recognize. ++*** The result is that libtool may fail to recognize shared libraries ++*** as such. This will affect the creation of libtool libraries that ++*** depend on shared libraries, but programs linked with such libtool ++*** libraries will work regardless of this problem. Nevertheless, you ++*** may want to report the problem to your system manager and/or to ++*** bug-libtool@gnu.org ++ ++_LT_EOF ++ fi ;; ++ esac ++ fi ++ break ++ fi ++ done ++ IFS=$lt_save_ifs ++ MAGIC_CMD=$lt_save_MAGIC_CMD ++ ;; ++esac ++fi ++ ++MAGIC_CMD=$lt_cv_path_MAGIC_CMD ++if test -n "$MAGIC_CMD"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 ++$as_echo "$MAGIC_CMD" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ ++ ++ ++if test -z "$lt_cv_path_MAGIC_CMD"; then ++ if test -n "$ac_tool_prefix"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 ++$as_echo_n "checking for file... " >&6; } ++if ${lt_cv_path_MAGIC_CMD+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case $MAGIC_CMD in ++[\\/*] | ?:[\\/]*) ++ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ++ ;; ++*) ++ lt_save_MAGIC_CMD=$MAGIC_CMD ++ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ++ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" ++ for ac_dir in $ac_dummy; do ++ IFS=$lt_save_ifs ++ test -z "$ac_dir" && ac_dir=. ++ if test -f "$ac_dir/file"; then ++ lt_cv_path_MAGIC_CMD=$ac_dir/"file" ++ if test -n "$file_magic_test_file"; then ++ case $deplibs_check_method in ++ "file_magic "*) ++ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` ++ MAGIC_CMD=$lt_cv_path_MAGIC_CMD ++ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ++ $EGREP "$file_magic_regex" > /dev/null; then ++ : ++ else ++ cat <<_LT_EOF 1>&2 ++ ++*** Warning: the command libtool uses to detect shared libraries, ++*** $file_magic_cmd, produces output that libtool cannot recognize. ++*** The result is that libtool may fail to recognize shared libraries ++*** as such. This will affect the creation of libtool libraries that ++*** depend on shared libraries, but programs linked with such libtool ++*** libraries will work regardless of this problem. Nevertheless, you ++*** may want to report the problem to your system manager and/or to ++*** bug-libtool@gnu.org ++ ++_LT_EOF ++ fi ;; ++ esac ++ fi ++ break ++ fi ++ done ++ IFS=$lt_save_ifs ++ MAGIC_CMD=$lt_save_MAGIC_CMD ++ ;; ++esac ++fi ++ ++MAGIC_CMD=$lt_cv_path_MAGIC_CMD ++if test -n "$MAGIC_CMD"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 ++$as_echo "$MAGIC_CMD" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ else ++ MAGIC_CMD=: ++ fi ++fi ++ ++ fi ++ ;; ++esac ++ ++# Use C for the default configuration in the libtool script ++ ++lt_save_CC=$CC ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++ ++# Source file extension for C test sources. ++ac_ext=c ++ ++# Object file extension for compiled C test sources. ++objext=o ++objext=$objext ++ ++# Code to be used in simple compile tests ++lt_simple_compile_test_code="int some_variable = 0;" ++ ++# Code to be used in simple link tests ++lt_simple_link_test_code='int main(){return(0);}' ++ ++ ++ ++ ++ ++ ++ ++# If no C compiler was specified, use CC. ++LTCC=${LTCC-"$CC"} ++ ++# If no C compiler flags were specified, use CFLAGS. ++LTCFLAGS=${LTCFLAGS-"$CFLAGS"} ++ ++# Allow CC to be a program name with arguments. ++compiler=$CC ++ ++# Save the default compiler, since it gets overwritten when the other ++# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. ++compiler_DEFAULT=$CC ++ ++# save warnings/boilerplate of simple test code ++ac_outfile=conftest.$ac_objext ++echo "$lt_simple_compile_test_code" >conftest.$ac_ext ++eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err ++_lt_compiler_boilerplate=`cat conftest.err` ++$RM conftest* ++ ++ac_outfile=conftest.$ac_objext ++echo "$lt_simple_link_test_code" >conftest.$ac_ext ++eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err ++_lt_linker_boilerplate=`cat conftest.err` ++$RM -r conftest* ++ ++ ++## CAVEAT EMPTOR: ++## There is no encapsulation within the following macros, do not change ++## the running order or otherwise move them around unless you know exactly ++## what you are doing... ++if test -n "$compiler"; then ++ ++lt_prog_compiler_no_builtin_flag= ++ ++if test yes = "$GCC"; then ++ case $cc_basename in ++ nvcc*) ++ lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; ++ *) ++ lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; ++ esac ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 ++$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } ++if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_rtti_exceptions=no ++ ac_outfile=conftest.$ac_objext ++ echo "$lt_simple_compile_test_code" > conftest.$ac_ext ++ lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment ++ # Insert the option either (1) after the last *FLAGS variable, or ++ # (2) before a word containing "conftest.", or (3) at the end. ++ # Note that $ac_compile itself does not contain backslashes and begins ++ # with a dollar sign (not a hyphen), so the echo should work correctly. ++ # The option is referenced via a variable to avoid confusing sed. ++ lt_compile=`echo "$ac_compile" | $SED \ ++ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ ++ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ ++ -e 's:$: $lt_compiler_flag:'` ++ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) ++ (eval "$lt_compile" 2>conftest.err) ++ ac_status=$? ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ if (exit $ac_status) && test -s "$ac_outfile"; then ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings other than the usual output. ++ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp ++ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 ++ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then ++ lt_cv_prog_compiler_rtti_exceptions=yes ++ fi ++ fi ++ $RM conftest* ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 ++$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } ++ ++if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then ++ lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" ++else ++ : ++fi ++ ++fi ++ ++ ++ ++ ++ ++ ++ lt_prog_compiler_wl= ++lt_prog_compiler_pic= ++lt_prog_compiler_static= ++ ++ ++ if test yes = "$GCC"; then ++ lt_prog_compiler_wl='-Wl,' ++ lt_prog_compiler_static='-static' ++ ++ case $host_os in ++ aix*) ++ # All AIX code is PIC. ++ if test ia64 = "$host_cpu"; then ++ # AIX 5 now supports IA64 processor ++ lt_prog_compiler_static='-Bstatic' ++ fi ++ lt_prog_compiler_pic='-fPIC' ++ ;; ++ ++ amigaos*) ++ case $host_cpu in ++ powerpc) ++ # see comment about AmigaOS4 .so support ++ lt_prog_compiler_pic='-fPIC' ++ ;; ++ m68k) ++ # FIXME: we need at least 68020 code to build shared libraries, but ++ # adding the '-m68020' flag to GCC prevents building anything better, ++ # like '-m68040'. ++ lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ++ ;; ++ esac ++ ;; ++ ++ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) ++ # PIC is the default for these OSes. ++ ;; ++ ++ mingw* | cygwin* | pw32* | os2* | cegcc*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ # Although the cygwin gcc ignores -fPIC, still need this for old-style ++ # (--disable-auto-import) libraries ++ lt_prog_compiler_pic='-DDLL_EXPORT' ++ case $host_os in ++ os2*) ++ lt_prog_compiler_static='$wl-static' ++ ;; ++ esac ++ ;; ++ ++ darwin* | rhapsody*) ++ # PIC is the default on this platform ++ # Common symbols not allowed in MH_DYLIB files ++ lt_prog_compiler_pic='-fno-common' ++ ;; ++ ++ haiku*) ++ # PIC is the default for Haiku. ++ # The "-static" flag exists, but is broken. ++ lt_prog_compiler_static= ++ ;; ++ ++ hpux*) ++ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit ++ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag ++ # sets the default TLS model and affects inlining. ++ case $host_cpu in ++ hppa*64*) ++ # +Z the default ++ ;; ++ *) ++ lt_prog_compiler_pic='-fPIC' ++ ;; ++ esac ++ ;; ++ ++ interix[3-9]*) ++ # Interix 3.x gcc -fpic/-fPIC options generate broken code. ++ # Instead, we relocate shared libraries at runtime. ++ ;; ++ ++ msdosdjgpp*) ++ # Just because we use GCC doesn't mean we suddenly get shared libraries ++ # on systems that don't support them. ++ lt_prog_compiler_can_build_shared=no ++ enable_shared=no ++ ;; ++ ++ *nto* | *qnx*) ++ # QNX uses GNU C++, but need to define -shared option too, otherwise ++ # it will coredump. ++ lt_prog_compiler_pic='-fPIC -shared' ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ lt_prog_compiler_pic=-Kconform_pic ++ fi ++ ;; ++ ++ *) ++ lt_prog_compiler_pic='-fPIC' ++ ;; ++ esac ++ ++ case $cc_basename in ++ nvcc*) # Cuda Compiler Driver 2.2 ++ lt_prog_compiler_wl='-Xlinker ' ++ if test -n "$lt_prog_compiler_pic"; then ++ lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" ++ fi ++ ;; ++ esac ++ else ++ # PORTME Check for flag to pass linker flags through the system compiler. ++ case $host_os in ++ aix*) ++ lt_prog_compiler_wl='-Wl,' ++ if test ia64 = "$host_cpu"; then ++ # AIX 5 now supports IA64 processor ++ lt_prog_compiler_static='-Bstatic' ++ else ++ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' ++ fi ++ ;; ++ ++ darwin* | rhapsody*) ++ # PIC is the default on this platform ++ # Common symbols not allowed in MH_DYLIB files ++ lt_prog_compiler_pic='-fno-common' ++ case $cc_basename in ++ nagfor*) ++ # NAG Fortran compiler ++ lt_prog_compiler_wl='-Wl,-Wl,,' ++ lt_prog_compiler_pic='-PIC' ++ lt_prog_compiler_static='-Bstatic' ++ ;; ++ esac ++ ;; ++ ++ mingw* | cygwin* | pw32* | os2* | cegcc*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ lt_prog_compiler_pic='-DDLL_EXPORT' ++ case $host_os in ++ os2*) ++ lt_prog_compiler_static='$wl-static' ++ ;; ++ esac ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ lt_prog_compiler_wl='-Wl,' ++ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but ++ # not for PA HP-UX. ++ case $host_cpu in ++ hppa*64*|ia64*) ++ # +Z the default ++ ;; ++ *) ++ lt_prog_compiler_pic='+Z' ++ ;; ++ esac ++ # Is there a better lt_prog_compiler_static that works with the bundled CC? ++ lt_prog_compiler_static='$wl-a ${wl}archive' ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ lt_prog_compiler_wl='-Wl,' ++ # PIC (with -KPIC) is the default. ++ lt_prog_compiler_static='-non_shared' ++ ;; ++ ++ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) ++ case $cc_basename in ++ # old Intel for x86_64, which still supported -KPIC. ++ ecc*) ++ lt_prog_compiler_wl='-Wl,' ++ lt_prog_compiler_pic='-KPIC' ++ lt_prog_compiler_static='-static' ++ ;; ++ # icc used to be incompatible with GCC. ++ # ICC 10 doesn't accept -KPIC any more. ++ icc* | ifort*) ++ lt_prog_compiler_wl='-Wl,' ++ lt_prog_compiler_pic='-fPIC' ++ lt_prog_compiler_static='-static' ++ ;; ++ # Lahey Fortran 8.1. ++ lf95*) ++ lt_prog_compiler_wl='-Wl,' ++ lt_prog_compiler_pic='--shared' ++ lt_prog_compiler_static='--static' ++ ;; ++ nagfor*) ++ # NAG Fortran compiler ++ lt_prog_compiler_wl='-Wl,-Wl,,' ++ lt_prog_compiler_pic='-PIC' ++ lt_prog_compiler_static='-Bstatic' ++ ;; ++ tcc*) ++ # Fabrice Bellard et al's Tiny C Compiler ++ lt_prog_compiler_wl='-Wl,' ++ lt_prog_compiler_pic='-fPIC' ++ lt_prog_compiler_static='-static' ++ ;; ++ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) ++ # Portland Group compilers (*not* the Pentium gcc compiler, ++ # which looks to be a dead project) ++ lt_prog_compiler_wl='-Wl,' ++ lt_prog_compiler_pic='-fpic' ++ lt_prog_compiler_static='-Bstatic' ++ ;; ++ ccc*) ++ lt_prog_compiler_wl='-Wl,' ++ # All Alpha code is PIC. ++ lt_prog_compiler_static='-non_shared' ++ ;; ++ xl* | bgxl* | bgf* | mpixl*) ++ # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene ++ lt_prog_compiler_wl='-Wl,' ++ lt_prog_compiler_pic='-qpic' ++ lt_prog_compiler_static='-qstaticlink' ++ ;; ++ *) ++ case `$CC -V 2>&1 | sed 5q` in ++ *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) ++ # Sun Fortran 8.3 passes all unrecognized flags to the linker ++ lt_prog_compiler_pic='-KPIC' ++ lt_prog_compiler_static='-Bstatic' ++ lt_prog_compiler_wl='' ++ ;; ++ *Sun\ F* | *Sun*Fortran*) ++ lt_prog_compiler_pic='-KPIC' ++ lt_prog_compiler_static='-Bstatic' ++ lt_prog_compiler_wl='-Qoption ld ' ++ ;; ++ *Sun\ C*) ++ # Sun C 5.9 ++ lt_prog_compiler_pic='-KPIC' ++ lt_prog_compiler_static='-Bstatic' ++ lt_prog_compiler_wl='-Wl,' ++ ;; ++ *Intel*\ [CF]*Compiler*) ++ lt_prog_compiler_wl='-Wl,' ++ lt_prog_compiler_pic='-fPIC' ++ lt_prog_compiler_static='-static' ++ ;; ++ *Portland\ Group*) ++ lt_prog_compiler_wl='-Wl,' ++ lt_prog_compiler_pic='-fpic' ++ lt_prog_compiler_static='-Bstatic' ++ ;; ++ esac ++ ;; ++ esac ++ ;; ++ ++ newsos6) ++ lt_prog_compiler_pic='-KPIC' ++ lt_prog_compiler_static='-Bstatic' ++ ;; ++ ++ *nto* | *qnx*) ++ # QNX uses GNU C++, but need to define -shared option too, otherwise ++ # it will coredump. ++ lt_prog_compiler_pic='-fPIC -shared' ++ ;; ++ ++ osf3* | osf4* | osf5*) ++ lt_prog_compiler_wl='-Wl,' ++ # All OSF/1 code is PIC. ++ lt_prog_compiler_static='-non_shared' ++ ;; ++ ++ rdos*) ++ lt_prog_compiler_static='-non_shared' ++ ;; ++ ++ solaris*) ++ lt_prog_compiler_pic='-KPIC' ++ lt_prog_compiler_static='-Bstatic' ++ case $cc_basename in ++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) ++ lt_prog_compiler_wl='-Qoption ld ';; ++ *) ++ lt_prog_compiler_wl='-Wl,';; ++ esac ++ ;; ++ ++ sunos4*) ++ lt_prog_compiler_wl='-Qoption ld ' ++ lt_prog_compiler_pic='-PIC' ++ lt_prog_compiler_static='-Bstatic' ++ ;; ++ ++ sysv4 | sysv4.2uw2* | sysv4.3*) ++ lt_prog_compiler_wl='-Wl,' ++ lt_prog_compiler_pic='-KPIC' ++ lt_prog_compiler_static='-Bstatic' ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ lt_prog_compiler_pic='-Kconform_pic' ++ lt_prog_compiler_static='-Bstatic' ++ fi ++ ;; ++ ++ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) ++ lt_prog_compiler_wl='-Wl,' ++ lt_prog_compiler_pic='-KPIC' ++ lt_prog_compiler_static='-Bstatic' ++ ;; ++ ++ unicos*) ++ lt_prog_compiler_wl='-Wl,' ++ lt_prog_compiler_can_build_shared=no ++ ;; ++ ++ uts4*) ++ lt_prog_compiler_pic='-pic' ++ lt_prog_compiler_static='-Bstatic' ++ ;; ++ ++ *) ++ lt_prog_compiler_can_build_shared=no ++ ;; ++ esac ++ fi ++ ++case $host_os in ++ # For platforms that do not support PIC, -DPIC is meaningless: ++ *djgpp*) ++ lt_prog_compiler_pic= ++ ;; ++ *) ++ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ++ ;; ++esac ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 ++$as_echo_n "checking for $compiler option to produce PIC... " >&6; } ++if ${lt_cv_prog_compiler_pic+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 ++$as_echo "$lt_cv_prog_compiler_pic" >&6; } ++lt_prog_compiler_pic=$lt_cv_prog_compiler_pic ++ ++# ++# Check to make sure the PIC flag actually works. ++# ++if test -n "$lt_prog_compiler_pic"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 ++$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } ++if ${lt_cv_prog_compiler_pic_works+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_pic_works=no ++ ac_outfile=conftest.$ac_objext ++ echo "$lt_simple_compile_test_code" > conftest.$ac_ext ++ lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment ++ # Insert the option either (1) after the last *FLAGS variable, or ++ # (2) before a word containing "conftest.", or (3) at the end. ++ # Note that $ac_compile itself does not contain backslashes and begins ++ # with a dollar sign (not a hyphen), so the echo should work correctly. ++ # The option is referenced via a variable to avoid confusing sed. ++ lt_compile=`echo "$ac_compile" | $SED \ ++ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ ++ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ ++ -e 's:$: $lt_compiler_flag:'` ++ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) ++ (eval "$lt_compile" 2>conftest.err) ++ ac_status=$? ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ if (exit $ac_status) && test -s "$ac_outfile"; then ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings other than the usual output. ++ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp ++ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 ++ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then ++ lt_cv_prog_compiler_pic_works=yes ++ fi ++ fi ++ $RM conftest* ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 ++$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } ++ ++if test yes = "$lt_cv_prog_compiler_pic_works"; then ++ case $lt_prog_compiler_pic in ++ "" | " "*) ;; ++ *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; ++ esac ++else ++ lt_prog_compiler_pic= ++ lt_prog_compiler_can_build_shared=no ++fi ++ ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++# ++# Check to make sure the static flag actually works. ++# ++wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 ++$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } ++if ${lt_cv_prog_compiler_static_works+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_static_works=no ++ save_LDFLAGS=$LDFLAGS ++ LDFLAGS="$LDFLAGS $lt_tmp_static_flag" ++ echo "$lt_simple_link_test_code" > conftest.$ac_ext ++ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then ++ # The linker can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ # Append any errors to the config.log. ++ cat conftest.err 1>&5 ++ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp ++ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 ++ if diff conftest.exp conftest.er2 >/dev/null; then ++ lt_cv_prog_compiler_static_works=yes ++ fi ++ else ++ lt_cv_prog_compiler_static_works=yes ++ fi ++ fi ++ $RM -r conftest* ++ LDFLAGS=$save_LDFLAGS ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 ++$as_echo "$lt_cv_prog_compiler_static_works" >&6; } ++ ++if test yes = "$lt_cv_prog_compiler_static_works"; then ++ : ++else ++ lt_prog_compiler_static= ++fi ++ ++ ++ ++ ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 ++$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } ++if ${lt_cv_prog_compiler_c_o+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_c_o=no ++ $RM -r conftest 2>/dev/null ++ mkdir conftest ++ cd conftest ++ mkdir out ++ echo "$lt_simple_compile_test_code" > conftest.$ac_ext ++ ++ lt_compiler_flag="-o out/conftest2.$ac_objext" ++ # Insert the option either (1) after the last *FLAGS variable, or ++ # (2) before a word containing "conftest.", or (3) at the end. ++ # Note that $ac_compile itself does not contain backslashes and begins ++ # with a dollar sign (not a hyphen), so the echo should work correctly. ++ lt_compile=`echo "$ac_compile" | $SED \ ++ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ ++ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ ++ -e 's:$: $lt_compiler_flag:'` ++ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) ++ (eval "$lt_compile" 2>out/conftest.err) ++ ac_status=$? ++ cat out/conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ if (exit $ac_status) && test -s out/conftest2.$ac_objext ++ then ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp ++ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 ++ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then ++ lt_cv_prog_compiler_c_o=yes ++ fi ++ fi ++ chmod u+w . 2>&5 ++ $RM conftest* ++ # SGI C++ compiler will create directory out/ii_files/ for ++ # template instantiation ++ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files ++ $RM out/* && rmdir out ++ cd .. ++ $RM -r conftest ++ $RM conftest* ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 ++$as_echo "$lt_cv_prog_compiler_c_o" >&6; } ++ ++ ++ ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 ++$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } ++if ${lt_cv_prog_compiler_c_o+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_c_o=no ++ $RM -r conftest 2>/dev/null ++ mkdir conftest ++ cd conftest ++ mkdir out ++ echo "$lt_simple_compile_test_code" > conftest.$ac_ext ++ ++ lt_compiler_flag="-o out/conftest2.$ac_objext" ++ # Insert the option either (1) after the last *FLAGS variable, or ++ # (2) before a word containing "conftest.", or (3) at the end. ++ # Note that $ac_compile itself does not contain backslashes and begins ++ # with a dollar sign (not a hyphen), so the echo should work correctly. ++ lt_compile=`echo "$ac_compile" | $SED \ ++ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ ++ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ ++ -e 's:$: $lt_compiler_flag:'` ++ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) ++ (eval "$lt_compile" 2>out/conftest.err) ++ ac_status=$? ++ cat out/conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ if (exit $ac_status) && test -s out/conftest2.$ac_objext ++ then ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp ++ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 ++ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then ++ lt_cv_prog_compiler_c_o=yes ++ fi ++ fi ++ chmod u+w . 2>&5 ++ $RM conftest* ++ # SGI C++ compiler will create directory out/ii_files/ for ++ # template instantiation ++ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files ++ $RM out/* && rmdir out ++ cd .. ++ $RM -r conftest ++ $RM conftest* ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 ++$as_echo "$lt_cv_prog_compiler_c_o" >&6; } ++ ++ ++ ++ ++hard_links=nottested ++if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then ++ # do not overwrite the value of need_locks provided by the user ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 ++$as_echo_n "checking if we can lock with hard links... " >&6; } ++ hard_links=yes ++ $RM conftest* ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ touch conftest.a ++ ln conftest.a conftest.b 2>&5 || hard_links=no ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 ++$as_echo "$hard_links" >&6; } ++ if test no = "$hard_links"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 ++$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} ++ need_locks=warn ++ fi ++else ++ need_locks=no ++fi ++ ++ ++ ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 ++$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } ++ ++ runpath_var= ++ allow_undefined_flag= ++ always_export_symbols=no ++ archive_cmds= ++ archive_expsym_cmds= ++ compiler_needs_object=no ++ enable_shared_with_static_runtimes=no ++ export_dynamic_flag_spec= ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ++ hardcode_automatic=no ++ hardcode_direct=no ++ hardcode_direct_absolute=no ++ hardcode_libdir_flag_spec= ++ hardcode_libdir_separator= ++ hardcode_minus_L=no ++ hardcode_shlibpath_var=unsupported ++ inherit_rpath=no ++ link_all_deplibs=unknown ++ module_cmds= ++ module_expsym_cmds= ++ old_archive_from_new_cmds= ++ old_archive_from_expsyms_cmds= ++ thread_safe_flag_spec= ++ whole_archive_flag_spec= ++ # include_expsyms should be a list of space-separated symbols to be *always* ++ # included in the symbol list ++ include_expsyms= ++ # exclude_expsyms can be an extended regexp of symbols to exclude ++ # it will be wrapped by ' (' and ')$', so one must not match beginning or ++ # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', ++ # as well as any symbol that contains 'd'. ++ exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' ++ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out ++ # platforms (ab)use it in PIC code, but their linkers get confused if ++ # the symbol is explicitly referenced. Since portable code cannot ++ # rely on this symbol name, it's probably fine to never include it in ++ # preloaded symbol tables. ++ # Exclude shared library initialization/finalization symbols. ++ extract_expsyms_cmds= ++ ++ case $host_os in ++ cygwin* | mingw* | pw32* | cegcc*) ++ # FIXME: the MSVC++ port hasn't been tested in a loooong time ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ if test yes != "$GCC"; then ++ with_gnu_ld=no ++ fi ++ ;; ++ interix*) ++ # we just hope/assume this is gcc and not c89 (= MSVC++) ++ with_gnu_ld=yes ++ ;; ++ openbsd* | bitrig*) ++ with_gnu_ld=no ++ ;; ++ esac ++ ++ ld_shlibs=yes ++ ++ # On some targets, GNU ld is compatible enough with the native linker ++ # that we're better off using the native interface for both. ++ lt_use_gnu_ld_interface=no ++ if test yes = "$with_gnu_ld"; then ++ case $host_os in ++ aix*) ++ # The AIX port of GNU ld has always aspired to compatibility ++ # with the native linker. However, as the warning in the GNU ld ++ # block says, versions before 2.19.5* couldn't really create working ++ # shared libraries, regardless of the interface used. ++ case `$LD -v 2>&1` in ++ *\ \(GNU\ Binutils\)\ 2.19.5*) ;; ++ *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; ++ *\ \(GNU\ Binutils\)\ [3-9]*) ;; ++ *) ++ lt_use_gnu_ld_interface=yes ++ ;; ++ esac ++ ;; ++ *) ++ lt_use_gnu_ld_interface=yes ++ ;; ++ esac ++ fi ++ ++ if test yes = "$lt_use_gnu_ld_interface"; 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 | $SED -e 's/(^)\+)\s\+//' 2>&1` in ++ *GNU\ gold*) supports_anon_versioning=yes ;; ++ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 ++ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... ++ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... ++ *\ 2.11.*) ;; # other 2.11 versions ++ *) supports_anon_versioning=yes ;; ++ esac ++ ++ # See if GNU ld supports shared libraries. ++ case $host_os in ++ aix[3-9]*) ++ # On AIX/PPC, the GNU linker is very broken ++ if test ia64 != "$host_cpu"; then ++ ld_shlibs=no ++ cat <<_LT_EOF 1>&2 ++ ++*** Warning: the GNU linker, at least up to release 2.19, is reported ++*** to be unable to reliably create shared libraries on AIX. ++*** Therefore, libtool is disabling shared libraries support. If you ++*** really care for shared libraries, you may want to install binutils ++*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. ++*** You will then need to restart the configuration process. ++ ++_LT_EOF ++ fi ++ ;; ++ ++ amigaos*) ++ case $host_cpu in ++ powerpc) ++ # see comment about AmigaOS4 .so support ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ archive_expsym_cmds='' ++ ;; ++ m68k) ++ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ ;; ++ esac ++ ;; ++ ++ beos*) ++ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ++ allow_undefined_flag=unsupported ++ # Joseph Beckenbach says some releases of gcc ++ # support --undefined. This deserves some investigation. FIXME ++ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ cygwin* | mingw* | pw32* | cegcc*) ++ # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, ++ # as there is no search path for DLLs. ++ hardcode_libdir_flag_spec='-L$libdir' ++ export_dynamic_flag_spec='$wl--export-all-symbols' ++ allow_undefined_flag=unsupported ++ always_export_symbols=no ++ enable_shared_with_static_runtimes=yes ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ++ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' ++ ++ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ++ # If the export-symbols file already is a .def file, use it as ++ # is; otherwise, prepend EXPORTS... ++ archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then ++ cp $export_symbols $output_objdir/$soname.def; ++ else ++ echo EXPORTS > $output_objdir/$soname.def; ++ cat $export_symbols >> $output_objdir/$soname.def; ++ fi~ ++ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ haiku*) ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ link_all_deplibs=yes ++ ;; ++ ++ os2*) ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ allow_undefined_flag=unsupported ++ shrext_cmds=.dll ++ archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ ++ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ ++ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ ++ $ECHO EXPORTS >> $output_objdir/$libname.def~ ++ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ ++ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ ++ emximp -o $lib $output_objdir/$libname.def' ++ archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ ++ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ ++ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ ++ $ECHO EXPORTS >> $output_objdir/$libname.def~ ++ prefix_cmds="$SED"~ ++ if test EXPORTS = "`$SED 1q $export_symbols`"; then ++ prefix_cmds="$prefix_cmds -e 1d"; ++ fi~ ++ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ ++ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ ++ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ ++ emximp -o $lib $output_objdir/$libname.def' ++ old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' ++ enable_shared_with_static_runtimes=yes ++ ;; ++ ++ interix[3-9]*) ++ hardcode_direct=no ++ hardcode_shlibpath_var=no ++ hardcode_libdir_flag_spec='$wl-rpath,$libdir' ++ export_dynamic_flag_spec='$wl-E' ++ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. ++ # Instead, shared libraries are loaded at an image base (0x10000000 by ++ # default) and relocated if they conflict, which is a slow very memory ++ # consuming and fragmenting process. To avoid this, we pick a random, ++ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link ++ # time. Moving up from 0x10000000 also allows more sbrk(2) space. ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ++ archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ++ ;; ++ ++ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) ++ tmp_diet=no ++ if test linux-dietlibc = "$host_os"; then ++ case $cc_basename in ++ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) ++ esac ++ fi ++ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ ++ && test no = "$tmp_diet" ++ then ++ tmp_addflag=' $pic_flag' ++ tmp_sharedflag='-shared' ++ case $cc_basename,$host_cpu in ++ pgcc*) # Portland Group C compiler ++ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ++ tmp_addflag=' $pic_flag' ++ ;; ++ pgf77* | pgf90* | pgf95* | pgfortran*) ++ # Portland Group f77 and f90 compilers ++ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ++ tmp_addflag=' $pic_flag -Mnomain' ;; ++ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 ++ tmp_addflag=' -i_dynamic' ;; ++ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 ++ tmp_addflag=' -i_dynamic -nofor_main' ;; ++ ifc* | ifort*) # Intel Fortran compiler ++ tmp_addflag=' -nofor_main' ;; ++ lf95*) # Lahey Fortran 8.1 ++ whole_archive_flag_spec= ++ tmp_sharedflag='--shared' ;; ++ nagfor*) # NAGFOR 5.3 ++ tmp_sharedflag='-Wl,-shared' ;; ++ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) ++ tmp_sharedflag='-qmkshrobj' ++ tmp_addflag= ;; ++ nvcc*) # Cuda Compiler Driver 2.2 ++ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ++ compiler_needs_object=yes ++ ;; ++ esac ++ case `$CC -V 2>&1 | sed 5q` in ++ *Sun\ C*) # Sun C 5.9 ++ whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ++ compiler_needs_object=yes ++ tmp_sharedflag='-G' ;; ++ *Sun\ F*) # Sun Fortran 8.3 ++ tmp_sharedflag='-G' ;; ++ esac ++ archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ ++ if test yes = "$supports_anon_versioning"; then ++ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ ++ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ ++ echo "local: *; };" >> $output_objdir/$libname.ver~ ++ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' ++ fi ++ ++ case $cc_basename in ++ tcc*) ++ export_dynamic_flag_spec='-rdynamic' ++ ;; ++ xlf* | bgf* | bgxlf* | mpixlf*) ++ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself ++ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' ++ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' ++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' ++ if test yes = "$supports_anon_versioning"; then ++ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ ++ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ ++ echo "local: *; };" >> $output_objdir/$libname.ver~ ++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' ++ fi ++ ;; ++ esac ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then ++ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' ++ wlarc= ++ else ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ fi ++ ;; ++ ++ solaris*) ++ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ++ ld_shlibs=no ++ cat <<_LT_EOF 1>&2 ++ ++*** Warning: The releases 2.8.* of the GNU linker cannot reliably ++*** create shared libraries on Solaris systems. Therefore, libtool ++*** is disabling shared libraries support. We urge you to upgrade GNU ++*** binutils to release 2.9.1 or newer. Another option is to modify ++*** your PATH or compiler configuration so that the native linker is ++*** used, and then restart. ++ ++_LT_EOF ++ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) ++ case `$LD -v 2>&1` in ++ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ++ ld_shlibs=no ++ cat <<_LT_EOF 1>&2 ++ ++*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot ++*** reliably create shared libraries on SCO systems. Therefore, libtool ++*** is disabling shared libraries support. We urge you to upgrade GNU ++*** binutils to release 2.16.91.0.3 or newer. Another option is to modify ++*** your PATH or compiler configuration so that the native linker is ++*** used, and then restart. ++ ++_LT_EOF ++ ;; ++ *) ++ # For security reasons, it is highly recommended that you always ++ # use absolute paths for naming shared libraries, and exclude the ++ # DT_RUNPATH tag from executables and libraries. But doing so ++ # requires that you compile everything twice, which is a pain. ++ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ++ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ esac ++ ;; ++ ++ sunos4*) ++ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ wlarc= ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ esac ++ ++ if test no = "$ld_shlibs"; 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 yes = "$GCC" && 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 ia64 = "$host_cpu"; 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 GNU nm, but means don't demangle to AIX nm. ++ # Without the "-l" option, or with the "-B" option, AIX nm treats ++ # weak defined symbols like other global defined symbols, whereas ++ # GNU nm marks them as "W". ++ # While the 'weak' keyword is ignored in the Export File, we need ++ # it in the Import File for the 'aix-soname' feature, so we have ++ # to replace the "-B" option with "-P" for AIX 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") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' ++ else ++ export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | 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 ++ # have runtime linking enabled, and use it for executables. ++ # For shared libraries, we enable/disable runtime linking ++ # depending on the kind of the shared library created - ++ # when "with_aix_soname,aix_use_runtimelinking" is: ++ # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables ++ # "aix,yes" lib.so shared, rtl:yes, for executables ++ # lib.a static archive ++ # "both,no" lib.so.V(shr.o) shared, rtl:yes ++ # lib.a(lib.so.V) shared, rtl:no, for executables ++ # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables ++ # lib.a(lib.so.V) shared, rtl:no ++ # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables ++ # lib.a static archive ++ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) ++ for ld_flag in $LDFLAGS; do ++ if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then ++ aix_use_runtimelinking=yes ++ break ++ fi ++ done ++ if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then ++ # With aix-soname=svr4, we create the lib.so.V shared archives only, ++ # so we don't have lib.a shared libs to link our executables. ++ # We have to force runtime linking in this case. ++ aix_use_runtimelinking=yes ++ LDFLAGS="$LDFLAGS -Wl,-brtl" ++ fi ++ ;; ++ esac ++ ++ exp_sym_flag='-bexport' ++ no_entry_flag='-bnoentry' ++ fi ++ ++ # When large executables or shared objects are built, AIX ld can ++ # have problems creating the table of contents. If linking a library ++ # or program results in "error TOC overflow" add -mminimal-toc to ++ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not ++ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. ++ ++ archive_cmds='' ++ hardcode_direct=yes ++ hardcode_direct_absolute=yes ++ hardcode_libdir_separator=':' ++ link_all_deplibs=yes ++ file_list_spec='$wl-f,' ++ case $with_aix_soname,$aix_use_runtimelinking in ++ aix,*) ;; # traditional, no import file ++ svr4,* | *,yes) # use import file ++ # The Import File defines what to hardcode. ++ hardcode_direct=no ++ hardcode_direct_absolute=no ++ ;; ++ esac ++ ++ if test yes = "$GCC"; 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 yes = "$aix_use_runtimelinking"; then ++ shared_flag="$shared_flag "'$wl-G' ++ fi ++ # Need to ensure runtime linking is disabled for the traditional ++ # shared library, or the linker may eventually find shared libraries ++ # /with/ Import File - we do not want to mix them. ++ shared_flag_aix='-shared' ++ shared_flag_svr4='-shared $wl-G' ++ else ++ # not using gcc ++ if test ia64 = "$host_cpu"; 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 yes = "$aix_use_runtimelinking"; then ++ shared_flag='$wl-G' ++ else ++ shared_flag='$wl-bM:SRE' ++ fi ++ shared_flag_aix='$wl-bM:SRE' ++ shared_flag_svr4='$wl-G' ++ fi ++ fi ++ ++ export_dynamic_flag_spec='$wl-bexpall' ++ # It seems that -bexpall does not export symbols beginning with ++ # underscore (_), so it is better to generate a list of symbols to export. ++ always_export_symbols=yes ++ if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then ++ # Warning - without using the other runtime loading flags (-brtl), ++ # -berok will link without error, but may produce a broken library. ++ allow_undefined_flag='-berok' ++ # Determine the default libpath from the value encoded in an ++ # empty executable. ++ if test set = "${lt_cv_aix_libpath+set}"; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=/usr/lib:/lib ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi ++ ++ hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" ++ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag ++ else ++ if test ia64 = "$host_cpu"; then ++ hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' ++ allow_undefined_flag="-z nodefs" ++ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" ++ else ++ # Determine the default libpath from the value encoded in an ++ # empty executable. ++ if test set = "${lt_cv_aix_libpath+set}"; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=/usr/lib:/lib ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi ++ ++ hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" ++ # Warning - without using the other run time loading flags, ++ # -berok will link without error, but may produce a broken library. ++ no_undefined_flag=' $wl-bernotok' ++ allow_undefined_flag=' $wl-berok' ++ if test yes = "$with_gnu_ld"; then ++ # We only use this code for GNU lds that support --whole-archive. ++ whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' ++ else ++ # Exported symbols can be pulled into shared objects from archives ++ whole_archive_flag_spec='$convenience' ++ fi ++ archive_cmds_need_lc=yes ++ archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' ++ # -brtl affects multiple linker settings, -berok does not and is overridden later ++ compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' ++ if test svr4 != "$with_aix_soname"; then ++ # This is similar to how AIX traditionally builds its shared libraries. ++ archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' ++ fi ++ if test aix != "$with_aix_soname"; then ++ archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' ++ else ++ # used by -dlpreopen to get the symbols ++ archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' ++ fi ++ archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' ++ fi ++ fi ++ ;; ++ ++ amigaos*) ++ case $host_cpu in ++ powerpc) ++ # see comment about AmigaOS4 .so support ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ archive_expsym_cmds='' ++ ;; ++ m68k) ++ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ ;; ++ esac ++ ;; ++ ++ bsdi[45]*) ++ export_dynamic_flag_spec=-rdynamic ++ ;; ++ ++ cygwin* | mingw* | pw32* | cegcc*) ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ case $cc_basename in ++ cl*) ++ # Native MSVC ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ file_list_spec='@' ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=.dll ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' ++ archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then ++ cp "$export_symbols" "$output_objdir/$soname.def"; ++ echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; ++ else ++ $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; ++ fi~ ++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ++ linknames=' ++ # The linker will not automatically build a static lib if we build a DLL. ++ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' ++ enable_shared_with_static_runtimes=yes ++ exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ # Don't use ranlib ++ old_postinstall_cmds='chmod 644 $oldlib' ++ postlink_cmds='lt_outputfile="@OUTPUT@"~ ++ lt_tool_outputfile="@TOOL_OUTPUT@"~ ++ case $lt_outputfile in ++ *.exe|*.EXE) ;; ++ *) ++ lt_outputfile=$lt_outputfile.exe ++ lt_tool_outputfile=$lt_tool_outputfile.exe ++ ;; ++ esac~ ++ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then ++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ++ $RM "$lt_outputfile.manifest"; ++ fi' ++ ;; ++ *) ++ # Assume MSVC wrapper ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=.dll ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' ++ enable_shared_with_static_runtimes=yes ++ ;; ++ esac ++ ;; ++ ++ darwin* | rhapsody*) ++ ++ ++ archive_cmds_need_lc=no ++ hardcode_direct=no ++ hardcode_automatic=yes ++ hardcode_shlibpath_var=unsupported ++ if test yes = "$lt_cv_ld_force_load"; then ++ whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' ++ ++ else ++ whole_archive_flag_spec='' ++ fi ++ link_all_deplibs=yes ++ allow_undefined_flag=$_lt_dar_allow_undefined ++ case $cc_basename in ++ ifort*|nagfor*) _lt_dar_can_shared=yes ;; ++ *) _lt_dar_can_shared=$GCC ;; ++ esac ++ if test yes = "$_lt_dar_can_shared"; then ++ output_verbose_link_cmd=func_echo_all ++ archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" ++ module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" ++ archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" ++ module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" ++ ++ else ++ ld_shlibs=no ++ fi ++ ++ ;; ++ ++ dgux*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor ++ # support. Future versions do this automatically, but an explicit c++rt0.o ++ # does not break anything, and helps significantly (at the cost of a little ++ # extra space). ++ freebsd2.2*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # Unfortunately, older versions of FreeBSD 2 do not have this feature. ++ freebsd2.*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # FreeBSD 3 and greater uses gcc -shared to do shared libraries. ++ freebsd* | dragonfly*) ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ hpux9*) ++ if test yes = "$GCC"; then ++ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$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 "x$output_objdir/$soname" = "x$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 yes,no = "$GCC,$with_gnu_ld"; then ++ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ++ fi ++ if test no = "$with_gnu_ld"; then ++ hardcode_libdir_flag_spec='$wl+b $wl$libdir' ++ hardcode_libdir_separator=: ++ hardcode_direct=yes ++ hardcode_direct_absolute=yes ++ export_dynamic_flag_spec='$wl-E' ++ # hardcode_minus_L: Not really in the search PATH, ++ # but as the default location of the library. ++ hardcode_minus_L=yes ++ fi ++ ;; ++ ++ hpux11*) ++ if test yes,no = "$GCC,$with_gnu_ld"; then ++ case $host_cpu in ++ hppa*64*) ++ archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ ia64*) ++ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ *) ++ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ esac ++ else ++ case $host_cpu in ++ hppa*64*) ++ archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ ia64*) ++ archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ *) ++ ++ # Older versions of the 11.00 compiler do not understand -b yet ++ # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 ++$as_echo_n "checking if $CC understands -b... " >&6; } ++if ${lt_cv_prog_compiler__b+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler__b=no ++ save_LDFLAGS=$LDFLAGS ++ LDFLAGS="$LDFLAGS -b" ++ echo "$lt_simple_link_test_code" > conftest.$ac_ext ++ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then ++ # The linker can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ # Append any errors to the config.log. ++ cat conftest.err 1>&5 ++ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp ++ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 ++ if diff conftest.exp conftest.er2 >/dev/null; then ++ lt_cv_prog_compiler__b=yes ++ fi ++ else ++ lt_cv_prog_compiler__b=yes ++ fi ++ fi ++ $RM -r conftest* ++ LDFLAGS=$save_LDFLAGS ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 ++$as_echo "$lt_cv_prog_compiler__b" >&6; } ++ ++if test yes = "$lt_cv_prog_compiler__b"; then ++ archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++else ++ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ++fi ++ ++ ;; ++ esac ++ fi ++ if test no = "$with_gnu_ld"; then ++ hardcode_libdir_flag_spec='$wl+b $wl$libdir' ++ hardcode_libdir_separator=: ++ ++ case $host_cpu in ++ hppa*64*|ia64*) ++ hardcode_direct=no ++ hardcode_shlibpath_var=no ++ ;; ++ *) ++ hardcode_direct=yes ++ hardcode_direct_absolute=yes ++ export_dynamic_flag_spec='$wl-E' ++ ++ # hardcode_minus_L: Not really in the search PATH, ++ # but as the default location of the library. ++ hardcode_minus_L=yes ++ ;; ++ esac ++ fi ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ if test yes = "$GCC"; then ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ++ # Try to use the -exported_symbol ld option, if it does not ++ # work, assume that -exports_file does not work either and ++ # implicitly export all symbols. ++ # This should be the same for all languages, so no per-tag cache variable. ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 ++$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } ++if ${lt_cv_irix_exported_symbol+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ save_LDFLAGS=$LDFLAGS ++ LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++int foo (void) { return 0; } ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ lt_cv_irix_exported_symbol=yes ++else ++ lt_cv_irix_exported_symbol=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ LDFLAGS=$save_LDFLAGS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 ++$as_echo "$lt_cv_irix_exported_symbol" >&6; } ++ if test yes = "$lt_cv_irix_exported_symbol"; then ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' ++ fi ++ else ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' ++ fi ++ archive_cmds_need_lc='no' ++ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' ++ hardcode_libdir_separator=: ++ inherit_rpath=yes ++ link_all_deplibs=yes ++ ;; ++ ++ linux*) ++ case $cc_basename in ++ tcc*) ++ # Fabrice Bellard et al's Tiny C Compiler ++ ld_shlibs=yes ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ esac ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out ++ else ++ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF ++ fi ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ newsos6) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' ++ hardcode_libdir_separator=: ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *nto* | *qnx*) ++ ;; ++ ++ openbsd* | bitrig*) ++ if test -f /usr/libexec/ld.so; then ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ hardcode_direct_absolute=yes ++ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; 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 ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='$wl-rpath,$libdir' ++ fi ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ os2*) ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ allow_undefined_flag=unsupported ++ shrext_cmds=.dll ++ archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ ++ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ ++ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ ++ $ECHO EXPORTS >> $output_objdir/$libname.def~ ++ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ ++ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ ++ emximp -o $lib $output_objdir/$libname.def' ++ archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ ++ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ ++ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ ++ $ECHO EXPORTS >> $output_objdir/$libname.def~ ++ prefix_cmds="$SED"~ ++ if test EXPORTS = "`$SED 1q $export_symbols`"; then ++ prefix_cmds="$prefix_cmds -e 1d"; ++ fi~ ++ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ ++ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ ++ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ ++ emximp -o $lib $output_objdir/$libname.def' ++ old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' ++ enable_shared_with_static_runtimes=yes ++ ;; ++ ++ osf3*) ++ if test yes = "$GCC"; then ++ allow_undefined_flag=' $wl-expect_unresolved $wl\*' ++ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' ++ fi ++ archive_cmds_need_lc='no' ++ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' ++ hardcode_libdir_separator=: ++ ;; ++ ++ osf4* | osf5*) # as osf3* with the addition of -msym flag ++ if test yes = "$GCC"; then ++ allow_undefined_flag=' $wl-expect_unresolved $wl\*' ++ archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ++ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' ++ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ ++ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' ++ ++ # Both c and cxx compiler support -rpath directly ++ hardcode_libdir_flag_spec='-rpath $libdir' ++ fi ++ archive_cmds_need_lc='no' ++ hardcode_libdir_separator=: ++ ;; ++ ++ solaris*) ++ no_undefined_flag=' -z defs' ++ if test yes = "$GCC"; then ++ wlarc='$wl' ++ archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ++ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ++ else ++ case `$CC -V 2>&1` in ++ *"Compilers 5.0"*) ++ wlarc='' ++ archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ++ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ++ ;; ++ *) ++ wlarc='$wl' ++ archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ++ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ++ ;; ++ esac ++ fi ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_shlibpath_var=no ++ case $host_os in ++ solaris2.[0-5] | solaris2.[0-5].*) ;; ++ *) ++ # The compiler driver will combine and reorder linker options, ++ # but understands '-z linker_flag'. GCC discards it without '$wl', ++ # but is careful enough not to reorder. ++ # Supported since Solaris 2.6 (maybe 2.5.1?) ++ if test yes = "$GCC"; 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 sequent = "$host_vendor"; 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 yes = "$GCC"; 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 CANNOT use -z defs as we might desire, because we do not ++ # link with -lc, and that would cause any symbols used from libc to ++ # always be unresolved, which means just about no library would ++ # ever link correctly. If we're not using GNU ld we use -z text ++ # though, which does catch some bad symbols but isn't as heavy-handed ++ # as -z defs. ++ no_undefined_flag='$wl-z,text' ++ allow_undefined_flag='$wl-z,nodefs' ++ archive_cmds_need_lc=no ++ hardcode_shlibpath_var=no ++ hardcode_libdir_flag_spec='$wl-R,$libdir' ++ hardcode_libdir_separator=':' ++ link_all_deplibs=yes ++ export_dynamic_flag_spec='$wl-Bexport' ++ runpath_var='LD_RUN_PATH' ++ ++ if test yes = "$GCC"; then ++ archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ fi ++ ;; ++ ++ uts4*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ ld_shlibs=no ++ ;; ++ esac ++ ++ if test sni = "$host_vendor"; then ++ case $host in ++ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ export_dynamic_flag_spec='$wl-Blargedynsym' ++ ;; ++ esac ++ fi ++ fi ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 ++$as_echo "$ld_shlibs" >&6; } ++test no = "$ld_shlibs" && can_build_shared=no ++ ++with_gnu_ld=$with_gnu_ld ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++# ++# Do we need to explicitly link libc? ++# ++case "x$archive_cmds_need_lc" in ++x|xyes) ++ # Assume -lc should be added ++ archive_cmds_need_lc=yes ++ ++ if test yes,yes = "$GCC,$enable_shared"; then ++ case $archive_cmds in ++ *'~'*) ++ # FIXME: we may have to deal with multi-command sequences. ++ ;; ++ '$CC '*) ++ # Test whether the compiler implicitly links with -lc since on some ++ # systems, -lgcc has to come before -lc. If gcc already passes -lc ++ # to ld, don't add -lc before -lgcc. ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 ++$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } ++if ${lt_cv_archive_cmds_need_lc+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ $RM conftest* ++ echo "$lt_simple_compile_test_code" > conftest.$ac_ext ++ ++ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } 2>conftest.err; then ++ soname=conftest ++ lib=conftest ++ libobjs=conftest.$ac_objext ++ deplibs= ++ wl=$lt_prog_compiler_wl ++ pic_flag=$lt_prog_compiler_pic ++ compiler_flags=-v ++ linker_flags=-v ++ verstring= ++ output_objdir=. ++ libname=conftest ++ lt_save_allow_undefined_flag=$allow_undefined_flag ++ allow_undefined_flag= ++ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 ++ (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ then ++ lt_cv_archive_cmds_need_lc=no ++ else ++ lt_cv_archive_cmds_need_lc=yes ++ fi ++ allow_undefined_flag=$lt_save_allow_undefined_flag ++ else ++ cat conftest.err 1>&5 ++ fi ++ $RM conftest* ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 ++$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } ++ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ++ ;; ++ esac ++ fi ++ ;; ++esac ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 ++$as_echo_n "checking dynamic linker characteristics... " >&6; } ++ ++if test yes = "$GCC"; then ++ case $host_os in ++ darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; ++ *) lt_awk_arg='/^libraries:/' ;; ++ esac ++ case $host_os in ++ mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; ++ *) lt_sed_strip_eq='s|=/|/|g' ;; ++ esac ++ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` ++ case $lt_search_path_spec in ++ *\;*) ++ # if the path contains ";" then we assume it to be the separator ++ # otherwise default to the standard path separator (i.e. ":") - it is ++ # assumed that no part of a normal pathname contains ";" but that should ++ # okay in the real world where ";" in dirpaths is itself problematic. ++ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ++ ;; ++ *) ++ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ++ ;; ++ esac ++ # Ok, now we have the path, separated by spaces, we can step through it ++ # and add multilib dir if necessary... ++ lt_tmp_lt_search_path_spec= ++ lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` ++ # ...but if some path component already ends with the multilib dir we assume ++ # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). ++ case "$lt_multi_os_dir; $lt_search_path_spec " in ++ "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) ++ lt_multi_os_dir= ++ ;; ++ esac ++ 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" ++ elif test -n "$lt_multi_os_dir"; then ++ test -d "$lt_sys_path" && \ ++ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" ++ fi ++ done ++ lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' ++BEGIN {RS = " "; FS = "/|\n";} { ++ lt_foo = ""; ++ lt_count = 0; ++ for (lt_i = NF; lt_i > 0; lt_i--) { ++ if ($lt_i != "" && $lt_i != ".") { ++ if ($lt_i == "..") { ++ lt_count++; ++ } else { ++ if (lt_count == 0) { ++ lt_foo = "/" $lt_i lt_foo; ++ } else { ++ lt_count--; ++ } ++ } ++ } ++ } ++ if (lt_foo != "") { lt_freq[lt_foo]++; } ++ if (lt_freq[lt_foo] == 1) { print lt_foo; } ++}'` ++ # AWK program above erroneously prepends '/' to C:/dos/paths ++ # for these hosts. ++ case $host_os in ++ mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ ++ $SED 's|/\([A-Za-z]:\)|\1|g'` ;; ++ esac ++ sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` ++else ++ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" ++fi ++library_names_spec= ++libname_spec='lib$name' ++soname_spec= ++shrext_cmds=.so ++postinstall_cmds= ++postuninstall_cmds= ++finish_cmds= ++finish_eval= ++shlibpath_var= ++shlibpath_overrides_runpath=unknown ++version_type=none ++dynamic_linker="$host_os ld.so" ++sys_lib_dlsearch_path_spec="/lib /usr/lib" ++need_lib_prefix=unknown ++hardcode_into_libs=no ++ ++# when you set need_version to no, make sure it does not cause -set_version ++# flags to be left without arguments ++need_version=unknown ++ ++ ++ ++case $host_os in ++aix3*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ library_names_spec='$libname$release$shared_ext$versuffix $libname.a' ++ shlibpath_var=LIBPATH ++ ++ # AIX 3 has no versioning support, so we append a major version to the name. ++ soname_spec='$libname$release$shared_ext$major' ++ ;; ++ ++aix[4-9]*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_lib_prefix=no ++ need_version=no ++ hardcode_into_libs=yes ++ if test ia64 = "$host_cpu"; 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 ++ # Using Import Files as archive members, it is possible to support ++ # filename-based versioning of shared library archives on AIX. While ++ # this would work for both with and without runtime linking, it will ++ # prevent static linking of such archives. So we do filename-based ++ # shared library versioning with .so extension only, which is used ++ # when both runtime linking and shared linking is enabled. ++ # Unfortunately, runtime linking may impact performance, so we do ++ # not want this to be the default eventually. Also, we use the ++ # versioned .so libs for executables only if there is the -brtl ++ # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. ++ # To allow for filename-based versioning support, we need to create ++ # libNAME.so.V as an archive file, containing: ++ # *) an Import File, referring to the versioned filename of the ++ # archive as well as the shared archive member, telling the ++ # bitwidth (32 or 64) of that shared object, and providing the ++ # list of exported symbols of that shared object, eventually ++ # decorated with the 'weak' keyword ++ # *) the shared object with the F_LOADONLY flag set, to really avoid ++ # it being seen by the linker. ++ # At run time we better use the real file rather than another symlink, ++ # but for link time we create the symlink libNAME.so -> libNAME.so.V ++ ++ case $with_aix_soname,$aix_use_runtimelinking in ++ # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct ++ # soname into executable. Probably we can add versioning support to ++ # collect2, so additional links can be useful in future. ++ aix,yes) # traditional libtool ++ dynamic_linker='AIX unversionable lib.so' ++ # 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' ++ ;; ++ aix,no) # traditional AIX only ++ dynamic_linker='AIX lib.a(lib.so.V)' ++ # 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' ++ ;; ++ svr4,*) # full svr4 only ++ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" ++ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' ++ # We do not specify a path in Import Files, so LIBPATH fires. ++ shlibpath_overrides_runpath=yes ++ ;; ++ *,yes) # both, prefer svr4 ++ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" ++ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' ++ # unpreferred sharedlib libNAME.a needs extra handling ++ postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' ++ postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' ++ # We do not specify a path in Import Files, so LIBPATH fires. ++ shlibpath_overrides_runpath=yes ++ ;; ++ *,no) # both, prefer aix ++ dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" ++ library_names_spec='$libname$release.a $libname.a' ++ soname_spec='$libname$release$shared_ext$major' ++ # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling ++ postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' ++ postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ++ ;; ++ esac ++ shlibpath_var=LIBPATH ++ fi ++ ;; ++ ++amigaos*) ++ case $host_cpu in ++ powerpc) ++ # Since July 2007 AmigaOS4 officially supports .so libraries. ++ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ ;; ++ m68k) ++ library_names_spec='$libname.ixlibrary $libname.a' ++ # Create ${libname}_ixlibrary.a entries in /sys/libs. ++ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ++ ;; ++ esac ++ ;; ++ ++beos*) ++ library_names_spec='$libname$shared_ext' ++ dynamic_linker="$host_os ld.so" ++ shlibpath_var=LIBRARY_PATH ++ ;; ++ ++bsdi[45]*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" ++ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" ++ # the default ld.so.conf also contains /usr/contrib/lib and ++ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow ++ # libtool to hard-code these into programs ++ ;; ++ ++cygwin* | mingw* | pw32* | cegcc*) ++ version_type=windows ++ shrext_cmds=.dll ++ need_version=no ++ need_lib_prefix=no ++ ++ case $GCC,$cc_basename in ++ yes,*) ++ # gcc ++ library_names_spec='$libname.dll.a' ++ # DLL is installed to $(libdir)/../bin by postinstall_cmds ++ postinstall_cmds='base_file=`basename \$file`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname~ ++ chmod a+x \$dldir/$dlname~ ++ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then ++ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; ++ fi' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ shlibpath_overrides_runpath=yes ++ ++ case $host_os in ++ cygwin*) ++ # Cygwin DLLs use 'cyg' prefix rather than 'lib' ++ soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ++ ++ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ++ ;; ++ mingw* | cegcc*) ++ # MinGW DLLs use traditional 'lib' prefix ++ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ++ ;; ++ pw32*) ++ # pw32 DLLs use 'pw' prefix rather than 'lib' ++ library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ++ ;; ++ esac ++ dynamic_linker='Win32 ld.exe' ++ ;; ++ ++ *,cl*) ++ # Native MSVC ++ libname_spec='$name' ++ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ++ library_names_spec='$libname.dll.lib' ++ ++ case $build_os in ++ mingw*) ++ sys_lib_search_path_spec= ++ lt_save_ifs=$IFS ++ IFS=';' ++ for lt_path in $LIB ++ do ++ IFS=$lt_save_ifs ++ # Let DOS variable expansion print the short 8.3 style file name. ++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` ++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" ++ done ++ IFS=$lt_save_ifs ++ # Convert to MSYS style. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ++ ;; ++ cygwin*) ++ # Convert to unix form, then to dos form, then back to unix form ++ # but this time dos style (no spaces!) so that the unix form looks ++ # like /cygdrive/c/PROGRA~1:/cygdr... ++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` ++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` ++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ ;; ++ *) ++ sys_lib_search_path_spec=$LIB ++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then ++ # It is most probably a Windows format PATH. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` ++ else ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ fi ++ # FIXME: find the short name or the path components, as spaces are ++ # common. (e.g. "Program Files" -> "PROGRA~1") ++ ;; ++ esac ++ ++ # DLL is installed to $(libdir)/../bin by postinstall_cmds ++ postinstall_cmds='base_file=`basename \$file`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ shlibpath_overrides_runpath=yes ++ dynamic_linker='Win32 link.exe' ++ ;; ++ ++ *) ++ # Assume MSVC wrapper ++ library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' ++ dynamic_linker='Win32 ld.exe' ++ ;; ++ esac ++ # FIXME: first we should search . and the directory the executable is in ++ shlibpath_var=PATH ++ ;; ++ ++darwin* | rhapsody*) ++ dynamic_linker="$host_os dyld" ++ version_type=darwin ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' ++ soname_spec='$libname$release$major$shared_ext' ++ shlibpath_overrides_runpath=yes ++ shlibpath_var=DYLD_LIBRARY_PATH ++ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' ++ ++ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" ++ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ++ ;; ++ ++dgux*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++freebsd* | dragonfly*) ++ # DragonFly does not have aout. When/if they implement a new ++ # versioning mechanism, adjust this. ++ if test -x /usr/bin/objformat; then ++ objformat=`/usr/bin/objformat` ++ else ++ case $host_os in ++ freebsd[23].*) objformat=aout ;; ++ *) objformat=elf ;; ++ esac ++ fi ++ version_type=freebsd-$objformat ++ case $version_type in ++ freebsd-elf*) ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ need_version=no ++ need_lib_prefix=no ++ ;; ++ freebsd-*) ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' ++ need_version=yes ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_os in ++ freebsd2.*) ++ shlibpath_overrides_runpath=yes ++ ;; ++ freebsd3.[01]* | freebsdelf3.[01]*) ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ ++ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ ;; ++ *) # from 4.6 on, and DragonFly ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ esac ++ ;; ++ ++haiku*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_lib_prefix=no ++ need_version=no ++ dynamic_linker="$host_os runtime_loader" ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ shlibpath_var=LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' ++ hardcode_into_libs=yes ++ ;; ++ ++hpux9* | hpux10* | hpux11*) ++ # Give a soname corresponding to the major version so that dld.sl refuses to ++ # link against other versions. ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ case $host_cpu in ++ ia64*) ++ shrext_cmds='.so' ++ hardcode_into_libs=yes ++ dynamic_linker="$host_os dld.so" ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ if test 32 = "$HPUX_IA64_MODE"; then ++ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" ++ sys_lib_dlsearch_path_spec=/usr/lib/hpux32 ++ else ++ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" ++ sys_lib_dlsearch_path_spec=/usr/lib/hpux64 ++ fi ++ ;; ++ hppa*64*) ++ shrext_cmds='.sl' ++ hardcode_into_libs=yes ++ dynamic_linker="$host_os dld.sl" ++ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH ++ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" ++ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ++ ;; ++ *) ++ shrext_cmds='.sl' ++ dynamic_linker="$host_os dld.sl" ++ shlibpath_var=SHLIB_PATH ++ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ ;; ++ esac ++ # HP-UX runs *really* slowly unless shared libraries are mode 555, ... ++ postinstall_cmds='chmod 555 $lib' ++ # or fails outright, so override atomically: ++ install_override_mode=555 ++ ;; ++ ++interix[3-9]*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $host_os in ++ nonstopux*) version_type=nonstopux ;; ++ *) ++ if test yes = "$lt_cv_prog_gnu_ld"; then ++ version_type=linux # correct to gnu/linux during the next big refactor ++ else ++ version_type=irix ++ fi ;; ++ esac ++ need_lib_prefix=no ++ need_version=no ++ soname_spec='$libname$release$shared_ext$major' ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' ++ case $host_os in ++ irix5* | nonstopux*) ++ libsuff= shlibsuff= ++ ;; ++ *) ++ case $LD in # libtool.m4 will add one of these switches to LD ++ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") ++ libsuff= shlibsuff= libmagic=32-bit;; ++ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") ++ libsuff=32 shlibsuff=N32 libmagic=N32;; ++ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") ++ libsuff=64 shlibsuff=64 libmagic=64-bit;; ++ *) libsuff= shlibsuff= libmagic=never-match;; ++ esac ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" ++ sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" ++ hardcode_into_libs=yes ++ ;; ++ ++# No shared lib support for Linux oldld, aout, or coff. ++linux*oldld* | linux*aout* | linux*coff*) ++ dynamic_linker=no ++ ;; ++ ++linux*android*) ++ version_type=none # Android doesn't support versioned libraries. ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext' ++ soname_spec='$libname$release$shared_ext' ++ finish_cmds= ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ ++ # 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 ++ ++ dynamic_linker='Android linker' ++ # Don't embed -rpath directories since the linker doesn't support them. ++ hardcode_libdir_flag_spec='-L$libdir' ++ ;; ++ ++# This must be glibc/ELF. ++linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ ++ # Some binutils ld are patched to set DT_RUNPATH ++ if ${lt_cv_shlibpath_overrides_runpath+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_shlibpath_overrides_runpath=no ++ save_LDFLAGS=$LDFLAGS ++ save_libdir=$libdir ++ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ ++ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : ++ lt_cv_shlibpath_overrides_runpath=yes ++fi ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ LDFLAGS=$save_LDFLAGS ++ libdir=$save_libdir ++ ++fi ++ ++ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath ++ ++ # This implies no fast_install, which is unacceptable. ++ # Some rework will be needed to allow for fast_install ++ # before this can be enabled. ++ hardcode_into_libs=yes ++ ++ # Add ABI-specific directories to the system library path. ++ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" ++ ++ # Ideally, we could use ldconfig to report *all* directores which are ++ # searched for libraries, however this is still not possible. Aside from not ++ # being certain /sbin/ldconfig is available, command ++ # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, ++ # even though it is searched at run-time. Try to do the best guess by ++ # appending ld.so.conf contents (and includes) to the search path. ++ if test -f /etc/ld.so.conf; then ++ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` ++ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $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' ++ ;; ++ ++netbsd*) ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ dynamic_linker='NetBSD (a.out) ld.so' ++ else ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ dynamic_linker='NetBSD ld.elf_so' ++ fi ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ ++newsos6) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ ;; ++ ++*nto* | *qnx*) ++ version_type=qnx ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ dynamic_linker='ldqnx.so' ++ ;; ++ ++openbsd* | bitrig*) ++ version_type=sunos ++ sys_lib_dlsearch_path_spec=/usr/lib ++ need_lib_prefix=no ++ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then ++ need_version=no ++ else ++ need_version=yes ++ fi ++ 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 ++ shlibpath_overrides_runpath=yes ++ ;; ++ ++os2*) ++ libname_spec='$name' ++ version_type=windows ++ shrext_cmds=.dll ++ need_version=no ++ need_lib_prefix=no ++ # OS/2 can only load a DLL with a base name of 8 characters or less. ++ soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; ++ v=$($ECHO $release$versuffix | tr -d .-); ++ n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); ++ $ECHO $n$v`$shared_ext' ++ library_names_spec='${libname}_dll.$libext' ++ dynamic_linker='OS/2 ld.exe' ++ shlibpath_var=BEGINLIBPATH ++ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" ++ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ++ postinstall_cmds='base_file=`basename \$file`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname~ ++ chmod a+x \$dldir/$dlname~ ++ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then ++ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; ++ fi' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ ;; ++ ++osf3* | osf4* | osf5*) ++ version_type=osf ++ need_lib_prefix=no ++ need_version=no ++ soname_spec='$libname$release$shared_ext$major' ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" ++ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ++ ;; ++ ++rdos*) ++ dynamic_linker=no ++ ;; ++ ++solaris*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ # ldd complains unless libraries are executable ++ postinstall_cmds='chmod +x $lib' ++ ;; ++ ++sunos4*) ++ version_type=sunos ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' ++ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ if test yes = "$with_gnu_ld"; then ++ need_lib_prefix=no ++ fi ++ need_version=yes ++ ;; ++ ++sysv4 | sysv4.3*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_vendor in ++ sni) ++ shlibpath_overrides_runpath=no ++ need_lib_prefix=no ++ runpath_var=LD_RUN_PATH ++ ;; ++ siemens) ++ need_lib_prefix=no ++ ;; ++ motorola) ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ++ ;; ++ esac ++ ;; ++ ++sysv4*MP*) ++ if test -d /usr/nec; then ++ version_type=linux # correct to gnu/linux during the next big refactor ++ library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' ++ soname_spec='$libname$shared_ext.$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ fi ++ ;; ++ ++sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) ++ version_type=sco ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ if test yes = "$with_gnu_ld"; then ++ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' ++ else ++ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' ++ case $host_os in ++ sco3.2v5*) ++ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ++ ;; ++ esac ++ fi ++ sys_lib_dlsearch_path_spec='/usr/lib' ++ ;; ++ ++tpf*) ++ # TPF is a cross-target only. Preferred cross-host = GNU/Linux. ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ ;; ++ ++uts4*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++*) ++ dynamic_linker=no ++ ;; ++esac ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 ++$as_echo "$dynamic_linker" >&6; } ++test no = "$dynamic_linker" && can_build_shared=no ++ ++variables_saved_for_relink="PATH $shlibpath_var $runpath_var" ++if test yes = "$GCC"; then ++ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" ++fi ++ ++if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then ++ sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec ++fi ++ ++if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then ++ sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec ++fi ++ ++# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... ++configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec ++ ++# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code ++func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" ++ ++# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool ++configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 ++$as_echo_n "checking how to hardcode library paths into programs... " >&6; } ++hardcode_action= ++if test -n "$hardcode_libdir_flag_spec" || ++ test -n "$runpath_var" || ++ test yes = "$hardcode_automatic"; then ++ ++ # We can hardcode non-existent directories. ++ if test no != "$hardcode_direct" && ++ # 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 no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && ++ test no != "$hardcode_minus_L"; then ++ # Linking always hardcodes the temporary library directory. ++ hardcode_action=relink ++ else ++ # We can link without hardcoding, and we can hardcode nonexisting dirs. ++ hardcode_action=immediate ++ fi ++else ++ # We cannot hardcode anything, or else we can only hardcode existing ++ # directories. ++ hardcode_action=unsupported ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 ++$as_echo "$hardcode_action" >&6; } ++ ++if test relink = "$hardcode_action" || ++ test yes = "$inherit_rpath"; then ++ # Fast installation is not supported ++ enable_fast_install=no ++elif test yes = "$shlibpath_overrides_runpath" || ++ test no = "$enable_shared"; then ++ # Fast installation is not necessary ++ enable_fast_install=needless ++fi ++ ++ ++ ++ ++ ++ ++ if test yes != "$enable_dlopen"; then ++ enable_dlopen=unknown ++ enable_dlopen_self=unknown ++ enable_dlopen_self_static=unknown ++else ++ lt_cv_dlopen=no ++ lt_cv_dlopen_libs= ++ ++ case $host_os in ++ beos*) ++ lt_cv_dlopen=load_add_on ++ lt_cv_dlopen_libs= ++ lt_cv_dlopen_self=yes ++ ;; ++ ++ mingw* | pw32* | cegcc*) ++ lt_cv_dlopen=LoadLibrary ++ lt_cv_dlopen_libs= ++ ;; ++ ++ cygwin*) ++ lt_cv_dlopen=dlopen ++ lt_cv_dlopen_libs= ++ ;; ++ ++ darwin*) ++ # if libdl is installed we need to link against it ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 ++$as_echo_n "checking for dlopen in -ldl... " >&6; } ++if ${ac_cv_lib_dl_dlopen+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-ldl $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char dlopen (); ++int ++main () ++{ ++return dlopen (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_dl_dlopen=yes ++else ++ ac_cv_lib_dl_dlopen=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 ++$as_echo "$ac_cv_lib_dl_dlopen" >&6; } ++if test "x$ac_cv_lib_dl_dlopen" = xyes; then : ++ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl ++else ++ ++ lt_cv_dlopen=dyld ++ lt_cv_dlopen_libs= ++ lt_cv_dlopen_self=yes ++ ++fi ++ ++ ;; ++ ++ tpf*) ++ # Don't try to run any link tests for TPF. We know it's impossible ++ # because TPF is a cross-compiler, and we know how we open DSOs. ++ lt_cv_dlopen=dlopen ++ lt_cv_dlopen_libs= ++ lt_cv_dlopen_self=no ++ ;; ++ ++ *) ++ ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" ++if test "x$ac_cv_func_shl_load" = xyes; then : ++ lt_cv_dlopen=shl_load ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 ++$as_echo_n "checking for shl_load in -ldld... " >&6; } ++if ${ac_cv_lib_dld_shl_load+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-ldld $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char shl_load (); ++int ++main () ++{ ++return shl_load (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_dld_shl_load=yes ++else ++ ac_cv_lib_dld_shl_load=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 ++$as_echo "$ac_cv_lib_dld_shl_load" >&6; } ++if test "x$ac_cv_lib_dld_shl_load" = xyes; then : ++ lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld ++else ++ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" ++if test "x$ac_cv_func_dlopen" = xyes; then : ++ lt_cv_dlopen=dlopen ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 ++$as_echo_n "checking for dlopen in -ldl... " >&6; } ++if ${ac_cv_lib_dl_dlopen+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-ldl $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char dlopen (); ++int ++main () ++{ ++return dlopen (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_dl_dlopen=yes ++else ++ ac_cv_lib_dl_dlopen=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 ++$as_echo "$ac_cv_lib_dl_dlopen" >&6; } ++if test "x$ac_cv_lib_dl_dlopen" = xyes; then : ++ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 ++$as_echo_n "checking for dlopen in -lsvld... " >&6; } ++if ${ac_cv_lib_svld_dlopen+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lsvld $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char dlopen (); ++int ++main () ++{ ++return dlopen (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_svld_dlopen=yes ++else ++ ac_cv_lib_svld_dlopen=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 ++$as_echo "$ac_cv_lib_svld_dlopen" >&6; } ++if test "x$ac_cv_lib_svld_dlopen" = xyes; then : ++ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 ++$as_echo_n "checking for dld_link in -ldld... " >&6; } ++if ${ac_cv_lib_dld_dld_link+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-ldld $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char dld_link (); ++int ++main () ++{ ++return dld_link (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_dld_dld_link=yes ++else ++ ac_cv_lib_dld_dld_link=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 ++$as_echo "$ac_cv_lib_dld_dld_link" >&6; } ++if test "x$ac_cv_lib_dld_dld_link" = xyes; then : ++ lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ;; ++ esac ++ ++ if test no = "$lt_cv_dlopen"; then ++ enable_dlopen=no ++ else ++ enable_dlopen=yes ++ fi ++ ++ case $lt_cv_dlopen in ++ dlopen) ++ save_CPPFLAGS=$CPPFLAGS ++ test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" ++ ++ save_LDFLAGS=$LDFLAGS ++ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" ++ ++ save_LIBS=$LIBS ++ LIBS="$lt_cv_dlopen_libs $LIBS" ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 ++$as_echo_n "checking whether a program can dlopen itself... " >&6; } ++if ${lt_cv_dlopen_self+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test yes = "$cross_compiling"; then : ++ lt_cv_dlopen_self=cross ++else ++ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 ++ lt_status=$lt_dlunknown ++ cat > conftest.$ac_ext <<_LT_EOF ++#line $LINENO "configure" ++#include "confdefs.h" ++ ++#if HAVE_DLFCN_H ++#include ++#endif ++ ++#include ++ ++#ifdef RTLD_GLOBAL ++# define LT_DLGLOBAL RTLD_GLOBAL ++#else ++# ifdef DL_GLOBAL ++# define LT_DLGLOBAL DL_GLOBAL ++# else ++# define LT_DLGLOBAL 0 ++# endif ++#endif ++ ++/* We may have to define LT_DLLAZY_OR_NOW in the command line if we ++ find out it does not work in some platform. */ ++#ifndef LT_DLLAZY_OR_NOW ++# ifdef RTLD_LAZY ++# define LT_DLLAZY_OR_NOW RTLD_LAZY ++# else ++# ifdef DL_LAZY ++# define LT_DLLAZY_OR_NOW DL_LAZY ++# else ++# ifdef RTLD_NOW ++# define LT_DLLAZY_OR_NOW RTLD_NOW ++# else ++# ifdef DL_NOW ++# define LT_DLLAZY_OR_NOW DL_NOW ++# else ++# define LT_DLLAZY_OR_NOW 0 ++# endif ++# endif ++# endif ++# endif ++#endif ++ ++/* When -fvisibility=hidden is used, assume the code has been annotated ++ correspondingly for the symbols needed. */ ++#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) ++int fnord () __attribute__((visibility("default"))); ++#endif ++ ++int fnord () { return 42; } ++int main () ++{ ++ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); ++ int status = $lt_dlunknown; ++ ++ if (self) ++ { ++ if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ++ else ++ { ++ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ else puts (dlerror ()); ++ } ++ /* dlclose (self); */ ++ } ++ else ++ puts (dlerror ()); ++ ++ return status; ++} ++_LT_EOF ++ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then ++ (./conftest; exit; ) >&5 2>/dev/null ++ lt_status=$? ++ case x$lt_status in ++ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; ++ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; ++ x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; ++ esac ++ else : ++ # compilation failed ++ lt_cv_dlopen_self=no ++ fi ++fi ++rm -fr conftest* ++ ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 ++$as_echo "$lt_cv_dlopen_self" >&6; } ++ ++ if test yes = "$lt_cv_dlopen_self"; then ++ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 ++$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } ++if ${lt_cv_dlopen_self_static+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test yes = "$cross_compiling"; then : ++ lt_cv_dlopen_self_static=cross ++else ++ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 ++ lt_status=$lt_dlunknown ++ cat > conftest.$ac_ext <<_LT_EOF ++#line $LINENO "configure" ++#include "confdefs.h" ++ ++#if HAVE_DLFCN_H ++#include ++#endif ++ ++#include ++ ++#ifdef RTLD_GLOBAL ++# define LT_DLGLOBAL RTLD_GLOBAL ++#else ++# ifdef DL_GLOBAL ++# define LT_DLGLOBAL DL_GLOBAL ++# else ++# define LT_DLGLOBAL 0 ++# endif ++#endif ++ ++/* We may have to define LT_DLLAZY_OR_NOW in the command line if we ++ find out it does not work in some platform. */ ++#ifndef LT_DLLAZY_OR_NOW ++# ifdef RTLD_LAZY ++# define LT_DLLAZY_OR_NOW RTLD_LAZY ++# else ++# ifdef DL_LAZY ++# define LT_DLLAZY_OR_NOW DL_LAZY ++# else ++# ifdef RTLD_NOW ++# define LT_DLLAZY_OR_NOW RTLD_NOW ++# else ++# ifdef DL_NOW ++# define LT_DLLAZY_OR_NOW DL_NOW ++# else ++# define LT_DLLAZY_OR_NOW 0 ++# endif ++# endif ++# endif ++# endif ++#endif ++ ++/* When -fvisibility=hidden is used, assume the code has been annotated ++ correspondingly for the symbols needed. */ ++#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) ++int fnord () __attribute__((visibility("default"))); ++#endif ++ ++int fnord () { return 42; } ++int main () ++{ ++ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); ++ int status = $lt_dlunknown; ++ ++ if (self) ++ { ++ if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ++ else ++ { ++ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ else puts (dlerror ()); ++ } ++ /* dlclose (self); */ ++ } ++ else ++ puts (dlerror ()); ++ ++ return status; ++} ++_LT_EOF ++ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then ++ (./conftest; exit; ) >&5 2>/dev/null ++ lt_status=$? ++ case x$lt_status in ++ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; ++ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; ++ x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; ++ esac ++ else : ++ # compilation failed ++ lt_cv_dlopen_self_static=no ++ fi ++fi ++rm -fr conftest* ++ ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 ++$as_echo "$lt_cv_dlopen_self_static" >&6; } ++ fi ++ ++ CPPFLAGS=$save_CPPFLAGS ++ LDFLAGS=$save_LDFLAGS ++ LIBS=$save_LIBS ++ ;; ++ esac ++ ++ case $lt_cv_dlopen_self in ++ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; ++ *) enable_dlopen_self=unknown ;; ++ esac ++ ++ case $lt_cv_dlopen_self_static in ++ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; ++ *) enable_dlopen_self_static=unknown ;; ++ esac ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++striplib= ++old_striplib= ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 ++$as_echo_n "checking whether stripping libraries is possible... " >&6; } ++if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then ++ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" ++ test -z "$striplib" && striplib="$STRIP --strip-unneeded" ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; } ++else ++# FIXME - insert some real tests, host_os isn't really good enough ++ case $host_os in ++ darwin*) ++ if test -n "$STRIP"; then ++ striplib="$STRIP -x" ++ old_striplib="$STRIP -S" ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; } ++ else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++ fi ++ ;; ++ *) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++ ;; ++ esac ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ # Report what library types will actually be built ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 ++$as_echo_n "checking if libtool supports shared libraries... " >&6; } ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 ++$as_echo "$can_build_shared" >&6; } ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 ++$as_echo_n "checking whether to build shared libraries... " >&6; } ++ test no = "$can_build_shared" && 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 yes = "$enable_shared" && enable_static=no ++ if test -n "$RANLIB"; then ++ archive_cmds="$archive_cmds~\$RANLIB \$lib" ++ postinstall_cmds='$RANLIB $lib' ++ fi ++ ;; ++ ++ aix[4-9]*) ++ if test ia64 != "$host_cpu"; then ++ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in ++ yes,aix,yes) ;; # shared object as lib.so file only ++ yes,svr4,*) ;; # shared object as lib.so archive member only ++ yes,*) enable_static=no ;; # shared object in lib.a archive as well ++ esac ++ fi ++ ;; ++ esac ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 ++$as_echo "$enable_shared" >&6; } ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 ++$as_echo_n "checking whether to build static libraries... " >&6; } ++ # Make sure either enable_shared or enable_static is yes. ++ test yes = "$enable_shared" || enable_static=yes ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 ++$as_echo "$enable_static" >&6; } ++ ++ ++ ++ ++fi ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++CC=$lt_save_CC ++ ++ if test -n "$CXX" && ( test no != "$CXX" && ++ ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || ++ (test g++ != "$CXX"))); then ++ ac_ext=cpp ++ac_cpp='$CXXCPP $CPPFLAGS' ++ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 ++$as_echo_n "checking how to run the C++ preprocessor... " >&6; } ++if test -z "$CXXCPP"; then ++ if ${ac_cv_prog_CXXCPP+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ # Double quotes because CXXCPP needs to be expanded ++ for CXXCPP in "$CXX -E" "/lib/cpp" ++ do ++ ac_preproc_ok=false ++for ac_cxx_preproc_warn_flag in '' yes ++do ++ # Use a header file that comes with gcc, so configuring glibc ++ # with a fresh cross-compiler works. ++ # Prefer to if __STDC__ is defined, since ++ # exists even on freestanding compilers. ++ # On the NeXT, cc -E runs the code through the compiler's parser, ++ # not just through cpp. "Syntax error" is here to catch this case. ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ Syntax error ++_ACEOF ++if ac_fn_cxx_try_cpp "$LINENO"; then : ++ ++else ++ # Broken: fails on valid input. ++continue ++fi ++rm -f conftest.err conftest.i conftest.$ac_ext ++ ++ # OK, works on sane cases. Now check whether nonexistent headers ++ # can be detected and how. ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++_ACEOF ++if ac_fn_cxx_try_cpp "$LINENO"; then : ++ # Broken: success on invalid input. ++continue ++else ++ # Passes both tests. ++ac_preproc_ok=: ++break ++fi ++rm -f conftest.err conftest.i conftest.$ac_ext ++ ++done ++# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. ++rm -f conftest.i conftest.err conftest.$ac_ext ++if $ac_preproc_ok; then : ++ break ++fi ++ ++ done ++ ac_cv_prog_CXXCPP=$CXXCPP ++ ++fi ++ CXXCPP=$ac_cv_prog_CXXCPP ++else ++ ac_cv_prog_CXXCPP=$CXXCPP ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 ++$as_echo "$CXXCPP" >&6; } ++ac_preproc_ok=false ++for ac_cxx_preproc_warn_flag in '' yes ++do ++ # Use a header file that comes with gcc, so configuring glibc ++ # with a fresh cross-compiler works. ++ # Prefer to if __STDC__ is defined, since ++ # exists even on freestanding compilers. ++ # On the NeXT, cc -E runs the code through the compiler's parser, ++ # not just through cpp. "Syntax error" is here to catch this case. ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ Syntax error ++_ACEOF ++if ac_fn_cxx_try_cpp "$LINENO"; then : ++ ++else ++ # Broken: fails on valid input. ++continue ++fi ++rm -f conftest.err conftest.i conftest.$ac_ext ++ ++ # OK, works on sane cases. Now check whether nonexistent headers ++ # can be detected and how. ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++_ACEOF ++if ac_fn_cxx_try_cpp "$LINENO"; then : ++ # Broken: success on invalid input. ++continue ++else ++ # Passes both tests. ++ac_preproc_ok=: ++break ++fi ++rm -f conftest.err conftest.i conftest.$ac_ext ++ ++done ++# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. ++rm -f conftest.i conftest.err conftest.$ac_ext ++if $ac_preproc_ok; then : ++ ++else ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check ++See \`config.log' for more details" "$LINENO" 5; } ++fi ++ ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++else ++ _lt_caught_CXX_error=yes ++fi ++ ++ac_ext=cpp ++ac_cpp='$CXXCPP $CPPFLAGS' ++ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ++ ++archive_cmds_need_lc_CXX=no ++allow_undefined_flag_CXX= ++always_export_symbols_CXX=no ++archive_expsym_cmds_CXX= ++compiler_needs_object_CXX=no ++export_dynamic_flag_spec_CXX= ++hardcode_direct_CXX=no ++hardcode_direct_absolute_CXX=no ++hardcode_libdir_flag_spec_CXX= ++hardcode_libdir_separator_CXX= ++hardcode_minus_L_CXX=no ++hardcode_shlibpath_var_CXX=unsupported ++hardcode_automatic_CXX=no ++inherit_rpath_CXX=no ++module_cmds_CXX= ++module_expsym_cmds_CXX= ++link_all_deplibs_CXX=unknown ++old_archive_cmds_CXX=$old_archive_cmds ++reload_flag_CXX=$reload_flag ++reload_cmds_CXX=$reload_cmds ++no_undefined_flag_CXX= ++whole_archive_flag_spec_CXX= ++enable_shared_with_static_runtimes_CXX=no ++ ++# Source file extension for C++ test sources. ++ac_ext=cpp ++ ++# Object file extension for compiled C++ test sources. ++objext=o ++objext_CXX=$objext ++ ++# No sense in running all these tests if we already determined that ++# the CXX compiler isn't working. Some variables (like enable_shared) ++# are currently assumed to apply to all compilers on this platform, ++# and will be corrupted by setting them based on a non-working compiler. ++if test yes != "$_lt_caught_CXX_error"; then ++ # Code to be used in simple compile tests ++ lt_simple_compile_test_code="int some_variable = 0;" ++ ++ # Code to be used in simple link tests ++ lt_simple_link_test_code='int main(int, char *[]) { return(0); }' ++ ++ # ltmain only uses $CC for tagged configurations so make sure $CC is set. ++ ++ ++ ++ ++ ++ ++# If no C compiler was specified, use CC. ++LTCC=${LTCC-"$CC"} ++ ++# If no C compiler flags were specified, use CFLAGS. ++LTCFLAGS=${LTCFLAGS-"$CFLAGS"} ++ ++# Allow CC to be a program name with arguments. ++compiler=$CC ++ ++ ++ # save warnings/boilerplate of simple test code ++ ac_outfile=conftest.$ac_objext ++echo "$lt_simple_compile_test_code" >conftest.$ac_ext ++eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err ++_lt_compiler_boilerplate=`cat conftest.err` ++$RM conftest* ++ ++ ac_outfile=conftest.$ac_objext ++echo "$lt_simple_link_test_code" >conftest.$ac_ext ++eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err ++_lt_linker_boilerplate=`cat conftest.err` ++$RM -r conftest* ++ ++ ++ # Allow CC to be a program name with arguments. ++ lt_save_CC=$CC ++ lt_save_CFLAGS=$CFLAGS ++ lt_save_LD=$LD ++ lt_save_GCC=$GCC ++ GCC=$GXX ++ lt_save_with_gnu_ld=$with_gnu_ld ++ lt_save_path_LD=$lt_cv_path_LD ++ if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then ++ lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx ++ else ++ $as_unset lt_cv_prog_gnu_ld ++ fi ++ if test -n "${lt_cv_path_LDCXX+set}"; then ++ lt_cv_path_LD=$lt_cv_path_LDCXX ++ else ++ $as_unset lt_cv_path_LD ++ fi ++ test -z "${LDCXX+set}" || LD=$LDCXX ++ CC=${CXX-"c++"} ++ CFLAGS=$CXXFLAGS ++ compiler=$CC ++ compiler_CXX=$CC ++ func_cc_basename $compiler ++cc_basename=$func_cc_basename_result ++ ++ ++ if test -n "$compiler"; then ++ # We don't want -fno-exception when compiling C++ code, so set the ++ # no_builtin_flag separately ++ if test yes = "$GXX"; then ++ lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' ++ else ++ lt_prog_compiler_no_builtin_flag_CXX= ++ fi ++ ++ if test yes = "$GXX"; 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 no = "$withval" || with_gnu_ld=yes ++else ++ with_gnu_ld=no ++fi ++ ++ac_prog=ld ++if test yes = "$GCC"; then ++ # Check if gcc -print-prog-name=ld gives a path. ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 ++$as_echo_n "checking for ld used by $CC... " >&6; } ++ 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 yes = "$with_gnu_ld"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 ++$as_echo_n "checking for GNU ld... " >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 ++$as_echo_n "checking for non-GNU ld... " >&6; } ++fi ++if ${lt_cv_path_LD+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -z "$LD"; then ++ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ++ for ac_dir in $PATH; do ++ IFS=$lt_save_ifs ++ test -z "$ac_dir" && ac_dir=. ++ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then ++ lt_cv_path_LD=$ac_dir/$ac_prog ++ # Check to see if the program is GNU ld. I'd rather use --version, ++ # but apparently some variants of GNU ld only accept -v. ++ # Break only if it was the GNU/non-GNU ld that we prefer. ++ case `"$lt_cv_path_LD" -v 2>&1 &5 ++$as_echo "$LD" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 ++$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } ++if ${lt_cv_prog_gnu_ld+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ # I'd rather use --version here, but apparently some GNU lds only accept -v. ++case `$LD -v 2>&1 &5 ++$as_echo "$lt_cv_prog_gnu_ld" >&6; } ++with_gnu_ld=$lt_cv_prog_gnu_ld ++ ++ ++ ++ ++ ++ ++ ++ # Check if GNU C++ uses GNU ld as the underlying linker, since the ++ # archiving commands below assume that GNU ld is being used. ++ if test yes = "$with_gnu_ld"; then ++ archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' ++ archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ ++ hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' ++ export_dynamic_flag_spec_CXX='$wl--export-dynamic' ++ ++ # If archive_cmds runs LD, not CC, wlarc should be empty ++ # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to ++ # investigate it a little bit more. (MM) ++ wlarc='$wl' ++ ++ # ancient GNU ld didn't support --whole-archive et. al. ++ if eval "`$CC -print-prog-name=ld` --help 2>&1" | ++ $GREP 'no-whole-archive' > /dev/null; then ++ whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' ++ else ++ whole_archive_flag_spec_CXX= ++ fi ++ else ++ with_gnu_ld=no ++ wlarc= ++ ++ # A generic and very simple default shared library creation ++ # command for GNU C++ for the case where it uses the native ++ # linker, instead of GNU ld. If possible, this setting should ++ # overridden to take advantage of the native linker features on ++ # the platform it is being used on. ++ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' ++ fi ++ ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' ++ ++ else ++ GXX=no ++ with_gnu_ld=no ++ wlarc= ++ fi ++ ++ # PORTME: fill in a description of your system's C++ link characteristics ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 ++$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } ++ ld_shlibs_CXX=yes ++ case $host_os in ++ aix3*) ++ # FIXME: insert proper C++ library support ++ ld_shlibs_CXX=no ++ ;; ++ aix[4-9]*) ++ if test ia64 = "$host_cpu"; 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 ++ # have runtime linking enabled, and use it for executables. ++ # For shared libraries, we enable/disable runtime linking ++ # depending on the kind of the shared library created - ++ # when "with_aix_soname,aix_use_runtimelinking" is: ++ # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables ++ # "aix,yes" lib.so shared, rtl:yes, for executables ++ # lib.a static archive ++ # "both,no" lib.so.V(shr.o) shared, rtl:yes ++ # lib.a(lib.so.V) shared, rtl:no, for executables ++ # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables ++ # lib.a(lib.so.V) shared, rtl:no ++ # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables ++ # lib.a static archive ++ 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 ++ if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then ++ # With aix-soname=svr4, we create the lib.so.V shared archives only, ++ # so we don't have lib.a shared libs to link our executables. ++ # We have to force runtime linking in this case. ++ aix_use_runtimelinking=yes ++ LDFLAGS="$LDFLAGS -Wl,-brtl" ++ fi ++ ;; ++ esac ++ ++ exp_sym_flag='-bexport' ++ no_entry_flag='-bnoentry' ++ fi ++ ++ # When large executables or shared objects are built, AIX ld can ++ # have problems creating the table of contents. If linking a library ++ # or program results in "error TOC overflow" add -mminimal-toc to ++ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not ++ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. ++ ++ archive_cmds_CXX='' ++ hardcode_direct_CXX=yes ++ hardcode_direct_absolute_CXX=yes ++ hardcode_libdir_separator_CXX=':' ++ link_all_deplibs_CXX=yes ++ file_list_spec_CXX='$wl-f,' ++ case $with_aix_soname,$aix_use_runtimelinking in ++ aix,*) ;; # no import file ++ svr4,* | *,yes) # use import file ++ # The Import File defines what to hardcode. ++ hardcode_direct_CXX=no ++ hardcode_direct_absolute_CXX=no ++ ;; ++ esac ++ ++ if test yes = "$GXX"; 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 yes = "$aix_use_runtimelinking"; then ++ shared_flag=$shared_flag' $wl-G' ++ fi ++ # Need to ensure runtime linking is disabled for the traditional ++ # shared library, or the linker may eventually find shared libraries ++ # /with/ Import File - we do not want to mix them. ++ shared_flag_aix='-shared' ++ shared_flag_svr4='-shared $wl-G' ++ else ++ # not using gcc ++ if test ia64 = "$host_cpu"; 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 yes = "$aix_use_runtimelinking"; then ++ shared_flag='$wl-G' ++ else ++ shared_flag='$wl-bM:SRE' ++ fi ++ shared_flag_aix='$wl-bM:SRE' ++ shared_flag_svr4='$wl-G' ++ fi ++ fi ++ ++ export_dynamic_flag_spec_CXX='$wl-bexpall' ++ # It seems that -bexpall does not export symbols beginning with ++ # underscore (_), so it is better to generate a list of symbols to ++ # export. ++ always_export_symbols_CXX=yes ++ if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then ++ # Warning - without using the other runtime loading flags (-brtl), ++ # -berok will link without error, but may produce a broken library. ++ # The "-G" linker flag allows undefined symbols. ++ no_undefined_flag_CXX='-bernotok' ++ # Determine the default libpath from the value encoded in an empty ++ # executable. ++ if test set = "${lt_cv_aix_libpath+set}"; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath__CXX+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_cxx_try_link "$LINENO"; then : ++ ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath__CXX"; then ++ lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ if test -z "$lt_cv_aix_libpath__CXX"; then ++ lt_cv_aix_libpath__CXX=/usr/lib:/lib ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath__CXX ++fi ++ ++ hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath" ++ ++ archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag ++ else ++ if test ia64 = "$host_cpu"; then ++ hardcode_libdir_flag_spec_CXX='$wl-R $libdir:/usr/lib:/lib' ++ allow_undefined_flag_CXX="-z nodefs" ++ archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" ++ else ++ # Determine the default libpath from the value encoded in an ++ # empty executable. ++ if test set = "${lt_cv_aix_libpath+set}"; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath__CXX+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_cxx_try_link "$LINENO"; then : ++ ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath__CXX"; then ++ lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ if test -z "$lt_cv_aix_libpath__CXX"; then ++ lt_cv_aix_libpath__CXX=/usr/lib:/lib ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath__CXX ++fi ++ ++ hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath" ++ # Warning - without using the other run time loading flags, ++ # -berok will link without error, but may produce a broken library. ++ no_undefined_flag_CXX=' $wl-bernotok' ++ allow_undefined_flag_CXX=' $wl-berok' ++ if test yes = "$with_gnu_ld"; then ++ # We only use this code for GNU lds that support --whole-archive. ++ whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive' ++ else ++ # Exported symbols can be pulled into shared objects from archives ++ whole_archive_flag_spec_CXX='$convenience' ++ fi ++ archive_cmds_need_lc_CXX=yes ++ archive_expsym_cmds_CXX='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' ++ # -brtl affects multiple linker settings, -berok does not and is overridden later ++ compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' ++ if test svr4 != "$with_aix_soname"; then ++ # This is similar to how AIX traditionally builds its shared ++ # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. ++ archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' ++ fi ++ if test aix != "$with_aix_soname"; then ++ archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' ++ else ++ # used by -dlpreopen to get the symbols ++ archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$MV $output_objdir/$realname.d/$soname $output_objdir' ++ fi ++ archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$RM -r $output_objdir/$realname.d' ++ fi ++ fi ++ ;; ++ ++ beos*) ++ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ++ allow_undefined_flag_CXX=unsupported ++ # Joseph Beckenbach says some releases of gcc ++ # support --undefined. This deserves some investigation. FIXME ++ archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ else ++ ld_shlibs_CXX=no ++ fi ++ ;; ++ ++ chorus*) ++ case $cc_basename in ++ *) ++ # FIXME: insert proper C++ library support ++ ld_shlibs_CXX=no ++ ;; ++ esac ++ ;; ++ ++ cygwin* | mingw* | pw32* | cegcc*) ++ case $GXX,$cc_basename in ++ ,cl* | no,cl*) ++ # Native MSVC ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec_CXX=' ' ++ allow_undefined_flag_CXX=unsupported ++ always_export_symbols_CXX=yes ++ file_list_spec_CXX='@' ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=.dll ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' ++ archive_expsym_cmds_CXX='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then ++ cp "$export_symbols" "$output_objdir/$soname.def"; ++ echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; ++ else ++ $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; ++ fi~ ++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ++ linknames=' ++ # The linker will not automatically build a static lib if we build a DLL. ++ # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' ++ enable_shared_with_static_runtimes_CXX=yes ++ # Don't use ranlib ++ old_postinstall_cmds_CXX='chmod 644 $oldlib' ++ postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ ++ lt_tool_outputfile="@TOOL_OUTPUT@"~ ++ case $lt_outputfile in ++ *.exe|*.EXE) ;; ++ *) ++ lt_outputfile=$lt_outputfile.exe ++ lt_tool_outputfile=$lt_tool_outputfile.exe ++ ;; ++ esac~ ++ func_to_tool_file "$lt_outputfile"~ ++ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then ++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ++ $RM "$lt_outputfile.manifest"; ++ fi' ++ ;; ++ *) ++ # g++ ++ # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, ++ # as there is no search path for DLLs. ++ hardcode_libdir_flag_spec_CXX='-L$libdir' ++ export_dynamic_flag_spec_CXX='$wl--export-all-symbols' ++ allow_undefined_flag_CXX=unsupported ++ always_export_symbols_CXX=no ++ enable_shared_with_static_runtimes_CXX=yes ++ ++ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then ++ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ++ # If the export-symbols file already is a .def file, use it as ++ # is; otherwise, prepend EXPORTS... ++ archive_expsym_cmds_CXX='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then ++ cp $export_symbols $output_objdir/$soname.def; ++ else ++ echo EXPORTS > $output_objdir/$soname.def; ++ cat $export_symbols >> $output_objdir/$soname.def; ++ fi~ ++ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ++ else ++ ld_shlibs_CXX=no ++ fi ++ ;; ++ esac ++ ;; ++ darwin* | rhapsody*) ++ ++ ++ archive_cmds_need_lc_CXX=no ++ hardcode_direct_CXX=no ++ hardcode_automatic_CXX=yes ++ hardcode_shlibpath_var_CXX=unsupported ++ if test yes = "$lt_cv_ld_force_load"; then ++ whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' ++ ++ else ++ whole_archive_flag_spec_CXX='' ++ fi ++ link_all_deplibs_CXX=yes ++ allow_undefined_flag_CXX=$_lt_dar_allow_undefined ++ case $cc_basename in ++ ifort*|nagfor*) _lt_dar_can_shared=yes ;; ++ *) _lt_dar_can_shared=$GCC ;; ++ esac ++ if test yes = "$_lt_dar_can_shared"; then ++ output_verbose_link_cmd=func_echo_all ++ archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" ++ module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" ++ archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" ++ module_expsym_cmds_CXX="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" ++ if test yes != "$lt_cv_apple_cc_single_mod"; then ++ archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" ++ archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" ++ fi ++ ++ else ++ ld_shlibs_CXX=no ++ fi ++ ++ ;; ++ ++ os2*) ++ hardcode_libdir_flag_spec_CXX='-L$libdir' ++ hardcode_minus_L_CXX=yes ++ allow_undefined_flag_CXX=unsupported ++ shrext_cmds=.dll ++ archive_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ ++ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ ++ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ ++ $ECHO EXPORTS >> $output_objdir/$libname.def~ ++ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ ++ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ ++ emximp -o $lib $output_objdir/$libname.def' ++ archive_expsym_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ ++ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ ++ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ ++ $ECHO EXPORTS >> $output_objdir/$libname.def~ ++ prefix_cmds="$SED"~ ++ if test EXPORTS = "`$SED 1q $export_symbols`"; then ++ prefix_cmds="$prefix_cmds -e 1d"; ++ fi~ ++ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ ++ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ ++ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ ++ emximp -o $lib $output_objdir/$libname.def' ++ old_archive_From_new_cmds_CXX='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' ++ enable_shared_with_static_runtimes_CXX=yes ++ ;; ++ ++ dgux*) ++ case $cc_basename in ++ ec++*) ++ # FIXME: insert proper C++ library support ++ ld_shlibs_CXX=no ++ ;; ++ ghcx*) ++ # Green Hills C++ Compiler ++ # FIXME: insert proper C++ library support ++ ld_shlibs_CXX=no ++ ;; ++ *) ++ # FIXME: insert proper C++ library support ++ ld_shlibs_CXX=no ++ ;; ++ esac ++ ;; ++ ++ freebsd2.*) ++ # C++ shared libraries reported to be fairly broken before ++ # switch to ELF ++ ld_shlibs_CXX=no ++ ;; ++ ++ freebsd-elf*) ++ archive_cmds_need_lc_CXX=no ++ ;; ++ ++ freebsd* | dragonfly*) ++ # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF ++ # conventions ++ ld_shlibs_CXX=yes ++ ;; ++ ++ haiku*) ++ archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ link_all_deplibs_CXX=yes ++ ;; ++ ++ hpux9*) ++ hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir' ++ hardcode_libdir_separator_CXX=: ++ export_dynamic_flag_spec_CXX='$wl-E' ++ hardcode_direct_CXX=yes ++ hardcode_minus_L_CXX=yes # Not in the search PATH, ++ # but as the default ++ # location of the library. ++ ++ case $cc_basename in ++ CC*) ++ # FIXME: insert proper C++ library support ++ ld_shlibs_CXX=no ++ ;; ++ aCC*) ++ archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ # ++ # There doesn't appear to be a way to prevent this compiler from ++ # explicitly linking system object files so we need to strip them ++ # from the output so that they don't get included in the library ++ # dependencies. ++ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ++ ;; ++ *) ++ if test yes = "$GXX"; then ++ archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' ++ else ++ # FIXME: insert proper C++ library support ++ ld_shlibs_CXX=no ++ fi ++ ;; ++ esac ++ ;; ++ ++ hpux10*|hpux11*) ++ if test no = "$with_gnu_ld"; then ++ hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir' ++ hardcode_libdir_separator_CXX=: ++ ++ case $host_cpu in ++ hppa*64*|ia64*) ++ ;; ++ *) ++ export_dynamic_flag_spec_CXX='$wl-E' ++ ;; ++ esac ++ fi ++ case $host_cpu in ++ hppa*64*|ia64*) ++ hardcode_direct_CXX=no ++ hardcode_shlibpath_var_CXX=no ++ ;; ++ *) ++ hardcode_direct_CXX=yes ++ hardcode_direct_absolute_CXX=yes ++ hardcode_minus_L_CXX=yes # Not in the search PATH, ++ # but as the default ++ # location of the library. ++ ;; ++ esac ++ ++ case $cc_basename in ++ CC*) ++ # FIXME: insert proper C++ library support ++ ld_shlibs_CXX=no ++ ;; ++ aCC*) ++ case $host_cpu in ++ hppa*64*) ++ archive_cmds_CXX='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ ;; ++ ia64*) ++ archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ ;; ++ *) ++ archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ ;; ++ esac ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ # ++ # There doesn't appear to be a way to prevent this compiler from ++ # explicitly linking system object files so we need to strip them ++ # from the output so that they don't get included in the library ++ # dependencies. ++ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ++ ;; ++ *) ++ if test yes = "$GXX"; then ++ if test no = "$with_gnu_ld"; then ++ case $host_cpu in ++ hppa*64*) ++ archive_cmds_CXX='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ ;; ++ ia64*) ++ archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ ;; ++ *) ++ archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ ;; ++ esac ++ fi ++ else ++ # FIXME: insert proper C++ library support ++ ld_shlibs_CXX=no ++ fi ++ ;; ++ esac ++ ;; ++ ++ interix[3-9]*) ++ hardcode_direct_CXX=no ++ hardcode_shlibpath_var_CXX=no ++ hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' ++ export_dynamic_flag_spec_CXX='$wl-E' ++ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. ++ # Instead, shared libraries are loaded at an image base (0x10000000 by ++ # default) and relocated if they conflict, which is a slow very memory ++ # consuming and fragmenting process. To avoid this, we pick a random, ++ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link ++ # time. Moving up from 0x10000000 also allows more sbrk(2) space. ++ archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ++ archive_expsym_cmds_CXX='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ++ ;; ++ irix5* | irix6*) ++ case $cc_basename in ++ CC*) ++ # SGI C++ ++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' ++ ++ # Archives containing C++ object files must be created using ++ # "CC -ar", where "CC" is the IRIX C++ compiler. This is ++ # necessary to make sure instantiated templates are included ++ # in the archive. ++ old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ++ ;; ++ *) ++ if test yes = "$GXX"; then ++ if test no = "$with_gnu_ld"; then ++ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ++ else ++ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' ++ fi ++ fi ++ link_all_deplibs_CXX=yes ++ ;; ++ esac ++ hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' ++ hardcode_libdir_separator_CXX=: ++ inherit_rpath_CXX=yes ++ ;; ++ ++ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) ++ case $cc_basename in ++ KCC*) ++ # Kuck and Associates, Inc. (KAI) C++ Compiler ++ ++ # KCC will only create a shared library if the output file ++ # ends with ".so" (or ".sl" for HP-UX), so rename the library ++ # to its proper name (with version) after linking. ++ archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' ++ archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ # ++ # There doesn't appear to be a way to prevent this compiler from ++ # explicitly linking system object files so we need to strip them ++ # from the output so that they don't get included in the library ++ # dependencies. ++ output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ++ ++ hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' ++ export_dynamic_flag_spec_CXX='$wl--export-dynamic' ++ ++ # Archives containing C++ object files must be created using ++ # "CC -Bstatic", where "CC" is the KAI C++ compiler. ++ old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ++ ;; ++ icpc* | ecpc* ) ++ # Intel C++ ++ with_gnu_ld=yes ++ # version 8.0 and above of icpc choke on multiply defined symbols ++ # if we add $predep_objects and $postdep_objects, however 7.1 and ++ # earlier do not add the objects themselves. ++ case `$CC -V 2>&1` in ++ *"Version 7."*) ++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' ++ archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ ;; ++ *) # Version 8.0 or newer ++ tmp_idyn= ++ case $host_cpu in ++ ia64*) tmp_idyn=' -i_dynamic';; ++ esac ++ archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ ;; ++ esac ++ archive_cmds_need_lc_CXX=no ++ hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' ++ export_dynamic_flag_spec_CXX='$wl--export-dynamic' ++ whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive' ++ ;; ++ pgCC* | pgcpp*) ++ # Portland Group C++ compiler ++ case `$CC -V` in ++ *pgCC\ [1-5].* | *pgcpp\ [1-5].*) ++ prelink_cmds_CXX='tpldir=Template.dir~ ++ rm -rf $tpldir~ ++ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' ++ old_archive_cmds_CXX='tpldir=Template.dir~ ++ rm -rf $tpldir~ ++ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ ++ $RANLIB $oldlib' ++ archive_cmds_CXX='tpldir=Template.dir~ ++ rm -rf $tpldir~ ++ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' ++ archive_expsym_cmds_CXX='tpldir=Template.dir~ ++ rm -rf $tpldir~ ++ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ ;; ++ *) # Version 6 and above use weak symbols ++ archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' ++ archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ ;; ++ esac ++ ++ hardcode_libdir_flag_spec_CXX='$wl--rpath $wl$libdir' ++ export_dynamic_flag_spec_CXX='$wl--export-dynamic' ++ whole_archive_flag_spec_CXX='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ++ ;; ++ cxx*) ++ # Compaq C++ ++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' ++ archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' ++ ++ runpath_var=LD_RUN_PATH ++ hardcode_libdir_flag_spec_CXX='-rpath $libdir' ++ hardcode_libdir_separator_CXX=: ++ ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ # ++ # There doesn't appear to be a way to prevent this compiler from ++ # explicitly linking system object files so we need to strip them ++ # from the output so that they don't get included in the library ++ # dependencies. ++ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ++ ;; ++ xl* | mpixl* | bgxl*) ++ # IBM XL 8.0 on PPC, with GNU ld ++ hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' ++ export_dynamic_flag_spec_CXX='$wl--export-dynamic' ++ archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ if test yes = "$supports_anon_versioning"; then ++ archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ ++ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ ++ echo "local: *; };" >> $output_objdir/$libname.ver~ ++ $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' ++ fi ++ ;; ++ *) ++ case `$CC -V 2>&1 | sed 5q` in ++ *Sun\ C*) ++ # Sun C++ 5.9 ++ no_undefined_flag_CXX=' -zdefs' ++ archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ archive_expsym_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' ++ hardcode_libdir_flag_spec_CXX='-R$libdir' ++ whole_archive_flag_spec_CXX='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ++ compiler_needs_object_CXX=yes ++ ++ # Not sure whether something based on ++ # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 ++ # would be better. ++ output_verbose_link_cmd='func_echo_all' ++ ++ # Archives containing C++ object files must be created using ++ # "CC -xar", where "CC" is the Sun C++ compiler. This is ++ # necessary to make sure instantiated templates are included ++ # in the archive. ++ old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ++ ;; ++ esac ++ ;; ++ esac ++ ;; ++ ++ lynxos*) ++ # FIXME: insert proper C++ library support ++ ld_shlibs_CXX=no ++ ;; ++ ++ m88k*) ++ # FIXME: insert proper C++ library support ++ ld_shlibs_CXX=no ++ ;; ++ ++ mvs*) ++ case $cc_basename in ++ cxx*) ++ # FIXME: insert proper C++ library support ++ ld_shlibs_CXX=no ++ ;; ++ *) ++ # FIXME: insert proper C++ library support ++ ld_shlibs_CXX=no ++ ;; ++ esac ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then ++ archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' ++ wlarc= ++ hardcode_libdir_flag_spec_CXX='-R$libdir' ++ hardcode_direct_CXX=yes ++ hardcode_shlibpath_var_CXX=no ++ fi ++ # Workaround some broken pre-1.5 toolchains ++ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ++ ;; ++ ++ *nto* | *qnx*) ++ ld_shlibs_CXX=yes ++ ;; ++ ++ openbsd* | bitrig*) ++ if test -f /usr/libexec/ld.so; then ++ hardcode_direct_CXX=yes ++ hardcode_shlibpath_var_CXX=no ++ hardcode_direct_absolute_CXX=yes ++ archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' ++ hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then ++ archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' ++ export_dynamic_flag_spec_CXX='$wl-E' ++ whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' ++ fi ++ output_verbose_link_cmd=func_echo_all ++ else ++ ld_shlibs_CXX=no ++ fi ++ ;; ++ ++ osf3* | osf4* | osf5*) ++ case $cc_basename in ++ KCC*) ++ # Kuck and Associates, Inc. (KAI) C++ Compiler ++ ++ # KCC will only create a shared library if the output file ++ # ends with ".so" (or ".sl" for HP-UX), so rename the library ++ # to its proper name (with version) after linking. ++ archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' ++ ++ hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' ++ hardcode_libdir_separator_CXX=: ++ ++ # Archives containing C++ object files must be created using ++ # the KAI C++ compiler. ++ case $host in ++ osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; ++ *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; ++ esac ++ ;; ++ RCC*) ++ # Rational C++ 2.4.1 ++ # FIXME: insert proper C++ library support ++ ld_shlibs_CXX=no ++ ;; ++ cxx*) ++ case $host in ++ osf3*) ++ allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*' ++ archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' ++ hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' ++ ;; ++ *) ++ allow_undefined_flag_CXX=' -expect_unresolved \*' ++ archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' ++ archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ ++ echo "-hidden">> $lib.exp~ ++ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ ++ $RM $lib.exp' ++ hardcode_libdir_flag_spec_CXX='-rpath $libdir' ++ ;; ++ esac ++ ++ hardcode_libdir_separator_CXX=: ++ ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ # ++ # There doesn't appear to be a way to prevent this compiler from ++ # explicitly linking system object files so we need to strip them ++ # from the output so that they don't get included in the library ++ # dependencies. ++ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ++ ;; ++ *) ++ if test yes,no = "$GXX,$with_gnu_ld"; then ++ allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*' ++ case $host in ++ osf3*) ++ archive_cmds_CXX='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ++ ;; ++ *) ++ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ++ ;; ++ esac ++ ++ hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' ++ hardcode_libdir_separator_CXX=: ++ ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' ++ ++ else ++ # FIXME: insert proper C++ library support ++ ld_shlibs_CXX=no ++ fi ++ ;; ++ esac ++ ;; ++ ++ psos*) ++ # FIXME: insert proper C++ library support ++ ld_shlibs_CXX=no ++ ;; ++ ++ sunos4*) ++ case $cc_basename in ++ CC*) ++ # Sun C++ 4.x ++ # FIXME: insert proper C++ library support ++ ld_shlibs_CXX=no ++ ;; ++ lcc*) ++ # Lucid ++ # FIXME: insert proper C++ library support ++ ld_shlibs_CXX=no ++ ;; ++ *) ++ # FIXME: insert proper C++ library support ++ ld_shlibs_CXX=no ++ ;; ++ esac ++ ;; ++ ++ solaris*) ++ case $cc_basename in ++ CC* | sunCC*) ++ # Sun C++ 4.2, 5.x and Centerline C++ ++ archive_cmds_need_lc_CXX=yes ++ no_undefined_flag_CXX=' -zdefs' ++ archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ++ $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' ++ ++ hardcode_libdir_flag_spec_CXX='-R$libdir' ++ hardcode_shlibpath_var_CXX=no ++ case $host_os in ++ solaris2.[0-5] | solaris2.[0-5].*) ;; ++ *) ++ # The compiler driver will combine and reorder linker options, ++ # but understands '-z linker_flag'. ++ # Supported since Solaris 2.6 (maybe 2.5.1?) ++ whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' ++ ;; ++ esac ++ link_all_deplibs_CXX=yes ++ ++ output_verbose_link_cmd='func_echo_all' ++ ++ # Archives containing C++ object files must be created using ++ # "CC -xar", where "CC" is the Sun C++ compiler. This is ++ # necessary to make sure instantiated templates are included ++ # in the archive. ++ old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ++ ;; ++ gcx*) ++ # Green Hills C++ Compiler ++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' ++ ++ # The C++ compiler must be used to create the archive. ++ old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ++ ;; ++ *) ++ # GNU C++ compiler with Solaris linker ++ if test yes,no = "$GXX,$with_gnu_ld"; then ++ no_undefined_flag_CXX=' $wl-z ${wl}defs' ++ if $CC --version | $GREP -v '^2\.7' > /dev/null; then ++ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' ++ archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ++ $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' ++ ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' ++ else ++ # g++ 2.7 appears to require '-G' NOT '-shared' on this ++ # platform. ++ archive_cmds_CXX='$CC -G -nostdlib $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 $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' ++ ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' ++ fi ++ ++ hardcode_libdir_flag_spec_CXX='$wl-R $wl$libdir' ++ case $host_os in ++ solaris2.[0-5] | solaris2.[0-5].*) ;; ++ *) ++ whole_archive_flag_spec_CXX='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' ++ ;; ++ esac ++ fi ++ ;; ++ esac ++ ;; ++ ++ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) ++ no_undefined_flag_CXX='$wl-z,text' ++ archive_cmds_need_lc_CXX=no ++ hardcode_shlibpath_var_CXX=no ++ runpath_var='LD_RUN_PATH' ++ ++ case $cc_basename in ++ CC*) ++ archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ *) ++ archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ esac ++ ;; ++ ++ sysv5* | sco3.2v5* | sco5v6*) ++ # Note: We CANNOT use -z defs as we might desire, because we do not ++ # link with -lc, and that would cause any symbols used from libc to ++ # always be unresolved, which means just about no library would ++ # ever link correctly. If we're not using GNU ld we use -z text ++ # though, which does catch some bad symbols but isn't as heavy-handed ++ # as -z defs. ++ no_undefined_flag_CXX='$wl-z,text' ++ allow_undefined_flag_CXX='$wl-z,nodefs' ++ archive_cmds_need_lc_CXX=no ++ hardcode_shlibpath_var_CXX=no ++ hardcode_libdir_flag_spec_CXX='$wl-R,$libdir' ++ hardcode_libdir_separator_CXX=':' ++ link_all_deplibs_CXX=yes ++ export_dynamic_flag_spec_CXX='$wl-Bexport' ++ runpath_var='LD_RUN_PATH' ++ ++ case $cc_basename in ++ CC*) ++ archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ ++ '"$old_archive_cmds_CXX" ++ reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ ++ '"$reload_cmds_CXX" ++ ;; ++ *) ++ archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ esac ++ ;; ++ ++ tandem*) ++ case $cc_basename in ++ NCC*) ++ # NonStop-UX NCC 3.20 ++ # FIXME: insert proper C++ library support ++ ld_shlibs_CXX=no ++ ;; ++ *) ++ # FIXME: insert proper C++ library support ++ ld_shlibs_CXX=no ++ ;; ++ esac ++ ;; ++ ++ vxworks*) ++ # FIXME: insert proper C++ library support ++ ld_shlibs_CXX=no ++ ;; ++ ++ *) ++ # FIXME: insert proper C++ library support ++ ld_shlibs_CXX=no ++ ;; ++ esac ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 ++$as_echo "$ld_shlibs_CXX" >&6; } ++ test no = "$ld_shlibs_CXX" && can_build_shared=no ++ ++ GCC_CXX=$GXX ++ LD_CXX=$LD ++ ++ ## CAVEAT EMPTOR: ++ ## There is no encapsulation within the following macros, do not change ++ ## the running order or otherwise move them around unless you know exactly ++ ## what you are doing... ++ # Dependencies to place before and after the object being linked: ++predep_objects_CXX= ++postdep_objects_CXX= ++predeps_CXX= ++postdeps_CXX= ++compiler_lib_search_path_CXX= ++ ++cat > conftest.$ac_ext <<_LT_EOF ++class Foo ++{ ++public: ++ Foo (void) { a = 0; } ++private: ++ int a; ++}; ++_LT_EOF ++ ++ ++_lt_libdeps_save_CFLAGS=$CFLAGS ++case "$CC $CFLAGS " in #( ++*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; ++*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; ++*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; ++esac ++ ++if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; then ++ # Parse the compiler output and extract the necessary ++ # objects, libraries and library flags. ++ ++ # Sentinel used to keep track of whether or not we are before ++ # the conftest object file. ++ pre_test_object_deps_done=no ++ ++ for p in `eval "$output_verbose_link_cmd"`; do ++ case $prev$p in ++ ++ -L* | -R* | -l*) ++ # Some compilers place space between "-{L,R}" and the path. ++ # Remove the space. ++ if test x-L = "$p" || ++ test x-R = "$p"; then ++ prev=$p ++ continue ++ fi ++ ++ # Expand the sysroot to ease extracting the directories later. ++ if test -z "$prev"; then ++ case $p in ++ -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; ++ -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; ++ -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; ++ esac ++ fi ++ case $p in ++ =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; ++ esac ++ if test no = "$pre_test_object_deps_done"; then ++ case $prev in ++ -L | -R) ++ # Internal compiler library paths should come after those ++ # provided the user. The postdeps already come after the ++ # user supplied libs so there is no need to process them. ++ if test -z "$compiler_lib_search_path_CXX"; then ++ compiler_lib_search_path_CXX=$prev$p ++ else ++ compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} $prev$p" ++ fi ++ ;; ++ # The "-l" case would never come before the object being ++ # linked, so don't bother handling this case. ++ esac ++ else ++ if test -z "$postdeps_CXX"; then ++ postdeps_CXX=$prev$p ++ else ++ postdeps_CXX="${postdeps_CXX} $prev$p" ++ fi ++ fi ++ prev= ++ ;; ++ ++ *.lto.$objext) ;; # Ignore GCC LTO objects ++ *.$objext) ++ # This assumes that the test object file only shows up ++ # once in the compiler output. ++ if test "$p" = "conftest.$objext"; then ++ pre_test_object_deps_done=yes ++ continue ++ fi ++ ++ if test no = "$pre_test_object_deps_done"; then ++ if test -z "$predep_objects_CXX"; then ++ predep_objects_CXX=$p ++ else ++ predep_objects_CXX="$predep_objects_CXX $p" ++ fi ++ else ++ if test -z "$postdep_objects_CXX"; then ++ postdep_objects_CXX=$p ++ else ++ postdep_objects_CXX="$postdep_objects_CXX $p" ++ fi ++ fi ++ ;; ++ ++ *) ;; # Ignore the rest. ++ ++ esac ++ done ++ ++ # Clean up. ++ rm -f a.out a.exe ++else ++ echo "libtool.m4: error: problem compiling CXX test program" ++fi ++ ++$RM -f confest.$objext ++CFLAGS=$_lt_libdeps_save_CFLAGS ++ ++# PORTME: override above test on systems where it is broken ++case $host_os in ++interix[3-9]*) ++ # Interix 3.5 installs completely hosed .la files for C++, so rather than ++ # hack all around it, let's just trust "g++" to DTRT. ++ predep_objects_CXX= ++ postdep_objects_CXX= ++ postdeps_CXX= ++ ;; ++esac ++ ++ ++case " $postdeps_CXX " in ++*" -lc "*) archive_cmds_need_lc_CXX=no ;; ++esac ++ compiler_lib_search_dirs_CXX= ++if test -n "${compiler_lib_search_path_CXX}"; then ++ compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | $SED -e 's! -L! !g' -e 's!^ !!'` ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ lt_prog_compiler_wl_CXX= ++lt_prog_compiler_pic_CXX= ++lt_prog_compiler_static_CXX= ++ ++ ++ # C++ specific cases for pic, static, wl, etc. ++ if test yes = "$GXX"; 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 ia64 = "$host_cpu"; then ++ # AIX 5 now supports IA64 processor ++ lt_prog_compiler_static_CXX='-Bstatic' ++ fi ++ lt_prog_compiler_pic_CXX='-fPIC' ++ ;; ++ ++ amigaos*) ++ case $host_cpu in ++ powerpc) ++ # see comment about AmigaOS4 .so support ++ lt_prog_compiler_pic_CXX='-fPIC' ++ ;; ++ m68k) ++ # FIXME: we need at least 68020 code to build shared libraries, but ++ # adding the '-m68020' flag to GCC prevents building anything better, ++ # like '-m68040'. ++ lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ++ ;; ++ esac ++ ;; ++ ++ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) ++ # PIC is the default for these OSes. ++ ;; ++ mingw* | cygwin* | os2* | pw32* | cegcc*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ # Although the cygwin gcc ignores -fPIC, still need this for old-style ++ # (--disable-auto-import) libraries ++ lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ++ case $host_os in ++ os2*) ++ lt_prog_compiler_static_CXX='$wl-static' ++ ;; ++ esac ++ ;; ++ darwin* | rhapsody*) ++ # PIC is the default on this platform ++ # Common symbols not allowed in MH_DYLIB files ++ lt_prog_compiler_pic_CXX='-fno-common' ++ ;; ++ *djgpp*) ++ # DJGPP does not support shared libraries at all ++ lt_prog_compiler_pic_CXX= ++ ;; ++ haiku*) ++ # PIC is the default for Haiku. ++ # The "-static" flag exists, but is broken. ++ lt_prog_compiler_static_CXX= ++ ;; ++ interix[3-9]*) ++ # Interix 3.x gcc -fpic/-fPIC options generate broken code. ++ # Instead, we relocate shared libraries at runtime. ++ ;; ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ lt_prog_compiler_pic_CXX=-Kconform_pic ++ fi ++ ;; ++ hpux*) ++ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit ++ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag ++ # sets the default TLS model and affects inlining. ++ case $host_cpu in ++ hppa*64*) ++ ;; ++ *) ++ lt_prog_compiler_pic_CXX='-fPIC' ++ ;; ++ esac ++ ;; ++ *qnx* | *nto*) ++ # QNX uses GNU C++, but need to define -shared option too, otherwise ++ # it will coredump. ++ lt_prog_compiler_pic_CXX='-fPIC -shared' ++ ;; ++ *) ++ lt_prog_compiler_pic_CXX='-fPIC' ++ ;; ++ esac ++ else ++ case $host_os in ++ aix[4-9]*) ++ # All AIX code is PIC. ++ if test ia64 = "$host_cpu"; then ++ # AIX 5 now supports IA64 processor ++ lt_prog_compiler_static_CXX='-Bstatic' ++ else ++ lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' ++ fi ++ ;; ++ chorus*) ++ case $cc_basename in ++ cxch68*) ++ # Green Hills C++ Compiler ++ # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ++ ;; ++ esac ++ ;; ++ mingw* | cygwin* | os2* | pw32* | cegcc*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ++ ;; ++ dgux*) ++ case $cc_basename in ++ ec++*) ++ lt_prog_compiler_pic_CXX='-KPIC' ++ ;; ++ ghcx*) ++ # Green Hills C++ Compiler ++ lt_prog_compiler_pic_CXX='-pic' ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ freebsd* | dragonfly*) ++ # FreeBSD uses GNU C++ ++ ;; ++ hpux9* | hpux10* | hpux11*) ++ case $cc_basename in ++ CC*) ++ lt_prog_compiler_wl_CXX='-Wl,' ++ lt_prog_compiler_static_CXX='$wl-a ${wl}archive' ++ if test ia64 != "$host_cpu"; then ++ lt_prog_compiler_pic_CXX='+Z' ++ fi ++ ;; ++ aCC*) ++ lt_prog_compiler_wl_CXX='-Wl,' ++ lt_prog_compiler_static_CXX='$wl-a ${wl}archive' ++ case $host_cpu in ++ hppa*64*|ia64*) ++ # +Z the default ++ ;; ++ *) ++ lt_prog_compiler_pic_CXX='+Z' ++ ;; ++ esac ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ interix*) ++ # This is c89, which is MS Visual C++ (no shared libs) ++ # Anyone wants to do a port? ++ ;; ++ irix5* | irix6* | nonstopux*) ++ case $cc_basename in ++ CC*) ++ lt_prog_compiler_wl_CXX='-Wl,' ++ lt_prog_compiler_static_CXX='-non_shared' ++ # CC pic flag -KPIC is the default. ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) ++ case $cc_basename in ++ KCC*) ++ # KAI C++ Compiler ++ lt_prog_compiler_wl_CXX='--backend -Wl,' ++ lt_prog_compiler_pic_CXX='-fPIC' ++ ;; ++ ecpc* ) ++ # old Intel C++ for x86_64, which still supported -KPIC. ++ lt_prog_compiler_wl_CXX='-Wl,' ++ lt_prog_compiler_pic_CXX='-KPIC' ++ lt_prog_compiler_static_CXX='-static' ++ ;; ++ icpc* ) ++ # Intel C++, used to be incompatible with GCC. ++ # ICC 10 doesn't accept -KPIC any more. ++ lt_prog_compiler_wl_CXX='-Wl,' ++ lt_prog_compiler_pic_CXX='-fPIC' ++ lt_prog_compiler_static_CXX='-static' ++ ;; ++ pgCC* | pgcpp*) ++ # Portland Group C++ compiler ++ lt_prog_compiler_wl_CXX='-Wl,' ++ lt_prog_compiler_pic_CXX='-fpic' ++ lt_prog_compiler_static_CXX='-Bstatic' ++ ;; ++ cxx*) ++ # Compaq C++ ++ # Make sure the PIC flag is empty. It appears that all Alpha ++ # Linux and Compaq Tru64 Unix objects are PIC. ++ lt_prog_compiler_pic_CXX= ++ lt_prog_compiler_static_CXX='-non_shared' ++ ;; ++ xlc* | xlC* | bgxl[cC]* | mpixl[cC]*) ++ # IBM XL 8.0, 9.0 on PPC and BlueGene ++ lt_prog_compiler_wl_CXX='-Wl,' ++ lt_prog_compiler_pic_CXX='-qpic' ++ lt_prog_compiler_static_CXX='-qstaticlink' ++ ;; ++ *) ++ case `$CC -V 2>&1 | sed 5q` in ++ *Sun\ C*) ++ # Sun C++ 5.9 ++ lt_prog_compiler_pic_CXX='-KPIC' ++ lt_prog_compiler_static_CXX='-Bstatic' ++ lt_prog_compiler_wl_CXX='-Qoption ld ' ++ ;; ++ esac ++ ;; ++ esac ++ ;; ++ lynxos*) ++ ;; ++ m88k*) ++ ;; ++ mvs*) ++ case $cc_basename in ++ cxx*) ++ lt_prog_compiler_pic_CXX='-W c,exportall' ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ netbsd*) ++ ;; ++ *qnx* | *nto*) ++ # QNX uses GNU C++, but need to define -shared option too, otherwise ++ # it will coredump. ++ lt_prog_compiler_pic_CXX='-fPIC -shared' ++ ;; ++ osf3* | osf4* | osf5*) ++ case $cc_basename in ++ KCC*) ++ lt_prog_compiler_wl_CXX='--backend -Wl,' ++ ;; ++ RCC*) ++ # Rational C++ 2.4.1 ++ lt_prog_compiler_pic_CXX='-pic' ++ ;; ++ cxx*) ++ # Digital/Compaq C++ ++ lt_prog_compiler_wl_CXX='-Wl,' ++ # Make sure the PIC flag is empty. It appears that all Alpha ++ # Linux and Compaq Tru64 Unix objects are PIC. ++ lt_prog_compiler_pic_CXX= ++ lt_prog_compiler_static_CXX='-non_shared' ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ psos*) ++ ;; ++ solaris*) ++ case $cc_basename in ++ CC* | sunCC*) ++ # Sun C++ 4.2, 5.x and Centerline C++ ++ lt_prog_compiler_pic_CXX='-KPIC' ++ lt_prog_compiler_static_CXX='-Bstatic' ++ lt_prog_compiler_wl_CXX='-Qoption ld ' ++ ;; ++ gcx*) ++ # Green Hills C++ Compiler ++ lt_prog_compiler_pic_CXX='-PIC' ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ sunos4*) ++ case $cc_basename in ++ CC*) ++ # Sun C++ 4.x ++ lt_prog_compiler_pic_CXX='-pic' ++ lt_prog_compiler_static_CXX='-Bstatic' ++ ;; ++ lcc*) ++ # Lucid ++ lt_prog_compiler_pic_CXX='-pic' ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) ++ case $cc_basename in ++ CC*) ++ lt_prog_compiler_wl_CXX='-Wl,' ++ lt_prog_compiler_pic_CXX='-KPIC' ++ lt_prog_compiler_static_CXX='-Bstatic' ++ ;; ++ esac ++ ;; ++ tandem*) ++ case $cc_basename in ++ NCC*) ++ # NonStop-UX NCC 3.20 ++ lt_prog_compiler_pic_CXX='-KPIC' ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ vxworks*) ++ ;; ++ *) ++ lt_prog_compiler_can_build_shared_CXX=no ++ ;; ++ esac ++ fi ++ ++case $host_os in ++ # For platforms that do not support PIC, -DPIC is meaningless: ++ *djgpp*) ++ lt_prog_compiler_pic_CXX= ++ ;; ++ *) ++ lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ++ ;; ++esac ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 ++$as_echo_n "checking for $compiler option to produce PIC... " >&6; } ++if ${lt_cv_prog_compiler_pic_CXX+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 ++$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } ++lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX ++ ++# ++# Check to make sure the PIC flag actually works. ++# ++if test -n "$lt_prog_compiler_pic_CXX"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 ++$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } ++if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_pic_works_CXX=no ++ ac_outfile=conftest.$ac_objext ++ echo "$lt_simple_compile_test_code" > conftest.$ac_ext ++ lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" ## exclude from sc_useless_quotes_in_assignment ++ # Insert the option either (1) after the last *FLAGS variable, or ++ # (2) before a word containing "conftest.", or (3) at the end. ++ # Note that $ac_compile itself does not contain backslashes and begins ++ # with a dollar sign (not a hyphen), so the echo should work correctly. ++ # The option is referenced via a variable to avoid confusing sed. ++ lt_compile=`echo "$ac_compile" | $SED \ ++ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ ++ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ ++ -e 's:$: $lt_compiler_flag:'` ++ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) ++ (eval "$lt_compile" 2>conftest.err) ++ ac_status=$? ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ if (exit $ac_status) && test -s "$ac_outfile"; then ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings other than the usual output. ++ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp ++ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 ++ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then ++ lt_cv_prog_compiler_pic_works_CXX=yes ++ fi ++ fi ++ $RM conftest* ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 ++$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } ++ ++if test yes = "$lt_cv_prog_compiler_pic_works_CXX"; then ++ case $lt_prog_compiler_pic_CXX in ++ "" | " "*) ;; ++ *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; ++ esac ++else ++ lt_prog_compiler_pic_CXX= ++ lt_prog_compiler_can_build_shared_CXX=no ++fi ++ ++fi ++ ++ ++ ++ ++ ++# ++# Check to make sure the static flag actually works. ++# ++wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 ++$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } ++if ${lt_cv_prog_compiler_static_works_CXX+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_static_works_CXX=no ++ save_LDFLAGS=$LDFLAGS ++ LDFLAGS="$LDFLAGS $lt_tmp_static_flag" ++ echo "$lt_simple_link_test_code" > conftest.$ac_ext ++ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then ++ # The linker can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ # Append any errors to the config.log. ++ cat conftest.err 1>&5 ++ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp ++ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 ++ if diff conftest.exp conftest.er2 >/dev/null; then ++ lt_cv_prog_compiler_static_works_CXX=yes ++ fi ++ else ++ lt_cv_prog_compiler_static_works_CXX=yes ++ fi ++ fi ++ $RM -r conftest* ++ LDFLAGS=$save_LDFLAGS ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 ++$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } ++ ++if test yes = "$lt_cv_prog_compiler_static_works_CXX"; then ++ : ++else ++ lt_prog_compiler_static_CXX= ++fi ++ ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 ++$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } ++if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_c_o_CXX=no ++ $RM -r conftest 2>/dev/null ++ mkdir conftest ++ cd conftest ++ mkdir out ++ echo "$lt_simple_compile_test_code" > conftest.$ac_ext ++ ++ lt_compiler_flag="-o out/conftest2.$ac_objext" ++ # Insert the option either (1) after the last *FLAGS variable, or ++ # (2) before a word containing "conftest.", or (3) at the end. ++ # Note that $ac_compile itself does not contain backslashes and begins ++ # with a dollar sign (not a hyphen), so the echo should work correctly. ++ lt_compile=`echo "$ac_compile" | $SED \ ++ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ ++ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ ++ -e 's:$: $lt_compiler_flag:'` ++ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) ++ (eval "$lt_compile" 2>out/conftest.err) ++ ac_status=$? ++ cat out/conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ if (exit $ac_status) && test -s out/conftest2.$ac_objext ++ then ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp ++ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 ++ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then ++ lt_cv_prog_compiler_c_o_CXX=yes ++ fi ++ fi ++ chmod u+w . 2>&5 ++ $RM conftest* ++ # SGI C++ compiler will create directory out/ii_files/ for ++ # template instantiation ++ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files ++ $RM out/* && rmdir out ++ cd .. ++ $RM -r conftest ++ $RM conftest* ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 ++$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 ++$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } ++if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_c_o_CXX=no ++ $RM -r conftest 2>/dev/null ++ mkdir conftest ++ cd conftest ++ mkdir out ++ echo "$lt_simple_compile_test_code" > conftest.$ac_ext ++ ++ lt_compiler_flag="-o out/conftest2.$ac_objext" ++ # Insert the option either (1) after the last *FLAGS variable, or ++ # (2) before a word containing "conftest.", or (3) at the end. ++ # Note that $ac_compile itself does not contain backslashes and begins ++ # with a dollar sign (not a hyphen), so the echo should work correctly. ++ lt_compile=`echo "$ac_compile" | $SED \ ++ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ ++ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ ++ -e 's:$: $lt_compiler_flag:'` ++ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) ++ (eval "$lt_compile" 2>out/conftest.err) ++ ac_status=$? ++ cat out/conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ if (exit $ac_status) && test -s out/conftest2.$ac_objext ++ then ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp ++ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 ++ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then ++ lt_cv_prog_compiler_c_o_CXX=yes ++ fi ++ fi ++ chmod u+w . 2>&5 ++ $RM conftest* ++ # SGI C++ compiler will create directory out/ii_files/ for ++ # template instantiation ++ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files ++ $RM out/* && rmdir out ++ cd .. ++ $RM -r conftest ++ $RM conftest* ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 ++$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } ++ ++ ++ ++ ++hard_links=nottested ++if test no = "$lt_cv_prog_compiler_c_o_CXX" && test no != "$need_locks"; then ++ # do not overwrite the value of need_locks provided by the user ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 ++$as_echo_n "checking if we can lock with hard links... " >&6; } ++ hard_links=yes ++ $RM conftest* ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ touch conftest.a ++ ln conftest.a conftest.b 2>&5 || hard_links=no ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 ++$as_echo "$hard_links" >&6; } ++ if test no = "$hard_links"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 ++$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} ++ need_locks=warn ++ fi ++else ++ need_locks=no ++fi ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 ++$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } ++ ++ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ++ exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' ++ case $host_os in ++ aix[4-9]*) ++ # If we're using GNU nm, then we don't want the "-C" option. ++ # -C means demangle to GNU nm, but means don't demangle to AIX nm. ++ # Without the "-l" option, or with the "-B" option, AIX nm treats ++ # weak defined symbols like other global defined symbols, whereas ++ # GNU nm marks them as "W". ++ # While the 'weak' keyword is ignored in the Export File, we need ++ # it in the Import File for the 'aix-soname' feature, so we have ++ # to replace the "-B" option with "-P" for AIX 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") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' ++ else ++ export_symbols_cmds_CXX='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' ++ fi ++ ;; ++ pw32*) ++ export_symbols_cmds_CXX=$ltdll_cmds ++ ;; ++ cygwin* | mingw* | cegcc*) ++ case $cc_basename in ++ cl*) ++ exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ++ ;; ++ *) ++ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ++ exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' ++ ;; ++ esac ++ ;; ++ *) ++ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ++ ;; ++ esac ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 ++$as_echo "$ld_shlibs_CXX" >&6; } ++test no = "$ld_shlibs_CXX" && can_build_shared=no ++ ++with_gnu_ld_CXX=$with_gnu_ld ++ ++ ++ ++ ++ ++ ++# ++# Do we need to explicitly link libc? ++# ++case "x$archive_cmds_need_lc_CXX" in ++x|xyes) ++ # Assume -lc should be added ++ archive_cmds_need_lc_CXX=yes ++ ++ if test yes,yes = "$GCC,$enable_shared"; then ++ case $archive_cmds_CXX in ++ *'~'*) ++ # FIXME: we may have to deal with multi-command sequences. ++ ;; ++ '$CC '*) ++ # Test whether the compiler implicitly links with -lc since on some ++ # systems, -lgcc has to come before -lc. If gcc already passes -lc ++ # to ld, don't add -lc before -lgcc. ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 ++$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } ++if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ $RM conftest* ++ echo "$lt_simple_compile_test_code" > conftest.$ac_ext ++ ++ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } 2>conftest.err; then ++ soname=conftest ++ lib=conftest ++ libobjs=conftest.$ac_objext ++ deplibs= ++ wl=$lt_prog_compiler_wl_CXX ++ pic_flag=$lt_prog_compiler_pic_CXX ++ compiler_flags=-v ++ linker_flags=-v ++ verstring= ++ output_objdir=. ++ libname=conftest ++ lt_save_allow_undefined_flag=$allow_undefined_flag_CXX ++ allow_undefined_flag_CXX= ++ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 ++ (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ then ++ lt_cv_archive_cmds_need_lc_CXX=no ++ else ++ lt_cv_archive_cmds_need_lc_CXX=yes ++ fi ++ allow_undefined_flag_CXX=$lt_save_allow_undefined_flag ++ else ++ cat conftest.err 1>&5 ++ fi ++ $RM conftest* ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5 ++$as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; } ++ archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX ++ ;; ++ esac ++ fi ++ ;; ++esac ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 ++$as_echo_n "checking dynamic linker characteristics... " >&6; } ++ ++library_names_spec= ++libname_spec='lib$name' ++soname_spec= ++shrext_cmds=.so ++postinstall_cmds= ++postuninstall_cmds= ++finish_cmds= ++finish_eval= ++shlibpath_var= ++shlibpath_overrides_runpath=unknown ++version_type=none ++dynamic_linker="$host_os ld.so" ++sys_lib_dlsearch_path_spec="/lib /usr/lib" ++need_lib_prefix=unknown ++hardcode_into_libs=no ++ ++# when you set need_version to no, make sure it does not cause -set_version ++# flags to be left without arguments ++need_version=unknown ++ ++ ++ ++case $host_os in ++aix3*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ library_names_spec='$libname$release$shared_ext$versuffix $libname.a' ++ shlibpath_var=LIBPATH ++ ++ # AIX 3 has no versioning support, so we append a major version to the name. ++ soname_spec='$libname$release$shared_ext$major' ++ ;; ++ ++aix[4-9]*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_lib_prefix=no ++ need_version=no ++ hardcode_into_libs=yes ++ if test ia64 = "$host_cpu"; 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 ++ # Using Import Files as archive members, it is possible to support ++ # filename-based versioning of shared library archives on AIX. While ++ # this would work for both with and without runtime linking, it will ++ # prevent static linking of such archives. So we do filename-based ++ # shared library versioning with .so extension only, which is used ++ # when both runtime linking and shared linking is enabled. ++ # Unfortunately, runtime linking may impact performance, so we do ++ # not want this to be the default eventually. Also, we use the ++ # versioned .so libs for executables only if there is the -brtl ++ # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. ++ # To allow for filename-based versioning support, we need to create ++ # libNAME.so.V as an archive file, containing: ++ # *) an Import File, referring to the versioned filename of the ++ # archive as well as the shared archive member, telling the ++ # bitwidth (32 or 64) of that shared object, and providing the ++ # list of exported symbols of that shared object, eventually ++ # decorated with the 'weak' keyword ++ # *) the shared object with the F_LOADONLY flag set, to really avoid ++ # it being seen by the linker. ++ # At run time we better use the real file rather than another symlink, ++ # but for link time we create the symlink libNAME.so -> libNAME.so.V ++ ++ case $with_aix_soname,$aix_use_runtimelinking in ++ # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct ++ # soname into executable. Probably we can add versioning support to ++ # collect2, so additional links can be useful in future. ++ aix,yes) # traditional libtool ++ dynamic_linker='AIX unversionable lib.so' ++ # 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' ++ ;; ++ aix,no) # traditional AIX only ++ dynamic_linker='AIX lib.a(lib.so.V)' ++ # 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' ++ ;; ++ svr4,*) # full svr4 only ++ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" ++ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' ++ # We do not specify a path in Import Files, so LIBPATH fires. ++ shlibpath_overrides_runpath=yes ++ ;; ++ *,yes) # both, prefer svr4 ++ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" ++ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' ++ # unpreferred sharedlib libNAME.a needs extra handling ++ postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' ++ postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' ++ # We do not specify a path in Import Files, so LIBPATH fires. ++ shlibpath_overrides_runpath=yes ++ ;; ++ *,no) # both, prefer aix ++ dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" ++ library_names_spec='$libname$release.a $libname.a' ++ soname_spec='$libname$release$shared_ext$major' ++ # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling ++ postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' ++ postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ++ ;; ++ esac ++ shlibpath_var=LIBPATH ++ fi ++ ;; ++ ++amigaos*) ++ case $host_cpu in ++ powerpc) ++ # Since July 2007 AmigaOS4 officially supports .so libraries. ++ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ ;; ++ m68k) ++ library_names_spec='$libname.ixlibrary $libname.a' ++ # Create ${libname}_ixlibrary.a entries in /sys/libs. ++ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ++ ;; ++ esac ++ ;; ++ ++beos*) ++ library_names_spec='$libname$shared_ext' ++ dynamic_linker="$host_os ld.so" ++ shlibpath_var=LIBRARY_PATH ++ ;; ++ ++bsdi[45]*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" ++ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" ++ # the default ld.so.conf also contains /usr/contrib/lib and ++ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow ++ # libtool to hard-code these into programs ++ ;; ++ ++cygwin* | mingw* | pw32* | cegcc*) ++ version_type=windows ++ shrext_cmds=.dll ++ need_version=no ++ need_lib_prefix=no ++ ++ case $GCC,$cc_basename in ++ yes,*) ++ # gcc ++ library_names_spec='$libname.dll.a' ++ # DLL is installed to $(libdir)/../bin by postinstall_cmds ++ postinstall_cmds='base_file=`basename \$file`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname~ ++ chmod a+x \$dldir/$dlname~ ++ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then ++ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; ++ fi' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ shlibpath_overrides_runpath=yes ++ ++ case $host_os in ++ cygwin*) ++ # Cygwin DLLs use 'cyg' prefix rather than 'lib' ++ soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ++ ++ ;; ++ mingw* | cegcc*) ++ # MinGW DLLs use traditional 'lib' prefix ++ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ++ ;; ++ pw32*) ++ # pw32 DLLs use 'pw' prefix rather than 'lib' ++ library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ++ ;; ++ esac ++ dynamic_linker='Win32 ld.exe' ++ ;; ++ ++ *,cl*) ++ # Native MSVC ++ libname_spec='$name' ++ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ++ library_names_spec='$libname.dll.lib' ++ ++ case $build_os in ++ mingw*) ++ sys_lib_search_path_spec= ++ lt_save_ifs=$IFS ++ IFS=';' ++ for lt_path in $LIB ++ do ++ IFS=$lt_save_ifs ++ # Let DOS variable expansion print the short 8.3 style file name. ++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` ++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" ++ done ++ IFS=$lt_save_ifs ++ # Convert to MSYS style. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ++ ;; ++ cygwin*) ++ # Convert to unix form, then to dos form, then back to unix form ++ # but this time dos style (no spaces!) so that the unix form looks ++ # like /cygdrive/c/PROGRA~1:/cygdr... ++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` ++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` ++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ ;; ++ *) ++ sys_lib_search_path_spec=$LIB ++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then ++ # It is most probably a Windows format PATH. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` ++ else ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ fi ++ # FIXME: find the short name or the path components, as spaces are ++ # common. (e.g. "Program Files" -> "PROGRA~1") ++ ;; ++ esac ++ ++ # DLL is installed to $(libdir)/../bin by postinstall_cmds ++ postinstall_cmds='base_file=`basename \$file`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ shlibpath_overrides_runpath=yes ++ dynamic_linker='Win32 link.exe' ++ ;; ++ ++ *) ++ # Assume MSVC wrapper ++ library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' ++ dynamic_linker='Win32 ld.exe' ++ ;; ++ esac ++ # FIXME: first we should search . and the directory the executable is in ++ shlibpath_var=PATH ++ ;; ++ ++darwin* | rhapsody*) ++ dynamic_linker="$host_os dyld" ++ version_type=darwin ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' ++ soname_spec='$libname$release$major$shared_ext' ++ shlibpath_overrides_runpath=yes ++ shlibpath_var=DYLD_LIBRARY_PATH ++ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' ++ ++ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ++ ;; ++ ++dgux*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++freebsd* | dragonfly*) ++ # DragonFly does not have aout. When/if they implement a new ++ # versioning mechanism, adjust this. ++ if test -x /usr/bin/objformat; then ++ objformat=`/usr/bin/objformat` ++ else ++ case $host_os in ++ freebsd[23].*) objformat=aout ;; ++ *) objformat=elf ;; ++ esac ++ fi ++ version_type=freebsd-$objformat ++ case $version_type in ++ freebsd-elf*) ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ need_version=no ++ need_lib_prefix=no ++ ;; ++ freebsd-*) ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' ++ need_version=yes ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_os in ++ freebsd2.*) ++ shlibpath_overrides_runpath=yes ++ ;; ++ freebsd3.[01]* | freebsdelf3.[01]*) ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ ++ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ ;; ++ *) # from 4.6 on, and DragonFly ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ esac ++ ;; ++ ++haiku*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_lib_prefix=no ++ need_version=no ++ dynamic_linker="$host_os runtime_loader" ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ shlibpath_var=LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' ++ hardcode_into_libs=yes ++ ;; ++ ++hpux9* | hpux10* | hpux11*) ++ # Give a soname corresponding to the major version so that dld.sl refuses to ++ # link against other versions. ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ case $host_cpu in ++ ia64*) ++ shrext_cmds='.so' ++ hardcode_into_libs=yes ++ dynamic_linker="$host_os dld.so" ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ if test 32 = "$HPUX_IA64_MODE"; then ++ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" ++ sys_lib_dlsearch_path_spec=/usr/lib/hpux32 ++ else ++ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" ++ sys_lib_dlsearch_path_spec=/usr/lib/hpux64 ++ fi ++ ;; ++ hppa*64*) ++ shrext_cmds='.sl' ++ hardcode_into_libs=yes ++ dynamic_linker="$host_os dld.sl" ++ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH ++ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" ++ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ++ ;; ++ *) ++ shrext_cmds='.sl' ++ dynamic_linker="$host_os dld.sl" ++ shlibpath_var=SHLIB_PATH ++ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ ;; ++ esac ++ # HP-UX runs *really* slowly unless shared libraries are mode 555, ... ++ postinstall_cmds='chmod 555 $lib' ++ # or fails outright, so override atomically: ++ install_override_mode=555 ++ ;; ++ ++interix[3-9]*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $host_os in ++ nonstopux*) version_type=nonstopux ;; ++ *) ++ if test yes = "$lt_cv_prog_gnu_ld"; then ++ version_type=linux # correct to gnu/linux during the next big refactor ++ else ++ version_type=irix ++ fi ;; ++ esac ++ need_lib_prefix=no ++ need_version=no ++ soname_spec='$libname$release$shared_ext$major' ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' ++ case $host_os in ++ irix5* | nonstopux*) ++ libsuff= shlibsuff= ++ ;; ++ *) ++ case $LD in # libtool.m4 will add one of these switches to LD ++ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") ++ libsuff= shlibsuff= libmagic=32-bit;; ++ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") ++ libsuff=32 shlibsuff=N32 libmagic=N32;; ++ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") ++ libsuff=64 shlibsuff=64 libmagic=64-bit;; ++ *) libsuff= shlibsuff= libmagic=never-match;; ++ esac ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" ++ sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" ++ hardcode_into_libs=yes ++ ;; ++ ++# No shared lib support for Linux oldld, aout, or coff. ++linux*oldld* | linux*aout* | linux*coff*) ++ dynamic_linker=no ++ ;; ++ ++linux*android*) ++ version_type=none # Android doesn't support versioned libraries. ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext' ++ soname_spec='$libname$release$shared_ext' ++ finish_cmds= ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ ++ # 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 ++ ++ dynamic_linker='Android linker' ++ # Don't embed -rpath directories since the linker doesn't support them. ++ hardcode_libdir_flag_spec_CXX='-L$libdir' ++ ;; ++ ++# This must be glibc/ELF. ++linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ ++ # Some binutils ld are patched to set DT_RUNPATH ++ if ${lt_cv_shlibpath_overrides_runpath+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_shlibpath_overrides_runpath=no ++ save_LDFLAGS=$LDFLAGS ++ save_libdir=$libdir ++ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ ++ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_cxx_try_link "$LINENO"; then : ++ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : ++ lt_cv_shlibpath_overrides_runpath=yes ++fi ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ LDFLAGS=$save_LDFLAGS ++ libdir=$save_libdir ++ ++fi ++ ++ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath ++ ++ # This implies no fast_install, which is unacceptable. ++ # Some rework will be needed to allow for fast_install ++ # before this can be enabled. ++ hardcode_into_libs=yes ++ ++ # Add ABI-specific directories to the system library path. ++ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" ++ ++ # Ideally, we could use ldconfig to report *all* directores which are ++ # searched for libraries, however this is still not possible. Aside from not ++ # being certain /sbin/ldconfig is available, command ++ # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, ++ # even though it is searched at run-time. Try to do the best guess by ++ # appending ld.so.conf contents (and includes) to the search path. ++ if test -f /etc/ld.so.conf; then ++ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` ++ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $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' ++ ;; ++ ++netbsd*) ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ dynamic_linker='NetBSD (a.out) ld.so' ++ else ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ dynamic_linker='NetBSD ld.elf_so' ++ fi ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ ++newsos6) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ ;; ++ ++*nto* | *qnx*) ++ version_type=qnx ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ dynamic_linker='ldqnx.so' ++ ;; ++ ++openbsd* | bitrig*) ++ version_type=sunos ++ sys_lib_dlsearch_path_spec=/usr/lib ++ need_lib_prefix=no ++ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then ++ need_version=no ++ else ++ need_version=yes ++ fi ++ 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 ++ shlibpath_overrides_runpath=yes ++ ;; ++ ++os2*) ++ libname_spec='$name' ++ version_type=windows ++ shrext_cmds=.dll ++ need_version=no ++ need_lib_prefix=no ++ # OS/2 can only load a DLL with a base name of 8 characters or less. ++ soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; ++ v=$($ECHO $release$versuffix | tr -d .-); ++ n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); ++ $ECHO $n$v`$shared_ext' ++ library_names_spec='${libname}_dll.$libext' ++ dynamic_linker='OS/2 ld.exe' ++ shlibpath_var=BEGINLIBPATH ++ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" ++ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ++ postinstall_cmds='base_file=`basename \$file`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname~ ++ chmod a+x \$dldir/$dlname~ ++ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then ++ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; ++ fi' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ ;; ++ ++osf3* | osf4* | osf5*) ++ version_type=osf ++ need_lib_prefix=no ++ need_version=no ++ soname_spec='$libname$release$shared_ext$major' ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" ++ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ++ ;; ++ ++rdos*) ++ dynamic_linker=no ++ ;; ++ ++solaris*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ # ldd complains unless libraries are executable ++ postinstall_cmds='chmod +x $lib' ++ ;; ++ ++sunos4*) ++ version_type=sunos ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' ++ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ if test yes = "$with_gnu_ld"; then ++ need_lib_prefix=no ++ fi ++ need_version=yes ++ ;; ++ ++sysv4 | sysv4.3*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_vendor in ++ sni) ++ shlibpath_overrides_runpath=no ++ need_lib_prefix=no ++ runpath_var=LD_RUN_PATH ++ ;; ++ siemens) ++ need_lib_prefix=no ++ ;; ++ motorola) ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ++ ;; ++ esac ++ ;; ++ ++sysv4*MP*) ++ if test -d /usr/nec; then ++ version_type=linux # correct to gnu/linux during the next big refactor ++ library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' ++ soname_spec='$libname$shared_ext.$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ fi ++ ;; ++ ++sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) ++ version_type=sco ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ if test yes = "$with_gnu_ld"; then ++ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' ++ else ++ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' ++ case $host_os in ++ sco3.2v5*) ++ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ++ ;; ++ esac ++ fi ++ sys_lib_dlsearch_path_spec='/usr/lib' ++ ;; ++ ++tpf*) ++ # TPF is a cross-target only. Preferred cross-host = GNU/Linux. ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ ;; ++ ++uts4*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++*) ++ dynamic_linker=no ++ ;; ++esac ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 ++$as_echo "$dynamic_linker" >&6; } ++test no = "$dynamic_linker" && can_build_shared=no ++ ++variables_saved_for_relink="PATH $shlibpath_var $runpath_var" ++if test yes = "$GCC"; then ++ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" ++fi ++ ++if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then ++ sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec ++fi ++ ++if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then ++ sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec ++fi ++ ++# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... ++configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec ++ ++# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code ++func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" ++ ++# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool ++configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 ++$as_echo_n "checking how to hardcode library paths into programs... " >&6; } ++hardcode_action_CXX= ++if test -n "$hardcode_libdir_flag_spec_CXX" || ++ test -n "$runpath_var_CXX" || ++ test yes = "$hardcode_automatic_CXX"; then ++ ++ # We can hardcode non-existent directories. ++ if test no != "$hardcode_direct_CXX" && ++ # 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 no != "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" && ++ test no != "$hardcode_minus_L_CXX"; then ++ # Linking always hardcodes the temporary library directory. ++ hardcode_action_CXX=relink ++ else ++ # We can link without hardcoding, and we can hardcode nonexisting dirs. ++ hardcode_action_CXX=immediate ++ fi ++else ++ # We cannot hardcode anything, or else we can only hardcode existing ++ # directories. ++ hardcode_action_CXX=unsupported ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 ++$as_echo "$hardcode_action_CXX" >&6; } ++ ++if test relink = "$hardcode_action_CXX" || ++ test yes = "$inherit_rpath_CXX"; then ++ # Fast installation is not supported ++ enable_fast_install=no ++elif test yes = "$shlibpath_overrides_runpath" || ++ test no = "$enable_shared"; then ++ # Fast installation is not necessary ++ enable_fast_install=needless ++fi ++ ++ ++ ++ ++ ++ ++ ++ fi # test -n "$compiler" ++ ++ CC=$lt_save_CC ++ CFLAGS=$lt_save_CFLAGS ++ LDCXX=$LD ++ LD=$lt_save_LD ++ GCC=$lt_save_GCC ++ with_gnu_ld=$lt_save_with_gnu_ld ++ lt_cv_path_LDCXX=$lt_cv_path_LD ++ lt_cv_path_LD=$lt_save_path_LD ++ lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld ++ lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld ++fi # test yes != "$_lt_caught_CXX_error" ++ ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ac_config_commands="$ac_config_commands libtool" ++ ++ ++ ++ ++# Only expand once: ++ ++ ++enable_win32_dll=yes ++ ++case $host in ++*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) ++ 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 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_AS+:} false; then : ++ $as_echo_n "(cached) " >&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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_AS="${ac_tool_prefix}as" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++AS=$ac_cv_prog_AS ++if test -n "$AS"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 ++$as_echo "$AS" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "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 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_AS+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_AS"; then ++ ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_AS="as" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_AS=$ac_cv_prog_ac_ct_AS ++if test -n "$ac_ct_AS"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 ++$as_echo "$ac_ct_AS" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_AS" = x; then ++ AS="false" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ 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}dlltool", so it can be a program name with args. ++set dummy ${ac_tool_prefix}dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$DLLTOOL"; then ++ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++DLLTOOL=$ac_cv_prog_DLLTOOL ++if test -n "$DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 ++$as_echo "$DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_DLLTOOL"; then ++ ac_ct_DLLTOOL=$DLLTOOL ++ # Extract the first word of "dlltool", so it can be a program name with args. ++set dummy dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_DLLTOOL"; then ++ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_DLLTOOL="dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL ++if test -n "$ac_ct_DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 ++$as_echo "$ac_ct_DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_DLLTOOL" = x; then ++ DLLTOOL="false" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ DLLTOOL=$ac_ct_DLLTOOL ++ fi ++else ++ DLLTOOL="$ac_cv_prog_DLLTOOL" ++fi ++ ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. ++set dummy ${ac_tool_prefix}objdump; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_OBJDUMP+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$OBJDUMP"; then ++ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++OBJDUMP=$ac_cv_prog_OBJDUMP ++if test -n "$OBJDUMP"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 ++$as_echo "$OBJDUMP" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_OBJDUMP"; then ++ ac_ct_OBJDUMP=$OBJDUMP ++ # Extract the first word of "objdump", so it can be a program name with args. ++set dummy objdump; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_OBJDUMP"; then ++ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_OBJDUMP="objdump" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP ++if test -n "$ac_ct_OBJDUMP"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 ++$as_echo "$ac_ct_OBJDUMP" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_OBJDUMP" = x; then ++ OBJDUMP="false" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ OBJDUMP=$ac_ct_OBJDUMP ++ fi ++else ++ OBJDUMP="$ac_cv_prog_OBJDUMP" ++fi ++ ++ ;; ++esac ++ ++test -z "$AS" && AS=as ++ ++ ++ ++ ++ ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++ ++ ++test -z "$OBJDUMP" && OBJDUMP=objdump ++ ++ ++ ++ ++ ++# Checks for libraries. ++ ++# Checks for header files. ++ ++for ac_header in fcntl.h libintl.h locale.h unistd.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++ ++done ++ ++ ++# Checks for typedefs, structures, and compiler characteristics. ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 ++$as_echo_n "checking for an ANSI C-conforming const... " >&6; } ++if ${ac_cv_c_const+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++#ifndef __cplusplus ++ /* Ultrix mips cc rejects this sort of thing. */ ++ typedef int charset[2]; ++ const charset cs = { 0, 0 }; ++ /* SunOS 4.1.1 cc rejects this. */ ++ char const *const *pcpcc; ++ char **ppc; ++ /* NEC SVR4.0.2 mips cc rejects this. */ ++ struct point {int x, y;}; ++ static struct point const zero = {0,0}; ++ /* AIX XL C 1.02.0.0 rejects this. ++ It does not let you subtract one const X* pointer from another in ++ an arm of an if-expression whose if-part is not a constant ++ expression */ ++ const char *g = "string"; ++ pcpcc = &g + (g ? g-g : 0); ++ /* HPUX 7.0 cc rejects these. */ ++ ++pcpcc; ++ ppc = (char**) pcpcc; ++ pcpcc = (char const *const *) ppc; ++ { /* SCO 3.2v4 cc rejects this sort of thing. */ ++ char tx; ++ char *t = &tx; ++ char const *s = 0 ? (char *) 0 : (char const *) 0; ++ ++ *t++ = 0; ++ if (s) return 0; ++ } ++ { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ ++ int x[] = {25, 17}; ++ const int *foo = &x[0]; ++ ++foo; ++ } ++ { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ ++ typedef const int *iptr; ++ iptr p = 0; ++ ++p; ++ } ++ { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying ++ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ ++ struct s { int j; const int *ap[3]; } bx; ++ struct s *b = &bx; b->j = 5; ++ } ++ { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ ++ const int foo = 10; ++ if (!foo) return 0; ++ } ++ return !cs[0] && !zero.x; ++#endif ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_c_const=yes ++else ++ ac_cv_c_const=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 ++$as_echo "$ac_cv_c_const" >&6; } ++if test $ac_cv_c_const = no; then ++ ++$as_echo "#define const /**/" >>confdefs.h ++ ++fi ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 ++$as_echo_n "checking for inline... " >&6; } ++if ${ac_cv_c_inline+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_cv_c_inline=no ++for ac_kw in inline __inline__ __inline; do ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#ifndef __cplusplus ++typedef int foo_t; ++static $ac_kw foo_t static_foo () {return 0; } ++$ac_kw foo_t foo () {return 0; } ++#endif ++ ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_c_inline=$ac_kw ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ test "$ac_cv_c_inline" != no && break ++done ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 ++$as_echo "$ac_cv_c_inline" >&6; } ++ ++case $ac_cv_c_inline in ++ inline | yes) ;; ++ *) ++ case $ac_cv_c_inline in ++ no) ac_val=;; ++ *) ac_val=$ac_cv_c_inline;; ++ esac ++ cat >>confdefs.h <<_ACEOF ++#ifndef __cplusplus ++#define inline $ac_val ++#endif ++_ACEOF ++ ;; ++esac ++ ++ ++# Checks for library functions. ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5 ++$as_echo_n "checking for error_at_line... " >&6; } ++if ${ac_cv_lib_error_at_line+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++int ++main () ++{ ++error_at_line (0, 0, "", 0, "an error occurred"); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_error_at_line=yes ++else ++ ac_cv_lib_error_at_line=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5 ++$as_echo "$ac_cv_lib_error_at_line" >&6; } ++if test $ac_cv_lib_error_at_line = no; then ++ case " $LIBOBJS " in ++ *" error.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS error.$ac_objext" ++ ;; ++esac ++ ++fi ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 ++$as_echo_n "checking for ANSI C header files... " >&6; } ++if ${ac_cv_header_stdc+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++#include ++#include ++#include ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_header_stdc=yes ++else ++ ac_cv_header_stdc=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ++if test $ac_cv_header_stdc = yes; then ++ # SunOS 4.x string.h does not declare mem*, contrary to ANSI. ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "memchr" >/dev/null 2>&1; then : ++ ++else ++ ac_cv_header_stdc=no ++fi ++rm -f conftest* ++ ++fi ++ ++if test $ac_cv_header_stdc = yes; then ++ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "free" >/dev/null 2>&1; then : ++ ++else ++ ac_cv_header_stdc=no ++fi ++rm -f conftest* ++ ++fi ++ ++if test $ac_cv_header_stdc = yes; then ++ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. ++ if test "$cross_compiling" = yes; then : ++ : ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++#include ++#if ((' ' & 0x0FF) == 0x020) ++# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') ++# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) ++#else ++# define ISLOWER(c) \ ++ (('a' <= (c) && (c) <= 'i') \ ++ || ('j' <= (c) && (c) <= 'r') \ ++ || ('s' <= (c) && (c) <= 'z')) ++# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) ++#endif ++ ++#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) ++int ++main () ++{ ++ int i; ++ for (i = 0; i < 256; i++) ++ if (XOR (islower (i), ISLOWER (i)) ++ || toupper (i) != TOUPPER (i)) ++ return 2; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_run "$LINENO"; then : ++ ++else ++ ac_cv_header_stdc=no ++fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext ++fi ++ ++fi ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 ++$as_echo "$ac_cv_header_stdc" >&6; } ++if test $ac_cv_header_stdc = yes; then ++ ++$as_echo "#define STDC_HEADERS 1" >>confdefs.h ++ ++fi ++ ++for ac_func in memchr setlocale strchr strstr ++do : ++ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ++if eval test \"x\$"$as_ac_var"\" = x"yes"; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++done ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 ++$as_echo_n "checking whether NLS is requested... " >&6; } ++ # Check whether --enable-nls was given. ++if test "${enable_nls+set}" = set; then : ++ enableval=$enable_nls; USE_NLS=$enableval ++else ++ USE_NLS=yes ++fi ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 ++$as_echo "$USE_NLS" >&6; } ++ ++ ++ ++ ++ GETTEXT_MACRO_VERSION=0.19 ++ ++ ++ ++ ++# Prepare PATH_SEPARATOR. ++# The user is always right. ++if test "${PATH_SEPARATOR+set}" != set; then ++ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which ++ # contains only /bin. Note that ksh looks also at the FPATH variable, ++ # so we have to set that as well for the test. ++ PATH_SEPARATOR=: ++ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ ++ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ ++ || PATH_SEPARATOR=';' ++ } ++fi ++ ++# Find out how to test for executable files. Don't use a zero-byte file, ++# as systems may use methods other than mode bits to determine executability. ++cat >conf$$.file <<_ASEOF ++#! /bin/sh ++exit 0 ++_ASEOF ++chmod +x conf$$.file ++if test -x conf$$.file >/dev/null 2>&1; then ++ ac_executable_p="test -x" ++else ++ ac_executable_p="test -f" ++fi ++rm -f conf$$.file ++ ++# Extract the first word of "msgfmt", so it can be a program name with args. ++set dummy msgfmt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_path_MSGFMT+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case "$MSGFMT" in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ++ ;; ++ *) ++ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR ++ for ac_dir in $PATH; do ++ IFS="$ac_save_IFS" ++ test -z "$ac_dir" && ac_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then ++ echo "$as_me: trying $ac_dir/$ac_word..." >&5 ++ if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && ++ (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ++ ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" ++ break 2 ++ fi ++ fi ++ done ++ done ++ IFS="$ac_save_IFS" ++ test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" ++ ;; ++esac ++fi ++MSGFMT="$ac_cv_path_MSGFMT" ++if test "$MSGFMT" != ":"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 ++$as_echo "$MSGFMT" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ # Extract the first word of "gmsgfmt", so it can be a program name with args. ++set dummy gmsgfmt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_path_GMSGFMT+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case $GMSGFMT in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_GMSGFMT="$GMSGFMT" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++ test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ++ ;; ++esac ++fi ++GMSGFMT=$ac_cv_path_GMSGFMT ++if test -n "$GMSGFMT"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 ++$as_echo "$GMSGFMT" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ ++ case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in ++ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; ++ *) MSGFMT_015=$MSGFMT ;; ++ esac ++ ++ case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in ++ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; ++ *) GMSGFMT_015=$GMSGFMT ;; ++ esac ++ ++ ++ ++# Prepare PATH_SEPARATOR. ++# The user is always right. ++if test "${PATH_SEPARATOR+set}" != set; then ++ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which ++ # contains only /bin. Note that ksh looks also at the FPATH variable, ++ # so we have to set that as well for the test. ++ PATH_SEPARATOR=: ++ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ ++ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ ++ || PATH_SEPARATOR=';' ++ } ++fi ++ ++# Find out how to test for executable files. Don't use a zero-byte file, ++# as systems may use methods other than mode bits to determine executability. ++cat >conf$$.file <<_ASEOF ++#! /bin/sh ++exit 0 ++_ASEOF ++chmod +x conf$$.file ++if test -x conf$$.file >/dev/null 2>&1; then ++ ac_executable_p="test -x" ++else ++ ac_executable_p="test -f" ++fi ++rm -f conf$$.file ++ ++# Extract the first word of "xgettext", so it can be a program name with args. ++set dummy xgettext; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_path_XGETTEXT+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case "$XGETTEXT" in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ++ ;; ++ *) ++ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR ++ for ac_dir in $PATH; do ++ IFS="$ac_save_IFS" ++ test -z "$ac_dir" && ac_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then ++ echo "$as_me: trying $ac_dir/$ac_word..." >&5 ++ if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && ++ (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ++ ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" ++ break 2 ++ fi ++ fi ++ done ++ done ++ IFS="$ac_save_IFS" ++ test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ++ ;; ++esac ++fi ++XGETTEXT="$ac_cv_path_XGETTEXT" ++if test "$XGETTEXT" != ":"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 ++$as_echo "$XGETTEXT" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ rm -f messages.po ++ ++ case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in ++ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; ++ *) XGETTEXT_015=$XGETTEXT ;; ++ esac ++ ++ ++ ++# Prepare PATH_SEPARATOR. ++# The user is always right. ++if test "${PATH_SEPARATOR+set}" != set; then ++ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which ++ # contains only /bin. Note that ksh looks also at the FPATH variable, ++ # so we have to set that as well for the test. ++ PATH_SEPARATOR=: ++ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ ++ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ ++ || PATH_SEPARATOR=';' ++ } ++fi ++ ++# Find out how to test for executable files. Don't use a zero-byte file, ++# as systems may use methods other than mode bits to determine executability. ++cat >conf$$.file <<_ASEOF ++#! /bin/sh ++exit 0 ++_ASEOF ++chmod +x conf$$.file ++if test -x conf$$.file >/dev/null 2>&1; then ++ ac_executable_p="test -x" ++else ++ ac_executable_p="test -f" ++fi ++rm -f conf$$.file ++ ++# Extract the first word of "msgmerge", so it can be a program name with args. ++set dummy msgmerge; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_path_MSGMERGE+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case "$MSGMERGE" in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ++ ;; ++ *) ++ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR ++ for ac_dir in $PATH; do ++ IFS="$ac_save_IFS" ++ test -z "$ac_dir" && ac_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then ++ echo "$as_me: trying $ac_dir/$ac_word..." >&5 ++ if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then ++ ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" ++ break 2 ++ fi ++ fi ++ done ++ done ++ IFS="$ac_save_IFS" ++ test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" ++ ;; ++esac ++fi ++MSGMERGE="$ac_cv_path_MSGMERGE" ++if test "$MSGMERGE" != ":"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 ++$as_echo "$MSGMERGE" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ test -n "$localedir" || localedir='${datadir}/locale' ++ ++ ++ test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= ++ ++ ++ ac_config_commands="$ac_config_commands po-directories" ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library 2 or newer" >&5 ++$as_echo_n "checking whether we are using the GNU C Library 2 or newer... " >&6; } ++if ${ac_cv_gnu_library_2+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++#include ++#ifdef __GNU_LIBRARY__ ++ #if (__GLIBC__ >= 2) && !defined __UCLIBC__ ++ Lucky GNU user ++ #endif ++#endif ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "Lucky GNU user" >/dev/null 2>&1; then : ++ ac_cv_gnu_library_2=yes ++else ++ ac_cv_gnu_library_2=no ++fi ++rm -f conftest* ++ ++ ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2" >&5 ++$as_echo "$ac_cv_gnu_library_2" >&6; } ++ ++ GLIBC2="$ac_cv_gnu_library_2" ++ ++ ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. ++set dummy ${ac_tool_prefix}ranlib; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_RANLIB+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$RANLIB"; then ++ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++RANLIB=$ac_cv_prog_RANLIB ++if test -n "$RANLIB"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 ++$as_echo "$RANLIB" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_RANLIB"; then ++ ac_ct_RANLIB=$RANLIB ++ # Extract the first word of "ranlib", so it can be a program name with args. ++set dummy ranlib; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_RANLIB"; then ++ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_RANLIB="ranlib" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB ++if test -n "$ac_ct_RANLIB"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 ++$as_echo "$ac_ct_RANLIB" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_RANLIB" = x; then ++ RANLIB=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ RANLIB=$ac_ct_RANLIB ++ fi ++else ++ RANLIB="$ac_cv_prog_RANLIB" ++fi ++ ++ ++ ++ CFLAG_VISIBILITY= ++ HAVE_VISIBILITY=0 ++ if test -n "$GCC"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the -Werror option is usable" >&5 ++$as_echo_n "checking whether the -Werror option is usable... " >&6; } ++ if ${gl_cv_cc_vis_werror+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ++ gl_save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -Werror" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ gl_cv_cc_vis_werror=yes ++else ++ gl_cv_cc_vis_werror=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ CFLAGS="$gl_save_CFLAGS" ++fi ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5 ++$as_echo "$gl_cv_cc_vis_werror" >&6; } ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for simple visibility declarations" >&5 ++$as_echo_n "checking for simple visibility declarations... " >&6; } ++ if ${gl_cv_cc_visibility+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ++ gl_save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -fvisibility=hidden" ++ if test $gl_cv_cc_vis_werror = yes; then ++ CFLAGS="$CFLAGS -Werror" ++ fi ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++extern __attribute__((__visibility__("hidden"))) int hiddenvar; ++ extern __attribute__((__visibility__("default"))) int exportedvar; ++ extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); ++ extern __attribute__((__visibility__("default"))) int exportedfunc (void); ++ void dummyfunc (void) {} ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ gl_cv_cc_visibility=yes ++else ++ gl_cv_cc_visibility=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ CFLAGS="$gl_save_CFLAGS" ++fi ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5 ++$as_echo "$gl_cv_cc_visibility" >&6; } ++ if test $gl_cv_cc_visibility = yes; then ++ CFLAG_VISIBILITY="-fvisibility=hidden" ++ HAVE_VISIBILITY=1 ++ fi ++ fi ++ ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_VISIBILITY $HAVE_VISIBILITY ++_ACEOF ++ ++ ++ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" ++if test "x$ac_cv_type_size_t" = xyes; then : ++ ++else ++ ++cat >>confdefs.h <<_ACEOF ++#define size_t unsigned int ++_ACEOF ++ ++fi ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5 ++$as_echo_n "checking for stdint.h... " >&6; } ++if ${gl_cv_header_stdint_h+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++ #include ++int ++main () ++{ ++uintmax_t i = (uintmax_t) -1; return !i; ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ gl_cv_header_stdint_h=yes ++else ++ gl_cv_header_stdint_h=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_h" >&5 ++$as_echo "$gl_cv_header_stdint_h" >&6; } ++ if test $gl_cv_header_stdint_h = yes; then ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_STDINT_H_WITH_UINTMAX 1 ++_ACEOF ++ ++ fi ++ ++# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works ++# for constant arguments. Useless! ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 ++$as_echo_n "checking for working alloca.h... " >&6; } ++if ${ac_cv_working_alloca_h+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++int ++main () ++{ ++char *p = (char *) alloca (2 * sizeof (int)); ++ if (p) return 0; ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_working_alloca_h=yes ++else ++ ac_cv_working_alloca_h=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 ++$as_echo "$ac_cv_working_alloca_h" >&6; } ++if test $ac_cv_working_alloca_h = yes; then ++ ++$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h ++ ++fi ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 ++$as_echo_n "checking for alloca... " >&6; } ++if ${ac_cv_func_alloca_works+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#ifdef __GNUC__ ++# define alloca __builtin_alloca ++#else ++# ifdef _MSC_VER ++# include ++# define alloca _alloca ++# else ++# ifdef HAVE_ALLOCA_H ++# include ++# else ++# ifdef _AIX ++ #pragma alloca ++# else ++# ifndef alloca /* predefined by HP cc +Olibcalls */ ++void *alloca (size_t); ++# endif ++# endif ++# endif ++# endif ++#endif ++ ++int ++main () ++{ ++char *p = (char *) alloca (1); ++ if (p) return 0; ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_func_alloca_works=yes ++else ++ ac_cv_func_alloca_works=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 ++$as_echo "$ac_cv_func_alloca_works" >&6; } ++ ++if test $ac_cv_func_alloca_works = yes; then ++ ++$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h ++ ++else ++ # The SVR3 libPW and SVR4 libucb both contain incompatible functions ++# that cause trouble. Some versions do not even contain alloca or ++# contain a buggy version. If you still want to use their alloca, ++# use ar to extract alloca.o from them instead of compiling alloca.c. ++ ++ALLOCA=\${LIBOBJDIR}alloca.$ac_objext ++ ++$as_echo "#define C_ALLOCA 1" >>confdefs.h ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 ++$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } ++if ${ac_cv_os_cray+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#if defined CRAY && ! defined CRAY2 ++webecray ++#else ++wenotbecray ++#endif ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "webecray" >/dev/null 2>&1; then : ++ ac_cv_os_cray=yes ++else ++ ac_cv_os_cray=no ++fi ++rm -f conftest* ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 ++$as_echo "$ac_cv_os_cray" >&6; } ++if test $ac_cv_os_cray = yes; then ++ for ac_func in _getb67 GETB67 getb67; do ++ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ++if eval test \"x\$"$as_ac_var"\" = x"yes"; then : ++ ++cat >>confdefs.h <<_ACEOF ++#define CRAY_STACKSEG_END $ac_func ++_ACEOF ++ ++ break ++fi ++ ++ done ++fi ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 ++$as_echo_n "checking stack direction for C alloca... " >&6; } ++if ${ac_cv_c_stack_direction+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test "$cross_compiling" = yes; then : ++ ac_cv_c_stack_direction=0 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++$ac_includes_default ++int ++find_stack_direction (int *addr, int depth) ++{ ++ int dir, dummy = 0; ++ if (! addr) ++ addr = &dummy; ++ *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; ++ dir = depth ? find_stack_direction (addr, depth - 1) : 0; ++ return dir + dummy; ++} ++ ++int ++main (int argc, char **argv) ++{ ++ return find_stack_direction (0, argc + !argv + 20) < 0; ++} ++_ACEOF ++if ac_fn_c_try_run "$LINENO"; then : ++ ac_cv_c_stack_direction=1 ++else ++ ac_cv_c_stack_direction=-1 ++fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext ++fi ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 ++$as_echo "$ac_cv_c_stack_direction" >&6; } ++cat >>confdefs.h <<_ACEOF ++#define STACK_DIRECTION $ac_cv_c_stack_direction ++_ACEOF ++ ++ ++fi ++ ++ ++ ++ ++ for ac_header in $ac_header_list ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default ++" ++if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++ ++done ++ ++ ++ ++ ++ ++ ++ ++ ++for ac_func in getpagesize ++do : ++ ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" ++if test "x$ac_cv_func_getpagesize" = xyes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_GETPAGESIZE 1 ++_ACEOF ++ ++fi ++done ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 ++$as_echo_n "checking for working mmap... " >&6; } ++if ${ac_cv_func_mmap_fixed_mapped+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test "$cross_compiling" = yes; then : ++ ac_cv_func_mmap_fixed_mapped=no ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++$ac_includes_default ++/* malloc might have been renamed as rpl_malloc. */ ++#undef malloc ++ ++/* Thanks to Mike Haertel and Jim Avera for this test. ++ Here is a matrix of mmap possibilities: ++ mmap private not fixed ++ mmap private fixed at somewhere currently unmapped ++ mmap private fixed at somewhere already mapped ++ mmap shared not fixed ++ mmap shared fixed at somewhere currently unmapped ++ mmap shared fixed at somewhere already mapped ++ For private mappings, we should verify that changes cannot be read() ++ back from the file, nor mmap's back from the file at a different ++ address. (There have been systems where private was not correctly ++ implemented like the infamous i386 svr4.0, and systems where the ++ VM page cache was not coherent with the file system buffer cache ++ like early versions of FreeBSD and possibly contemporary NetBSD.) ++ For shared mappings, we should conversely verify that changes get ++ propagated back to all the places they're supposed to be. ++ ++ Grep wants private fixed already mapped. ++ The main things grep needs to know about mmap are: ++ * does it exist and is it safe to write into the mmap'd area ++ * how to use it (BSD variants) */ ++ ++#include ++#include ++ ++#if !defined STDC_HEADERS && !defined HAVE_STDLIB_H ++char *malloc (); ++#endif ++ ++/* This mess was copied from the GNU getpagesize.h. */ ++#ifndef HAVE_GETPAGESIZE ++# ifdef _SC_PAGESIZE ++# define getpagesize() sysconf(_SC_PAGESIZE) ++# else /* no _SC_PAGESIZE */ ++# ifdef HAVE_SYS_PARAM_H ++# include ++# ifdef EXEC_PAGESIZE ++# define getpagesize() EXEC_PAGESIZE ++# else /* no EXEC_PAGESIZE */ ++# ifdef NBPG ++# define getpagesize() NBPG * CLSIZE ++# ifndef CLSIZE ++# define CLSIZE 1 ++# endif /* no CLSIZE */ ++# else /* no NBPG */ ++# ifdef NBPC ++# define getpagesize() NBPC ++# else /* no NBPC */ ++# ifdef PAGESIZE ++# define getpagesize() PAGESIZE ++# endif /* PAGESIZE */ ++# endif /* no NBPC */ ++# endif /* no NBPG */ ++# endif /* no EXEC_PAGESIZE */ ++# else /* no HAVE_SYS_PARAM_H */ ++# define getpagesize() 8192 /* punt totally */ ++# endif /* no HAVE_SYS_PARAM_H */ ++# endif /* no _SC_PAGESIZE */ ++ ++#endif /* no HAVE_GETPAGESIZE */ ++ ++int ++main () ++{ ++ char *data, *data2, *data3; ++ const char *cdata2; ++ int i, pagesize; ++ int fd, fd2; ++ ++ pagesize = getpagesize (); ++ ++ /* First, make a file with some known garbage in it. */ ++ data = (char *) malloc (pagesize); ++ if (!data) ++ return 1; ++ for (i = 0; i < pagesize; ++i) ++ *(data + i) = rand (); ++ umask (0); ++ fd = creat ("conftest.mmap", 0600); ++ if (fd < 0) ++ return 2; ++ if (write (fd, data, pagesize) != pagesize) ++ return 3; ++ close (fd); ++ ++ /* Next, check that the tail of a page is zero-filled. File must have ++ non-zero length, otherwise we risk SIGBUS for entire page. */ ++ fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); ++ if (fd2 < 0) ++ return 4; ++ cdata2 = ""; ++ if (write (fd2, cdata2, 1) != 1) ++ return 5; ++ data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); ++ if (data2 == MAP_FAILED) ++ return 6; ++ for (i = 0; i < pagesize; ++i) ++ if (*(data2 + i)) ++ return 7; ++ close (fd2); ++ if (munmap (data2, pagesize)) ++ return 8; ++ ++ /* Next, try to mmap the file at a fixed address which already has ++ something else allocated at it. If we can, also make sure that ++ we see the same garbage. */ ++ fd = open ("conftest.mmap", O_RDWR); ++ if (fd < 0) ++ return 9; ++ if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, ++ MAP_PRIVATE | MAP_FIXED, fd, 0L)) ++ return 10; ++ for (i = 0; i < pagesize; ++i) ++ if (*(data + i) != *(data2 + i)) ++ return 11; ++ ++ /* Finally, make sure that changes to the mapped area do not ++ percolate back to the file as seen by read(). (This is a bug on ++ some variants of i386 svr4.0.) */ ++ for (i = 0; i < pagesize; ++i) ++ *(data2 + i) = *(data2 + i) + 1; ++ data3 = (char *) malloc (pagesize); ++ if (!data3) ++ return 12; ++ if (read (fd, data3, pagesize) != pagesize) ++ return 13; ++ for (i = 0; i < pagesize; ++i) ++ if (*(data + i) != *(data3 + i)) ++ return 14; ++ close (fd); ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_run "$LINENO"; then : ++ ac_cv_func_mmap_fixed_mapped=yes ++else ++ ac_cv_func_mmap_fixed_mapped=no ++fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext ++fi ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5 ++$as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; } ++if test $ac_cv_func_mmap_fixed_mapped = yes; then ++ ++$as_echo "#define HAVE_MMAP 1" >>confdefs.h ++ ++fi ++rm -f conftest.mmap conftest.txt ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether integer division by zero raises SIGFPE" >&5 ++$as_echo_n "checking whether integer division by zero raises SIGFPE... " >&6; } ++if ${gt_cv_int_divbyzero_sigfpe+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ++ gt_cv_int_divbyzero_sigfpe= ++ case "$host_os" in ++ macos* | darwin[6-9]* | darwin[1-9][0-9]*) ++ # On Mac OS X 10.2 or newer, just assume the same as when cross- ++ # compiling. If we were to perform the real test, 1 Crash Report ++ # dialog window would pop up. ++ case "$host_cpu" in ++ i[34567]86 | x86_64) ++ gt_cv_int_divbyzero_sigfpe="guessing yes" ;; ++ esac ++ ;; ++ esac ++ if test -z "$gt_cv_int_divbyzero_sigfpe"; then ++ if test "$cross_compiling" = yes; then : ++ ++ # Guess based on the CPU. ++ case "$host_cpu" in ++ alpha* | i[34567]86 | x86_64 | m68k | s390*) ++ gt_cv_int_divbyzero_sigfpe="guessing yes";; ++ *) ++ gt_cv_int_divbyzero_sigfpe="guessing no";; ++ esac ++ ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++#include ++#include ++ ++static void ++sigfpe_handler (int sig) ++{ ++ /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */ ++ exit (sig != SIGFPE); ++} ++ ++int x = 1; ++int y = 0; ++int z; ++int nan; ++ ++int main () ++{ ++ signal (SIGFPE, sigfpe_handler); ++/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */ ++#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP) ++ signal (SIGTRAP, sigfpe_handler); ++#endif ++/* Linux/SPARC yields signal SIGILL. */ ++#if defined (__sparc__) && defined (__linux__) ++ signal (SIGILL, sigfpe_handler); ++#endif ++ ++ z = x / y; ++ nan = y / y; ++ exit (2); ++} ++ ++_ACEOF ++if ac_fn_c_try_run "$LINENO"; then : ++ gt_cv_int_divbyzero_sigfpe=yes ++else ++ gt_cv_int_divbyzero_sigfpe=no ++fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext ++fi ++ ++ fi ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_int_divbyzero_sigfpe" >&5 ++$as_echo "$gt_cv_int_divbyzero_sigfpe" >&6; } ++ case "$gt_cv_int_divbyzero_sigfpe" in ++ *yes) value=1;; ++ *) value=0;; ++ esac ++ ++cat >>confdefs.h <<_ACEOF ++#define INTDIV0_RAISES_SIGFPE $value ++_ACEOF ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5 ++$as_echo_n "checking for inttypes.h... " >&6; } ++if ${gl_cv_header_inttypes_h+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++#include ++#include ++ ++int ++main () ++{ ++uintmax_t i = (uintmax_t) -1; return !i; ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ gl_cv_header_inttypes_h=yes ++else ++ gl_cv_header_inttypes_h=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_inttypes_h" >&5 ++$as_echo "$gl_cv_header_inttypes_h" >&6; } ++ if test $gl_cv_header_inttypes_h = yes; then ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_INTTYPES_H_WITH_UINTMAX 1 ++_ACEOF ++ ++ fi ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5 ++$as_echo_n "checking for unsigned long long int... " >&6; } ++if ${ac_cv_type_unsigned_long_long_int+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_cv_type_unsigned_long_long_int=yes ++ if test "x${ac_cv_prog_cc_c99-no}" = xno; then ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++ /* For now, do not test the preprocessor; as of 2007 there are too many ++ implementations with broken preprocessors. Perhaps this can ++ be revisited in 2012. In the meantime, code should not expect ++ #if to work with literals wider than 32 bits. */ ++ /* Test literals. */ ++ long long int ll = 9223372036854775807ll; ++ long long int nll = -9223372036854775807LL; ++ unsigned long long int ull = 18446744073709551615ULL; ++ /* Test constant expressions. */ ++ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) ++ ? 1 : -1)]; ++ typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 ++ ? 1 : -1)]; ++ int i = 63; ++int ++main () ++{ ++/* Test availability of runtime routines for shift and division. */ ++ long long int llmax = 9223372036854775807ll; ++ unsigned long long int ullmax = 18446744073709551615ull; ++ return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) ++ | (llmax / ll) | (llmax % ll) ++ | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) ++ | (ullmax / ull) | (ullmax % ull)); ++ ; ++ return 0; ++} ++ ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ++else ++ ac_cv_type_unsigned_long_long_int=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ fi ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5 ++$as_echo "$ac_cv_type_unsigned_long_long_int" >&6; } ++ if test $ac_cv_type_unsigned_long_long_int = yes; then ++ ++$as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h ++ ++ fi ++ ++ ++ ++ ++ if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then ++ ++ test $ac_cv_type_unsigned_long_long_int = yes \ ++ && ac_type='unsigned long long' \ ++ || ac_type='unsigned long' ++ ++cat >>confdefs.h <<_ACEOF ++#define uintmax_t $ac_type ++_ACEOF ++ ++ else ++ ++$as_echo "#define HAVE_UINTMAX_T 1" >>confdefs.h ++ ++ fi ++ ++ ++ for ac_header in inttypes.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default" ++if test "x$ac_cv_header_inttypes_h" = xyes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_INTTYPES_H 1 ++_ACEOF ++ ++fi ++ ++done ++ ++ if test $ac_cv_header_inttypes_h = yes; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the inttypes.h PRIxNN macros are broken" >&5 ++$as_echo_n "checking whether the inttypes.h PRIxNN macros are broken... " >&6; } ++if ${gt_cv_inttypes_pri_broken+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++#include ++#ifdef PRId32 ++char *p = PRId32; ++#endif ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ gt_cv_inttypes_pri_broken=no ++else ++ gt_cv_inttypes_pri_broken=yes ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_inttypes_pri_broken" >&5 ++$as_echo "$gt_cv_inttypes_pri_broken" >&6; } ++ fi ++ if test "$gt_cv_inttypes_pri_broken" = yes; then ++ ++cat >>confdefs.h <<_ACEOF ++#define PRI_MACROS_BROKEN 1 ++_ACEOF ++ ++ PRI_MACROS_BROKEN=1 ++ else ++ PRI_MACROS_BROKEN=0 ++ fi ++ ++ ++ ++ ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" ++if test "x$ac_cv_header_minix_config_h" = xyes; then : ++ MINIX=yes ++else ++ MINIX= ++fi ++ ++ ++ if test "$MINIX" = yes; then ++ ++$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h ++ ++ ++$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h ++ ++ ++$as_echo "#define _MINIX 1" >>confdefs.h ++ ++ fi ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 ++$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } ++if ${ac_cv_safe_to_define___extensions__+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++# define __EXTENSIONS__ 1 ++ $ac_includes_default ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_safe_to_define___extensions__=yes ++else ++ ac_cv_safe_to_define___extensions__=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 ++$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } ++ test $ac_cv_safe_to_define___extensions__ = yes && ++ $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h ++ ++ $as_echo "#define _ALL_SOURCE 1" >>confdefs.h ++ ++ $as_echo "#define _GNU_SOURCE 1" >>confdefs.h ++ ++ $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h ++ ++ $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h ++ ++ ++ ++ ++ ++ ++ ++ # Check whether --enable-threads was given. ++if test "${enable_threads+set}" = set; then : ++ enableval=$enable_threads; gl_use_threads=$enableval ++else ++ if test -n "$gl_use_threads_default"; then ++ gl_use_threads="$gl_use_threads_default" ++ else ++ case "$host_os" in ++ osf*) gl_use_threads=no ;; ++ cygwin*) ++ case `uname -r` in ++ 1.[0-5].*) gl_use_threads=no ;; ++ *) gl_use_threads=yes ;; ++ esac ++ ;; ++ *) gl_use_threads=yes ;; ++ esac ++ fi ++ ++fi ++ ++ if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then ++ # For using : ++ case "$host_os" in ++ osf*) ++ # On OSF/1, the compiler needs the flag -D_REENTRANT so that it ++ # groks . cc also understands the flag -pthread, but ++ # we don't use it because 1. gcc-2.95 doesn't understand -pthread, ++ # 2. putting a flag into CPPFLAGS that has an effect on the linker ++ # causes the AC_LINK_IFELSE test below to succeed unexpectedly, ++ # leading to wrong values of LIBTHREAD and LTLIBTHREAD. ++ CPPFLAGS="$CPPFLAGS -D_REENTRANT" ++ ;; ++ esac ++ # Some systems optimize for single-threaded programs by default, and ++ # need special flags to disable these optimizations. For example, the ++ # definition of 'errno' in . ++ case "$host_os" in ++ aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; ++ solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; ++ esac ++ fi ++ ++ ++ ++ ++ ++ if test "X$prefix" = "XNONE"; then ++ acl_final_prefix="$ac_default_prefix" ++ else ++ acl_final_prefix="$prefix" ++ fi ++ if test "X$exec_prefix" = "XNONE"; then ++ acl_final_exec_prefix='${prefix}' ++ else ++ acl_final_exec_prefix="$exec_prefix" ++ fi ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" ++ prefix="$acl_save_prefix" ++ ++ ++ ++# 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 ++ ++# Prepare PATH_SEPARATOR. ++# The user is always right. ++if test "${PATH_SEPARATOR+set}" != set; then ++ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which ++ # contains only /bin. Note that ksh looks also at the FPATH variable, ++ # so we have to set that as well for the test. ++ PATH_SEPARATOR=: ++ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ ++ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ ++ || PATH_SEPARATOR=';' ++ } ++fi ++ ++ac_prog=ld ++if test "$GCC" = yes; then ++ # Check if gcc -print-prog-name=ld gives a path. ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 ++$as_echo_n "checking for ld used by $CC... " >&6; } ++ case $host in ++ *-*-mingw*) ++ # gcc leaves a trailing carriage return which upsets mingw ++ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; ++ *) ++ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; ++ esac ++ case $ac_prog in ++ # Accept absolute paths. ++ [\\/]* | ?:[\\/]*) ++ re_direlt='/[^/][^/]*/\.\./' ++ # Canonicalize the pathname of ld ++ ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` ++ while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do ++ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` ++ done ++ test -z "$LD" && LD="$ac_prog" ++ ;; ++ "") ++ # If it fails, then pretend we aren't using GCC. ++ ac_prog=ld ++ ;; ++ *) ++ # If it is relative, then search for the first ld in PATH. ++ with_gnu_ld=unknown ++ ;; ++ esac ++elif test "$with_gnu_ld" = yes; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 ++$as_echo_n "checking for GNU ld... " >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 ++$as_echo_n "checking for non-GNU ld... " >&6; } ++fi ++if ${acl_cv_path_LD+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -z "$LD"; then ++ acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ for ac_dir in $PATH; do ++ IFS="$acl_save_ifs" ++ test -z "$ac_dir" && ac_dir=. ++ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then ++ acl_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 `"$acl_cv_path_LD" -v 2>&1 &5 ++$as_echo "$LD" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 ++$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } ++if ${acl_cv_prog_gnu_ld+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ # I'd rather use --version here, but apparently some GNU lds only accept -v. ++case `$LD -v 2>&1 &5 ++$as_echo "$acl_cv_prog_gnu_ld" >&6; } ++with_gnu_ld=$acl_cv_prog_gnu_ld ++ ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 ++$as_echo_n "checking for shared library run path origin... " >&6; } ++if ${acl_cv_rpath+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ++ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ++ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh ++ . ./conftest.sh ++ rm -f ./conftest.sh ++ acl_cv_rpath=done ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 ++$as_echo "$acl_cv_rpath" >&6; } ++ wl="$acl_cv_wl" ++ acl_libext="$acl_cv_libext" ++ acl_shlibext="$acl_cv_shlibext" ++ acl_libname_spec="$acl_cv_libname_spec" ++ acl_library_names_spec="$acl_cv_library_names_spec" ++ acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" ++ acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" ++ acl_hardcode_direct="$acl_cv_hardcode_direct" ++ acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" ++ # Check whether --enable-rpath was given. ++if test "${enable_rpath+set}" = set; then : ++ enableval=$enable_rpath; : ++else ++ enable_rpath=yes ++fi ++ ++ ++ ++ ++ acl_libdirstem=lib ++ acl_libdirstem2= ++ case "$host_os" in ++ solaris*) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 ++$as_echo_n "checking for 64-bit host... " >&6; } ++if ${gl_cv_solaris_64bit+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++#ifdef _LP64 ++sixtyfour bits ++#endif ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "sixtyfour bits" >/dev/null 2>&1; then : ++ gl_cv_solaris_64bit=yes ++else ++ gl_cv_solaris_64bit=no ++fi ++rm -f conftest* ++ ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5 ++$as_echo "$gl_cv_solaris_64bit" >&6; } ++ if test $gl_cv_solaris_64bit = yes; then ++ acl_libdirstem=lib/64 ++ case "$host_cpu" in ++ sparc*) acl_libdirstem2=lib/sparcv9 ;; ++ i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; ++ esac ++ fi ++ ;; ++ *) ++ searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` ++ if test -n "$searchpath"; then ++ acl_save_IFS="${IFS= }"; IFS=":" ++ for searchdir in $searchpath; do ++ if test -d "$searchdir"; then ++ case "$searchdir" in ++ */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; ++ */../ | */.. ) ++ # Better ignore directories of this form. They are misleading. ++ ;; ++ *) searchdir=`cd "$searchdir" && pwd` ++ case "$searchdir" in ++ */lib64 ) acl_libdirstem=lib64 ;; ++ esac ;; ++ esac ++ fi ++ done ++ IFS="$acl_save_IFS" ++ fi ++ ;; ++ esac ++ test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" ++ ++ ++ ++ gl_threads_api=none ++ LIBTHREAD= ++ LTLIBTHREAD= ++ LIBMULTITHREAD= ++ LTLIBMULTITHREAD= ++ if test "$gl_use_threads" != no; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5 ++$as_echo_n "checking whether imported symbols can be declared weak... " >&6; } ++if ${gl_cv_have_weak+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ gl_cv_have_weak=no ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++extern void xyzzy (); ++#pragma weak xyzzy ++int ++main () ++{ ++xyzzy(); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ gl_cv_have_weak=maybe ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ if test $gl_cv_have_weak = maybe; then ++ if test "$cross_compiling" = yes; then : ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#ifdef __ELF__ ++ Extensible Linking Format ++ #endif ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "Extensible Linking Format" >/dev/null 2>&1; then : ++ gl_cv_have_weak="guessing yes" ++else ++ gl_cv_have_weak="guessing no" ++fi ++rm -f conftest* ++ ++ ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++#include ++#pragma weak fputs ++int main () ++{ ++ return (fputs == NULL); ++} ++_ACEOF ++if ac_fn_c_try_run "$LINENO"; then : ++ gl_cv_have_weak=yes ++else ++ gl_cv_have_weak=no ++fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext ++fi ++ ++ fi ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5 ++$as_echo "$gl_cv_have_weak" >&6; } ++ if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then ++ # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that ++ # it groks . It's added above, in gl_THREADLIB_EARLY_BODY. ++ ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" ++if test "x$ac_cv_header_pthread_h" = xyes; then : ++ gl_have_pthread_h=yes ++else ++ gl_have_pthread_h=no ++fi ++ ++ ++ if test "$gl_have_pthread_h" = yes; then ++ # Other possible tests: ++ # -lpthreads (FSU threads, PCthreads) ++ # -lgthreads ++ gl_have_pthread= ++ # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist ++ # in libc. IRIX 6.5 has the first one in both libc and libpthread, but ++ # the second one only in libpthread, and lock.c needs it. ++ # ++ # If -pthread works, prefer it to -lpthread, since Ubuntu 14.04 ++ # needs -pthread for some reason. See: ++ # http://lists.gnu.org/archive/html/bug-gnulib/2014-09/msg00023.html ++ save_LIBS=$LIBS ++ for gl_pthread in '' '-pthread'; do ++ LIBS="$LIBS $gl_pthread" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++ pthread_mutex_t m; ++ pthread_mutexattr_t ma; ++ ++int ++main () ++{ ++pthread_mutex_lock (&m); ++ pthread_mutexattr_init (&ma); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ gl_have_pthread=yes ++ LIBTHREAD=$gl_pthread LTLIBTHREAD=$gl_pthread ++ LIBMULTITHREAD=$gl_pthread LTLIBMULTITHREAD=$gl_pthread ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ LIBS=$save_LIBS ++ test -n "$gl_have_pthread" && break ++ done ++ ++ # Test for libpthread by looking for pthread_kill. (Not pthread_self, ++ # since it is defined as a macro on OSF/1.) ++ if test -n "$gl_have_pthread" && test -z "$LIBTHREAD"; then ++ # The program links fine without libpthread. But it may actually ++ # need to link with libpthread in order to create multiple threads. ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 ++$as_echo_n "checking for pthread_kill in -lpthread... " >&6; } ++if ${ac_cv_lib_pthread_pthread_kill+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lpthread $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char pthread_kill (); ++int ++main () ++{ ++return pthread_kill (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_pthread_pthread_kill=yes ++else ++ ac_cv_lib_pthread_pthread_kill=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 ++$as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; } ++if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then : ++ LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread ++ # On Solaris and HP-UX, most pthread functions exist also in libc. ++ # Therefore pthread_in_use() needs to actually try to create a ++ # thread: pthread_create from libc will fail, whereas ++ # pthread_create will actually create a thread. ++ case "$host_os" in ++ solaris* | hpux*) ++ ++$as_echo "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h ++ ++ esac ++ ++fi ++ ++ elif test -z "$gl_have_pthread"; then ++ # Some library is needed. Try libpthread and libc_r. ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 ++$as_echo_n "checking for pthread_kill in -lpthread... " >&6; } ++if ${ac_cv_lib_pthread_pthread_kill+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lpthread $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char pthread_kill (); ++int ++main () ++{ ++return pthread_kill (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_pthread_pthread_kill=yes ++else ++ ac_cv_lib_pthread_pthread_kill=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 ++$as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; } ++if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then : ++ gl_have_pthread=yes ++ LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread ++ LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread ++fi ++ ++ if test -z "$gl_have_pthread"; then ++ # For FreeBSD 4. ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lc_r" >&5 ++$as_echo_n "checking for pthread_kill in -lc_r... " >&6; } ++if ${ac_cv_lib_c_r_pthread_kill+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lc_r $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char pthread_kill (); ++int ++main () ++{ ++return pthread_kill (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_c_r_pthread_kill=yes ++else ++ ac_cv_lib_c_r_pthread_kill=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_kill" >&5 ++$as_echo "$ac_cv_lib_c_r_pthread_kill" >&6; } ++if test "x$ac_cv_lib_c_r_pthread_kill" = xyes; then : ++ gl_have_pthread=yes ++ LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r ++ LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r ++fi ++ ++ fi ++ fi ++ if test -n "$gl_have_pthread"; then ++ gl_threads_api=posix ++ ++$as_echo "#define USE_POSIX_THREADS 1" >>confdefs.h ++ ++ if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then ++ if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then ++ ++$as_echo "#define USE_POSIX_THREADS_WEAK 1" >>confdefs.h ++ ++ LIBTHREAD= ++ LTLIBTHREAD= ++ fi ++ fi ++ fi ++ fi ++ fi ++ if test -z "$gl_have_pthread"; then ++ if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then ++ gl_have_solaristhread= ++ gl_save_LIBS="$LIBS" ++ LIBS="$LIBS -lthread" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++#include ++#include ++ ++int ++main () ++{ ++thr_self(); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ gl_have_solaristhread=yes ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ LIBS="$gl_save_LIBS" ++ if test -n "$gl_have_solaristhread"; then ++ gl_threads_api=solaris ++ LIBTHREAD=-lthread ++ LTLIBTHREAD=-lthread ++ LIBMULTITHREAD="$LIBTHREAD" ++ LTLIBMULTITHREAD="$LTLIBTHREAD" ++ ++$as_echo "#define USE_SOLARIS_THREADS 1" >>confdefs.h ++ ++ if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then ++ ++$as_echo "#define USE_SOLARIS_THREADS_WEAK 1" >>confdefs.h ++ ++ LIBTHREAD= ++ LTLIBTHREAD= ++ fi ++ fi ++ fi ++ fi ++ if test "$gl_use_threads" = pth; then ++ gl_save_CPPFLAGS="$CPPFLAGS" ++ ++ ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libpth" >&5 ++$as_echo_n "checking how to link with libpth... " >&6; } ++if ${ac_cv_libpth_libs+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ++ ++ ++ ++ ++ ++ ++ ++ use_additional=yes ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ ++ eval additional_includedir=\"$includedir\" ++ eval additional_libdir=\"$libdir\" ++ ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ ++# Check whether --with-libpth-prefix was given. ++if test "${with_libpth_prefix+set}" = set; then : ++ withval=$with_libpth_prefix; ++ if test "X$withval" = "Xno"; then ++ use_additional=no ++ else ++ if test "X$withval" = "X"; then ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ ++ eval additional_includedir=\"$includedir\" ++ eval additional_libdir=\"$libdir\" ++ ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ else ++ additional_includedir="$withval/include" ++ additional_libdir="$withval/$acl_libdirstem" ++ if test "$acl_libdirstem2" != "$acl_libdirstem" \ ++ && ! test -d "$withval/$acl_libdirstem"; then ++ additional_libdir="$withval/$acl_libdirstem2" ++ fi ++ fi ++ fi ++ ++fi ++ ++ LIBPTH= ++ LTLIBPTH= ++ INCPTH= ++ LIBPTH_PREFIX= ++ HAVE_LIBPTH= ++ rpathdirs= ++ ltrpathdirs= ++ names_already_handled= ++ names_next_round='pth ' ++ while test -n "$names_next_round"; do ++ names_this_round="$names_next_round" ++ names_next_round= ++ for name in $names_this_round; do ++ already_handled= ++ for n in $names_already_handled; do ++ if test "$n" = "$name"; then ++ already_handled=yes ++ break ++ fi ++ done ++ if test -z "$already_handled"; then ++ names_already_handled="$names_already_handled $name" ++ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` ++ eval value=\"\$HAVE_LIB$uppername\" ++ if test -n "$value"; then ++ if test "$value" = yes; then ++ eval value=\"\$LIB$uppername\" ++ test -z "$value" || LIBPTH="${LIBPTH}${LIBPTH:+ }$value" ++ eval value=\"\$LTLIB$uppername\" ++ test -z "$value" || LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }$value" ++ else ++ : ++ fi ++ else ++ found_dir= ++ found_la= ++ found_so= ++ found_a= ++ eval libname=\"$acl_libname_spec\" # typically: libname=lib$name ++ if test -n "$acl_shlibext"; then ++ shrext=".$acl_shlibext" # typically: shrext=.so ++ else ++ shrext= ++ fi ++ if test $use_additional = yes; then ++ dir="$additional_libdir" ++ if test -n "$acl_shlibext"; then ++ if test -f "$dir/$libname$shrext"; then ++ found_dir="$dir" ++ found_so="$dir/$libname$shrext" ++ else ++ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ++ ver=`(cd "$dir" && \ ++ for f in "$libname$shrext".*; do echo "$f"; done \ ++ | sed -e "s,^$libname$shrext\\\\.,," \ ++ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ ++ | sed 1q ) 2>/dev/null` ++ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then ++ found_dir="$dir" ++ found_so="$dir/$libname$shrext.$ver" ++ fi ++ else ++ eval library_names=\"$acl_library_names_spec\" ++ for f in $library_names; do ++ if test -f "$dir/$f"; then ++ found_dir="$dir" ++ found_so="$dir/$f" ++ break ++ fi ++ done ++ fi ++ fi ++ fi ++ if test "X$found_dir" = "X"; then ++ if test -f "$dir/$libname.$acl_libext"; then ++ found_dir="$dir" ++ found_a="$dir/$libname.$acl_libext" ++ fi ++ fi ++ if test "X$found_dir" != "X"; then ++ if test -f "$dir/$libname.la"; then ++ found_la="$dir/$libname.la" ++ fi ++ fi ++ fi ++ if test "X$found_dir" = "X"; then ++ for x in $LDFLAGS $LTLIBPTH; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ case "$x" in ++ -L*) ++ dir=`echo "X$x" | sed -e 's/^X-L//'` ++ if test -n "$acl_shlibext"; then ++ if test -f "$dir/$libname$shrext"; then ++ found_dir="$dir" ++ found_so="$dir/$libname$shrext" ++ else ++ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ++ ver=`(cd "$dir" && \ ++ for f in "$libname$shrext".*; do echo "$f"; done \ ++ | sed -e "s,^$libname$shrext\\\\.,," \ ++ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ ++ | sed 1q ) 2>/dev/null` ++ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then ++ found_dir="$dir" ++ found_so="$dir/$libname$shrext.$ver" ++ fi ++ else ++ eval library_names=\"$acl_library_names_spec\" ++ for f in $library_names; do ++ if test -f "$dir/$f"; then ++ found_dir="$dir" ++ found_so="$dir/$f" ++ break ++ fi ++ done ++ fi ++ fi ++ fi ++ if test "X$found_dir" = "X"; then ++ if test -f "$dir/$libname.$acl_libext"; then ++ found_dir="$dir" ++ found_a="$dir/$libname.$acl_libext" ++ fi ++ fi ++ if test "X$found_dir" != "X"; then ++ if test -f "$dir/$libname.la"; then ++ found_la="$dir/$libname.la" ++ fi ++ fi ++ ;; ++ esac ++ if test "X$found_dir" != "X"; then ++ break ++ fi ++ done ++ fi ++ if test "X$found_dir" != "X"; then ++ LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-L$found_dir -l$name" ++ if test "X$found_so" != "X"; then ++ if test "$enable_rpath" = no \ ++ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ ++ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then ++ LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" ++ else ++ haveit= ++ for x in $ltrpathdirs; do ++ if test "X$x" = "X$found_dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ ltrpathdirs="$ltrpathdirs $found_dir" ++ fi ++ if test "$acl_hardcode_direct" = yes; then ++ LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" ++ else ++ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then ++ LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" ++ haveit= ++ for x in $rpathdirs; do ++ if test "X$x" = "X$found_dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ rpathdirs="$rpathdirs $found_dir" ++ fi ++ else ++ haveit= ++ for x in $LDFLAGS $LIBPTH; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X-L$found_dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ LIBPTH="${LIBPTH}${LIBPTH:+ }-L$found_dir" ++ fi ++ if test "$acl_hardcode_minus_L" != no; then ++ LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" ++ else ++ LIBPTH="${LIBPTH}${LIBPTH:+ }-l$name" ++ fi ++ fi ++ fi ++ fi ++ else ++ if test "X$found_a" != "X"; then ++ LIBPTH="${LIBPTH}${LIBPTH:+ }$found_a" ++ else ++ LIBPTH="${LIBPTH}${LIBPTH:+ }-L$found_dir -l$name" ++ fi ++ fi ++ additional_includedir= ++ case "$found_dir" in ++ */$acl_libdirstem | */$acl_libdirstem/) ++ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` ++ if test "$name" = 'pth'; then ++ LIBPTH_PREFIX="$basedir" ++ fi ++ additional_includedir="$basedir/include" ++ ;; ++ */$acl_libdirstem2 | */$acl_libdirstem2/) ++ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` ++ if test "$name" = 'pth'; then ++ LIBPTH_PREFIX="$basedir" ++ fi ++ additional_includedir="$basedir/include" ++ ;; ++ esac ++ if test "X$additional_includedir" != "X"; then ++ if test "X$additional_includedir" != "X/usr/include"; then ++ haveit= ++ if test "X$additional_includedir" = "X/usr/local/include"; then ++ if test -n "$GCC"; then ++ case $host_os in ++ linux* | gnu* | k*bsd*-gnu) haveit=yes;; ++ esac ++ fi ++ fi ++ if test -z "$haveit"; then ++ for x in $CPPFLAGS $INCPTH; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X-I$additional_includedir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ if test -d "$additional_includedir"; then ++ INCPTH="${INCPTH}${INCPTH:+ }-I$additional_includedir" ++ fi ++ fi ++ fi ++ fi ++ fi ++ if test -n "$found_la"; then ++ save_libdir="$libdir" ++ case "$found_la" in ++ */* | *\\*) . "$found_la" ;; ++ *) . "./$found_la" ;; ++ esac ++ libdir="$save_libdir" ++ for dep in $dependency_libs; do ++ case "$dep" in ++ -L*) ++ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` ++ if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ ++ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then ++ haveit= ++ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ ++ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then ++ if test -n "$GCC"; then ++ case $host_os in ++ linux* | gnu* | k*bsd*-gnu) haveit=yes;; ++ esac ++ fi ++ fi ++ if test -z "$haveit"; then ++ haveit= ++ for x in $LDFLAGS $LIBPTH; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X-L$additional_libdir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ if test -d "$additional_libdir"; then ++ LIBPTH="${LIBPTH}${LIBPTH:+ }-L$additional_libdir" ++ fi ++ fi ++ haveit= ++ for x in $LDFLAGS $LTLIBPTH; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X-L$additional_libdir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ if test -d "$additional_libdir"; then ++ LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-L$additional_libdir" ++ fi ++ fi ++ fi ++ fi ++ ;; ++ -R*) ++ dir=`echo "X$dep" | sed -e 's/^X-R//'` ++ if test "$enable_rpath" != no; then ++ haveit= ++ for x in $rpathdirs; do ++ if test "X$x" = "X$dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ rpathdirs="$rpathdirs $dir" ++ fi ++ haveit= ++ for x in $ltrpathdirs; do ++ if test "X$x" = "X$dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ ltrpathdirs="$ltrpathdirs $dir" ++ fi ++ fi ++ ;; ++ -l*) ++ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ++ ;; ++ *.la) ++ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ++ ;; ++ *) ++ LIBPTH="${LIBPTH}${LIBPTH:+ }$dep" ++ LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }$dep" ++ ;; ++ esac ++ done ++ fi ++ else ++ LIBPTH="${LIBPTH}${LIBPTH:+ }-l$name" ++ LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-l$name" ++ fi ++ fi ++ fi ++ done ++ done ++ if test "X$rpathdirs" != "X"; then ++ if test -n "$acl_hardcode_libdir_separator"; then ++ alldirs= ++ for found_dir in $rpathdirs; do ++ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" ++ done ++ acl_save_libdir="$libdir" ++ libdir="$alldirs" ++ eval flag=\"$acl_hardcode_libdir_flag_spec\" ++ libdir="$acl_save_libdir" ++ LIBPTH="${LIBPTH}${LIBPTH:+ }$flag" ++ else ++ for found_dir in $rpathdirs; do ++ acl_save_libdir="$libdir" ++ libdir="$found_dir" ++ eval flag=\"$acl_hardcode_libdir_flag_spec\" ++ libdir="$acl_save_libdir" ++ LIBPTH="${LIBPTH}${LIBPTH:+ }$flag" ++ done ++ fi ++ fi ++ if test "X$ltrpathdirs" != "X"; then ++ for found_dir in $ltrpathdirs; do ++ LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-R$found_dir" ++ done ++ fi ++ ++ ++ ++ ++ ++ ++ ac_cv_libpth_libs="$LIBPTH" ++ ac_cv_libpth_ltlibs="$LTLIBPTH" ++ ac_cv_libpth_cppflags="$INCPTH" ++ ac_cv_libpth_prefix="$LIBPTH_PREFIX" ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_libpth_libs" >&5 ++$as_echo "$ac_cv_libpth_libs" >&6; } ++ LIBPTH="$ac_cv_libpth_libs" ++ LTLIBPTH="$ac_cv_libpth_ltlibs" ++ INCPTH="$ac_cv_libpth_cppflags" ++ LIBPTH_PREFIX="$ac_cv_libpth_prefix" ++ ++ for element in $INCPTH; do ++ haveit= ++ for x in $CPPFLAGS; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X$element"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" ++ fi ++ done ++ ++ ++ ++ ++ HAVE_LIBPTH=yes ++ ++ ++ ++ gl_have_pth= ++ gl_save_LIBS="$LIBS" ++ LIBS="$LIBS $LIBPTH" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++int ++main () ++{ ++pth_self(); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ gl_have_pth=yes ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ LIBS="$gl_save_LIBS" ++ if test -n "$gl_have_pth"; then ++ gl_threads_api=pth ++ LIBTHREAD="$LIBPTH" ++ LTLIBTHREAD="$LTLIBPTH" ++ LIBMULTITHREAD="$LIBTHREAD" ++ LTLIBMULTITHREAD="$LTLIBTHREAD" ++ ++$as_echo "#define USE_PTH_THREADS 1" >>confdefs.h ++ ++ if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then ++ if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then ++ ++$as_echo "#define USE_PTH_THREADS_WEAK 1" >>confdefs.h ++ ++ LIBTHREAD= ++ LTLIBTHREAD= ++ fi ++ fi ++ else ++ CPPFLAGS="$gl_save_CPPFLAGS" ++ fi ++ fi ++ if test -z "$gl_have_pthread"; then ++ case "$gl_use_threads" in ++ yes | windows | win32) # The 'win32' is for backward compatibility. ++ if { case "$host_os" in ++ mingw*) true;; ++ *) false;; ++ esac ++ }; then ++ gl_threads_api=windows ++ ++$as_echo "#define USE_WINDOWS_THREADS 1" >>confdefs.h ++ ++ fi ++ ;; ++ esac ++ fi ++ fi ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for multithread API to use" >&5 ++$as_echo_n "checking for multithread API to use... " >&6; } ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_threads_api" >&5 ++$as_echo "$gl_threads_api" >&6; } ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ if test "$gl_threads_api" = posix; then ++ # OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the ++ # pthread_rwlock_* functions. ++ ac_fn_c_check_type "$LINENO" "pthread_rwlock_t" "ac_cv_type_pthread_rwlock_t" "#include ++" ++if test "x$ac_cv_type_pthread_rwlock_t" = xyes; then : ++ ++$as_echo "#define HAVE_PTHREAD_RWLOCK 1" >>confdefs.h ++ ++fi ++ ++ # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++ #include ++int ++main () ++{ ++ ++#if __FreeBSD__ == 4 ++error "No, in FreeBSD 4.0 recursive mutexes actually don't work." ++#elif (defined __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ \ ++ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070) ++error "No, in Mac OS X < 10.7 recursive mutexes actually don't work." ++#else ++int x = (int)PTHREAD_MUTEX_RECURSIVE; ++return !x; ++#endif ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ++$as_echo "#define HAVE_PTHREAD_MUTEX_RECURSIVE 1" >>confdefs.h ++ ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ fi ++ : ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ use_additional=yes ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ ++ eval additional_includedir=\"$includedir\" ++ eval additional_libdir=\"$libdir\" ++ ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ ++# Check whether --with-libiconv-prefix was given. ++if test "${with_libiconv_prefix+set}" = set; then : ++ withval=$with_libiconv_prefix; ++ if test "X$withval" = "Xno"; then ++ use_additional=no ++ else ++ if test "X$withval" = "X"; then ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ ++ eval additional_includedir=\"$includedir\" ++ eval additional_libdir=\"$libdir\" ++ ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ else ++ additional_includedir="$withval/include" ++ additional_libdir="$withval/$acl_libdirstem" ++ if test "$acl_libdirstem2" != "$acl_libdirstem" \ ++ && ! test -d "$withval/$acl_libdirstem"; then ++ additional_libdir="$withval/$acl_libdirstem2" ++ fi ++ fi ++ fi ++ ++fi ++ ++ LIBICONV= ++ LTLIBICONV= ++ INCICONV= ++ LIBICONV_PREFIX= ++ HAVE_LIBICONV= ++ rpathdirs= ++ ltrpathdirs= ++ names_already_handled= ++ names_next_round='iconv ' ++ while test -n "$names_next_round"; do ++ names_this_round="$names_next_round" ++ names_next_round= ++ for name in $names_this_round; do ++ already_handled= ++ for n in $names_already_handled; do ++ if test "$n" = "$name"; then ++ already_handled=yes ++ break ++ fi ++ done ++ if test -z "$already_handled"; then ++ names_already_handled="$names_already_handled $name" ++ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` ++ eval value=\"\$HAVE_LIB$uppername\" ++ if test -n "$value"; then ++ if test "$value" = yes; then ++ eval value=\"\$LIB$uppername\" ++ test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" ++ eval value=\"\$LTLIB$uppername\" ++ test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" ++ else ++ : ++ fi ++ else ++ found_dir= ++ found_la= ++ found_so= ++ found_a= ++ eval libname=\"$acl_libname_spec\" # typically: libname=lib$name ++ if test -n "$acl_shlibext"; then ++ shrext=".$acl_shlibext" # typically: shrext=.so ++ else ++ shrext= ++ fi ++ if test $use_additional = yes; then ++ dir="$additional_libdir" ++ if test -n "$acl_shlibext"; then ++ if test -f "$dir/$libname$shrext"; then ++ found_dir="$dir" ++ found_so="$dir/$libname$shrext" ++ else ++ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ++ ver=`(cd "$dir" && \ ++ for f in "$libname$shrext".*; do echo "$f"; done \ ++ | sed -e "s,^$libname$shrext\\\\.,," \ ++ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ ++ | sed 1q ) 2>/dev/null` ++ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then ++ found_dir="$dir" ++ found_so="$dir/$libname$shrext.$ver" ++ fi ++ else ++ eval library_names=\"$acl_library_names_spec\" ++ for f in $library_names; do ++ if test -f "$dir/$f"; then ++ found_dir="$dir" ++ found_so="$dir/$f" ++ break ++ fi ++ done ++ fi ++ fi ++ fi ++ if test "X$found_dir" = "X"; then ++ if test -f "$dir/$libname.$acl_libext"; then ++ found_dir="$dir" ++ found_a="$dir/$libname.$acl_libext" ++ fi ++ fi ++ if test "X$found_dir" != "X"; then ++ if test -f "$dir/$libname.la"; then ++ found_la="$dir/$libname.la" ++ fi ++ fi ++ fi ++ if test "X$found_dir" = "X"; then ++ for x in $LDFLAGS $LTLIBICONV; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ case "$x" in ++ -L*) ++ dir=`echo "X$x" | sed -e 's/^X-L//'` ++ if test -n "$acl_shlibext"; then ++ if test -f "$dir/$libname$shrext"; then ++ found_dir="$dir" ++ found_so="$dir/$libname$shrext" ++ else ++ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ++ ver=`(cd "$dir" && \ ++ for f in "$libname$shrext".*; do echo "$f"; done \ ++ | sed -e "s,^$libname$shrext\\\\.,," \ ++ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ ++ | sed 1q ) 2>/dev/null` ++ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then ++ found_dir="$dir" ++ found_so="$dir/$libname$shrext.$ver" ++ fi ++ else ++ eval library_names=\"$acl_library_names_spec\" ++ for f in $library_names; do ++ if test -f "$dir/$f"; then ++ found_dir="$dir" ++ found_so="$dir/$f" ++ break ++ fi ++ done ++ fi ++ fi ++ fi ++ if test "X$found_dir" = "X"; then ++ if test -f "$dir/$libname.$acl_libext"; then ++ found_dir="$dir" ++ found_a="$dir/$libname.$acl_libext" ++ fi ++ fi ++ if test "X$found_dir" != "X"; then ++ if test -f "$dir/$libname.la"; then ++ found_la="$dir/$libname.la" ++ fi ++ fi ++ ;; ++ esac ++ if test "X$found_dir" != "X"; then ++ break ++ fi ++ done ++ fi ++ if test "X$found_dir" != "X"; then ++ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" ++ if test "X$found_so" != "X"; then ++ if test "$enable_rpath" = no \ ++ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ ++ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then ++ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" ++ else ++ haveit= ++ for x in $ltrpathdirs; do ++ if test "X$x" = "X$found_dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ ltrpathdirs="$ltrpathdirs $found_dir" ++ fi ++ if test "$acl_hardcode_direct" = yes; then ++ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" ++ else ++ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then ++ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" ++ haveit= ++ for x in $rpathdirs; do ++ if test "X$x" = "X$found_dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ rpathdirs="$rpathdirs $found_dir" ++ fi ++ else ++ haveit= ++ for x in $LDFLAGS $LIBICONV; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X-L$found_dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" ++ fi ++ if test "$acl_hardcode_minus_L" != no; then ++ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" ++ else ++ LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" ++ fi ++ fi ++ fi ++ fi ++ else ++ if test "X$found_a" != "X"; then ++ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" ++ else ++ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" ++ fi ++ fi ++ additional_includedir= ++ case "$found_dir" in ++ */$acl_libdirstem | */$acl_libdirstem/) ++ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` ++ if test "$name" = 'iconv'; then ++ LIBICONV_PREFIX="$basedir" ++ fi ++ additional_includedir="$basedir/include" ++ ;; ++ */$acl_libdirstem2 | */$acl_libdirstem2/) ++ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` ++ if test "$name" = 'iconv'; then ++ LIBICONV_PREFIX="$basedir" ++ fi ++ additional_includedir="$basedir/include" ++ ;; ++ esac ++ if test "X$additional_includedir" != "X"; then ++ if test "X$additional_includedir" != "X/usr/include"; then ++ haveit= ++ if test "X$additional_includedir" = "X/usr/local/include"; then ++ if test -n "$GCC"; then ++ case $host_os in ++ linux* | gnu* | k*bsd*-gnu) haveit=yes;; ++ esac ++ fi ++ fi ++ if test -z "$haveit"; then ++ for x in $CPPFLAGS $INCICONV; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X-I$additional_includedir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ if test -d "$additional_includedir"; then ++ INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" ++ fi ++ fi ++ fi ++ fi ++ fi ++ if test -n "$found_la"; then ++ save_libdir="$libdir" ++ case "$found_la" in ++ */* | *\\*) . "$found_la" ;; ++ *) . "./$found_la" ;; ++ esac ++ libdir="$save_libdir" ++ for dep in $dependency_libs; do ++ case "$dep" in ++ -L*) ++ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` ++ if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ ++ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then ++ haveit= ++ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ ++ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then ++ if test -n "$GCC"; then ++ case $host_os in ++ linux* | gnu* | k*bsd*-gnu) haveit=yes;; ++ esac ++ fi ++ fi ++ if test -z "$haveit"; then ++ haveit= ++ for x in $LDFLAGS $LIBICONV; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X-L$additional_libdir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ if test -d "$additional_libdir"; then ++ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" ++ fi ++ fi ++ haveit= ++ for x in $LDFLAGS $LTLIBICONV; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X-L$additional_libdir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ if test -d "$additional_libdir"; then ++ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" ++ fi ++ fi ++ fi ++ fi ++ ;; ++ -R*) ++ dir=`echo "X$dep" | sed -e 's/^X-R//'` ++ if test "$enable_rpath" != no; then ++ haveit= ++ for x in $rpathdirs; do ++ if test "X$x" = "X$dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ rpathdirs="$rpathdirs $dir" ++ fi ++ haveit= ++ for x in $ltrpathdirs; do ++ if test "X$x" = "X$dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ ltrpathdirs="$ltrpathdirs $dir" ++ fi ++ fi ++ ;; ++ -l*) ++ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ++ ;; ++ *.la) ++ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ++ ;; ++ *) ++ LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" ++ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" ++ ;; ++ esac ++ done ++ fi ++ else ++ LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" ++ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" ++ fi ++ fi ++ fi ++ done ++ done ++ if test "X$rpathdirs" != "X"; then ++ if test -n "$acl_hardcode_libdir_separator"; then ++ alldirs= ++ for found_dir in $rpathdirs; do ++ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" ++ done ++ acl_save_libdir="$libdir" ++ libdir="$alldirs" ++ eval flag=\"$acl_hardcode_libdir_flag_spec\" ++ libdir="$acl_save_libdir" ++ LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" ++ else ++ for found_dir in $rpathdirs; do ++ acl_save_libdir="$libdir" ++ libdir="$found_dir" ++ eval flag=\"$acl_hardcode_libdir_flag_spec\" ++ libdir="$acl_save_libdir" ++ LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" ++ done ++ fi ++ fi ++ if test "X$ltrpathdirs" != "X"; then ++ for found_dir in $ltrpathdirs; do ++ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" ++ done ++ fi ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ am_save_CPPFLAGS="$CPPFLAGS" ++ ++ for element in $INCICONV; do ++ haveit= ++ for x in $CPPFLAGS; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X$element"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" ++ fi ++ done ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 ++$as_echo_n "checking for iconv... " >&6; } ++if ${am_cv_func_iconv+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ++ am_cv_func_iconv="no, consider installing GNU libiconv" ++ am_cv_lib_iconv=no ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++#include ++#include ++ ++int ++main () ++{ ++iconv_t cd = iconv_open("",""); ++ iconv(cd,NULL,NULL,NULL,NULL); ++ iconv_close(cd); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ am_cv_func_iconv=yes ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ if test "$am_cv_func_iconv" != yes; then ++ am_save_LIBS="$LIBS" ++ LIBS="$LIBS $LIBICONV" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++#include ++#include ++ ++int ++main () ++{ ++iconv_t cd = iconv_open("",""); ++ iconv(cd,NULL,NULL,NULL,NULL); ++ iconv_close(cd); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ am_cv_lib_iconv=yes ++ am_cv_func_iconv=yes ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ LIBS="$am_save_LIBS" ++ fi ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 ++$as_echo "$am_cv_func_iconv" >&6; } ++ if test "$am_cv_func_iconv" = yes; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 ++$as_echo_n "checking for working iconv... " >&6; } ++if ${am_cv_func_iconv_works+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ++ am_save_LIBS="$LIBS" ++ if test $am_cv_lib_iconv = yes; then ++ LIBS="$LIBS $LIBICONV" ++ fi ++ am_cv_func_iconv_works=no ++ for ac_iconv_const in '' 'const'; do ++ if test "$cross_compiling" = yes; then : ++ case "$host_os" in ++ aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; ++ *) am_cv_func_iconv_works="guessing yes" ;; ++ esac ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++#include ++#include ++ ++#ifndef ICONV_CONST ++# define ICONV_CONST $ac_iconv_const ++#endif ++ ++int ++main () ++{ ++int result = 0; ++ /* Test against AIX 5.1 bug: Failures are not distinguishable from successful ++ returns. */ ++ { ++ iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); ++ if (cd_utf8_to_88591 != (iconv_t)(-1)) ++ { ++ static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ ++ char buf[10]; ++ ICONV_CONST char *inptr = input; ++ size_t inbytesleft = strlen (input); ++ char *outptr = buf; ++ size_t outbytesleft = sizeof (buf); ++ size_t res = iconv (cd_utf8_to_88591, ++ &inptr, &inbytesleft, ++ &outptr, &outbytesleft); ++ if (res == 0) ++ result |= 1; ++ iconv_close (cd_utf8_to_88591); ++ } ++ } ++ /* Test against Solaris 10 bug: Failures are not distinguishable from ++ successful returns. */ ++ { ++ iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); ++ if (cd_ascii_to_88591 != (iconv_t)(-1)) ++ { ++ static ICONV_CONST char input[] = "\263"; ++ char buf[10]; ++ ICONV_CONST char *inptr = input; ++ size_t inbytesleft = strlen (input); ++ char *outptr = buf; ++ size_t outbytesleft = sizeof (buf); ++ size_t res = iconv (cd_ascii_to_88591, ++ &inptr, &inbytesleft, ++ &outptr, &outbytesleft); ++ if (res == 0) ++ result |= 2; ++ iconv_close (cd_ascii_to_88591); ++ } ++ } ++ /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ ++ { ++ iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); ++ if (cd_88591_to_utf8 != (iconv_t)(-1)) ++ { ++ static ICONV_CONST char input[] = "\304"; ++ static char buf[2] = { (char)0xDE, (char)0xAD }; ++ ICONV_CONST char *inptr = input; ++ size_t inbytesleft = 1; ++ char *outptr = buf; ++ size_t outbytesleft = 1; ++ size_t res = iconv (cd_88591_to_utf8, ++ &inptr, &inbytesleft, ++ &outptr, &outbytesleft); ++ if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) ++ result |= 4; ++ iconv_close (cd_88591_to_utf8); ++ } ++ } ++#if 0 /* This bug could be worked around by the caller. */ ++ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ ++ { ++ iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); ++ if (cd_88591_to_utf8 != (iconv_t)(-1)) ++ { ++ static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; ++ char buf[50]; ++ ICONV_CONST char *inptr = input; ++ size_t inbytesleft = strlen (input); ++ char *outptr = buf; ++ size_t outbytesleft = sizeof (buf); ++ size_t res = iconv (cd_88591_to_utf8, ++ &inptr, &inbytesleft, ++ &outptr, &outbytesleft); ++ if ((int)res > 0) ++ result |= 8; ++ iconv_close (cd_88591_to_utf8); ++ } ++ } ++#endif ++ /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is ++ provided. */ ++ if (/* Try standardized names. */ ++ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) ++ /* Try IRIX, OSF/1 names. */ ++ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) ++ /* Try AIX names. */ ++ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) ++ /* Try HP-UX names. */ ++ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) ++ result |= 16; ++ return result; ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_run "$LINENO"; then : ++ am_cv_func_iconv_works=yes ++fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext ++fi ++ ++ test "$am_cv_func_iconv_works" = no || break ++ done ++ LIBS="$am_save_LIBS" ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 ++$as_echo "$am_cv_func_iconv_works" >&6; } ++ case "$am_cv_func_iconv_works" in ++ *no) am_func_iconv=no am_cv_lib_iconv=no ;; ++ *) am_func_iconv=yes ;; ++ esac ++ else ++ am_func_iconv=no am_cv_lib_iconv=no ++ fi ++ if test "$am_func_iconv" = yes; then ++ ++$as_echo "#define HAVE_ICONV 1" >>confdefs.h ++ ++ fi ++ if test "$am_cv_lib_iconv" = yes; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 ++$as_echo_n "checking how to link with libiconv... " >&6; } ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 ++$as_echo "$LIBICONV" >&6; } ++ else ++ CPPFLAGS="$am_save_CPPFLAGS" ++ LIBICONV= ++ LTLIBICONV= ++ fi ++ ++ ++ ++ if test "$am_cv_func_iconv" = yes; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5 ++$as_echo_n "checking for iconv declaration... " >&6; } ++ if ${am_cv_proto_iconv+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++#include ++#include ++extern ++#ifdef __cplusplus ++"C" ++#endif ++#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) ++size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); ++#else ++size_t iconv(); ++#endif ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ am_cv_proto_iconv_arg1="" ++else ++ am_cv_proto_iconv_arg1="const" ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);" ++fi ++ ++ am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ++ $am_cv_proto_iconv" >&5 ++$as_echo " ++ $am_cv_proto_iconv" >&6; } ++ ++cat >>confdefs.h <<_ACEOF ++#define ICONV_CONST $am_cv_proto_iconv_arg1 ++_ACEOF ++ ++ ++ fi ++ ++ ++ ++ ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; } ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ++$as_echo "#define HAVE_BUILTIN_EXPECT 1" >>confdefs.h ++ ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ ++ for ac_header in argz.h inttypes.h limits.h unistd.h sys/param.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++ ++done ++ ++ for ac_func in getcwd getegid geteuid getgid getuid mempcpy munmap \ ++ stpcpy strcasecmp strdup strtoul tsearch uselocale argz_count \ ++ argz_stringify argz_next __fsetlocking ++do : ++ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ++if eval test \"x\$"$as_ac_var"\" = x"yes"; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++done ++ ++ ++ if test $ac_cv_func_uselocale = yes; then ++ for ac_func in getlocalename_l ++do : ++ ac_fn_c_check_func "$LINENO" "getlocalename_l" "ac_cv_func_getlocalename_l" ++if test "x$ac_cv_func_getlocalename_l" = xyes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_GETLOCALENAME_L 1 ++_ACEOF ++ ++fi ++done ++ ++ fi ++ ++ ac_fn_c_check_decl "$LINENO" "feof_unlocked" "ac_cv_have_decl_feof_unlocked" "#include ++" ++if test "x$ac_cv_have_decl_feof_unlocked" = xyes; then : ++ ac_have_decl=1 ++else ++ ac_have_decl=0 ++fi ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_DECL_FEOF_UNLOCKED $ac_have_decl ++_ACEOF ++ac_fn_c_check_decl "$LINENO" "fgets_unlocked" "ac_cv_have_decl_fgets_unlocked" "#include ++" ++if test "x$ac_cv_have_decl_fgets_unlocked" = xyes; then : ++ ac_have_decl=1 ++else ++ ac_have_decl=0 ++fi ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_DECL_FGETS_UNLOCKED $ac_have_decl ++_ACEOF ++ ++ ++ ++ ++ for ac_prog in bison ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_INTLBISON+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$INTLBISON"; then ++ ac_cv_prog_INTLBISON="$INTLBISON" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_INTLBISON="$ac_prog" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++INTLBISON=$ac_cv_prog_INTLBISON ++if test -n "$INTLBISON"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLBISON" >&5 ++$as_echo "$INTLBISON" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ test -n "$INTLBISON" && break ++done ++ ++ if test -z "$INTLBISON"; then ++ ac_verc_fail=yes ++ else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of bison" >&5 ++$as_echo_n "checking version of bison... " >&6; } ++ ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` ++ case $ac_prog_version in ++ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; ++ 2.[7-9]* | [3-9].*) ++ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; ++ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; ++ esac ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5 ++$as_echo "$ac_prog_version" >&6; } ++ fi ++ if test $ac_verc_fail = yes; then ++ INTLBISON=: ++ fi ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5 ++$as_echo_n "checking for long long int... " >&6; } ++if ${ac_cv_type_long_long_int+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_cv_type_long_long_int=yes ++ if test "x${ac_cv_prog_cc_c99-no}" = xno; then ++ ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int ++ if test $ac_cv_type_long_long_int = yes; then ++ if test "$cross_compiling" = yes; then : ++ : ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++ #ifndef LLONG_MAX ++ # define HALF \ ++ (1LL << (sizeof (long long int) * CHAR_BIT - 2)) ++ # define LLONG_MAX (HALF - 1 + HALF) ++ #endif ++int ++main () ++{ ++long long int n = 1; ++ int i; ++ for (i = 0; ; i++) ++ { ++ long long int m = n << i; ++ if (m >> i != n) ++ return 1; ++ if (LLONG_MAX / 2 < m) ++ break; ++ } ++ return 0; ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_run "$LINENO"; then : ++ ++else ++ ac_cv_type_long_long_int=no ++fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext ++fi ++ ++ fi ++ fi ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5 ++$as_echo "$ac_cv_type_long_long_int" >&6; } ++ if test $ac_cv_type_long_long_int = yes; then ++ ++$as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h ++ ++ fi ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5 ++$as_echo_n "checking for wchar_t... " >&6; } ++if ${gt_cv_c_wchar_t+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++ wchar_t foo = (wchar_t)'\0'; ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ gt_cv_c_wchar_t=yes ++else ++ gt_cv_c_wchar_t=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wchar_t" >&5 ++$as_echo "$gt_cv_c_wchar_t" >&6; } ++ if test $gt_cv_c_wchar_t = yes; then ++ ++$as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h ++ ++ fi ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5 ++$as_echo_n "checking for wint_t... " >&6; } ++if ${gt_cv_c_wint_t+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Tru64 with Desktop Toolkit C has a bug: must be included before ++ . ++ BSD/OS 4.0.1 has a bug: , and must be included ++ before . */ ++#include ++#include ++#include ++#include ++ wint_t foo = (wchar_t)'\0'; ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ gt_cv_c_wint_t=yes ++else ++ gt_cv_c_wint_t=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wint_t" >&5 ++$as_echo "$gt_cv_c_wint_t" >&6; } ++ if test $gt_cv_c_wint_t = yes; then ++ ++$as_echo "#define HAVE_WINT_T 1" >>confdefs.h ++ ++ fi ++ ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5 ++$as_echo_n "checking for intmax_t... " >&6; } ++if ${gt_cv_c_intmax_t+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++#include ++#include ++#if HAVE_STDINT_H_WITH_UINTMAX ++#include ++#endif ++#if HAVE_INTTYPES_H_WITH_UINTMAX ++#include ++#endif ++ ++int ++main () ++{ ++intmax_t x = -1; ++ return !x; ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ gt_cv_c_intmax_t=yes ++else ++ gt_cv_c_intmax_t=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_intmax_t" >&5 ++$as_echo "$gt_cv_c_intmax_t" >&6; } ++ if test $gt_cv_c_intmax_t = yes; then ++ ++$as_echo "#define HAVE_INTMAX_T 1" >>confdefs.h ++ ++ fi ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf() supports POSIX/XSI format strings" >&5 ++$as_echo_n "checking whether printf() supports POSIX/XSI format strings... " >&6; } ++if ${gt_cv_func_printf_posix+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ++ if test "$cross_compiling" = yes; then : ++ ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++#if defined __NetBSD__ || defined __BEOS__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__ ++ notposix ++#endif ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "notposix" >/dev/null 2>&1; then : ++ gt_cv_func_printf_posix="guessing no" ++else ++ gt_cv_func_printf_posix="guessing yes" ++fi ++rm -f conftest* ++ ++ ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++#include ++#include ++/* The string "%2$d %1$d", with dollar characters protected from the shell's ++ dollar expansion (possibly an autoconf bug). */ ++static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' }; ++static char buf[100]; ++int main () ++{ ++ sprintf (buf, format, 33, 55); ++ return (strcmp (buf, "55 33") != 0); ++} ++_ACEOF ++if ac_fn_c_try_run "$LINENO"; then : ++ gt_cv_func_printf_posix=yes ++else ++ gt_cv_func_printf_posix=no ++fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext ++fi ++ ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_printf_posix" >&5 ++$as_echo "$gt_cv_func_printf_posix" >&6; } ++ case $gt_cv_func_printf_posix in ++ *yes) ++ ++$as_echo "#define HAVE_POSIX_PRINTF 1" >>confdefs.h ++ ++ ;; ++ esac ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library >= 2.1 or uClibc" >&5 ++$as_echo_n "checking whether we are using the GNU C Library >= 2.1 or uClibc... " >&6; } ++if ${ac_cv_gnu_library_2_1+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++#include ++#ifdef __GNU_LIBRARY__ ++ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) ++ Lucky GNU user ++ #endif ++#endif ++#ifdef __UCLIBC__ ++ Lucky user ++#endif ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "Lucky" >/dev/null 2>&1; then : ++ ac_cv_gnu_library_2_1=yes ++else ++ ac_cv_gnu_library_2_1=no ++fi ++rm -f conftest* ++ ++ ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2_1" >&5 ++$as_echo "$ac_cv_gnu_library_2_1" >&6; } ++ ++ GLIBC21="$ac_cv_gnu_library_2_1" ++ ++ ++ ++ for ac_header in stdint.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" ++if test "x$ac_cv_header_stdint_h" = xyes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_STDINT_H 1 ++_ACEOF ++ ++fi ++ ++done ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SIZE_MAX" >&5 ++$as_echo_n "checking for SIZE_MAX... " >&6; } ++if ${gl_cv_size_max+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ++ gl_cv_size_max= ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++#include ++#if HAVE_STDINT_H ++#include ++#endif ++#ifdef SIZE_MAX ++Found it ++#endif ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "Found it" >/dev/null 2>&1; then : ++ gl_cv_size_max=yes ++fi ++rm -f conftest* ++ ++ if test -z "$gl_cv_size_max"; then ++ if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) * CHAR_BIT - 1" "size_t_bits_minus_1" "#include ++#include "; then : ++ ++else ++ size_t_bits_minus_1= ++fi ++ ++ if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) <= sizeof (unsigned int)" "fits_in_uint" "#include "; then : ++ ++else ++ fits_in_uint= ++fi ++ ++ if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then ++ if test $fits_in_uint = 1; then ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++ extern size_t foo; ++ extern unsigned long foo; ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ fits_in_uint=0 ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ fi ++ if test $fits_in_uint = 1; then ++ gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)" ++ else ++ gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)" ++ fi ++ else ++ gl_cv_size_max='((size_t)~(size_t)0)' ++ fi ++ fi ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_size_max" >&5 ++$as_echo "$gl_cv_size_max" >&6; } ++ if test "$gl_cv_size_max" != yes; then ++ ++cat >>confdefs.h <<_ACEOF ++#define SIZE_MAX $gl_cv_size_max ++_ACEOF ++ ++ fi ++ ++ ++ ++ ++ for ac_header in stdint.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" ++if test "x$ac_cv_header_stdint_h" = xyes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_STDINT_H 1 ++_ACEOF ++ ++fi ++ ++done ++ ++ ++ ++ ++ ++ for ac_func in $ac_func_list ++do : ++ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ++if eval test \"x\$"$as_ac_var"\" = x"yes"; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++done ++ ++ ++ ++ ++ ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5 ++$as_echo_n "checking for working fcntl.h... " >&6; } ++if ${gl_cv_header_working_fcntl_h+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test "$cross_compiling" = yes; then : ++ gl_cv_header_working_fcntl_h=cross-compiling ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++ #include ++ #if HAVE_UNISTD_H ++ # include ++ #else /* on Windows with MSVC */ ++ # include ++ # include ++ # defined sleep(n) _sleep ((n) * 1000) ++ #endif ++ #include ++ #ifndef O_NOATIME ++ #define O_NOATIME 0 ++ #endif ++ #ifndef O_NOFOLLOW ++ #define O_NOFOLLOW 0 ++ #endif ++ static int const constants[] = ++ { ++ O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, ++ O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY ++ }; ++ ++int ++main () ++{ ++ ++ int result = !constants; ++ #if HAVE_SYMLINK ++ { ++ static char const sym[] = "conftest.sym"; ++ if (symlink ("/dev/null", sym) != 0) ++ result |= 2; ++ else ++ { ++ int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0); ++ if (fd >= 0) ++ { ++ close (fd); ++ result |= 4; ++ } ++ } ++ if (unlink (sym) != 0 || symlink (".", sym) != 0) ++ result |= 2; ++ else ++ { ++ int fd = open (sym, O_RDONLY | O_NOFOLLOW); ++ if (fd >= 0) ++ { ++ close (fd); ++ result |= 4; ++ } ++ } ++ unlink (sym); ++ } ++ #endif ++ { ++ static char const file[] = "confdefs.h"; ++ int fd = open (file, O_RDONLY | O_NOATIME); ++ if (fd < 0) ++ result |= 8; ++ else ++ { ++ struct stat st0; ++ if (fstat (fd, &st0) != 0) ++ result |= 16; ++ else ++ { ++ char c; ++ sleep (1); ++ if (read (fd, &c, 1) != 1) ++ result |= 24; ++ else ++ { ++ if (close (fd) != 0) ++ result |= 32; ++ else ++ { ++ struct stat st1; ++ if (stat (file, &st1) != 0) ++ result |= 40; ++ else ++ if (st0.st_atime != st1.st_atime) ++ result |= 64; ++ } ++ } ++ } ++ } ++ } ++ return result; ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_run "$LINENO"; then : ++ gl_cv_header_working_fcntl_h=yes ++else ++ case $? in #( ++ 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( ++ 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( ++ 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( ++ *) gl_cv_header_working_fcntl_h='no';; ++ esac ++fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext ++fi ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_fcntl_h" >&5 ++$as_echo "$gl_cv_header_working_fcntl_h" >&6; } ++ ++ case $gl_cv_header_working_fcntl_h in #( ++ *O_NOATIME* | no | cross-compiling) ac_val=0;; #( ++ *) ac_val=1;; ++ esac ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_WORKING_O_NOATIME $ac_val ++_ACEOF ++ ++ ++ case $gl_cv_header_working_fcntl_h in #( ++ *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( ++ *) ac_val=1;; ++ esac ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_WORKING_O_NOFOLLOW $ac_val ++_ACEOF ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 ++$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } ++if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ gt_save_LIBS="$LIBS" ++ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++int ++main () ++{ ++CFPreferencesCopyAppValue(NULL, NULL) ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ gt_cv_func_CFPreferencesCopyAppValue=yes ++else ++ gt_cv_func_CFPreferencesCopyAppValue=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ LIBS="$gt_save_LIBS" ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 ++$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } ++ if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then ++ ++$as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h ++ ++ fi ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 ++$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } ++if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ gt_save_LIBS="$LIBS" ++ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++int ++main () ++{ ++CFLocaleCopyCurrent(); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ gt_cv_func_CFLocaleCopyCurrent=yes ++else ++ gt_cv_func_CFLocaleCopyCurrent=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ LIBS="$gt_save_LIBS" ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 ++$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } ++ if test $gt_cv_func_CFLocaleCopyCurrent = yes; then ++ ++$as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h ++ ++ fi ++ INTL_MACOSX_LIBS= ++ if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then ++ INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" ++ fi ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ case "$enable_silent_rules" in ++ yes) INTL_DEFAULT_VERBOSITY=0;; ++ no) INTL_DEFAULT_VERBOSITY=1;; ++ *) INTL_DEFAULT_VERBOSITY=1;; ++ esac ++ ++ ++ ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" ++if test "x$ac_cv_type_ptrdiff_t" = xyes; then : ++ ++else ++ ++$as_echo "#define ptrdiff_t long" >>confdefs.h ++ ++ ++fi ++ ++ for ac_header in features.h stddef.h stdlib.h string.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++ ++done ++ ++ for ac_func in asprintf fwprintf newlocale putenv setenv setlocale \ ++ snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb ++do : ++ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ++if eval test \"x\$"$as_ac_var"\" = x"yes"; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++done ++ ++ ++ ac_fn_c_check_decl "$LINENO" "_snprintf" "ac_cv_have_decl__snprintf" "#include ++" ++if test "x$ac_cv_have_decl__snprintf" = xyes; then : ++ ac_have_decl=1 ++else ++ ac_have_decl=0 ++fi ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_DECL__SNPRINTF $ac_have_decl ++_ACEOF ++ac_fn_c_check_decl "$LINENO" "_snwprintf" "ac_cv_have_decl__snwprintf" "#include ++" ++if test "x$ac_cv_have_decl__snwprintf" = xyes; then : ++ ac_have_decl=1 ++else ++ ac_have_decl=0 ++fi ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_DECL__SNWPRINTF $ac_have_decl ++_ACEOF ++ ++ ++ ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "#include ++" ++if test "x$ac_cv_have_decl_getc_unlocked" = xyes; then : ++ ac_have_decl=1 ++else ++ ac_have_decl=0 ++fi ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_DECL_GETC_UNLOCKED $ac_have_decl ++_ACEOF ++ ++ ++ case $gt_cv_func_printf_posix in ++ *yes) HAVE_POSIX_PRINTF=1 ;; ++ *) HAVE_POSIX_PRINTF=0 ;; ++ esac ++ ++ if test "$ac_cv_func_asprintf" = yes; then ++ HAVE_ASPRINTF=1 ++ else ++ HAVE_ASPRINTF=0 ++ fi ++ ++ if test "$ac_cv_func_snprintf" = yes; then ++ HAVE_SNPRINTF=1 ++ else ++ HAVE_SNPRINTF=0 ++ fi ++ ++ if test "$ac_cv_func_newlocale" = yes; then ++ HAVE_NEWLOCALE=1 ++ else ++ HAVE_NEWLOCALE=0 ++ fi ++ ++ if test "$ac_cv_func_wprintf" = yes; then ++ HAVE_WPRINTF=1 ++ else ++ HAVE_WPRINTF=0 ++ fi ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 ++$as_echo_n "checking for nl_langinfo and CODESET... " >&6; } ++if ${am_cv_langinfo_codeset+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++int ++main () ++{ ++char* cs = nl_langinfo(CODESET); return !cs; ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ am_cv_langinfo_codeset=yes ++else ++ am_cv_langinfo_codeset=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5 ++$as_echo "$am_cv_langinfo_codeset" >&6; } ++ if test $am_cv_langinfo_codeset = yes; then ++ ++$as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h ++ ++ fi ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 ++$as_echo_n "checking for LC_MESSAGES... " >&6; } ++if ${gt_cv_val_LC_MESSAGES+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++int ++main () ++{ ++return LC_MESSAGES ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ gt_cv_val_LC_MESSAGES=yes ++else ++ gt_cv_val_LC_MESSAGES=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_val_LC_MESSAGES" >&5 ++$as_echo "$gt_cv_val_LC_MESSAGES" >&6; } ++ if test $gt_cv_val_LC_MESSAGES = yes; then ++ ++$as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h ++ ++ fi ++ ++ ++ if test "$enable_shared" = yes; then ++ case "$host_os" in ++ mingw* | cygwin*) is_woe32dll=yes ;; ++ *) is_woe32dll=no ;; ++ esac ++ else ++ is_woe32dll=no ++ fi ++ WOE32DLL=$is_woe32dll ++ ++ ++ case "$host_os" in ++ mingw* | cygwin*) is_woe32=yes ;; ++ *) is_woe32=no ;; ++ esac ++ WOE32=$is_woe32 ++ ++ if test $WOE32 = yes; then ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args. ++set dummy ${ac_tool_prefix}windres; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_WINDRES+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$WINDRES"; then ++ ac_cv_prog_WINDRES="$WINDRES" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_WINDRES="${ac_tool_prefix}windres" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++WINDRES=$ac_cv_prog_WINDRES ++if test -n "$WINDRES"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WINDRES" >&5 ++$as_echo "$WINDRES" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_WINDRES"; then ++ ac_ct_WINDRES=$WINDRES ++ # Extract the first word of "windres", so it can be a program name with args. ++set dummy windres; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_WINDRES+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_WINDRES"; then ++ ac_cv_prog_ac_ct_WINDRES="$ac_ct_WINDRES" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_WINDRES="windres" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_WINDRES=$ac_cv_prog_ac_ct_WINDRES ++if test -n "$ac_ct_WINDRES"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_WINDRES" >&5 ++$as_echo "$ac_ct_WINDRES" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_WINDRES" = x; then ++ WINDRES="" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ WINDRES=$ac_ct_WINDRES ++ fi ++else ++ WINDRES="$ac_cv_prog_WINDRES" ++fi ++ ++ fi ++ ++ case "$host_os" in ++ hpux*) LTLIBC="" ;; ++ *) LTLIBC="-lc" ;; ++ esac ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 ++$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } ++if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ gt_save_LIBS="$LIBS" ++ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++int ++main () ++{ ++CFPreferencesCopyAppValue(NULL, NULL) ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ gt_cv_func_CFPreferencesCopyAppValue=yes ++else ++ gt_cv_func_CFPreferencesCopyAppValue=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ LIBS="$gt_save_LIBS" ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 ++$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } ++ if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then ++ ++$as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h ++ ++ fi ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 ++$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } ++if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ gt_save_LIBS="$LIBS" ++ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++int ++main () ++{ ++CFLocaleCopyCurrent(); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ gt_cv_func_CFLocaleCopyCurrent=yes ++else ++ gt_cv_func_CFLocaleCopyCurrent=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ LIBS="$gt_save_LIBS" ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 ++$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } ++ if test $gt_cv_func_CFLocaleCopyCurrent = yes; then ++ ++$as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h ++ ++ fi ++ INTL_MACOSX_LIBS= ++ if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then ++ INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" ++ fi ++ ++ ++ ++ ++ ++ ++ BUILD_INCLUDED_LIBINTL=no ++ USE_INCLUDED_LIBINTL=no ++ ++ LIBINTL= ++ LTLIBINTL= ++ POSUB= ++ ++ case " $gt_needs " in ++ *" need-formatstring-macros "*) gt_api_version=3 ;; ++ *" need-ngettext "*) gt_api_version=2 ;; ++ *) gt_api_version=1 ;; ++ esac ++ gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" ++ gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" ++ ++ if test "$USE_NLS" = "yes"; then ++ gt_use_preinstalled_gnugettext=no ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether included gettext is requested" >&5 ++$as_echo_n "checking whether included gettext is requested... " >&6; } ++ ++# Check whether --with-included-gettext was given. ++if test "${with_included_gettext+set}" = set; then : ++ withval=$with_included_gettext; nls_cv_force_use_gnu_gettext=$withval ++else ++ nls_cv_force_use_gnu_gettext=no ++fi ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $nls_cv_force_use_gnu_gettext" >&5 ++$as_echo "$nls_cv_force_use_gnu_gettext" >&6; } ++ ++ nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" ++ if test "$nls_cv_force_use_gnu_gettext" != "yes"; then ++ ++ ++ if test $gt_api_version -ge 3; then ++ gt_revision_test_code=' ++#ifndef __GNU_GETTEXT_SUPPORTED_REVISION ++#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) ++#endif ++typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; ++' ++ else ++ gt_revision_test_code= ++ fi ++ if test $gt_api_version -ge 2; then ++ gt_expression_test_code=' + * ngettext ("", "", 0)' ++ else ++ gt_expression_test_code= ++ fi ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 ++$as_echo_n "checking for GNU gettext in libc... " >&6; } ++if eval \${$gt_func_gnugettext_libc+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++#include ++#ifndef __GNU_GETTEXT_SUPPORTED_REVISION ++extern int _nl_msg_cat_cntr; ++extern int *_nl_domain_bindings; ++#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings) ++#else ++#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 ++#endif ++$gt_revision_test_code ++ ++int ++main () ++{ ++ ++bindtextdomain ("", ""); ++return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ eval "$gt_func_gnugettext_libc=yes" ++else ++ eval "$gt_func_gnugettext_libc=no" ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++eval ac_res=\$$gt_func_gnugettext_libc ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++ ++ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then ++ ++ ++ ++ ++ ++ ++ ++ ++ use_additional=yes ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ ++ eval additional_includedir=\"$includedir\" ++ eval additional_libdir=\"$libdir\" ++ ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ ++# Check whether --with-libintl-prefix was given. ++if test "${with_libintl_prefix+set}" = set; then : ++ withval=$with_libintl_prefix; ++ if test "X$withval" = "Xno"; then ++ use_additional=no ++ else ++ if test "X$withval" = "X"; then ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ ++ eval additional_includedir=\"$includedir\" ++ eval additional_libdir=\"$libdir\" ++ ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ else ++ additional_includedir="$withval/include" ++ additional_libdir="$withval/$acl_libdirstem" ++ if test "$acl_libdirstem2" != "$acl_libdirstem" \ ++ && ! test -d "$withval/$acl_libdirstem"; then ++ additional_libdir="$withval/$acl_libdirstem2" ++ fi ++ fi ++ fi ++ ++fi ++ ++ LIBINTL= ++ LTLIBINTL= ++ INCINTL= ++ LIBINTL_PREFIX= ++ HAVE_LIBINTL= ++ rpathdirs= ++ ltrpathdirs= ++ names_already_handled= ++ names_next_round='intl ' ++ while test -n "$names_next_round"; do ++ names_this_round="$names_next_round" ++ names_next_round= ++ for name in $names_this_round; do ++ already_handled= ++ for n in $names_already_handled; do ++ if test "$n" = "$name"; then ++ already_handled=yes ++ break ++ fi ++ done ++ if test -z "$already_handled"; then ++ names_already_handled="$names_already_handled $name" ++ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` ++ eval value=\"\$HAVE_LIB$uppername\" ++ if test -n "$value"; then ++ if test "$value" = yes; then ++ eval value=\"\$LIB$uppername\" ++ test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" ++ eval value=\"\$LTLIB$uppername\" ++ test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" ++ else ++ : ++ fi ++ else ++ found_dir= ++ found_la= ++ found_so= ++ found_a= ++ eval libname=\"$acl_libname_spec\" # typically: libname=lib$name ++ if test -n "$acl_shlibext"; then ++ shrext=".$acl_shlibext" # typically: shrext=.so ++ else ++ shrext= ++ fi ++ if test $use_additional = yes; then ++ dir="$additional_libdir" ++ if test -n "$acl_shlibext"; then ++ if test -f "$dir/$libname$shrext"; then ++ found_dir="$dir" ++ found_so="$dir/$libname$shrext" ++ else ++ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ++ ver=`(cd "$dir" && \ ++ for f in "$libname$shrext".*; do echo "$f"; done \ ++ | sed -e "s,^$libname$shrext\\\\.,," \ ++ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ ++ | sed 1q ) 2>/dev/null` ++ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then ++ found_dir="$dir" ++ found_so="$dir/$libname$shrext.$ver" ++ fi ++ else ++ eval library_names=\"$acl_library_names_spec\" ++ for f in $library_names; do ++ if test -f "$dir/$f"; then ++ found_dir="$dir" ++ found_so="$dir/$f" ++ break ++ fi ++ done ++ fi ++ fi ++ fi ++ if test "X$found_dir" = "X"; then ++ if test -f "$dir/$libname.$acl_libext"; then ++ found_dir="$dir" ++ found_a="$dir/$libname.$acl_libext" ++ fi ++ fi ++ if test "X$found_dir" != "X"; then ++ if test -f "$dir/$libname.la"; then ++ found_la="$dir/$libname.la" ++ fi ++ fi ++ fi ++ if test "X$found_dir" = "X"; then ++ for x in $LDFLAGS $LTLIBINTL; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ case "$x" in ++ -L*) ++ dir=`echo "X$x" | sed -e 's/^X-L//'` ++ if test -n "$acl_shlibext"; then ++ if test -f "$dir/$libname$shrext"; then ++ found_dir="$dir" ++ found_so="$dir/$libname$shrext" ++ else ++ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ++ ver=`(cd "$dir" && \ ++ for f in "$libname$shrext".*; do echo "$f"; done \ ++ | sed -e "s,^$libname$shrext\\\\.,," \ ++ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ ++ | sed 1q ) 2>/dev/null` ++ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then ++ found_dir="$dir" ++ found_so="$dir/$libname$shrext.$ver" ++ fi ++ else ++ eval library_names=\"$acl_library_names_spec\" ++ for f in $library_names; do ++ if test -f "$dir/$f"; then ++ found_dir="$dir" ++ found_so="$dir/$f" ++ break ++ fi ++ done ++ fi ++ fi ++ fi ++ if test "X$found_dir" = "X"; then ++ if test -f "$dir/$libname.$acl_libext"; then ++ found_dir="$dir" ++ found_a="$dir/$libname.$acl_libext" ++ fi ++ fi ++ if test "X$found_dir" != "X"; then ++ if test -f "$dir/$libname.la"; then ++ found_la="$dir/$libname.la" ++ fi ++ fi ++ ;; ++ esac ++ if test "X$found_dir" != "X"; then ++ break ++ fi ++ done ++ fi ++ if test "X$found_dir" != "X"; then ++ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" ++ if test "X$found_so" != "X"; then ++ if test "$enable_rpath" = no \ ++ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ ++ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then ++ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" ++ else ++ haveit= ++ for x in $ltrpathdirs; do ++ if test "X$x" = "X$found_dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ ltrpathdirs="$ltrpathdirs $found_dir" ++ fi ++ if test "$acl_hardcode_direct" = yes; then ++ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" ++ else ++ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then ++ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" ++ haveit= ++ for x in $rpathdirs; do ++ if test "X$x" = "X$found_dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ rpathdirs="$rpathdirs $found_dir" ++ fi ++ else ++ haveit= ++ for x in $LDFLAGS $LIBINTL; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X-L$found_dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" ++ fi ++ if test "$acl_hardcode_minus_L" != no; then ++ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" ++ else ++ LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" ++ fi ++ fi ++ fi ++ fi ++ else ++ if test "X$found_a" != "X"; then ++ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" ++ else ++ LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" ++ fi ++ fi ++ additional_includedir= ++ case "$found_dir" in ++ */$acl_libdirstem | */$acl_libdirstem/) ++ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` ++ if test "$name" = 'intl'; then ++ LIBINTL_PREFIX="$basedir" ++ fi ++ additional_includedir="$basedir/include" ++ ;; ++ */$acl_libdirstem2 | */$acl_libdirstem2/) ++ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` ++ if test "$name" = 'intl'; then ++ LIBINTL_PREFIX="$basedir" ++ fi ++ additional_includedir="$basedir/include" ++ ;; ++ esac ++ if test "X$additional_includedir" != "X"; then ++ if test "X$additional_includedir" != "X/usr/include"; then ++ haveit= ++ if test "X$additional_includedir" = "X/usr/local/include"; then ++ if test -n "$GCC"; then ++ case $host_os in ++ linux* | gnu* | k*bsd*-gnu) haveit=yes;; ++ esac ++ fi ++ fi ++ if test -z "$haveit"; then ++ for x in $CPPFLAGS $INCINTL; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X-I$additional_includedir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ if test -d "$additional_includedir"; then ++ INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" ++ fi ++ fi ++ fi ++ fi ++ fi ++ if test -n "$found_la"; then ++ save_libdir="$libdir" ++ case "$found_la" in ++ */* | *\\*) . "$found_la" ;; ++ *) . "./$found_la" ;; ++ esac ++ libdir="$save_libdir" ++ for dep in $dependency_libs; do ++ case "$dep" in ++ -L*) ++ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` ++ if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ ++ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then ++ haveit= ++ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ ++ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then ++ if test -n "$GCC"; then ++ case $host_os in ++ linux* | gnu* | k*bsd*-gnu) haveit=yes;; ++ esac ++ fi ++ fi ++ if test -z "$haveit"; then ++ haveit= ++ for x in $LDFLAGS $LIBINTL; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X-L$additional_libdir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ if test -d "$additional_libdir"; then ++ LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" ++ fi ++ fi ++ haveit= ++ for x in $LDFLAGS $LTLIBINTL; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X-L$additional_libdir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ if test -d "$additional_libdir"; then ++ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" ++ fi ++ fi ++ fi ++ fi ++ ;; ++ -R*) ++ dir=`echo "X$dep" | sed -e 's/^X-R//'` ++ if test "$enable_rpath" != no; then ++ haveit= ++ for x in $rpathdirs; do ++ if test "X$x" = "X$dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ rpathdirs="$rpathdirs $dir" ++ fi ++ haveit= ++ for x in $ltrpathdirs; do ++ if test "X$x" = "X$dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ ltrpathdirs="$ltrpathdirs $dir" ++ fi ++ fi ++ ;; ++ -l*) ++ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ++ ;; ++ *.la) ++ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ++ ;; ++ *) ++ LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" ++ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" ++ ;; ++ esac ++ done ++ fi ++ else ++ LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" ++ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" ++ fi ++ fi ++ fi ++ done ++ done ++ if test "X$rpathdirs" != "X"; then ++ if test -n "$acl_hardcode_libdir_separator"; then ++ alldirs= ++ for found_dir in $rpathdirs; do ++ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" ++ done ++ acl_save_libdir="$libdir" ++ libdir="$alldirs" ++ eval flag=\"$acl_hardcode_libdir_flag_spec\" ++ libdir="$acl_save_libdir" ++ LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" ++ else ++ for found_dir in $rpathdirs; do ++ acl_save_libdir="$libdir" ++ libdir="$found_dir" ++ eval flag=\"$acl_hardcode_libdir_flag_spec\" ++ libdir="$acl_save_libdir" ++ LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" ++ done ++ fi ++ fi ++ if test "X$ltrpathdirs" != "X"; then ++ for found_dir in $ltrpathdirs; do ++ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" ++ done ++ fi ++ ++ ++ ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 ++$as_echo_n "checking for GNU gettext in libintl... " >&6; } ++if eval \${$gt_func_gnugettext_libintl+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ gt_save_CPPFLAGS="$CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS $INCINTL" ++ gt_save_LIBS="$LIBS" ++ LIBS="$LIBS $LIBINTL" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++#include ++#ifndef __GNU_GETTEXT_SUPPORTED_REVISION ++extern int _nl_msg_cat_cntr; ++extern ++#ifdef __cplusplus ++"C" ++#endif ++const char *_nl_expand_alias (const char *); ++#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) ++#else ++#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 ++#endif ++$gt_revision_test_code ++ ++int ++main () ++{ ++ ++bindtextdomain ("", ""); ++return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ eval "$gt_func_gnugettext_libintl=yes" ++else ++ eval "$gt_func_gnugettext_libintl=no" ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then ++ LIBS="$LIBS $LIBICONV" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++#include ++#ifndef __GNU_GETTEXT_SUPPORTED_REVISION ++extern int _nl_msg_cat_cntr; ++extern ++#ifdef __cplusplus ++"C" ++#endif ++const char *_nl_expand_alias (const char *); ++#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) ++#else ++#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 ++#endif ++$gt_revision_test_code ++ ++int ++main () ++{ ++ ++bindtextdomain ("", ""); ++return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ LIBINTL="$LIBINTL $LIBICONV" ++ LTLIBINTL="$LTLIBINTL $LTLIBICONV" ++ eval "$gt_func_gnugettext_libintl=yes" ++ ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ fi ++ CPPFLAGS="$gt_save_CPPFLAGS" ++ LIBS="$gt_save_LIBS" ++fi ++eval ac_res=\$$gt_func_gnugettext_libintl ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++ fi ++ ++ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ ++ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ ++ && test "$PACKAGE" != gettext-runtime \ ++ && test "$PACKAGE" != gettext-tools; }; then ++ gt_use_preinstalled_gnugettext=yes ++ else ++ LIBINTL= ++ LTLIBINTL= ++ INCINTL= ++ fi ++ ++ ++ if test "$gt_use_preinstalled_gnugettext" != "yes"; then ++ nls_cv_use_gnu_gettext=yes ++ fi ++ fi ++ ++ if test "$nls_cv_use_gnu_gettext" = "yes"; then ++ BUILD_INCLUDED_LIBINTL=yes ++ USE_INCLUDED_LIBINTL=yes ++ LIBINTL="\${top_builddir}/intl/libintl.a $LIBICONV $LIBTHREAD" ++ LTLIBINTL="\${top_builddir}/intl/libintl.a $LTLIBICONV $LTLIBTHREAD" ++ LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` ++ fi ++ ++ CATOBJEXT= ++ if test "$gt_use_preinstalled_gnugettext" = "yes" \ ++ || test "$nls_cv_use_gnu_gettext" = "yes"; then ++ CATOBJEXT=.gmo ++ fi ++ ++ ++ if test -n "$INTL_MACOSX_LIBS"; then ++ if test "$gt_use_preinstalled_gnugettext" = "yes" \ ++ || test "$nls_cv_use_gnu_gettext" = "yes"; then ++ LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" ++ LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" ++ fi ++ fi ++ ++ if test "$gt_use_preinstalled_gnugettext" = "yes" \ ++ || test "$nls_cv_use_gnu_gettext" = "yes"; then ++ ++$as_echo "#define ENABLE_NLS 1" >>confdefs.h ++ ++ else ++ USE_NLS=no ++ fi ++ fi ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 ++$as_echo_n "checking whether to use NLS... " >&6; } ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 ++$as_echo "$USE_NLS" >&6; } ++ if test "$USE_NLS" = "yes"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 ++$as_echo_n "checking where the gettext function comes from... " >&6; } ++ if test "$gt_use_preinstalled_gnugettext" = "yes"; then ++ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then ++ gt_source="external libintl" ++ else ++ gt_source="libc" ++ fi ++ else ++ gt_source="included intl directory" ++ fi ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 ++$as_echo "$gt_source" >&6; } ++ fi ++ ++ if test "$USE_NLS" = "yes"; then ++ ++ if test "$gt_use_preinstalled_gnugettext" = "yes"; then ++ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 ++$as_echo_n "checking how to link with libintl... " >&6; } ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 ++$as_echo "$LIBINTL" >&6; } ++ ++ for element in $INCINTL; do ++ haveit= ++ for x in $CPPFLAGS; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X$element"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" ++ fi ++ done ++ ++ fi ++ ++ ++$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h ++ ++ ++$as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h ++ ++ fi ++ ++ POSUB=po ++ fi ++ ++ ++ if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then ++ BUILD_INCLUDED_LIBINTL=yes ++ fi ++ ++ ++ ++ ++ ++ nls_cv_header_intl= ++ nls_cv_header_libgt= ++ ++ DATADIRNAME=share ++ ++ ++ INSTOBJEXT=.mo ++ ++ ++ GENCAT=gencat ++ ++ ++ INTLOBJS= ++ if test "$USE_INCLUDED_LIBINTL" = yes; then ++ INTLOBJS="\$(GETTOBJS)" ++ fi ++ ++ ++ INTL_LIBTOOL_SUFFIX_PREFIX= ++ ++ ++ ++ INTLLIBS="$LIBINTL" ++ ++ ++ ++ ++ ++ ++ ++ ++ ++# Check whether --with-warnings was given. ++if test "${with_warnings+set}" = set; then : ++ withval=$with_warnings; ++ ++$as_echo "#define HUNSPELL_WARNING_ON 1" >>confdefs.h ++ ++ ++fi ++ ++ ++CURSESLIB="" ++ ++# Check whether --with-ui was given. ++if test "${with_ui+set}" = set; then : ++ withval=$with_ui; ++else ++ with_ui=no ++ ++fi ++ ++if test "x$with_ui" != xno; then : ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tparm in -lncursesw" >&5 ++$as_echo_n "checking for tparm in -lncursesw... " >&6; } ++if ${ac_cv_lib_ncursesw_tparm+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lncursesw $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char tparm (); ++int ++main () ++{ ++return tparm (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_ncursesw_tparm=yes ++else ++ ac_cv_lib_ncursesw_tparm=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncursesw_tparm" >&5 ++$as_echo "$ac_cv_lib_ncursesw_tparm" >&6; } ++if test "x$ac_cv_lib_ncursesw_tparm" = xyes; then : ++ CURSESLIB=-lncursesw ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tparm in -lcurses" >&5 ++$as_echo_n "checking for tparm in -lcurses... " >&6; } ++if ${ac_cv_lib_curses_tparm+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lcurses $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char tparm (); ++int ++main () ++{ ++return tparm (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_curses_tparm=yes ++else ++ ac_cv_lib_curses_tparm=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curses_tparm" >&5 ++$as_echo "$ac_cv_lib_curses_tparm" >&6; } ++if test "x$ac_cv_lib_curses_tparm" = xyes; then : ++ CURSESLIB=-lcurses ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tparm in -lncurses" >&5 ++$as_echo_n "checking for tparm in -lncurses... " >&6; } ++if ${ac_cv_lib_ncurses_tparm+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lncurses $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char tparm (); ++int ++main () ++{ ++return tparm (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_ncurses_tparm=yes ++else ++ ac_cv_lib_ncurses_tparm=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_tparm" >&5 ++$as_echo "$ac_cv_lib_ncurses_tparm" >&6; } ++if test "x$ac_cv_lib_ncurses_tparm" = xyes; then : ++ CURSESLIB=-lncurses ++fi ++ ++fi ++ ++fi ++ ++ if test "$CURSESLIB" != "" ; then ++ echo Compiling with curses user interface. ++ ++$as_echo "#define HAVE_CURSES_H 1" >>confdefs.h ++ ++ if test "$CURSESLIB" != "-lncursesw" ; then ++ echo "No Unicode support on interactive console. (Install Ncursesw library.)" ++ else ++ ++$as_echo "#define HAVE_NCURSESW_H 1" >>confdefs.h ++ ++ fi ++ ++$as_echo "#define HUNSPELL_WARNING_ON 1" >>confdefs.h ++ ++ fi ++ ++fi ++ ++ ++ ++# Check whether --with-readline was given. ++if test "${with_readline+set}" = set; then : ++ withval=$with_readline; ++else ++ with_readline=no ++ ++fi ++ ++rl=n ++if test "x$with_readline" != xno; then : ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tparm in -lcurses" >&5 ++$as_echo_n "checking for tparm in -lcurses... " >&6; } ++if ${ac_cv_lib_curses_tparm+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lcurses $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char tparm (); ++int ++main () ++{ ++return tparm (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_curses_tparm=yes ++else ++ ac_cv_lib_curses_tparm=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curses_tparm" >&5 ++$as_echo "$ac_cv_lib_curses_tparm" >&6; } ++if test "x$ac_cv_lib_curses_tparm" = xyes; then : ++ TERMLIB=-lncurses ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltermcap" >&5 ++$as_echo_n "checking for tgetent in -ltermcap... " >&6; } ++if ${ac_cv_lib_termcap_tgetent+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-ltermcap $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char tgetent (); ++int ++main () ++{ ++return tgetent (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_termcap_tgetent=yes ++else ++ ac_cv_lib_termcap_tgetent=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_termcap_tgetent" >&5 ++$as_echo "$ac_cv_lib_termcap_tgetent" >&6; } ++if test "x$ac_cv_lib_termcap_tgetent" = xyes; then : ++ TERMLIB=-ltermcap ++fi ++ ++fi ++ ++ LDSAVE=$LDFLAGS ++ LDFLAGS="$LDFLAGS $TERMLIB" ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for readline in -lreadline" >&5 ++$as_echo_n "checking for readline in -lreadline... " >&6; } ++if ${ac_cv_lib_readline_readline+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lreadline $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char readline (); ++int ++main () ++{ ++return readline (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_readline_readline=yes ++else ++ ac_cv_lib_readline_readline=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_readline" >&5 ++$as_echo "$ac_cv_lib_readline_readline" >&6; } ++if test "x$ac_cv_lib_readline_readline" = xyes; then : ++ ac_fn_c_check_header_mongrel "$LINENO" "readline/readline.h" "ac_cv_header_readline_readline_h" "$ac_includes_default" ++if test "x$ac_cv_header_readline_readline_h" = xyes; then : ++ READLINELIB="-lreadline $TERMLIB";rl=y ++fi ++ ++ ++else ++ READLINELIB="" ++fi ++ ++ if test "$rl" = "y" ; then ++ echo Using the readline library. ++ ++$as_echo "#define HAVE_READLINE 1" >>confdefs.h ++ ++ fi ++ LDFLAGS=$LDSAVE ++ ++fi ++ ++ ++ac_config_files="$ac_config_files Makefile hunspell.pc man/Makefile man/hu/Makefile intl/Makefile po/Makefile.in src/Makefile src/hunspell/Makefile src/hunspell/hunvisapi.h src/parsers/Makefile src/tools/Makefile tests/Makefile tests/suggestiontest/Makefile" ++ ++cat >confcache <<\_ACEOF ++# This file is a shell script that caches the results of configure ++# tests run on this system so they can be shared between configure ++# scripts and configure runs, see configure's option --config-cache. ++# It is not useful on other systems. If it contains results you don't ++# want to keep, you may remove or edit it. ++# ++# config.status only pays attention to the cache file if you give it ++# the --recheck option to rerun configure. ++# ++# `ac_cv_env_foo' variables (set or unset) will be overridden when ++# loading this file, other *unset* `ac_cv_foo' will be assigned the ++# following values. ++ ++_ACEOF ++ ++# The following way of writing the cache mishandles newlines in values, ++# but we know of no workaround that is simple, portable, and efficient. ++# So, we kill variables containing newlines. ++# Ultrix sh set writes to stderr and can't be redirected directly, ++# and sets the high bit in the cache file unless we assign to the vars. ++( ++ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do ++ eval ac_val=\$$ac_var ++ case $ac_val in #( ++ *${as_nl}*) ++ case $ac_var in #( ++ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 ++$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; ++ esac ++ case $ac_var in #( ++ _ | IFS | as_nl) ;; #( ++ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( ++ *) { eval $ac_var=; unset $ac_var;} ;; ++ esac ;; ++ esac ++ done ++ ++ (set) 2>&1 | ++ case $as_nl`(ac_space=' '; set) 2>&1` in #( ++ *${as_nl}ac_space=\ *) ++ # `set' does not quote correctly, so add quotes: double-quote ++ # substitution turns \\\\ into \\, and sed turns \\ into \. ++ sed -n \ ++ "s/'/'\\\\''/g; ++ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ++ ;; #( ++ *) ++ # `set' quotes correctly as required by POSIX, so do not add quotes. ++ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ++ ;; ++ esac | ++ sort ++) | ++ sed ' ++ /^ac_cv_env_/b end ++ t clear ++ :clear ++ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ ++ t end ++ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ ++ :end' >>confcache ++if diff "$cache_file" confcache >/dev/null 2>&1; then :; else ++ if test -w "$cache_file"; then ++ if test "x$cache_file" != "x/dev/null"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 ++$as_echo "$as_me: updating cache $cache_file" >&6;} ++ if test ! -f "$cache_file" || test -h "$cache_file"; then ++ cat confcache >"$cache_file" ++ else ++ case $cache_file in #( ++ */* | ?:*) ++ mv -f confcache "$cache_file"$$ && ++ mv -f "$cache_file"$$ "$cache_file" ;; #( ++ *) ++ mv -f confcache "$cache_file" ;; ++ esac ++ fi ++ fi ++ else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 ++$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} ++ fi ++fi ++rm -f confcache ++ ++test "x$prefix" = xNONE && prefix=$ac_default_prefix ++# Let make expand exec_prefix. ++test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' ++ ++DEFS=-DHAVE_CONFIG_H ++ ++ac_libobjs= ++ac_ltlibobjs= ++U= ++for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue ++ # 1. Remove the extension, and $U if already installed. ++ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ++ ac_i=`$as_echo "$ac_i" | sed "$ac_script"` ++ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR ++ # will be set to the directory where LIBOBJS objects are built. ++ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" ++ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' ++done ++LIBOBJS=$ac_libobjs ++ ++LTLIBOBJS=$ac_ltlibobjs ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 ++$as_echo_n "checking that generated files are newer than configure... " >&6; } ++ if test -n "$am_sleep_pid"; then ++ # Hide warnings about reused PIDs. ++ wait $am_sleep_pid 2>/dev/null ++ fi ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 ++$as_echo "done" >&6; } ++ if test -n "$EXEEXT"; then ++ am__EXEEXT_TRUE= ++ am__EXEEXT_FALSE='#' ++else ++ am__EXEEXT_TRUE='#' ++ am__EXEEXT_FALSE= ++fi ++ ++if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then ++ as_fn_error $? "conditional \"AMDEP\" was never defined. ++Usually this means the macro was only invoked conditionally." "$LINENO" 5 ++fi ++if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then ++ as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. ++Usually this means the macro was only invoked conditionally." "$LINENO" 5 ++fi ++if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then ++ as_fn_error $? "conditional \"am__fastdepCC\" was never defined. ++Usually this means the macro was only invoked conditionally." "$LINENO" 5 ++fi ++ ++: "${CONFIG_STATUS=./config.status}" ++ac_write_fail=0 ++ac_clean_files_save=$ac_clean_files ++ac_clean_files="$ac_clean_files $CONFIG_STATUS" ++{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 ++$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} ++as_write_fail=0 ++cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 ++#! $SHELL ++# Generated by $as_me. ++# Run this file to recreate the current configuration. ++# Compiler output produced by configure, useful for debugging ++# configure, is in config.log if it exists. ++ ++debug=false ++ac_cs_recheck=false ++ac_cs_silent=false ++ ++SHELL=\${CONFIG_SHELL-$SHELL} ++export SHELL ++_ASEOF ++cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ++## -------------------- ## ++## M4sh Initialization. ## ++## -------------------- ## ++ ++# Be more Bourne compatible ++DUALCASE=1; export DUALCASE # for MKS sh ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : ++ emulate sh ++ NULLCMD=: ++ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which ++ # is contrary to our usage. Disable this feature. ++ alias -g '${1+"$@"}'='"$@"' ++ setopt NO_GLOB_SUBST ++else ++ case `(set -o) 2>/dev/null` in #( ++ *posix*) : ++ set -o posix ;; #( ++ *) : ++ ;; ++esac ++fi ++ ++ ++as_nl=' ++' ++export as_nl ++# Printing a long string crashes Solaris 7 /usr/bin/printf. ++as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ++as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo ++as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo ++# Prefer a ksh shell builtin over an external printf program on Solaris, ++# but without wasting forks for bash or zsh. ++if test -z "$BASH_VERSION$ZSH_VERSION" \ ++ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then ++ as_echo='print -r --' ++ as_echo_n='print -rn --' ++elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then ++ as_echo='printf %s\n' ++ as_echo_n='printf %s' ++else ++ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then ++ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' ++ as_echo_n='/usr/ucb/echo -n' ++ else ++ as_echo_body='eval expr "X$1" : "X\\(.*\\)"' ++ as_echo_n_body='eval ++ arg=$1; ++ case $arg in #( ++ *"$as_nl"*) ++ expr "X$arg" : "X\\(.*\\)$as_nl"; ++ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; ++ esac; ++ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ++ ' ++ export as_echo_n_body ++ as_echo_n='sh -c $as_echo_n_body as_echo' ++ fi ++ export as_echo_body ++ as_echo='sh -c $as_echo_body as_echo' ++fi ++ ++# The user is always right. ++if test "${PATH_SEPARATOR+set}" != set; then ++ PATH_SEPARATOR=: ++ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { ++ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || ++ PATH_SEPARATOR=';' ++ } ++fi ++ ++ ++# IFS ++# We need space, tab and new line, in precisely that order. Quoting is ++# there to prevent editors from complaining about space-tab. ++# (If _AS_PATH_WALK were called with IFS unset, it would disable word ++# splitting by setting IFS to empty value.) ++IFS=" "" $as_nl" ++ ++# Find who we are. Look in the path if we contain no directory separator. ++as_myself= ++case $0 in #(( ++ *[\\/]* ) as_myself=$0 ;; ++ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break ++ done ++IFS=$as_save_IFS ++ ++ ;; ++esac ++# We did not find ourselves, most probably we were run as `sh COMMAND' ++# in which case we are not to be found in the path. ++if test "x$as_myself" = x; then ++ as_myself=$0 ++fi ++if test ! -f "$as_myself"; then ++ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 ++ exit 1 ++fi ++ ++# Unset variables that we do not need and which cause bugs (e.g. in ++# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" ++# suppresses any "Segmentation fault" message there. '((' could ++# trigger a bug in pdksh 5.2.14. ++for as_var in BASH_ENV ENV MAIL MAILPATH ++do eval test x\${$as_var+set} = xset \ ++ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : ++done ++PS1='$ ' ++PS2='> ' ++PS4='+ ' ++ ++# NLS nuisances. ++LC_ALL=C ++export LC_ALL ++LANGUAGE=C ++export LANGUAGE ++ ++# CDPATH. ++(unset CDPATH) >/dev/null 2>&1 && unset CDPATH ++ ++ ++# as_fn_error STATUS ERROR [LINENO LOG_FD] ++# ---------------------------------------- ++# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are ++# provided, also output the error to LOG_FD, referencing LINENO. Then exit the ++# script with STATUS, using 1 if that was 0. ++as_fn_error () ++{ ++ as_status=$1; test $as_status -eq 0 && as_status=1 ++ if test "$4"; then ++ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ++ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 ++ fi ++ $as_echo "$as_me: error: $2" >&2 ++ as_fn_exit $as_status ++} # as_fn_error ++ ++ ++# as_fn_set_status STATUS ++# ----------------------- ++# Set $? to STATUS, without forking. ++as_fn_set_status () ++{ ++ return $1 ++} # as_fn_set_status ++ ++# as_fn_exit STATUS ++# ----------------- ++# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. ++as_fn_exit () ++{ ++ set +e ++ as_fn_set_status $1 ++ exit $1 ++} # as_fn_exit ++ ++# as_fn_unset VAR ++# --------------- ++# Portably unset VAR. ++as_fn_unset () ++{ ++ { eval $1=; unset $1;} ++} ++as_unset=as_fn_unset ++# as_fn_append VAR VALUE ++# ---------------------- ++# Append the text in VALUE to the end of the definition contained in VAR. Take ++# advantage of any shell optimizations that allow amortized linear growth over ++# repeated appends, instead of the typical quadratic growth present in naive ++# implementations. ++if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : ++ eval 'as_fn_append () ++ { ++ eval $1+=\$2 ++ }' ++else ++ as_fn_append () ++ { ++ eval $1=\$$1\$2 ++ } ++fi # as_fn_append ++ ++# as_fn_arith ARG... ++# ------------------ ++# Perform arithmetic evaluation on the ARGs, and store the result in the ++# global $as_val. Take advantage of shells that can avoid forks. The arguments ++# must be portable across $(()) and expr. ++if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : ++ eval 'as_fn_arith () ++ { ++ as_val=$(( $* )) ++ }' ++else ++ as_fn_arith () ++ { ++ as_val=`expr "$@" || test $? -eq 1` ++ } ++fi # as_fn_arith ++ ++ ++if expr a : '\(a\)' >/dev/null 2>&1 && ++ test "X`expr 00001 : '.*\(...\)'`" = X001; then ++ as_expr=expr ++else ++ as_expr=false ++fi ++ ++if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then ++ as_basename=basename ++else ++ as_basename=false ++fi ++ ++if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then ++ as_dirname=dirname ++else ++ as_dirname=false ++fi ++ ++as_me=`$as_basename -- "$0" || ++$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ ++ X"$0" : 'X\(//\)$' \| \ ++ X"$0" : 'X\(/\)' \| . 2>/dev/null || ++$as_echo X/"$0" | ++ sed '/^.*\/\([^/][^/]*\)\/*$/{ ++ s//\1/ ++ q ++ } ++ /^X\/\(\/\/\)$/{ ++ s//\1/ ++ q ++ } ++ /^X\/\(\/\).*/{ ++ s//\1/ ++ q ++ } ++ s/.*/./; q'` ++ ++# Avoid depending upon Character Ranges. ++as_cr_letters='abcdefghijklmnopqrstuvwxyz' ++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' ++as_cr_Letters=$as_cr_letters$as_cr_LETTERS ++as_cr_digits='0123456789' ++as_cr_alnum=$as_cr_Letters$as_cr_digits ++ ++ECHO_C= ECHO_N= ECHO_T= ++case `echo -n x` in #((((( ++-n*) ++ case `echo 'xy\c'` in ++ *c*) ECHO_T=' ';; # ECHO_T is single tab character. ++ xy) ECHO_C='\c';; ++ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ++ ECHO_T=' ';; ++ esac;; ++*) ++ ECHO_N='-n';; ++esac ++ ++rm -f conf$$ conf$$.exe conf$$.file ++if test -d conf$$.dir; then ++ rm -f conf$$.dir/conf$$.file ++else ++ rm -f conf$$.dir ++ mkdir conf$$.dir 2>/dev/null ++fi ++if (echo >conf$$.file) 2>/dev/null; then ++ if ln -s conf$$.file conf$$ 2>/dev/null; then ++ as_ln_s='ln -s' ++ # ... but there are two gotchas: ++ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. ++ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. ++ # In both cases, we have to default to `cp -pR'. ++ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || ++ as_ln_s='cp -pR' ++ elif ln conf$$.file conf$$ 2>/dev/null; then ++ as_ln_s=ln ++ else ++ as_ln_s='cp -pR' ++ fi ++else ++ as_ln_s='cp -pR' ++fi ++rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file ++rmdir conf$$.dir 2>/dev/null ++ ++ ++# as_fn_mkdir_p ++# ------------- ++# Create "$as_dir" as a directory, including parents if necessary. ++as_fn_mkdir_p () ++{ ++ ++ case $as_dir in #( ++ -*) as_dir=./$as_dir;; ++ esac ++ test -d "$as_dir" || eval $as_mkdir_p || { ++ as_dirs= ++ while :; do ++ case $as_dir in #( ++ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( ++ *) as_qdir=$as_dir;; ++ esac ++ as_dirs="'$as_qdir' $as_dirs" ++ as_dir=`$as_dirname -- "$as_dir" || ++$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$as_dir" : 'X\(//\)[^/]' \| \ ++ X"$as_dir" : 'X\(//\)$' \| \ ++ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || ++$as_echo X"$as_dir" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)[^/].*/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\).*/{ ++ s//\1/ ++ q ++ } ++ s/.*/./; q'` ++ test -d "$as_dir" && break ++ done ++ test -z "$as_dirs" || eval "mkdir $as_dirs" ++ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" ++ ++ ++} # as_fn_mkdir_p ++if mkdir -p . 2>/dev/null; then ++ as_mkdir_p='mkdir -p "$as_dir"' ++else ++ test -d ./-p && rmdir ./-p ++ as_mkdir_p=false ++fi ++ ++ ++# as_fn_executable_p FILE ++# ----------------------- ++# Test if FILE is an executable regular file. ++as_fn_executable_p () ++{ ++ test -f "$1" && test -x "$1" ++} # as_fn_executable_p ++as_test_x='test -x' ++as_executable_p=as_fn_executable_p ++ ++# Sed expression to map a string onto a valid CPP name. ++as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" ++ ++# Sed expression to map a string onto a valid variable name. ++as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" ++ ++ ++exec 6>&1 ++## ----------------------------------- ## ++## Main body of $CONFIG_STATUS script. ## ++## ----------------------------------- ## ++_ASEOF ++test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 ++ ++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++# Save the log message, to keep $0 and so on meaningful, and to ++# report actual input values of CONFIG_FILES etc. instead of their ++# values after options handling. ++ac_log=" ++This file was extended by hunspell $as_me 1.6.0, which was ++generated by GNU Autoconf 2.69. Invocation command line was ++ ++ CONFIG_FILES = $CONFIG_FILES ++ CONFIG_HEADERS = $CONFIG_HEADERS ++ CONFIG_LINKS = $CONFIG_LINKS ++ CONFIG_COMMANDS = $CONFIG_COMMANDS ++ $ $0 $@ ++ ++on `(hostname || uname -n) 2>/dev/null | sed 1q` ++" ++ ++_ACEOF ++ ++case $ac_config_files in *" ++"*) set x $ac_config_files; shift; ac_config_files=$*;; ++esac ++ ++case $ac_config_headers in *" ++"*) set x $ac_config_headers; shift; ac_config_headers=$*;; ++esac ++ ++ ++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++# Files that config.status was made for. ++config_files="$ac_config_files" ++config_headers="$ac_config_headers" ++config_commands="$ac_config_commands" ++ ++_ACEOF ++ ++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++ac_cs_usage="\ ++\`$as_me' instantiates files and other configuration actions ++from templates according to the current configuration. Unless the files ++and actions are specified as TAGs, all are instantiated by default. ++ ++Usage: $0 [OPTION]... [TAG]... ++ ++ -h, --help print this help, then exit ++ -V, --version print version number and configuration settings, then exit ++ --config print configuration, then exit ++ -q, --quiet, --silent ++ do not print progress messages ++ -d, --debug don't remove temporary files ++ --recheck update $as_me by reconfiguring in the same conditions ++ --file=FILE[:TEMPLATE] ++ instantiate the configuration file FILE ++ --header=FILE[:TEMPLATE] ++ instantiate the configuration header FILE ++ ++Configuration files: ++$config_files ++ ++Configuration headers: ++$config_headers ++ ++Configuration commands: ++$config_commands ++ ++Report bugs to ." ++ ++_ACEOF ++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ++ac_cs_version="\\ ++hunspell config.status 1.6.0 ++configured by $0, generated by GNU Autoconf 2.69, ++ with options \\"\$ac_cs_config\\" ++ ++Copyright (C) 2012 Free Software Foundation, Inc. ++This config.status script is free software; the Free Software Foundation ++gives unlimited permission to copy, distribute and modify it." ++ ++ac_pwd='$ac_pwd' ++srcdir='$srcdir' ++INSTALL='$INSTALL' ++MKDIR_P='$MKDIR_P' ++AWK='$AWK' ++test -n "\$AWK" || AWK=awk ++_ACEOF ++ ++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++# The default lists apply if the user does not specify any file. ++ac_need_defaults=: ++while test $# != 0 ++do ++ case $1 in ++ --*=?*) ++ ac_option=`expr "X$1" : 'X\([^=]*\)='` ++ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ++ ac_shift=: ++ ;; ++ --*=) ++ ac_option=`expr "X$1" : 'X\([^=]*\)='` ++ ac_optarg= ++ ac_shift=: ++ ;; ++ *) ++ ac_option=$1 ++ ac_optarg=$2 ++ ac_shift=shift ++ ;; ++ esac ++ ++ case $ac_option in ++ # Handling of the options. ++ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ++ ac_cs_recheck=: ;; ++ --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) ++ $as_echo "$ac_cs_version"; exit ;; ++ --config | --confi | --conf | --con | --co | --c ) ++ $as_echo "$ac_cs_config"; exit ;; ++ --debug | --debu | --deb | --de | --d | -d ) ++ debug=: ;; ++ --file | --fil | --fi | --f ) ++ $ac_shift ++ case $ac_optarg in ++ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; ++ '') as_fn_error $? "missing file argument" ;; ++ esac ++ as_fn_append CONFIG_FILES " '$ac_optarg'" ++ ac_need_defaults=false;; ++ --header | --heade | --head | --hea ) ++ $ac_shift ++ case $ac_optarg in ++ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; ++ esac ++ as_fn_append CONFIG_HEADERS " '$ac_optarg'" ++ ac_need_defaults=false;; ++ --he | --h) ++ # Conflict between --help and --header ++ as_fn_error $? "ambiguous option: \`$1' ++Try \`$0 --help' for more information.";; ++ --help | --hel | -h ) ++ $as_echo "$ac_cs_usage"; exit ;; ++ -q | -quiet | --quiet | --quie | --qui | --qu | --q \ ++ | -silent | --silent | --silen | --sile | --sil | --si | --s) ++ ac_cs_silent=: ;; ++ ++ # This is an error. ++ -*) as_fn_error $? "unrecognized option: \`$1' ++Try \`$0 --help' for more information." ;; ++ ++ *) as_fn_append ac_config_targets " $1" ++ ac_need_defaults=false ;; ++ ++ esac ++ shift ++done ++ ++ac_configure_extra_args= ++ ++if $ac_cs_silent; then ++ exec 6>/dev/null ++ ac_configure_extra_args="$ac_configure_extra_args --silent" ++fi ++ ++_ACEOF ++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++if \$ac_cs_recheck; then ++ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion ++ shift ++ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 ++ CONFIG_SHELL='$SHELL' ++ export CONFIG_SHELL ++ exec "\$@" ++fi ++ ++_ACEOF ++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++exec 5>>config.log ++{ ++ echo ++ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ++## Running $as_me. ## ++_ASBOX ++ $as_echo "$ac_log" ++} >&5 ++ ++_ACEOF ++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++# ++# INIT-COMMANDS ++# ++AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" ++ ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++(unset CDPATH) >/dev/null 2>&1 && unset CDPATH ++ ++sed_quote_subst='$sed_quote_subst' ++double_quote_subst='$double_quote_subst' ++delay_variable_subst='$delay_variable_subst' ++macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' ++macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' ++enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' ++enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' ++pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' ++enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' ++shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' ++SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ++ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' ++PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' ++host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' ++host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' ++host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' ++build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' ++build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' ++build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' ++SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' ++Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' ++GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' ++EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' ++FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' ++LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' ++NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' ++LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' ++max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ++ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' ++exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' ++lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' ++lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' ++lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' ++lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' ++lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' ++reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' ++reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' ++OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' ++deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' ++file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' ++file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' ++want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' ++DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' ++sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' ++AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' ++AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' ++archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' ++STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' ++RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' ++old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' ++old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' ++old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' ++lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' ++CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' ++CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' ++compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' ++GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' ++lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' ++lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' ++lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' ++lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' ++lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' ++nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' ++lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' ++lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' ++objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' ++MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' ++lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' ++lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' ++lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' ++lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' ++lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' ++need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' ++MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' ++DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' ++NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' ++LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' ++OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' ++OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' ++libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' ++shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' ++extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' ++archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' ++enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' ++export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' ++whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' ++compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' ++old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' ++old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' ++archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' ++archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' ++module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' ++module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' ++with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' ++allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' ++no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' ++hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' ++hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' ++hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' ++hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' ++hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' ++hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' ++hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' ++inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' ++link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' ++always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' ++export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' ++exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' ++include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' ++prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' ++postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' ++file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' ++variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' ++need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' ++need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' ++version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' ++runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' ++shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' ++shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' ++libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' ++library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' ++soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' ++install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' ++postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' ++postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' ++finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' ++finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' ++hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' ++sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' ++configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' ++configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' ++hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' ++enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' ++enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' ++enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' ++old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' ++striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' ++compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`' ++predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`' ++postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`' ++predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`' ++postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`' ++compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`' ++AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' ++LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`' ++reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`' ++reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`' ++old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' ++compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' ++GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' ++lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' ++lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' ++lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' ++lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' ++lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' ++archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' ++enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`' ++export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' ++whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' ++compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`' ++old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`' ++old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`' ++archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' ++archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' ++module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`' ++module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' ++with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`' ++allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' ++no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' ++hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' ++hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`' ++hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`' ++hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`' ++hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`' ++hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`' ++hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' ++inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' ++link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' ++always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' ++export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' ++exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' ++include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' ++prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' ++postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' ++file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' ++hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' ++compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' ++predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`' ++postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`' ++predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`' ++postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`' ++compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`' ++ ++LTCC='$LTCC' ++LTCFLAGS='$LTCFLAGS' ++compiler='$compiler_DEFAULT' ++ ++# A function that is used when there is no print builtin or printf. ++func_fallback_echo () ++{ ++ eval 'cat <<_LTECHO_EOF ++\$1 ++_LTECHO_EOF' ++} ++ ++# Quote evaled strings. ++for var in SHELL \ ++ECHO \ ++PATH_SEPARATOR \ ++SED \ ++GREP \ ++EGREP \ ++FGREP \ ++LD \ ++NM \ ++LN_S \ ++lt_SP2NL \ ++lt_NL2SP \ ++reload_flag \ ++OBJDUMP \ ++deplibs_check_method \ ++file_magic_cmd \ ++file_magic_glob \ ++want_nocaseglob \ ++DLLTOOL \ ++sharedlib_from_linklib_cmd \ ++AR \ ++AR_FLAGS \ ++archiver_list_spec \ ++STRIP \ ++RANLIB \ ++CC \ ++CFLAGS \ ++compiler \ ++lt_cv_sys_global_symbol_pipe \ ++lt_cv_sys_global_symbol_to_cdecl \ ++lt_cv_sys_global_symbol_to_import \ ++lt_cv_sys_global_symbol_to_c_name_address \ ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ ++lt_cv_nm_interface \ ++nm_file_list_spec \ ++lt_cv_truncate_bin \ ++lt_prog_compiler_no_builtin_flag \ ++lt_prog_compiler_pic \ ++lt_prog_compiler_wl \ ++lt_prog_compiler_static \ ++lt_cv_prog_compiler_c_o \ ++need_locks \ ++MANIFEST_TOOL \ ++DSYMUTIL \ ++NMEDIT \ ++LIPO \ ++OTOOL \ ++OTOOL64 \ ++shrext_cmds \ ++export_dynamic_flag_spec \ ++whole_archive_flag_spec \ ++compiler_needs_object \ ++with_gnu_ld \ ++allow_undefined_flag \ ++no_undefined_flag \ ++hardcode_libdir_flag_spec \ ++hardcode_libdir_separator \ ++exclude_expsyms \ ++include_expsyms \ ++file_list_spec \ ++variables_saved_for_relink \ ++libname_spec \ ++library_names_spec \ ++soname_spec \ ++install_override_mode \ ++finish_eval \ ++old_striplib \ ++striplib \ ++compiler_lib_search_dirs \ ++predep_objects \ ++postdep_objects \ ++predeps \ ++postdeps \ ++compiler_lib_search_path \ ++AS \ ++LD_CXX \ ++reload_flag_CXX \ ++compiler_CXX \ ++lt_prog_compiler_no_builtin_flag_CXX \ ++lt_prog_compiler_pic_CXX \ ++lt_prog_compiler_wl_CXX \ ++lt_prog_compiler_static_CXX \ ++lt_cv_prog_compiler_c_o_CXX \ ++export_dynamic_flag_spec_CXX \ ++whole_archive_flag_spec_CXX \ ++compiler_needs_object_CXX \ ++with_gnu_ld_CXX \ ++allow_undefined_flag_CXX \ ++no_undefined_flag_CXX \ ++hardcode_libdir_flag_spec_CXX \ ++hardcode_libdir_separator_CXX \ ++exclude_expsyms_CXX \ ++include_expsyms_CXX \ ++file_list_spec_CXX \ ++compiler_lib_search_dirs_CXX \ ++predep_objects_CXX \ ++postdep_objects_CXX \ ++predeps_CXX \ ++postdeps_CXX \ ++compiler_lib_search_path_CXX; do ++ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in ++ *[\\\\\\\`\\"\\\$]*) ++ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ++ ;; ++ *) ++ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ++ ;; ++ esac ++done ++ ++# Double-quote double-evaled strings. ++for var in reload_cmds \ ++old_postinstall_cmds \ ++old_postuninstall_cmds \ ++old_archive_cmds \ ++extract_expsyms_cmds \ ++old_archive_from_new_cmds \ ++old_archive_from_expsyms_cmds \ ++archive_cmds \ ++archive_expsym_cmds \ ++module_cmds \ ++module_expsym_cmds \ ++export_symbols_cmds \ ++prelink_cmds \ ++postlink_cmds \ ++postinstall_cmds \ ++postuninstall_cmds \ ++finish_cmds \ ++sys_lib_search_path_spec \ ++configure_time_dlsearch_path \ ++configure_time_lt_sys_library_path \ ++reload_cmds_CXX \ ++old_archive_cmds_CXX \ ++old_archive_from_new_cmds_CXX \ ++old_archive_from_expsyms_cmds_CXX \ ++archive_cmds_CXX \ ++archive_expsym_cmds_CXX \ ++module_cmds_CXX \ ++module_expsym_cmds_CXX \ ++export_symbols_cmds_CXX \ ++prelink_cmds_CXX \ ++postlink_cmds_CXX; do ++ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in ++ *[\\\\\\\`\\"\\\$]*) ++ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ++ ;; ++ *) ++ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ++ ;; ++ esac ++done ++ ++ac_aux_dir='$ac_aux_dir' ++ ++# See if we are running on zsh, and set the options that allow our ++# commands through without removal of \ escapes INIT. ++if test -n "\${ZSH_VERSION+set}"; then ++ setopt NO_GLOB_SUBST ++fi ++ ++ ++ PACKAGE='$PACKAGE' ++ VERSION='$VERSION' ++ RM='$RM' ++ ofile='$ofile' ++ ++ ++ ++ ++ ++# Capture the value of obsolete ALL_LINGUAS because we need it to compute ++ # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it ++ # from automake < 1.5. ++ eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' ++ # Capture the value of LINGUAS because we need it to compute CATALOGS. ++ LINGUAS="${LINGUAS-%UNSET%}" ++ ++ ++_ACEOF ++ ++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++ ++# Handling of arguments. ++for ac_config_target in $ac_config_targets ++do ++ case $ac_config_target in ++ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; ++ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; ++ "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; ++ "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; ++ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; ++ "hunspell.pc") CONFIG_FILES="$CONFIG_FILES hunspell.pc" ;; ++ "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; ++ "man/hu/Makefile") CONFIG_FILES="$CONFIG_FILES man/hu/Makefile" ;; ++ "intl/Makefile") CONFIG_FILES="$CONFIG_FILES intl/Makefile" ;; ++ "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; ++ "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; ++ "src/hunspell/Makefile") CONFIG_FILES="$CONFIG_FILES src/hunspell/Makefile" ;; ++ "src/hunspell/hunvisapi.h") CONFIG_FILES="$CONFIG_FILES src/hunspell/hunvisapi.h" ;; ++ "src/parsers/Makefile") CONFIG_FILES="$CONFIG_FILES src/parsers/Makefile" ;; ++ "src/tools/Makefile") CONFIG_FILES="$CONFIG_FILES src/tools/Makefile" ;; ++ "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; ++ "tests/suggestiontest/Makefile") CONFIG_FILES="$CONFIG_FILES tests/suggestiontest/Makefile" ;; ++ ++ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; ++ esac ++done ++ ++ ++# If the user did not use the arguments to specify the items to instantiate, ++# then the envvar interface is used. Set only those that are not. ++# We use the long form for the default assignment because of an extremely ++# bizarre bug on SunOS 4.1.3. ++if $ac_need_defaults; then ++ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files ++ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers ++ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands ++fi ++ ++# Have a temporary directory for convenience. Make it in the build tree ++# simply because there is no reason against having it here, and in addition, ++# creating and moving files from /tmp can sometimes cause problems. ++# Hook for its removal unless debugging. ++# Note that there is a small window in which the directory will not be cleaned: ++# after its creation but before its name has been assigned to `$tmp'. ++$debug || ++{ ++ tmp= ac_tmp= ++ trap 'exit_status=$? ++ : "${ac_tmp:=$tmp}" ++ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ++' 0 ++ trap 'as_fn_exit 1' 1 2 13 15 ++} ++# Create a (secure) tmp directory for tmp files. ++ ++{ ++ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && ++ test -d "$tmp" ++} || ++{ ++ tmp=./conf$$-$RANDOM ++ (umask 077 && mkdir "$tmp") ++} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ++ac_tmp=$tmp ++ ++# Set up the scripts for CONFIG_FILES section. ++# No need to generate them if there are no CONFIG_FILES. ++# This happens for instance with `./config.status config.h'. ++if test -n "$CONFIG_FILES"; then ++ ++ ++ac_cr=`echo X | tr X '\015'` ++# On cygwin, bash can eat \r inside `` if the user requested igncr. ++# But we know of no other shell where ac_cr would be empty at this ++# point, so we can use a bashism as a fallback. ++if test "x$ac_cr" = x; then ++ eval ac_cr=\$\'\\r\' ++fi ++ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` ++if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ++ ac_cs_awk_cr='\\r' ++else ++ ac_cs_awk_cr=$ac_cr ++fi ++ ++echo 'BEGIN {' >"$ac_tmp/subs1.awk" && ++_ACEOF ++ ++ ++{ ++ echo "cat >conf$$subs.awk <<_ACEOF" && ++ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && ++ echo "_ACEOF" ++} >conf$$subs.sh || ++ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ++ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ++ac_delim='%!_!# ' ++for ac_last_try in false false false false false :; do ++ . ./conf$$subs.sh || ++ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ++ ++ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` ++ if test $ac_delim_n = $ac_delim_num; then ++ break ++ elif $ac_last_try; then ++ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ++ else ++ ac_delim="$ac_delim!$ac_delim _$ac_delim!! " ++ fi ++done ++rm -f conf$$subs.sh ++ ++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && ++_ACEOF ++sed -n ' ++h ++s/^/S["/; s/!.*/"]=/ ++p ++g ++s/^[^!]*!// ++:repl ++t repl ++s/'"$ac_delim"'$// ++t delim ++:nl ++h ++s/\(.\{148\}\)..*/\1/ ++t more1 ++s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ ++p ++n ++b repl ++:more1 ++s/["\\]/\\&/g; s/^/"/; s/$/"\\/ ++p ++g ++s/.\{148\}// ++t nl ++:delim ++h ++s/\(.\{148\}\)..*/\1/ ++t more2 ++s/["\\]/\\&/g; s/^/"/; s/$/"/ ++p ++b ++:more2 ++s/["\\]/\\&/g; s/^/"/; s/$/"\\/ ++p ++g ++s/.\{148\}// ++t delim ++' >$CONFIG_STATUS || ac_write_fail=1 ++rm -f conf$$subs.awk ++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++_ACAWK ++cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && ++ for (key in S) S_is_set[key] = 1 ++ FS = "" ++ ++} ++{ ++ line = $ 0 ++ nfields = split(line, field, "@") ++ substed = 0 ++ len = length(field[1]) ++ for (i = 2; i < nfields; i++) { ++ key = field[i] ++ keylen = length(key) ++ if (S_is_set[key]) { ++ value = S[key] ++ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) ++ len += length(value) + length(field[++i]) ++ substed = 1 ++ } else ++ len += 1 + keylen ++ } ++ ++ print line ++} ++ ++_ACAWK ++_ACEOF ++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then ++ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" ++else ++ cat ++fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ ++ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 ++_ACEOF ++ ++# VPATH may cause trouble with some makes, so we remove sole $(srcdir), ++# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and ++# trailing colons and then remove the whole line if VPATH becomes empty ++# (actually we leave an empty line to preserve line numbers). ++if test "x$srcdir" = x.; then ++ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ ++h ++s/// ++s/^/:/ ++s/[ ]*$/:/ ++s/:\$(srcdir):/:/g ++s/:\${srcdir}:/:/g ++s/:@srcdir@:/:/g ++s/^:*// ++s/:*$// ++x ++s/\(=[ ]*\).*/\1/ ++G ++s/\n// ++s/^[^=]*=[ ]*$// ++}' ++fi ++ ++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++fi # test -n "$CONFIG_FILES" ++ ++# Set up the scripts for CONFIG_HEADERS section. ++# No need to generate them if there are no CONFIG_HEADERS. ++# This happens for instance with `./config.status Makefile'. ++if test -n "$CONFIG_HEADERS"; then ++cat >"$ac_tmp/defines.awk" <<\_ACAWK || ++BEGIN { ++_ACEOF ++ ++# Transform confdefs.h into an awk script `defines.awk', embedded as ++# here-document in config.status, that substitutes the proper values into ++# config.h.in to produce config.h. ++ ++# Create a delimiter string that does not exist in confdefs.h, to ease ++# handling of long lines. ++ac_delim='%!_!# ' ++for ac_last_try in false false :; do ++ ac_tt=`sed -n "/$ac_delim/p" confdefs.h` ++ if test -z "$ac_tt"; then ++ break ++ elif $ac_last_try; then ++ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 ++ else ++ ac_delim="$ac_delim!$ac_delim _$ac_delim!! " ++ fi ++done ++ ++# For the awk script, D is an array of macro values keyed by name, ++# likewise P contains macro parameters if any. Preserve backslash ++# newline sequences. ++ ++ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* ++sed -n ' ++s/.\{148\}/&'"$ac_delim"'/g ++t rset ++:rset ++s/^[ ]*#[ ]*define[ ][ ]*/ / ++t def ++d ++:def ++s/\\$// ++t bsnl ++s/["\\]/\\&/g ++s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ ++D["\1"]=" \3"/p ++s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p ++d ++:bsnl ++s/["\\]/\\&/g ++s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ ++D["\1"]=" \3\\\\\\n"\\/p ++t cont ++s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p ++t cont ++d ++:cont ++n ++s/.\{148\}/&'"$ac_delim"'/g ++t clear ++:clear ++s/\\$// ++t bsnlc ++s/["\\]/\\&/g; s/^/"/; s/$/"/p ++d ++:bsnlc ++s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p ++b cont ++' >$CONFIG_STATUS || ac_write_fail=1 ++ ++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++ for (key in D) D_is_set[key] = 1 ++ FS = "" ++} ++/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { ++ line = \$ 0 ++ split(line, arg, " ") ++ if (arg[1] == "#") { ++ defundef = arg[2] ++ mac1 = arg[3] ++ } else { ++ defundef = substr(arg[1], 2) ++ mac1 = arg[2] ++ } ++ split(mac1, mac2, "(") #) ++ macro = mac2[1] ++ prefix = substr(line, 1, index(line, defundef) - 1) ++ if (D_is_set[macro]) { ++ # Preserve the white space surrounding the "#". ++ print prefix "define", macro P[macro] D[macro] ++ next ++ } else { ++ # Replace #undef with comments. This is necessary, for example, ++ # in the case of _POSIX_SOURCE, which is predefined and required ++ # on some systems where configure will not decide to define it. ++ if (defundef == "undef") { ++ print "/*", prefix defundef, macro, "*/" ++ next ++ } ++ } ++} ++{ print } ++_ACAWK ++_ACEOF ++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 ++fi # test -n "$CONFIG_HEADERS" ++ ++ ++eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" ++shift ++for ac_tag ++do ++ case $ac_tag in ++ :[FHLC]) ac_mode=$ac_tag; continue;; ++ esac ++ case $ac_mode$ac_tag in ++ :[FHL]*:*);; ++ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; ++ :[FH]-) ac_tag=-:-;; ++ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; ++ esac ++ ac_save_IFS=$IFS ++ IFS=: ++ set x $ac_tag ++ IFS=$ac_save_IFS ++ shift ++ ac_file=$1 ++ shift ++ ++ case $ac_mode in ++ :L) ac_source=$1;; ++ :[FH]) ++ ac_file_inputs= ++ for ac_f ++ do ++ case $ac_f in ++ -) ac_f="$ac_tmp/stdin";; ++ *) # Look for the file first in the build tree, then in the source tree ++ # (if the path is not absolute). The absolute path cannot be DOS-style, ++ # because $ac_f cannot contain `:'. ++ test -f "$ac_f" || ++ case $ac_f in ++ [\\/$]*) false;; ++ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; ++ esac || ++ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; ++ esac ++ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac ++ as_fn_append ac_file_inputs " '$ac_f'" ++ done ++ ++ # Let's still pretend it is `configure' which instantiates (i.e., don't ++ # use $as_me), people would be surprised to read: ++ # /* config.h. Generated by config.status. */ ++ configure_input='Generated from '` ++ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' ++ `' by configure.' ++ if test x"$ac_file" != x-; then ++ configure_input="$ac_file. $configure_input" ++ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 ++$as_echo "$as_me: creating $ac_file" >&6;} ++ fi ++ # Neutralize special characters interpreted by sed in replacement strings. ++ case $configure_input in #( ++ *\&* | *\|* | *\\* ) ++ ac_sed_conf_input=`$as_echo "$configure_input" | ++ sed 's/[\\\\&|]/\\\\&/g'`;; #( ++ *) ac_sed_conf_input=$configure_input;; ++ esac ++ ++ case $ac_tag in ++ *:-:* | *:-) cat >"$ac_tmp/stdin" \ ++ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; ++ esac ++ ;; ++ esac ++ ++ ac_dir=`$as_dirname -- "$ac_file" || ++$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$ac_file" : 'X\(//\)[^/]' \| \ ++ X"$ac_file" : 'X\(//\)$' \| \ ++ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || ++$as_echo X"$ac_file" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)[^/].*/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\).*/{ ++ s//\1/ ++ q ++ } ++ s/.*/./; q'` ++ as_dir="$ac_dir"; as_fn_mkdir_p ++ ac_builddir=. ++ ++case "$ac_dir" in ++.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; ++*) ++ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` ++ # A ".." for each directory in $ac_dir_suffix. ++ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` ++ case $ac_top_builddir_sub in ++ "") ac_top_builddir_sub=. ac_top_build_prefix= ;; ++ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; ++ esac ;; ++esac ++ac_abs_top_builddir=$ac_pwd ++ac_abs_builddir=$ac_pwd$ac_dir_suffix ++# for backward compatibility: ++ac_top_builddir=$ac_top_build_prefix ++ ++case $srcdir in ++ .) # We are building in place. ++ ac_srcdir=. ++ ac_top_srcdir=$ac_top_builddir_sub ++ ac_abs_top_srcdir=$ac_pwd ;; ++ [\\/]* | ?:[\\/]* ) # Absolute name. ++ ac_srcdir=$srcdir$ac_dir_suffix; ++ ac_top_srcdir=$srcdir ++ ac_abs_top_srcdir=$srcdir ;; ++ *) # Relative name. ++ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ++ ac_top_srcdir=$ac_top_build_prefix$srcdir ++ ac_abs_top_srcdir=$ac_pwd/$srcdir ;; ++esac ++ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix ++ ++ ++ case $ac_mode in ++ :F) ++ # ++ # CONFIG_FILE ++ # ++ ++ case $INSTALL in ++ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; ++ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; ++ esac ++ ac_MKDIR_P=$MKDIR_P ++ case $MKDIR_P in ++ [\\/$]* | ?:[\\/]* ) ;; ++ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; ++ esac ++_ACEOF ++ ++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++# If the template does not know about datarootdir, expand it. ++# FIXME: This hack should be removed a few years after 2.60. ++ac_datarootdir_hack=; ac_datarootdir_seen= ++ac_sed_dataroot=' ++/datarootdir/ { ++ p ++ q ++} ++/@datadir@/p ++/@docdir@/p ++/@infodir@/p ++/@localedir@/p ++/@mandir@/p' ++case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in ++*datarootdir*) ac_datarootdir_seen=yes;; ++*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 ++$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} ++_ACEOF ++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++ ac_datarootdir_hack=' ++ s&@datadir@&$datadir&g ++ s&@docdir@&$docdir&g ++ s&@infodir@&$infodir&g ++ s&@localedir@&$localedir&g ++ s&@mandir@&$mandir&g ++ s&\\\${datarootdir}&$datarootdir&g' ;; ++esac ++_ACEOF ++ ++# Neutralize VPATH when `$srcdir' = `.'. ++# Shell code in configure.ac might set extrasub. ++# FIXME: do we really want to maintain this feature? ++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++ac_sed_extra="$ac_vpsub ++$extrasub ++_ACEOF ++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++:t ++/@[a-zA-Z_][a-zA-Z_0-9]*@/!b ++s|@configure_input@|$ac_sed_conf_input|;t t ++s&@top_builddir@&$ac_top_builddir_sub&;t t ++s&@top_build_prefix@&$ac_top_build_prefix&;t t ++s&@srcdir@&$ac_srcdir&;t t ++s&@abs_srcdir@&$ac_abs_srcdir&;t t ++s&@top_srcdir@&$ac_top_srcdir&;t t ++s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t ++s&@builddir@&$ac_builddir&;t t ++s&@abs_builddir@&$ac_abs_builddir&;t t ++s&@abs_top_builddir@&$ac_abs_top_builddir&;t t ++s&@INSTALL@&$ac_INSTALL&;t t ++s&@MKDIR_P@&$ac_MKDIR_P&;t t ++$ac_datarootdir_hack ++" ++eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ ++ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ++ ++test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && ++ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && ++ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ ++ "$ac_tmp/out"`; test -z "$ac_out"; } && ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' ++which seems to be undefined. Please make sure it is defined" >&5 ++$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' ++which seems to be undefined. Please make sure it is defined" >&2;} ++ ++ rm -f "$ac_tmp/stdin" ++ case $ac_file in ++ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; ++ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; ++ esac \ ++ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ++ ;; ++ :H) ++ # ++ # CONFIG_HEADER ++ # ++ if test x"$ac_file" != x-; then ++ { ++ $as_echo "/* $configure_input */" \ ++ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" ++ } >"$ac_tmp/config.h" \ ++ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ++ if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 ++$as_echo "$as_me: $ac_file is unchanged" >&6;} ++ else ++ rm -f "$ac_file" ++ mv "$ac_tmp/config.h" "$ac_file" \ ++ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ++ fi ++ else ++ $as_echo "/* $configure_input */" \ ++ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ ++ || as_fn_error $? "could not create -" "$LINENO" 5 ++ fi ++# Compute "$ac_file"'s index in $config_headers. ++_am_arg="$ac_file" ++_am_stamp_count=1 ++for _am_header in $config_headers :; do ++ case $_am_header in ++ $_am_arg | $_am_arg:* ) ++ break ;; ++ * ) ++ _am_stamp_count=`expr $_am_stamp_count + 1` ;; ++ esac ++done ++echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || ++$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$_am_arg" : 'X\(//\)[^/]' \| \ ++ X"$_am_arg" : 'X\(//\)$' \| \ ++ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || ++$as_echo X"$_am_arg" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)[^/].*/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\).*/{ ++ s//\1/ ++ q ++ } ++ s/.*/./; q'`/stamp-h$_am_stamp_count ++ ;; ++ ++ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 ++$as_echo "$as_me: executing $ac_file commands" >&6;} ++ ;; ++ esac ++ ++ ++ case $ac_file$ac_mode in ++ "depfiles":C) test x"$AMDEP_TRUE" != x"" || { ++ # Older Autoconf quotes --file arguments for eval, but not when files ++ # are listed without --file. Let's play safe and only enable the eval ++ # if we detect the quoting. ++ case $CONFIG_FILES in ++ *\'*) eval set x "$CONFIG_FILES" ;; ++ *) set x $CONFIG_FILES ;; ++ esac ++ shift ++ for mf ++ do ++ # Strip MF so we end up with the name of the file. ++ mf=`echo "$mf" | sed -e 's/:.*$//'` ++ # Check whether this is an Automake generated Makefile or not. ++ # We used to match only the files named 'Makefile.in', but ++ # some people rename them; so instead we look at the file content. ++ # Grep'ing the first line is not enough: some people post-process ++ # each Makefile.in and add a new line on top of each file to say so. ++ # Grep'ing the whole file is not good either: AIX grep has a line ++ # limit of 2048, but all sed's we know have understand at least 4000. ++ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then ++ dirpart=`$as_dirname -- "$mf" || ++$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$mf" : 'X\(//\)[^/]' \| \ ++ X"$mf" : 'X\(//\)$' \| \ ++ X"$mf" : 'X\(/\)' \| . 2>/dev/null || ++$as_echo X"$mf" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)[^/].*/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\).*/{ ++ s//\1/ ++ q ++ } ++ s/.*/./; q'` ++ else ++ continue ++ fi ++ # Extract the definition of DEPDIR, am__include, and am__quote ++ # from the Makefile without running 'make'. ++ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` ++ test -z "$DEPDIR" && continue ++ am__include=`sed -n 's/^am__include = //p' < "$mf"` ++ test -z "$am__include" && continue ++ am__quote=`sed -n 's/^am__quote = //p' < "$mf"` ++ # Find all dependency output files, they are included files with ++ # $(DEPDIR) in their names. We invoke sed twice because it is the ++ # simplest approach to changing $(DEPDIR) to its actual value in the ++ # expansion. ++ for file in `sed -n " ++ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ ++ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do ++ # Make sure the directory exists. ++ test -f "$dirpart/$file" && continue ++ fdir=`$as_dirname -- "$file" || ++$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$file" : 'X\(//\)[^/]' \| \ ++ X"$file" : 'X\(//\)$' \| \ ++ X"$file" : 'X\(/\)' \| . 2>/dev/null || ++$as_echo X"$file" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)[^/].*/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\).*/{ ++ s//\1/ ++ q ++ } ++ s/.*/./; q'` ++ as_dir=$dirpart/$fdir; as_fn_mkdir_p ++ # echo "creating $dirpart/$file" ++ echo '# dummy' > "$dirpart/$file" ++ done ++ done ++} ++ ;; ++ "libtool":C) ++ ++ # See if we are running on zsh, and set the options that allow our ++ # commands through without removal of \ escapes. ++ if test -n "${ZSH_VERSION+set}"; then ++ setopt NO_GLOB_SUBST ++ fi ++ ++ cfgfile=${ofile}T ++ trap "$RM \"$cfgfile\"; exit 1" 1 2 15 ++ $RM "$cfgfile" ++ ++ cat <<_LT_EOF >> "$cfgfile" ++#! $SHELL ++# Generated automatically by $as_me ($PACKAGE) $VERSION ++# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: ++# NOTE: Changes made to this file will be lost: look at ltmain.sh. ++ ++# Provide generalized library-building support services. ++# Written by Gordon Matzigkeit, 1996 ++ ++# Copyright (C) 2014 Free Software Foundation, Inc. ++# This is free software; see the source for copying conditions. There is NO ++# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++ ++# GNU Libtool is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of of the License, or ++# (at your option) any later version. ++# ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program or library that is built ++# using GNU Libtool, you may include this file under the same ++# distribution terms that you use for the rest of that program. ++# ++# GNU Libtool is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program. If not, see . ++ ++ ++# The names of the tagged configurations supported by this script. ++available_tags='CXX ' ++ ++# Configured defaults for sys_lib_dlsearch_path munging. ++: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} ++ ++# ### BEGIN LIBTOOL CONFIG ++ ++# Which release of libtool.m4 was used? ++macro_version=$macro_version ++macro_revision=$macro_revision ++ ++# Whether or not to build shared libraries. ++build_libtool_libs=$enable_shared ++ ++# Whether or not to build static libraries. ++build_old_libs=$enable_static ++ ++# What type of objects to build. ++pic_mode=$pic_mode ++ ++# Whether or not to optimize for fast installation. ++fast_install=$enable_fast_install ++ ++# Shared archive member basename,for filename based shared library versioning on AIX. ++shared_archive_member_spec=$shared_archive_member_spec ++ ++# Shell to use when invoking shell scripts. ++SHELL=$lt_SHELL ++ ++# An echo program that protects backslashes. ++ECHO=$lt_ECHO ++ ++# The PATH separator for the build system. ++PATH_SEPARATOR=$lt_PATH_SEPARATOR ++ ++# The host system. ++host_alias=$host_alias ++host=$host ++host_os=$host_os ++ ++# The build system. ++build_alias=$build_alias ++build=$build ++build_os=$build_os ++ ++# A sed program that does not truncate output. ++SED=$lt_SED ++ ++# Sed that helps us avoid accidentally triggering echo(1) options like -n. ++Xsed="\$SED -e 1s/^X//" ++ ++# A grep program that handles long lines. ++GREP=$lt_GREP ++ ++# An ERE matcher. ++EGREP=$lt_EGREP ++ ++# A literal string matcher. ++FGREP=$lt_FGREP ++ ++# A BSD- or MS-compatible name lister. ++NM=$lt_NM ++ ++# Whether we need soft or hard links. ++LN_S=$lt_LN_S ++ ++# What is the maximum length of a command? ++max_cmd_len=$max_cmd_len ++ ++# Object file suffix (normally "o"). ++objext=$ac_objext ++ ++# Executable file suffix (normally ""). ++exeext=$exeext ++ ++# whether the shell understands "unset". ++lt_unset=$lt_unset ++ ++# turn spaces into newlines. ++SP2NL=$lt_lt_SP2NL ++ ++# turn newlines into spaces. ++NL2SP=$lt_lt_NL2SP ++ ++# convert \$build file names to \$host format. ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++ ++# convert \$build files to toolchain format. ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++ ++# An object symbol dumper. ++OBJDUMP=$lt_OBJDUMP ++ ++# Method to check whether dependent libraries are shared objects. ++deplibs_check_method=$lt_deplibs_check_method ++ ++# Command to use when deplibs_check_method = "file_magic". ++file_magic_cmd=$lt_file_magic_cmd ++ ++# How to find potential files when deplibs_check_method = "file_magic". ++file_magic_glob=$lt_file_magic_glob ++ ++# Find potential files using nocaseglob when deplibs_check_method = "file_magic". ++want_nocaseglob=$lt_want_nocaseglob ++ ++# DLL creation program. ++DLLTOOL=$lt_DLLTOOL ++ ++# Command to associate shared and link libraries. ++sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd ++ ++# The archiver. ++AR=$lt_AR ++ ++# Flags to create an archive. ++AR_FLAGS=$lt_AR_FLAGS ++ ++# How to feed a file listing to the archiver. ++archiver_list_spec=$lt_archiver_list_spec ++ ++# A symbol stripping program. ++STRIP=$lt_STRIP ++ ++# Commands used to install an old-style archive. ++RANLIB=$lt_RANLIB ++old_postinstall_cmds=$lt_old_postinstall_cmds ++old_postuninstall_cmds=$lt_old_postuninstall_cmds ++ ++# Whether to use a lock for old archive extraction. ++lock_old_archive_extraction=$lock_old_archive_extraction ++ ++# A C compiler. ++LTCC=$lt_CC ++ ++# LTCC compiler flags. ++LTCFLAGS=$lt_CFLAGS ++ ++# Take the output of nm and produce a listing of raw symbols and C names. ++global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe ++ ++# Transform the output of nm in a proper C declaration. ++global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl ++ ++# Transform the output of nm into a list of symbols to manually relocate. ++global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import ++ ++# Transform the output of nm in a C name address pair. ++global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address ++ ++# Transform the output of nm in a C name address pair when lib prefix is needed. ++global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix ++ ++# The name lister interface. ++nm_interface=$lt_lt_cv_nm_interface ++ ++# Specify filename containing input files for \$NM. ++nm_file_list_spec=$lt_nm_file_list_spec ++ ++# The root where to search for dependent libraries,and where our libraries should be installed. ++lt_sysroot=$lt_sysroot ++ ++# Command to truncate a binary pipe. ++lt_truncate_bin=$lt_lt_cv_truncate_bin ++ ++# The name of the directory that contains temporary libtool files. ++objdir=$objdir ++ ++# Used to examine libraries when file_magic_cmd begins with "file". ++MAGIC_CMD=$MAGIC_CMD ++ ++# Must we lock files when doing compilation? ++need_locks=$lt_need_locks ++ ++# Manifest tool. ++MANIFEST_TOOL=$lt_MANIFEST_TOOL ++ ++# Tool to manipulate archived DWARF debug symbol files on Mac OS X. ++DSYMUTIL=$lt_DSYMUTIL ++ ++# Tool to change global to local symbols on Mac OS X. ++NMEDIT=$lt_NMEDIT ++ ++# Tool to manipulate fat objects and archives on Mac OS X. ++LIPO=$lt_LIPO ++ ++# ldd/readelf like tool for Mach-O binaries on Mac OS X. ++OTOOL=$lt_OTOOL ++ ++# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. ++OTOOL64=$lt_OTOOL64 ++ ++# Old archive suffix (normally "a"). ++libext=$libext ++ ++# Shared library suffix (normally ".so"). ++shrext_cmds=$lt_shrext_cmds ++ ++# The commands to extract the exported symbol list from a shared archive. ++extract_expsyms_cmds=$lt_extract_expsyms_cmds ++ ++# Variables whose values should be saved in libtool wrapper scripts and ++# restored at link time. ++variables_saved_for_relink=$lt_variables_saved_for_relink ++ ++# Do we need the "lib" prefix for modules? ++need_lib_prefix=$need_lib_prefix ++ ++# Do we need a version for libraries? ++need_version=$need_version ++ ++# Library versioning type. ++version_type=$version_type ++ ++# Shared library runtime path variable. ++runpath_var=$runpath_var ++ ++# Shared library path variable. ++shlibpath_var=$shlibpath_var ++ ++# Is shlibpath searched before the hard-coded library search path? ++shlibpath_overrides_runpath=$shlibpath_overrides_runpath ++ ++# Format of library name prefix. ++libname_spec=$lt_libname_spec ++ ++# List of archive names. First name is the real one, the rest are links. ++# The last name is the one that the linker finds with -lNAME ++library_names_spec=$lt_library_names_spec ++ ++# The coded name of the library, if different from the real name. ++soname_spec=$lt_soname_spec ++ ++# Permission mode override for installation of shared libraries. ++install_override_mode=$lt_install_override_mode ++ ++# Command to use after installation of a shared archive. ++postinstall_cmds=$lt_postinstall_cmds ++ ++# Command to use after uninstallation of a shared archive. ++postuninstall_cmds=$lt_postuninstall_cmds ++ ++# Commands used to finish a libtool library installation in a directory. ++finish_cmds=$lt_finish_cmds ++ ++# As "finish_cmds", except a single script fragment to be evaled but ++# not shown. ++finish_eval=$lt_finish_eval ++ ++# Whether we should hardcode library paths into libraries. ++hardcode_into_libs=$hardcode_into_libs ++ ++# Compile-time system search path for libraries. ++sys_lib_search_path_spec=$lt_sys_lib_search_path_spec ++ ++# Detected run-time system search path for libraries. ++sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path ++ ++# Explicit LT_SYS_LIBRARY_PATH set during ./configure time. ++configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path ++ ++# Whether dlopen is supported. ++dlopen_support=$enable_dlopen ++ ++# Whether dlopen of programs is supported. ++dlopen_self=$enable_dlopen_self ++ ++# Whether dlopen of statically linked programs is supported. ++dlopen_self_static=$enable_dlopen_self_static ++ ++# Commands to strip libraries. ++old_striplib=$lt_old_striplib ++striplib=$lt_striplib ++ ++# Assembler program. ++AS=$lt_AS ++ ++ ++# The linker used to build libraries. ++LD=$lt_LD ++ ++# How to create reloadable object files. ++reload_flag=$lt_reload_flag ++reload_cmds=$lt_reload_cmds ++ ++# Commands used to build an old-style archive. ++old_archive_cmds=$lt_old_archive_cmds ++ ++# A language specific compiler. ++CC=$lt_compiler ++ ++# Is the compiler the GNU compiler? ++with_gcc=$GCC ++ ++# Compiler flag to turn off builtin functions. ++no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag ++ ++# Additional compiler flags for building library objects. ++pic_flag=$lt_lt_prog_compiler_pic ++ ++# How to pass a linker flag through the compiler. ++wl=$lt_lt_prog_compiler_wl ++ ++# Compiler flag to prevent dynamic linking. ++link_static_flag=$lt_lt_prog_compiler_static ++ ++# Does compiler simultaneously support -c and -o options? ++compiler_c_o=$lt_lt_cv_prog_compiler_c_o ++ ++# Whether or not to add -lc for building shared libraries. ++build_libtool_need_lc=$archive_cmds_need_lc ++ ++# Whether or not to disallow shared libs when runtime libs are static. ++allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes ++ ++# Compiler flag to allow reflexive dlopens. ++export_dynamic_flag_spec=$lt_export_dynamic_flag_spec ++ ++# Compiler flag to generate shared objects directly from archives. ++whole_archive_flag_spec=$lt_whole_archive_flag_spec ++ ++# Whether the compiler copes with passing no objects directly. ++compiler_needs_object=$lt_compiler_needs_object ++ ++# Create an old-style archive from a shared archive. ++old_archive_from_new_cmds=$lt_old_archive_from_new_cmds ++ ++# Create a temporary old-style archive to link instead of a shared archive. ++old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds ++ ++# Commands used to build a shared archive. ++archive_cmds=$lt_archive_cmds ++archive_expsym_cmds=$lt_archive_expsym_cmds ++ ++# Commands used to build a loadable module if different from building ++# a shared archive. ++module_cmds=$lt_module_cmds ++module_expsym_cmds=$lt_module_expsym_cmds ++ ++# Whether we are building with GNU ld or not. ++with_gnu_ld=$lt_with_gnu_ld ++ ++# Flag that allows shared libraries with undefined symbols to be built. ++allow_undefined_flag=$lt_allow_undefined_flag ++ ++# Flag that enforces no undefined symbols. ++no_undefined_flag=$lt_no_undefined_flag ++ ++# Flag to hardcode \$libdir into a binary during linking. ++# This must work even if \$libdir does not exist ++hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec ++ ++# Whether we need a single "-rpath" flag with a separated argument. ++hardcode_libdir_separator=$lt_hardcode_libdir_separator ++ ++# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes ++# DIR into the resulting binary. ++hardcode_direct=$hardcode_direct ++ ++# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes ++# DIR into the resulting binary and the resulting library dependency is ++# "absolute",i.e impossible to change by setting \$shlibpath_var if the ++# library is relocated. ++hardcode_direct_absolute=$hardcode_direct_absolute ++ ++# Set to "yes" if using the -LDIR flag during linking hardcodes DIR ++# into the resulting binary. ++hardcode_minus_L=$hardcode_minus_L ++ ++# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR ++# into the resulting binary. ++hardcode_shlibpath_var=$hardcode_shlibpath_var ++ ++# Set to "yes" if building a shared library automatically hardcodes DIR ++# into the library and all subsequent libraries and executables linked ++# against it. ++hardcode_automatic=$hardcode_automatic ++ ++# Set to yes if linker adds runtime paths of dependent libraries ++# to runtime path list. ++inherit_rpath=$inherit_rpath ++ ++# Whether libtool must link a program against all its dependency libraries. ++link_all_deplibs=$link_all_deplibs ++ ++# Set to "yes" if exported symbols are required. ++always_export_symbols=$always_export_symbols ++ ++# The commands to list exported symbols. ++export_symbols_cmds=$lt_export_symbols_cmds ++ ++# Symbols that should not be listed in the preloaded symbols. ++exclude_expsyms=$lt_exclude_expsyms ++ ++# Symbols that must always be exported. ++include_expsyms=$lt_include_expsyms ++ ++# Commands necessary for linking programs (against libraries) with templates. ++prelink_cmds=$lt_prelink_cmds ++ ++# Commands necessary for finishing linking programs. ++postlink_cmds=$lt_postlink_cmds ++ ++# Specify filename containing input files. ++file_list_spec=$lt_file_list_spec ++ ++# How to hardcode a shared library path into an executable. ++hardcode_action=$hardcode_action ++ ++# The directories searched by this compiler when creating a shared library. ++compiler_lib_search_dirs=$lt_compiler_lib_search_dirs ++ ++# Dependencies to place before and after the objects being linked to ++# create a shared library. ++predep_objects=$lt_predep_objects ++postdep_objects=$lt_postdep_objects ++predeps=$lt_predeps ++postdeps=$lt_postdeps ++ ++# The library search path used internally by the compiler when linking ++# a shared library. ++compiler_lib_search_path=$lt_compiler_lib_search_path ++ ++# ### END LIBTOOL CONFIG ++ ++_LT_EOF ++ ++ cat <<'_LT_EOF' >> "$cfgfile" ++ ++# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE ++ ++# func_munge_path_list VARIABLE PATH ++# ----------------------------------- ++# VARIABLE is name of variable containing _space_ separated list of ++# directories to be munged by the contents of PATH, which is string ++# having a format: ++# "DIR[:DIR]:" ++# string "DIR[ DIR]" will be prepended to VARIABLE ++# ":DIR[:DIR]" ++# string "DIR[ DIR]" will be appended to VARIABLE ++# "DIRP[:DIRP]::[DIRA:]DIRA" ++# string "DIRP[ DIRP]" will be prepended to VARIABLE and string ++# "DIRA[ DIRA]" will be appended to VARIABLE ++# "DIR[:DIR]" ++# VARIABLE will be replaced by "DIR[ DIR]" ++func_munge_path_list () ++{ ++ case x$2 in ++ x) ++ ;; ++ *:) ++ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" ++ ;; ++ x:*) ++ eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" ++ ;; ++ *::*) ++ eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" ++ eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" ++ ;; ++ *) ++ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" ++ ;; ++ esac ++} ++ ++ ++# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. ++func_cc_basename () ++{ ++ for cc_temp in $*""; do ++ case $cc_temp in ++ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; ++ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; ++ \-*) ;; ++ *) break;; ++ esac ++ done ++ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ++} ++ ++ ++# ### END FUNCTIONS SHARED WITH CONFIGURE ++ ++_LT_EOF ++ ++ case $host_os in ++ aix3*) ++ cat <<\_LT_EOF >> "$cfgfile" ++# AIX sometimes has problems with the GCC collect2 program. For some ++# reason, if we set the COLLECT_NAMES environment variable, the problems ++# vanish in a puff of smoke. ++if test set != "${COLLECT_NAMES+set}"; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++fi ++_LT_EOF ++ ;; ++ esac ++ ++ ++ltmain=$ac_aux_dir/ltmain.sh ++ ++ ++ # We use sed instead of cat because bash on DJGPP gets confused if ++ # if finds mixed CR/LF and LF-only lines. Since sed operates in ++ # text mode, it properly converts lines to CR/LF. This bash problem ++ # is reportedly fixed, but why not run on old versions too? ++ sed '$q' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) ++ ++ mv -f "$cfgfile" "$ofile" || ++ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") ++ chmod +x "$ofile" ++ ++ ++ cat <<_LT_EOF >> "$ofile" ++ ++# ### BEGIN LIBTOOL TAG CONFIG: CXX ++ ++# The linker used to build libraries. ++LD=$lt_LD_CXX ++ ++# How to create reloadable object files. ++reload_flag=$lt_reload_flag_CXX ++reload_cmds=$lt_reload_cmds_CXX ++ ++# Commands used to build an old-style archive. ++old_archive_cmds=$lt_old_archive_cmds_CXX ++ ++# A language specific compiler. ++CC=$lt_compiler_CXX ++ ++# Is the compiler the GNU compiler? ++with_gcc=$GCC_CXX ++ ++# Compiler flag to turn off builtin functions. ++no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX ++ ++# Additional compiler flags for building library objects. ++pic_flag=$lt_lt_prog_compiler_pic_CXX ++ ++# How to pass a linker flag through the compiler. ++wl=$lt_lt_prog_compiler_wl_CXX ++ ++# Compiler flag to prevent dynamic linking. ++link_static_flag=$lt_lt_prog_compiler_static_CXX ++ ++# Does compiler simultaneously support -c and -o options? ++compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX ++ ++# Whether or not to add -lc for building shared libraries. ++build_libtool_need_lc=$archive_cmds_need_lc_CXX ++ ++# Whether or not to disallow shared libs when runtime libs are static. ++allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX ++ ++# Compiler flag to allow reflexive dlopens. ++export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX ++ ++# Compiler flag to generate shared objects directly from archives. ++whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX ++ ++# Whether the compiler copes with passing no objects directly. ++compiler_needs_object=$lt_compiler_needs_object_CXX ++ ++# Create an old-style archive from a shared archive. ++old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX ++ ++# Create a temporary old-style archive to link instead of a shared archive. ++old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX ++ ++# Commands used to build a shared archive. ++archive_cmds=$lt_archive_cmds_CXX ++archive_expsym_cmds=$lt_archive_expsym_cmds_CXX ++ ++# Commands used to build a loadable module if different from building ++# a shared archive. ++module_cmds=$lt_module_cmds_CXX ++module_expsym_cmds=$lt_module_expsym_cmds_CXX ++ ++# Whether we are building with GNU ld or not. ++with_gnu_ld=$lt_with_gnu_ld_CXX ++ ++# Flag that allows shared libraries with undefined symbols to be built. ++allow_undefined_flag=$lt_allow_undefined_flag_CXX ++ ++# Flag that enforces no undefined symbols. ++no_undefined_flag=$lt_no_undefined_flag_CXX ++ ++# Flag to hardcode \$libdir into a binary during linking. ++# This must work even if \$libdir does not exist ++hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX ++ ++# Whether we need a single "-rpath" flag with a separated argument. ++hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX ++ ++# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes ++# DIR into the resulting binary. ++hardcode_direct=$hardcode_direct_CXX ++ ++# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes ++# DIR into the resulting binary and the resulting library dependency is ++# "absolute",i.e impossible to change by setting \$shlibpath_var if the ++# library is relocated. ++hardcode_direct_absolute=$hardcode_direct_absolute_CXX ++ ++# Set to "yes" if using the -LDIR flag during linking hardcodes DIR ++# into the resulting binary. ++hardcode_minus_L=$hardcode_minus_L_CXX ++ ++# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR ++# into the resulting binary. ++hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX ++ ++# Set to "yes" if building a shared library automatically hardcodes DIR ++# into the library and all subsequent libraries and executables linked ++# against it. ++hardcode_automatic=$hardcode_automatic_CXX ++ ++# Set to yes if linker adds runtime paths of dependent libraries ++# to runtime path list. ++inherit_rpath=$inherit_rpath_CXX ++ ++# Whether libtool must link a program against all its dependency libraries. ++link_all_deplibs=$link_all_deplibs_CXX ++ ++# Set to "yes" if exported symbols are required. ++always_export_symbols=$always_export_symbols_CXX ++ ++# The commands to list exported symbols. ++export_symbols_cmds=$lt_export_symbols_cmds_CXX ++ ++# Symbols that should not be listed in the preloaded symbols. ++exclude_expsyms=$lt_exclude_expsyms_CXX ++ ++# Symbols that must always be exported. ++include_expsyms=$lt_include_expsyms_CXX ++ ++# Commands necessary for linking programs (against libraries) with templates. ++prelink_cmds=$lt_prelink_cmds_CXX ++ ++# Commands necessary for finishing linking programs. ++postlink_cmds=$lt_postlink_cmds_CXX ++ ++# Specify filename containing input files. ++file_list_spec=$lt_file_list_spec_CXX ++ ++# How to hardcode a shared library path into an executable. ++hardcode_action=$hardcode_action_CXX ++ ++# The directories searched by this compiler when creating a shared library. ++compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX ++ ++# Dependencies to place before and after the objects being linked to ++# create a shared library. ++predep_objects=$lt_predep_objects_CXX ++postdep_objects=$lt_postdep_objects_CXX ++predeps=$lt_predeps_CXX ++postdeps=$lt_postdeps_CXX ++ ++# The library search path used internally by the compiler when linking ++# a shared library. ++compiler_lib_search_path=$lt_compiler_lib_search_path_CXX ++ ++# ### END LIBTOOL TAG CONFIG: CXX ++_LT_EOF ++ ++ ;; ++ "po-directories":C) ++ for ac_file in $CONFIG_FILES; do ++ # Support "outfile[:infile[:infile...]]" ++ case "$ac_file" in ++ *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; ++ esac ++ # PO directories have a Makefile.in generated from Makefile.in.in. ++ case "$ac_file" in */Makefile.in) ++ # Adjust a relative srcdir. ++ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ++ ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` ++ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` ++ # In autoconf-2.13 it is called $ac_given_srcdir. ++ # In autoconf-2.50 it is called $srcdir. ++ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" ++ case "$ac_given_srcdir" in ++ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; ++ /*) top_srcdir="$ac_given_srcdir" ;; ++ *) top_srcdir="$ac_dots$ac_given_srcdir" ;; ++ esac ++ # Treat a directory as a PO directory if and only if it has a ++ # POTFILES.in file. This allows packages to have multiple PO ++ # directories under different names or in different locations. ++ if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then ++ rm -f "$ac_dir/POTFILES" ++ test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" ++ gt_tab=`printf '\t'` ++ cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" ++ POMAKEFILEDEPS="POTFILES.in" ++ # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend ++ # on $ac_dir but don't depend on user-specified configuration ++ # parameters. ++ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then ++ # The LINGUAS file contains the set of available languages. ++ if test -n "$OBSOLETE_ALL_LINGUAS"; then ++ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" ++ fi ++ ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` ++ # Hide the ALL_LINGUAS assignment from automake < 1.5. ++ eval 'ALL_LINGUAS''=$ALL_LINGUAS_' ++ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" ++ else ++ # The set of available languages was given in configure.in. ++ # Hide the ALL_LINGUAS assignment from automake < 1.5. ++ eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' ++ fi ++ # Compute POFILES ++ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) ++ # Compute UPDATEPOFILES ++ # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) ++ # Compute DUMMYPOFILES ++ # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) ++ # Compute GMOFILES ++ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) ++ case "$ac_given_srcdir" in ++ .) srcdirpre= ;; ++ *) srcdirpre='$(srcdir)/' ;; ++ esac ++ POFILES= ++ UPDATEPOFILES= ++ DUMMYPOFILES= ++ GMOFILES= ++ for lang in $ALL_LINGUAS; do ++ POFILES="$POFILES $srcdirpre$lang.po" ++ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" ++ DUMMYPOFILES="$DUMMYPOFILES $lang.nop" ++ GMOFILES="$GMOFILES $srcdirpre$lang.gmo" ++ done ++ # CATALOGS depends on both $ac_dir and the user's LINGUAS ++ # environment variable. ++ INST_LINGUAS= ++ if test -n "$ALL_LINGUAS"; then ++ for presentlang in $ALL_LINGUAS; do ++ useit=no ++ if test "%UNSET%" != "$LINGUAS"; then ++ desiredlanguages="$LINGUAS" ++ else ++ desiredlanguages="$ALL_LINGUAS" ++ fi ++ for desiredlang in $desiredlanguages; do ++ # Use the presentlang catalog if desiredlang is ++ # a. equal to presentlang, or ++ # b. a variant of presentlang (because in this case, ++ # presentlang can be used as a fallback for messages ++ # which are not translated in the desiredlang catalog). ++ case "$desiredlang" in ++ "$presentlang"*) useit=yes;; ++ esac ++ done ++ if test $useit = yes; then ++ INST_LINGUAS="$INST_LINGUAS $presentlang" ++ fi ++ done ++ fi ++ CATALOGS= ++ if test -n "$INST_LINGUAS"; then ++ for lang in $INST_LINGUAS; do ++ CATALOGS="$CATALOGS $lang.gmo" ++ done ++ fi ++ test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" ++ sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" ++ for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do ++ if test -f "$f"; then ++ case "$f" in ++ *.orig | *.bak | *~) ;; ++ *) cat "$f" >> "$ac_dir/Makefile" ;; ++ esac ++ fi ++ done ++ fi ++ ;; ++ esac ++ done ;; ++ ++ esac ++done # for ac_tag ++ ++ ++as_fn_exit 0 ++_ACEOF ++ac_clean_files=$ac_clean_files_save ++ ++test $ac_write_fail = 0 || ++ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 ++ ++ ++# configure is writing to config.log, and then calls config.status. ++# config.status does its own redirection, appending to config.log. ++# Unfortunately, on DOS this fails, as config.log is still kept open ++# by configure, so config.status won't be able to write to it; its ++# output is simply discarded. So we exec the FD to /dev/null, ++# effectively closing config.log, so it can be properly (re)opened and ++# appended to by config.status. When coming back to configure, we ++# need to make the FD available again. ++if test "$no_create" != yes; then ++ ac_cs_success=: ++ ac_config_status_args= ++ test "$silent" = yes && ++ ac_config_status_args="$ac_config_status_args --quiet" ++ exec 5>/dev/null ++ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false ++ exec 5>>config.log ++ # Use ||, not &&, to avoid exiting from the if with $? = 1, which ++ # would make configure fail if this is the last instruction. ++ $ac_cs_success || as_fn_exit 1 ++fi ++if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 ++$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} ++fi ++ +diff --git a/depcomp b/depcomp +new file mode 100755 +index 0000000..fc98710 +--- /dev/null ++++ b/depcomp +@@ -0,0 +1,791 @@ ++#! /bin/sh ++# depcomp - compile a program generating dependencies as side-effects ++ ++scriptversion=2013-05-30.07; # UTC ++ ++# Copyright (C) 1999-2014 Free Software Foundation, Inc. ++ ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2, or (at your option) ++# any later version. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++ ++# You should have received a copy of the GNU General Public License ++# along with this program. If not, see . ++ ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that program. ++ ++# Originally written by Alexandre Oliva . ++ ++case $1 in ++ '') ++ echo "$0: No command. Try '$0 --help' for more information." 1>&2 ++ exit 1; ++ ;; ++ -h | --h*) ++ cat <<\EOF ++Usage: depcomp [--help] [--version] PROGRAM [ARGS] ++ ++Run PROGRAMS ARGS to compile a file, generating dependencies ++as side-effects. ++ ++Environment variables: ++ depmode Dependency tracking mode. ++ source Source file read by 'PROGRAMS ARGS'. ++ object Object file output by 'PROGRAMS ARGS'. ++ DEPDIR directory where to store dependencies. ++ depfile Dependency file to output. ++ tmpdepfile Temporary file to use when outputting dependencies. ++ libtool Whether libtool is used (yes/no). ++ ++Report bugs to . ++EOF ++ exit $? ++ ;; ++ -v | --v*) ++ echo "depcomp $scriptversion" ++ exit $? ++ ;; ++esac ++ ++# Get the directory component of the given path, and save it in the ++# global variables '$dir'. Note that this directory component will ++# be either empty or ending with a '/' character. This is deliberate. ++set_dir_from () ++{ ++ case $1 in ++ */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; ++ *) dir=;; ++ esac ++} ++ ++# Get the suffix-stripped basename of the given path, and save it the ++# global variable '$base'. ++set_base_from () ++{ ++ base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` ++} ++ ++# If no dependency file was actually created by the compiler invocation, ++# we still have to create a dummy depfile, to avoid errors with the ++# Makefile "include basename.Plo" scheme. ++make_dummy_depfile () ++{ ++ echo "#dummy" > "$depfile" ++} ++ ++# Factor out some common post-processing of the generated depfile. ++# Requires the auxiliary global variable '$tmpdepfile' to be set. ++aix_post_process_depfile () ++{ ++ # If the compiler actually managed to produce a dependency file, ++ # post-process it. ++ if test -f "$tmpdepfile"; then ++ # Each line is of the form 'foo.o: dependency.h'. ++ # Do two passes, one to just change these to ++ # $object: dependency.h ++ # and one to simply output ++ # dependency.h: ++ # which is needed to avoid the deleted-header problem. ++ { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" ++ sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" ++ } > "$depfile" ++ rm -f "$tmpdepfile" ++ else ++ make_dummy_depfile ++ fi ++} ++ ++# A tabulation character. ++tab=' ' ++# A newline character. ++nl=' ++' ++# Character ranges might be problematic outside the C locale. ++# These definitions help. ++upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ ++lower=abcdefghijklmnopqrstuvwxyz ++digits=0123456789 ++alpha=${upper}${lower} ++ ++if test -z "$depmode" || test -z "$source" || test -z "$object"; then ++ echo "depcomp: Variables source, object and depmode must be set" 1>&2 ++ exit 1 ++fi ++ ++# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. ++depfile=${depfile-`echo "$object" | ++ sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} ++tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} ++ ++rm -f "$tmpdepfile" ++ ++# Avoid interferences from the environment. ++gccflag= dashmflag= ++ ++# Some modes work just like other modes, but use different flags. We ++# parameterize here, but still list the modes in the big case below, ++# to make depend.m4 easier to write. Note that we *cannot* use a case ++# here, because this file can only contain one case statement. ++if test "$depmode" = hp; then ++ # HP compiler uses -M and no extra arg. ++ gccflag=-M ++ depmode=gcc ++fi ++ ++if test "$depmode" = dashXmstdout; then ++ # This is just like dashmstdout with a different argument. ++ dashmflag=-xM ++ depmode=dashmstdout ++fi ++ ++cygpath_u="cygpath -u -f -" ++if test "$depmode" = msvcmsys; then ++ # This is just like msvisualcpp but w/o cygpath translation. ++ # Just convert the backslash-escaped backslashes to single forward ++ # slashes to satisfy depend.m4 ++ cygpath_u='sed s,\\\\,/,g' ++ depmode=msvisualcpp ++fi ++ ++if test "$depmode" = msvc7msys; then ++ # This is just like msvc7 but w/o cygpath translation. ++ # Just convert the backslash-escaped backslashes to single forward ++ # slashes to satisfy depend.m4 ++ cygpath_u='sed s,\\\\,/,g' ++ depmode=msvc7 ++fi ++ ++if test "$depmode" = xlc; then ++ # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. ++ gccflag=-qmakedep=gcc,-MF ++ depmode=gcc ++fi ++ ++case "$depmode" in ++gcc3) ++## gcc 3 implements dependency tracking that does exactly what ++## we want. Yay! Note: for some reason libtool 1.4 doesn't like ++## it if -MD -MP comes after the -MF stuff. Hmm. ++## Unfortunately, FreeBSD c89 acceptance of flags depends upon ++## the command line argument order; so add the flags where they ++## appear in depend2.am. Note that the slowdown incurred here ++## affects only configure: in makefiles, %FASTDEP% shortcuts this. ++ for arg ++ do ++ case $arg in ++ -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; ++ *) set fnord "$@" "$arg" ;; ++ esac ++ shift # fnord ++ shift # $arg ++ done ++ "$@" ++ stat=$? ++ if test $stat -ne 0; then ++ rm -f "$tmpdepfile" ++ exit $stat ++ fi ++ mv "$tmpdepfile" "$depfile" ++ ;; ++ ++gcc) ++## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. ++## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. ++## (see the conditional assignment to $gccflag above). ++## There are various ways to get dependency output from gcc. Here's ++## why we pick this rather obscure method: ++## - Don't want to use -MD because we'd like the dependencies to end ++## up in a subdir. Having to rename by hand is ugly. ++## (We might end up doing this anyway to support other compilers.) ++## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ++## -MM, not -M (despite what the docs say). Also, it might not be ++## supported by the other compilers which use the 'gcc' depmode. ++## - Using -M directly means running the compiler twice (even worse ++## than renaming). ++ if test -z "$gccflag"; then ++ gccflag=-MD, ++ fi ++ "$@" -Wp,"$gccflag$tmpdepfile" ++ stat=$? ++ if test $stat -ne 0; then ++ rm -f "$tmpdepfile" ++ exit $stat ++ fi ++ rm -f "$depfile" ++ echo "$object : \\" > "$depfile" ++ # The second -e expression handles DOS-style file names with drive ++ # letters. ++ sed -e 's/^[^:]*: / /' \ ++ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ++## This next piece of magic avoids the "deleted header file" problem. ++## The problem is that when a header file which appears in a .P file ++## is deleted, the dependency causes make to die (because there is ++## typically no way to rebuild the header). We avoid this by adding ++## dummy dependencies for each header file. Too bad gcc doesn't do ++## this for us directly. ++## Some versions of gcc put a space before the ':'. On the theory ++## that the space means something, we add a space to the output as ++## well. hp depmode also adds that space, but also prefixes the VPATH ++## to the object. Take care to not repeat it in the output. ++## Some versions of the HPUX 10.20 sed can't process this invocation ++## correctly. Breaking it into two sed invocations is a workaround. ++ tr ' ' "$nl" < "$tmpdepfile" \ ++ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ ++ | sed -e 's/$/ :/' >> "$depfile" ++ rm -f "$tmpdepfile" ++ ;; ++ ++hp) ++ # This case exists only to let depend.m4 do its work. It works by ++ # looking at the text of this script. This case will never be run, ++ # since it is checked for above. ++ exit 1 ++ ;; ++ ++sgi) ++ if test "$libtool" = yes; then ++ "$@" "-Wp,-MDupdate,$tmpdepfile" ++ else ++ "$@" -MDupdate "$tmpdepfile" ++ fi ++ stat=$? ++ if test $stat -ne 0; then ++ rm -f "$tmpdepfile" ++ exit $stat ++ fi ++ rm -f "$depfile" ++ ++ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files ++ echo "$object : \\" > "$depfile" ++ # Clip off the initial element (the dependent). Don't try to be ++ # clever and replace this with sed code, as IRIX sed won't handle ++ # lines with more than a fixed number of characters (4096 in ++ # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; ++ # the IRIX cc adds comments like '#:fec' to the end of the ++ # dependency line. ++ tr ' ' "$nl" < "$tmpdepfile" \ ++ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ ++ | tr "$nl" ' ' >> "$depfile" ++ echo >> "$depfile" ++ # The second pass generates a dummy entry for each header file. ++ tr ' ' "$nl" < "$tmpdepfile" \ ++ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ ++ >> "$depfile" ++ else ++ make_dummy_depfile ++ fi ++ rm -f "$tmpdepfile" ++ ;; ++ ++xlc) ++ # This case exists only to let depend.m4 do its work. It works by ++ # looking at the text of this script. This case will never be run, ++ # since it is checked for above. ++ exit 1 ++ ;; ++ ++aix) ++ # The C for AIX Compiler uses -M and outputs the dependencies ++ # in a .u file. In older versions, this file always lives in the ++ # current directory. Also, the AIX compiler puts '$object:' at the ++ # start of each line; $object doesn't have directory information. ++ # Version 6 uses the directory in both cases. ++ set_dir_from "$object" ++ set_base_from "$object" ++ if test "$libtool" = yes; then ++ tmpdepfile1=$dir$base.u ++ tmpdepfile2=$base.u ++ tmpdepfile3=$dir.libs/$base.u ++ "$@" -Wc,-M ++ else ++ tmpdepfile1=$dir$base.u ++ tmpdepfile2=$dir$base.u ++ tmpdepfile3=$dir$base.u ++ "$@" -M ++ fi ++ stat=$? ++ if test $stat -ne 0; then ++ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" ++ exit $stat ++ fi ++ ++ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" ++ do ++ test -f "$tmpdepfile" && break ++ done ++ aix_post_process_depfile ++ ;; ++ ++tcc) ++ # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 ++ # FIXME: That version still under development at the moment of writing. ++ # Make that this statement remains true also for stable, released ++ # versions. ++ # It will wrap lines (doesn't matter whether long or short) with a ++ # trailing '\', as in: ++ # ++ # foo.o : \ ++ # foo.c \ ++ # foo.h \ ++ # ++ # It will put a trailing '\' even on the last line, and will use leading ++ # spaces rather than leading tabs (at least since its commit 0394caf7 ++ # "Emit spaces for -MD"). ++ "$@" -MD -MF "$tmpdepfile" ++ stat=$? ++ if test $stat -ne 0; then ++ rm -f "$tmpdepfile" ++ exit $stat ++ fi ++ rm -f "$depfile" ++ # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. ++ # We have to change lines of the first kind to '$object: \'. ++ sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" ++ # And for each line of the second kind, we have to emit a 'dep.h:' ++ # dummy dependency, to avoid the deleted-header problem. ++ sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" ++ rm -f "$tmpdepfile" ++ ;; ++ ++## The order of this option in the case statement is important, since the ++## shell code in configure will try each of these formats in the order ++## listed in this file. A plain '-MD' option would be understood by many ++## compilers, so we must ensure this comes after the gcc and icc options. ++pgcc) ++ # Portland's C compiler understands '-MD'. ++ # Will always output deps to 'file.d' where file is the root name of the ++ # source file under compilation, even if file resides in a subdirectory. ++ # The object file name does not affect the name of the '.d' file. ++ # pgcc 10.2 will output ++ # foo.o: sub/foo.c sub/foo.h ++ # and will wrap long lines using '\' : ++ # foo.o: sub/foo.c ... \ ++ # sub/foo.h ... \ ++ # ... ++ set_dir_from "$object" ++ # Use the source, not the object, to determine the base name, since ++ # that's sadly what pgcc will do too. ++ set_base_from "$source" ++ tmpdepfile=$base.d ++ ++ # For projects that build the same source file twice into different object ++ # files, the pgcc approach of using the *source* file root name can cause ++ # problems in parallel builds. Use a locking strategy to avoid stomping on ++ # the same $tmpdepfile. ++ lockdir=$base.d-lock ++ trap " ++ echo '$0: caught signal, cleaning up...' >&2 ++ rmdir '$lockdir' ++ exit 1 ++ " 1 2 13 15 ++ numtries=100 ++ i=$numtries ++ while test $i -gt 0; do ++ # mkdir is a portable test-and-set. ++ if mkdir "$lockdir" 2>/dev/null; then ++ # This process acquired the lock. ++ "$@" -MD ++ stat=$? ++ # Release the lock. ++ rmdir "$lockdir" ++ break ++ else ++ # If the lock is being held by a different process, wait ++ # until the winning process is done or we timeout. ++ while test -d "$lockdir" && test $i -gt 0; do ++ sleep 1 ++ i=`expr $i - 1` ++ done ++ fi ++ i=`expr $i - 1` ++ done ++ trap - 1 2 13 15 ++ if test $i -le 0; then ++ echo "$0: failed to acquire lock after $numtries attempts" >&2 ++ echo "$0: check lockdir '$lockdir'" >&2 ++ exit 1 ++ fi ++ ++ if test $stat -ne 0; then ++ rm -f "$tmpdepfile" ++ exit $stat ++ fi ++ rm -f "$depfile" ++ # Each line is of the form `foo.o: dependent.h', ++ # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. ++ # Do two passes, one to just change these to ++ # `$object: dependent.h' and one to simply `dependent.h:'. ++ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" ++ # Some versions of the HPUX 10.20 sed can't process this invocation ++ # correctly. Breaking it into two sed invocations is a workaround. ++ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ ++ | sed -e 's/$/ :/' >> "$depfile" ++ rm -f "$tmpdepfile" ++ ;; ++ ++hp2) ++ # The "hp" stanza above does not work with aCC (C++) and HP's ia64 ++ # compilers, which have integrated preprocessors. The correct option ++ # to use with these is +Maked; it writes dependencies to a file named ++ # 'foo.d', which lands next to the object file, wherever that ++ # happens to be. ++ # Much of this is similar to the tru64 case; see comments there. ++ set_dir_from "$object" ++ set_base_from "$object" ++ if test "$libtool" = yes; then ++ tmpdepfile1=$dir$base.d ++ tmpdepfile2=$dir.libs/$base.d ++ "$@" -Wc,+Maked ++ else ++ tmpdepfile1=$dir$base.d ++ tmpdepfile2=$dir$base.d ++ "$@" +Maked ++ fi ++ stat=$? ++ if test $stat -ne 0; then ++ rm -f "$tmpdepfile1" "$tmpdepfile2" ++ exit $stat ++ fi ++ ++ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" ++ do ++ test -f "$tmpdepfile" && break ++ done ++ if test -f "$tmpdepfile"; then ++ sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" ++ # Add 'dependent.h:' lines. ++ sed -ne '2,${ ++ s/^ *// ++ s/ \\*$// ++ s/$/:/ ++ p ++ }' "$tmpdepfile" >> "$depfile" ++ else ++ make_dummy_depfile ++ fi ++ rm -f "$tmpdepfile" "$tmpdepfile2" ++ ;; ++ ++tru64) ++ # The Tru64 compiler uses -MD to generate dependencies as a side ++ # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. ++ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put ++ # dependencies in 'foo.d' instead, so we check for that too. ++ # Subdirectories are respected. ++ set_dir_from "$object" ++ set_base_from "$object" ++ ++ if test "$libtool" = yes; then ++ # Libtool generates 2 separate objects for the 2 libraries. These ++ # two compilations output dependencies in $dir.libs/$base.o.d and ++ # in $dir$base.o.d. We have to check for both files, because ++ # one of the two compilations can be disabled. We should prefer ++ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is ++ # automatically cleaned when .libs/ is deleted, while ignoring ++ # the former would cause a distcleancheck panic. ++ tmpdepfile1=$dir$base.o.d # libtool 1.5 ++ tmpdepfile2=$dir.libs/$base.o.d # Likewise. ++ tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 ++ "$@" -Wc,-MD ++ else ++ tmpdepfile1=$dir$base.d ++ tmpdepfile2=$dir$base.d ++ tmpdepfile3=$dir$base.d ++ "$@" -MD ++ fi ++ ++ stat=$? ++ if test $stat -ne 0; then ++ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" ++ exit $stat ++ fi ++ ++ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" ++ do ++ test -f "$tmpdepfile" && break ++ done ++ # Same post-processing that is required for AIX mode. ++ aix_post_process_depfile ++ ;; ++ ++msvc7) ++ if test "$libtool" = yes; then ++ showIncludes=-Wc,-showIncludes ++ else ++ showIncludes=-showIncludes ++ fi ++ "$@" $showIncludes > "$tmpdepfile" ++ stat=$? ++ grep -v '^Note: including file: ' "$tmpdepfile" ++ if test $stat -ne 0; then ++ rm -f "$tmpdepfile" ++ exit $stat ++ fi ++ rm -f "$depfile" ++ echo "$object : \\" > "$depfile" ++ # The first sed program below extracts the file names and escapes ++ # backslashes for cygpath. The second sed program outputs the file ++ # name when reading, but also accumulates all include files in the ++ # hold buffer in order to output them again at the end. This only ++ # works with sed implementations that can handle large buffers. ++ sed < "$tmpdepfile" -n ' ++/^Note: including file: *\(.*\)/ { ++ s//\1/ ++ s/\\/\\\\/g ++ p ++}' | $cygpath_u | sort -u | sed -n ' ++s/ /\\ /g ++s/\(.*\)/'"$tab"'\1 \\/p ++s/.\(.*\) \\/\1:/ ++H ++$ { ++ s/.*/'"$tab"'/ ++ G ++ p ++}' >> "$depfile" ++ echo >> "$depfile" # make sure the fragment doesn't end with a backslash ++ rm -f "$tmpdepfile" ++ ;; ++ ++msvc7msys) ++ # This case exists only to let depend.m4 do its work. It works by ++ # looking at the text of this script. This case will never be run, ++ # since it is checked for above. ++ exit 1 ++ ;; ++ ++#nosideeffect) ++ # This comment above is used by automake to tell side-effect ++ # dependency tracking mechanisms from slower ones. ++ ++dashmstdout) ++ # Important note: in order to support this mode, a compiler *must* ++ # always write the preprocessed file to stdout, regardless of -o. ++ "$@" || exit $? ++ ++ # Remove the call to Libtool. ++ if test "$libtool" = yes; then ++ while test "X$1" != 'X--mode=compile'; do ++ shift ++ done ++ shift ++ fi ++ ++ # Remove '-o $object'. ++ IFS=" " ++ for arg ++ do ++ case $arg in ++ -o) ++ shift ++ ;; ++ $object) ++ shift ++ ;; ++ *) ++ set fnord "$@" "$arg" ++ shift # fnord ++ shift # $arg ++ ;; ++ esac ++ done ++ ++ test -z "$dashmflag" && dashmflag=-M ++ # Require at least two characters before searching for ':' ++ # in the target name. This is to cope with DOS-style filenames: ++ # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. ++ "$@" $dashmflag | ++ sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" ++ rm -f "$depfile" ++ cat < "$tmpdepfile" > "$depfile" ++ # Some versions of the HPUX 10.20 sed can't process this sed invocation ++ # correctly. Breaking it into two sed invocations is a workaround. ++ tr ' ' "$nl" < "$tmpdepfile" \ ++ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ ++ | sed -e 's/$/ :/' >> "$depfile" ++ rm -f "$tmpdepfile" ++ ;; ++ ++dashXmstdout) ++ # This case only exists to satisfy depend.m4. It is never actually ++ # run, as this mode is specially recognized in the preamble. ++ exit 1 ++ ;; ++ ++makedepend) ++ "$@" || exit $? ++ # Remove any Libtool call ++ if test "$libtool" = yes; then ++ while test "X$1" != 'X--mode=compile'; do ++ shift ++ done ++ shift ++ fi ++ # X makedepend ++ shift ++ cleared=no eat=no ++ for arg ++ do ++ case $cleared in ++ no) ++ set ""; shift ++ cleared=yes ;; ++ esac ++ if test $eat = yes; then ++ eat=no ++ continue ++ fi ++ case "$arg" in ++ -D*|-I*) ++ set fnord "$@" "$arg"; shift ;; ++ # Strip any option that makedepend may not understand. Remove ++ # the object too, otherwise makedepend will parse it as a source file. ++ -arch) ++ eat=yes ;; ++ -*|$object) ++ ;; ++ *) ++ set fnord "$@" "$arg"; shift ;; ++ esac ++ done ++ obj_suffix=`echo "$object" | sed 's/^.*\././'` ++ touch "$tmpdepfile" ++ ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" ++ rm -f "$depfile" ++ # makedepend may prepend the VPATH from the source file name to the object. ++ # No need to regex-escape $object, excess matching of '.' is harmless. ++ sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" ++ # Some versions of the HPUX 10.20 sed can't process the last invocation ++ # correctly. Breaking it into two sed invocations is a workaround. ++ sed '1,2d' "$tmpdepfile" \ ++ | tr ' ' "$nl" \ ++ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ ++ | sed -e 's/$/ :/' >> "$depfile" ++ rm -f "$tmpdepfile" "$tmpdepfile".bak ++ ;; ++ ++cpp) ++ # Important note: in order to support this mode, a compiler *must* ++ # always write the preprocessed file to stdout. ++ "$@" || exit $? ++ ++ # Remove the call to Libtool. ++ if test "$libtool" = yes; then ++ while test "X$1" != 'X--mode=compile'; do ++ shift ++ done ++ shift ++ fi ++ ++ # Remove '-o $object'. ++ IFS=" " ++ for arg ++ do ++ case $arg in ++ -o) ++ shift ++ ;; ++ $object) ++ shift ++ ;; ++ *) ++ set fnord "$@" "$arg" ++ shift # fnord ++ shift # $arg ++ ;; ++ esac ++ done ++ ++ "$@" -E \ ++ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ ++ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ ++ | sed '$ s: \\$::' > "$tmpdepfile" ++ rm -f "$depfile" ++ echo "$object : \\" > "$depfile" ++ cat < "$tmpdepfile" >> "$depfile" ++ sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" ++ rm -f "$tmpdepfile" ++ ;; ++ ++msvisualcpp) ++ # Important note: in order to support this mode, a compiler *must* ++ # always write the preprocessed file to stdout. ++ "$@" || exit $? ++ ++ # Remove the call to Libtool. ++ if test "$libtool" = yes; then ++ while test "X$1" != 'X--mode=compile'; do ++ shift ++ done ++ shift ++ fi ++ ++ IFS=" " ++ for arg ++ do ++ case "$arg" in ++ -o) ++ shift ++ ;; ++ $object) ++ shift ++ ;; ++ "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") ++ set fnord "$@" ++ shift ++ shift ++ ;; ++ *) ++ set fnord "$@" "$arg" ++ shift ++ shift ++ ;; ++ esac ++ done ++ "$@" -E 2>/dev/null | ++ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" ++ rm -f "$depfile" ++ echo "$object : \\" > "$depfile" ++ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" ++ echo "$tab" >> "$depfile" ++ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" ++ rm -f "$tmpdepfile" ++ ;; ++ ++msvcmsys) ++ # This case exists only to let depend.m4 do its work. It works by ++ # looking at the text of this script. This case will never be run, ++ # since it is checked for above. ++ exit 1 ++ ;; ++ ++none) ++ exec "$@" ++ ;; ++ ++*) ++ echo "Unknown depmode $depmode" 1>&2 ++ exit 1 ++ ;; ++esac ++ ++exit 0 ++ ++# Local Variables: ++# mode: shell-script ++# sh-indentation: 2 ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "scriptversion=" ++# time-stamp-format: "%:y-%02m-%02d.%02H" ++# time-stamp-time-zone: "UTC" ++# time-stamp-end: "; # UTC" ++# End: +diff --git a/install-sh b/install-sh +new file mode 100755 +index 0000000..0b0fdcb +--- /dev/null ++++ b/install-sh +@@ -0,0 +1,501 @@ ++#!/bin/sh ++# install - install a program, script, or datafile ++ ++scriptversion=2013-12-25.23; # UTC ++ ++# This originates from X11R5 (mit/util/scripts/install.sh), which was ++# later released in X11R6 (xc/config/util/install.sh) with the ++# following copyright and license. ++# ++# Copyright (C) 1994 X Consortium ++# ++# Permission is hereby granted, free of charge, to any person obtaining a copy ++# of this software and associated documentation files (the "Software"), to ++# deal in the Software without restriction, including without limitation the ++# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or ++# sell copies of the Software, and to permit persons to whom the Software is ++# furnished to do so, subject to the following conditions: ++# ++# The above copyright notice and this permission notice shall be included in ++# all copies or substantial portions of the Software. ++# ++# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN ++# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- ++# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++# ++# Except as contained in this notice, the name of the X Consortium shall not ++# be used in advertising or otherwise to promote the sale, use or other deal- ++# ings in this Software without prior written authorization from the X Consor- ++# tium. ++# ++# ++# FSF changes to this file are in the public domain. ++# ++# Calling this script install-sh is preferred over install.sh, to prevent ++# 'make' implicit rules from creating a file called install from it ++# when there is no Makefile. ++# ++# This script is compatible with the BSD install script, but was written ++# from scratch. ++ ++tab=' ' ++nl=' ++' ++IFS=" $tab$nl" ++ ++# Set DOITPROG to "echo" to test this script. ++ ++doit=${DOITPROG-} ++doit_exec=${doit:-exec} ++ ++# 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_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 ++is_target_a_directory=possibly ++ ++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 ++ *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) ++ echo "$0: invalid mode: $mode" >&2 ++ exit 1;; ++ esac ++ shift;; ++ ++ -o) chowncmd="$chownprog $2" ++ shift;; ++ ++ -s) stripcmd=$stripprog;; ++ ++ -t) ++ is_target_a_directory=always ++ dst_arg=$2 ++ # Protect names problematic for 'test' and other utilities. ++ case $dst_arg in ++ -* | [=\(\)!]) dst_arg=./$dst_arg;; ++ esac ++ shift;; ++ ++ -T) is_target_a_directory=never;; ++ ++ --version) echo "$0 $scriptversion"; exit $?;; ++ ++ --) shift ++ break;; ++ ++ -*) echo "$0: invalid option: $1" >&2 ++ exit 1;; ++ ++ *) break;; ++ esac ++ shift ++done ++ ++# We allow the use of options -d and -T together, by making -d ++# take the precedence; this is for compatibility with GNU install. ++ ++if test -n "$dir_arg"; then ++ if test -n "$dst_arg"; then ++ echo "$0: target directory not allowed when installing a directory." >&2 ++ exit 1 ++ fi ++fi ++ ++if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then ++ # When -d is used, all remaining arguments are directories to create. ++ # When -t is used, the destination is already specified. ++ # Otherwise, the last argument is the destination. Remove it from $@. ++ for arg ++ do ++ if test -n "$dst_arg"; then ++ # $@ is not empty: it contains at least $arg. ++ set fnord "$@" "$dst_arg" ++ shift # fnord ++ fi ++ shift # arg ++ dst_arg=$arg ++ # Protect names problematic for 'test' and other utilities. ++ case $dst_arg in ++ -* | [=\(\)!]) dst_arg=./$dst_arg;; ++ esac ++ done ++fi ++ ++if test $# -eq 0; then ++ if test -z "$dir_arg"; then ++ echo "$0: no input file specified." >&2 ++ exit 1 ++ fi ++ # It's OK to call 'install-sh -d' without argument. ++ # This can happen when creating conditional directories. ++ exit 0 ++fi ++ ++if test -z "$dir_arg"; then ++ if test $# -gt 1 || test "$is_target_a_directory" = always; then ++ if test ! -d "$dst_arg"; then ++ echo "$0: $dst_arg: Is not a directory." >&2 ++ exit 1 ++ fi ++ fi ++fi ++ ++if test -z "$dir_arg"; then ++ do_exit='(exit $ret); exit $ret' ++ trap "ret=129; $do_exit" 1 ++ trap "ret=130; $do_exit" 2 ++ trap "ret=141; $do_exit" 13 ++ trap "ret=143; $do_exit" 15 ++ ++ # Set umask so as not to create temps with too-generous modes. ++ # However, 'strip' requires both read and write access to temps. ++ case $mode in ++ # Optimize common cases. ++ *644) cp_umask=133;; ++ *755) cp_umask=22;; ++ ++ *[0-7]) ++ if test -z "$stripcmd"; then ++ u_plus_rw= ++ else ++ u_plus_rw='% 200' ++ fi ++ cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; ++ *) ++ if test -z "$stripcmd"; then ++ u_plus_rw= ++ else ++ u_plus_rw=,u+rw ++ fi ++ cp_umask=$mode$u_plus_rw;; ++ esac ++fi ++ ++for src ++do ++ # Protect names problematic for 'test' and other utilities. ++ case $src in ++ -* | [=\(\)!]) src=./$src;; ++ esac ++ ++ if test -n "$dir_arg"; then ++ dst=$src ++ dstdir=$dst ++ test -d "$dstdir" ++ dstdir_status=$? ++ else ++ ++ # Waiting for this to be detected by the "$cpprog $src $dsttmp" command ++ # might cause directories to be created, which would be especially bad ++ # if $src (and thus $dsttmp) contains '*'. ++ if test ! -f "$src" && test ! -d "$src"; then ++ echo "$0: $src does not exist." >&2 ++ exit 1 ++ fi ++ ++ if test -z "$dst_arg"; then ++ echo "$0: no destination specified." >&2 ++ exit 1 ++ fi ++ dst=$dst_arg ++ ++ # If destination is a directory, append the input filename; won't work ++ # if double slashes aren't ignored. ++ if test -d "$dst"; then ++ if test "$is_target_a_directory" = never; then ++ echo "$0: $dst_arg: Is a directory" >&2 ++ exit 1 ++ fi ++ dstdir=$dst ++ dst=$dstdir/`basename "$src"` ++ dstdir_status=0 ++ else ++ dstdir=`dirname "$dst"` ++ test -d "$dstdir" ++ dstdir_status=$? ++ fi ++ fi ++ ++ obsolete_mkdir_used=false ++ ++ if test $dstdir_status != 0; then ++ case $posix_mkdir in ++ '') ++ # Create intermediate dirs using mode 755 as modified by the umask. ++ # This is like FreeBSD 'install' as of 1997-10-28. ++ umask=`umask` ++ case $stripcmd.$umask in ++ # Optimize common cases. ++ *[2367][2367]) mkdir_umask=$umask;; ++ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; ++ ++ *[0-7]) ++ mkdir_umask=`expr $umask + 22 \ ++ - $umask % 100 % 40 + $umask % 20 \ ++ - $umask % 10 % 4 + $umask % 2 ++ `;; ++ *) mkdir_umask=$umask,go-w;; ++ esac ++ ++ # With -d, create the new directory with the user-specified mode. ++ # Otherwise, rely on $mkdir_umask. ++ if test -n "$dir_arg"; then ++ mkdir_mode=-m$mode ++ else ++ mkdir_mode= ++ fi ++ ++ posix_mkdir=false ++ case $umask in ++ *[123567][0-7][0-7]) ++ # POSIX mkdir -p sets u+wx bits regardless of umask, which ++ # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ++ ;; ++ *) ++ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ ++ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 ++ ++ if (umask $mkdir_umask && ++ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 ++ then ++ if test -z "$dir_arg" || { ++ # Check for POSIX incompatibilities with -m. ++ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or ++ # other-writable bit of parent directory when it shouldn't. ++ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ++ ls_ld_tmpdir=`ls -ld "$tmpdir"` ++ case $ls_ld_tmpdir in ++ d????-?r-*) different_mode=700;; ++ d????-?--*) different_mode=755;; ++ *) false;; ++ esac && ++ $mkdirprog -m$different_mode -p -- "$tmpdir" && { ++ ls_ld_tmpdir_1=`ls -ld "$tmpdir"` ++ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" ++ } ++ } ++ then posix_mkdir=: ++ fi ++ rmdir "$tmpdir/d" "$tmpdir" ++ else ++ # Remove any dirs left behind by ancient mkdir implementations. ++ rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null ++ fi ++ trap '' 0;; ++ esac;; ++ esac ++ ++ if ++ $posix_mkdir && ( ++ umask $mkdir_umask && ++ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ++ ) ++ then : ++ else ++ ++ # The umask is ridiculous, or mkdir does not conform to POSIX, ++ # or it failed possibly due to a race condition. Create the ++ # directory the slow way, step by step, checking for races as we go. ++ ++ case $dstdir in ++ /*) prefix='/';; ++ [-=\(\)!]*) prefix='./';; ++ *) prefix='';; ++ esac ++ ++ oIFS=$IFS ++ IFS=/ ++ set -f ++ set fnord $dstdir ++ shift ++ set +f ++ IFS=$oIFS ++ ++ prefixes= ++ ++ for d ++ do ++ test X"$d" = X && continue ++ ++ prefix=$prefix$d ++ if test -d "$prefix"; then ++ prefixes= ++ else ++ if $posix_mkdir; then ++ (umask=$mkdir_umask && ++ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break ++ # Don't fail if two instances are running concurrently. ++ test -d "$prefix" || exit 1 ++ else ++ case $prefix in ++ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; ++ *) qprefix=$prefix;; ++ esac ++ prefixes="$prefixes '$qprefix'" ++ fi ++ fi ++ prefix=$prefix/ ++ done ++ ++ if test -n "$prefixes"; then ++ # Don't fail if two instances are running concurrently. ++ (umask $mkdir_umask && ++ eval "\$doit_exec \$mkdirprog $prefixes") || ++ test -d "$dstdir" || exit 1 ++ obsolete_mkdir_used=true ++ fi ++ fi ++ fi ++ ++ if test -n "$dir_arg"; then ++ { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && ++ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && ++ { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || ++ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 ++ else ++ ++ # Make a couple of temp file names in the proper directory. ++ dsttmp=$dstdir/_inst.$$_ ++ rmtmp=$dstdir/_rm.$$_ ++ ++ # Trap to clean up those temp files at exit. ++ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 ++ ++ # Copy the file name to the temp name. ++ (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && ++ ++ # and set any options; do chmod last to preserve setuid bits. ++ # ++ # If any of these fail, we abort the whole thing. If we want to ++ # ignore errors from any of these, just make sure not to ignore ++ # errors from the above "$doit $cpprog $src $dsttmp" command. ++ # ++ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && ++ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && ++ { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && ++ { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && ++ ++ # If -C, don't bother to copy if it wouldn't change the file. ++ if $copy_on_change && ++ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && ++ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && ++ set -f && ++ set X $old && old=:$2:$4:$5:$6 && ++ set X $new && new=:$2:$4:$5:$6 && ++ set +f && ++ test "$old" = "$new" && ++ $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 ++ then ++ rm -f "$dsttmp" ++ else ++ # Rename the file to the real destination. ++ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || ++ ++ # The rename failed, perhaps because mv can't rename something else ++ # to itself, or perhaps because mv is so ancient that it does not ++ # support -f. ++ { ++ # Now remove or move aside any old file at destination location. ++ # We try this two ways since rm can't unlink itself on some ++ # systems and the destination file might be busy for other ++ # reasons. In this case, the final cleanup might fail but the new ++ # file should still install successfully. ++ { ++ test ! -f "$dst" || ++ $doit $rmcmd -f "$dst" 2>/dev/null || ++ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && ++ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } ++ } || ++ { echo "$0: cannot unlink or rename $dst" >&2 ++ (exit 1); exit 1 ++ } ++ } && ++ ++ # Now rename the file to the real destination. ++ $doit $mvcmd "$dsttmp" "$dst" ++ } ++ fi || exit 1 ++ ++ trap '' 0 ++ fi ++done ++ ++# Local variables: ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "scriptversion=" ++# time-stamp-format: "%:y-%02m-%02d.%02H" ++# time-stamp-time-zone: "UTC" ++# time-stamp-end: "; # UTC" ++# End: +diff --git a/ltmain.sh b/ltmain.sh +new file mode 100644 +index 0000000..0f0a2da +--- /dev/null ++++ b/ltmain.sh +@@ -0,0 +1,11147 @@ ++#! /bin/sh ++## DO NOT EDIT - This file generated from ./build-aux/ltmain.in ++## by inline-source v2014-01-03.01 ++ ++# libtool (GNU libtool) 2.4.6 ++# Provide generalized library-building support services. ++# Written by Gordon Matzigkeit , 1996 ++ ++# Copyright (C) 1996-2015 Free Software Foundation, Inc. ++# This is free software; see the source for copying conditions. There is NO ++# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++ ++# GNU Libtool is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# As a special exception to the GNU General Public License, ++# if you distribute this file as part of a program or library that ++# is built using GNU Libtool, you may include this file under the ++# same distribution terms that you use for the rest of that program. ++# ++# GNU Libtool is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program. If not, see . ++ ++ ++PROGRAM=libtool ++PACKAGE=libtool ++VERSION=2.4.6 ++package_revision=2.4.6 ++ ++ ++## ------ ## ++## Usage. ## ++## ------ ## ++ ++# Run './libtool --help' for help with using this script from the ++# command line. ++ ++ ++## ------------------------------- ## ++## User overridable command paths. ## ++## ------------------------------- ## ++ ++# After configure completes, it has a better idea of some of the ++# shell tools we need than the defaults used by the functions shared ++# with bootstrap, so set those here where they can still be over- ++# ridden by the user, but otherwise take precedence. ++ ++: ${AUTOCONF="autoconf"} ++: ${AUTOMAKE="automake"} ++ ++ ++## -------------------------- ## ++## Source external libraries. ## ++## -------------------------- ## ++ ++# Much of our low-level functionality needs to be sourced from external ++# libraries, which are installed to $pkgauxdir. ++ ++# Set a version string for this script. ++scriptversion=2015-01-20.17; # UTC ++ ++# General shell script boiler plate, and helper functions. ++# Written by Gary V. Vaughan, 2004 ++ ++# Copyright (C) 2004-2015 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. ++ ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 3 of the License, or ++# (at your option) any later version. ++ ++# As a special exception to the GNU General Public License, if you distribute ++# this file as part of a program or library that is built using GNU Libtool, ++# you may include this file under the same distribution terms that you use ++# for the rest of that program. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++ ++# You should have received a copy of the GNU General Public License ++# along with this program. If not, see . ++ ++# Please report bugs or propose patches to gary@gnu.org. ++ ++ ++## ------ ## ++## Usage. ## ++## ------ ## ++ ++# Evaluate this file near the top of your script to gain access to ++# the functions and variables defined here: ++# ++# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh ++# ++# If you need to override any of the default environment variable ++# settings, do that before evaluating this file. ++ ++ ++## -------------------- ## ++## Shell normalisation. ## ++## -------------------- ## ++ ++# Some shells need a little help to be as Bourne compatible as possible. ++# Before doing anything else, make sure all that help has been provided! ++ ++DUALCASE=1; export DUALCASE # for MKS sh ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : ++ emulate sh ++ NULLCMD=: ++ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which ++ # is contrary to our usage. Disable this feature. ++ alias -g '${1+"$@"}'='"$@"' ++ setopt NO_GLOB_SUBST ++else ++ case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac ++fi ++ ++# NLS nuisances: We save the old values in case they are required later. ++_G_user_locale= ++_G_safe_locale= ++for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES ++do ++ eval "if test set = \"\${$_G_var+set}\"; then ++ save_$_G_var=\$$_G_var ++ $_G_var=C ++ export $_G_var ++ _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" ++ _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" ++ fi" ++done ++ ++# CDPATH. ++(unset CDPATH) >/dev/null 2>&1 && unset CDPATH ++ ++# Make sure IFS has a sensible default ++sp=' ' ++nl=' ++' ++IFS="$sp $nl" ++ ++# There are apparently some retarded systems that use ';' as a PATH separator! ++if test "${PATH_SEPARATOR+set}" != set; then ++ PATH_SEPARATOR=: ++ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { ++ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || ++ PATH_SEPARATOR=';' ++ } ++fi ++ ++ ++ ++## ------------------------- ## ++## Locate command utilities. ## ++## ------------------------- ## ++ ++ ++# func_executable_p FILE ++# ---------------------- ++# Check that FILE is an executable regular file. ++func_executable_p () ++{ ++ test -f "$1" && test -x "$1" ++} ++ ++ ++# func_path_progs PROGS_LIST CHECK_FUNC [PATH] ++# -------------------------------------------- ++# Search for either a program that responds to --version with output ++# containing "GNU", or else returned by CHECK_FUNC otherwise, by ++# trying all the directories in PATH with each of the elements of ++# PROGS_LIST. ++# ++# CHECK_FUNC should accept the path to a candidate program, and ++# set $func_check_prog_result if it truncates its output less than ++# $_G_path_prog_max characters. ++func_path_progs () ++{ ++ _G_progs_list=$1 ++ _G_check_func=$2 ++ _G_PATH=${3-"$PATH"} ++ ++ _G_path_prog_max=0 ++ _G_path_prog_found=false ++ _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} ++ for _G_dir in $_G_PATH; do ++ IFS=$_G_save_IFS ++ test -z "$_G_dir" && _G_dir=. ++ for _G_prog_name in $_G_progs_list; do ++ for _exeext in '' .EXE; do ++ _G_path_prog=$_G_dir/$_G_prog_name$_exeext ++ func_executable_p "$_G_path_prog" || continue ++ case `"$_G_path_prog" --version 2>&1` in ++ *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; ++ *) $_G_check_func $_G_path_prog ++ func_path_progs_result=$func_check_prog_result ++ ;; ++ esac ++ $_G_path_prog_found && break 3 ++ done ++ done ++ done ++ IFS=$_G_save_IFS ++ test -z "$func_path_progs_result" && { ++ echo "no acceptable sed could be found in \$PATH" >&2 ++ exit 1 ++ } ++} ++ ++ ++# We want to be able to use the functions in this file before configure ++# has figured out where the best binaries are kept, which means we have ++# to search for them ourselves - except when the results are already set ++# where we skip the searches. ++ ++# Unless the user overrides by setting SED, search the path for either GNU ++# sed, or the sed that truncates its output the least. ++test -z "$SED" && { ++ _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ ++ for _G_i in 1 2 3 4 5 6 7; do ++ _G_sed_script=$_G_sed_script$nl$_G_sed_script ++ done ++ echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed ++ _G_sed_script= ++ ++ func_check_prog_sed () ++ { ++ _G_path_prog=$1 ++ ++ _G_count=0 ++ printf 0123456789 >conftest.in ++ while : ++ do ++ cat conftest.in conftest.in >conftest.tmp ++ mv conftest.tmp conftest.in ++ cp conftest.in conftest.nl ++ echo '' >> conftest.nl ++ "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break ++ diff conftest.out conftest.nl >/dev/null 2>&1 || break ++ _G_count=`expr $_G_count + 1` ++ if test "$_G_count" -gt "$_G_path_prog_max"; then ++ # Best one so far, save it but keep looking for a better one ++ func_check_prog_result=$_G_path_prog ++ _G_path_prog_max=$_G_count ++ fi ++ # 10*(2^10) chars as input seems more than enough ++ test 10 -lt "$_G_count" && break ++ done ++ rm -f conftest.in conftest.tmp conftest.nl conftest.out ++ } ++ ++ func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin ++ rm -f conftest.sed ++ SED=$func_path_progs_result ++} ++ ++ ++# Unless the user overrides by setting GREP, search the path for either GNU ++# grep, or the grep that truncates its output the least. ++test -z "$GREP" && { ++ func_check_prog_grep () ++ { ++ _G_path_prog=$1 ++ ++ _G_count=0 ++ _G_path_prog_max=0 ++ printf 0123456789 >conftest.in ++ while : ++ do ++ cat conftest.in conftest.in >conftest.tmp ++ mv conftest.tmp conftest.in ++ cp conftest.in conftest.nl ++ echo 'GREP' >> conftest.nl ++ "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break ++ diff conftest.out conftest.nl >/dev/null 2>&1 || break ++ _G_count=`expr $_G_count + 1` ++ if test "$_G_count" -gt "$_G_path_prog_max"; then ++ # Best one so far, save it but keep looking for a better one ++ func_check_prog_result=$_G_path_prog ++ _G_path_prog_max=$_G_count ++ fi ++ # 10*(2^10) chars as input seems more than enough ++ test 10 -lt "$_G_count" && break ++ done ++ rm -f conftest.in conftest.tmp conftest.nl conftest.out ++ } ++ ++ func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin ++ GREP=$func_path_progs_result ++} ++ ++ ++## ------------------------------- ## ++## User overridable command paths. ## ++## ------------------------------- ## ++ ++# All uppercase variable names are used for environment variables. These ++# variables can be overridden by the user before calling a script that ++# uses them if a suitable command of that name is not already available ++# in the command search PATH. ++ ++: ${CP="cp -f"} ++: ${ECHO="printf %s\n"} ++: ${EGREP="$GREP -E"} ++: ${FGREP="$GREP -F"} ++: ${LN_S="ln -s"} ++: ${MAKE="make"} ++: ${MKDIR="mkdir"} ++: ${MV="mv -f"} ++: ${RM="rm -f"} ++: ${SHELL="${CONFIG_SHELL-/bin/sh}"} ++ ++ ++## -------------------- ## ++## Useful sed snippets. ## ++## -------------------- ## ++ ++sed_dirname='s|/[^/]*$||' ++sed_basename='s|^.*/||' ++ ++# Sed substitution that helps us do robust quoting. It backslashifies ++# metacharacters that are still active within double-quoted strings. ++sed_quote_subst='s|\([`"$\\]\)|\\\1|g' ++ ++# Same as above, but do not quote variable references. ++sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' ++ ++# Sed substitution that turns a string into a regex matching for the ++# string literally. ++sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' ++ ++# Sed substitution that converts a w32 file name or path ++# that contains forward slashes, into one that contains ++# (escaped) backslashes. A very naive implementation. ++sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' ++ ++# Re-'\' parameter expansions in output of sed_double_quote_subst that ++# were '\'-ed in input to the same. If an odd number of '\' preceded a ++# '$' in input to sed_double_quote_subst, that '$' was protected from ++# expansion. Since each input '\' is now two '\'s, look for any number ++# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. ++_G_bs='\\' ++_G_bs2='\\\\' ++_G_bs4='\\\\\\\\' ++_G_dollar='\$' ++sed_double_backslash="\ ++ s/$_G_bs4/&\\ ++/g ++ s/^$_G_bs2$_G_dollar/$_G_bs&/ ++ s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g ++ s/\n//g" ++ ++ ++## ----------------- ## ++## Global variables. ## ++## ----------------- ## ++ ++# Except for the global variables explicitly listed below, the following ++# functions in the '^func_' namespace, and the '^require_' namespace ++# variables initialised in the 'Resource management' section, sourcing ++# this file will not pollute your global namespace with anything ++# else. There's no portable way to scope variables in Bourne shell ++# though, so actually running these functions will sometimes place ++# results into a variable named after the function, and often use ++# temporary variables in the '^_G_' namespace. If you are careful to ++# avoid using those namespaces casually in your sourcing script, things ++# should continue to work as you expect. And, of course, you can freely ++# overwrite any of the functions or variables defined here before ++# calling anything to customize them. ++ ++EXIT_SUCCESS=0 ++EXIT_FAILURE=1 ++EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. ++EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. ++ ++# Allow overriding, eg assuming that you follow the convention of ++# putting '$debug_cmd' at the start of all your functions, you can get ++# bash to show function call trace with: ++# ++# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name ++debug_cmd=${debug_cmd-":"} ++exit_cmd=: ++ ++# By convention, finish your script with: ++# ++# exit $exit_status ++# ++# so that you can set exit_status to non-zero if you want to indicate ++# something went wrong during execution without actually bailing out at ++# the point of failure. ++exit_status=$EXIT_SUCCESS ++ ++# 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 "$sed_basename"` ++ ++# Make sure we have an absolute progpath for reexecution: ++case $progpath in ++ [\\/]*|[A-Za-z]:\\*) ;; ++ *[\\/]*) ++ progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` ++ progdir=`cd "$progdir" && pwd` ++ progpath=$progdir/$progname ++ ;; ++ *) ++ _G_IFS=$IFS ++ IFS=${PATH_SEPARATOR-:} ++ for progdir in $PATH; do ++ IFS=$_G_IFS ++ test -x "$progdir/$progname" && break ++ done ++ IFS=$_G_IFS ++ test -n "$progdir" || progdir=`pwd` ++ progpath=$progdir/$progname ++ ;; ++esac ++ ++ ++## ----------------- ## ++## Standard options. ## ++## ----------------- ## ++ ++# The following options affect the operation of the functions defined ++# below, and should be set appropriately depending on run-time para- ++# meters passed on the command line. ++ ++opt_dry_run=false ++opt_quiet=false ++opt_verbose=false ++ ++# Categories 'all' and 'none' are always available. Append any others ++# you will pass as the first argument to func_warning from your own ++# code. ++warning_categories= ++ ++# By default, display warnings according to 'opt_warning_types'. Set ++# 'warning_func' to ':' to elide all warnings, or func_fatal_error to ++# treat the next displayed warning as a fatal error. ++warning_func=func_warn_and_continue ++ ++# Set to 'all' to display all warnings, 'none' to suppress all ++# warnings, or a space delimited list of some subset of ++# 'warning_categories' to display only the listed warnings. ++opt_warning_types=all ++ ++ ++## -------------------- ## ++## Resource management. ## ++## -------------------- ## ++ ++# This section contains definitions for functions that each ensure a ++# particular resource (a file, or a non-empty configuration variable for ++# example) is available, and if appropriate to extract default values ++# from pertinent package files. Call them using their associated ++# 'require_*' variable to ensure that they are executed, at most, once. ++# ++# It's entirely deliberate that calling these functions can set ++# variables that don't obey the namespace limitations obeyed by the rest ++# of this file, in order that that they be as useful as possible to ++# callers. ++ ++ ++# require_term_colors ++# ------------------- ++# Allow display of bold text on terminals that support it. ++require_term_colors=func_require_term_colors ++func_require_term_colors () ++{ ++ $debug_cmd ++ ++ test -t 1 && { ++ # COLORTERM and USE_ANSI_COLORS environment variables take ++ # precedence, because most terminfo databases neglect to describe ++ # whether color sequences are supported. ++ test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} ++ ++ if test 1 = "$USE_ANSI_COLORS"; then ++ # Standard ANSI escape sequences ++ tc_reset='' ++ tc_bold=''; tc_standout='' ++ tc_red=''; tc_green='' ++ tc_blue=''; tc_cyan='' ++ else ++ # Otherwise trust the terminfo database after all. ++ test -n "`tput sgr0 2>/dev/null`" && { ++ tc_reset=`tput sgr0` ++ test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` ++ tc_standout=$tc_bold ++ test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` ++ test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` ++ test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` ++ test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` ++ test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` ++ } ++ fi ++ } ++ ++ require_term_colors=: ++} ++ ++ ++## ----------------- ## ++## Function library. ## ++## ----------------- ## ++ ++# This section contains a variety of useful functions to call in your ++# scripts. Take note of the portable wrappers for features provided by ++# some modern shells, which will fall back to slower equivalents on ++# less featureful shells. ++ ++ ++# func_append VAR VALUE ++# --------------------- ++# Append VALUE onto the existing contents of VAR. ++ ++ # We should try to minimise forks, especially on Windows where they are ++ # unreasonably slow, so skip the feature probes when bash or zsh are ++ # being used: ++ if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then ++ : ${_G_HAVE_ARITH_OP="yes"} ++ : ${_G_HAVE_XSI_OPS="yes"} ++ # The += operator was introduced in bash 3.1 ++ case $BASH_VERSION in ++ [12].* | 3.0 | 3.0*) ;; ++ *) ++ : ${_G_HAVE_PLUSEQ_OP="yes"} ++ ;; ++ esac ++ fi ++ ++ # _G_HAVE_PLUSEQ_OP ++ # Can be empty, in which case the shell is probed, "yes" if += is ++ # useable or anything else if it does not work. ++ test -z "$_G_HAVE_PLUSEQ_OP" \ ++ && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ ++ && _G_HAVE_PLUSEQ_OP=yes ++ ++if test yes = "$_G_HAVE_PLUSEQ_OP" ++then ++ # This is an XSI compatible shell, allowing a faster implementation... ++ eval 'func_append () ++ { ++ $debug_cmd ++ ++ eval "$1+=\$2" ++ }' ++else ++ # ...otherwise fall back to using expr, which is often a shell builtin. ++ func_append () ++ { ++ $debug_cmd ++ ++ eval "$1=\$$1\$2" ++ } ++fi ++ ++ ++# func_append_quoted VAR VALUE ++# ---------------------------- ++# Quote VALUE and append to the end of shell variable VAR, separated ++# by a space. ++if test yes = "$_G_HAVE_PLUSEQ_OP"; then ++ eval 'func_append_quoted () ++ { ++ $debug_cmd ++ ++ func_quote_for_eval "$2" ++ eval "$1+=\\ \$func_quote_for_eval_result" ++ }' ++else ++ func_append_quoted () ++ { ++ $debug_cmd ++ ++ func_quote_for_eval "$2" ++ eval "$1=\$$1\\ \$func_quote_for_eval_result" ++ } ++fi ++ ++ ++# func_append_uniq VAR VALUE ++# -------------------------- ++# Append unique VALUE onto the existing contents of VAR, assuming ++# entries are delimited by the first character of VALUE. For example: ++# ++# func_append_uniq options " --another-option option-argument" ++# ++# will only append to $options if " --another-option option-argument " ++# is not already present somewhere in $options already (note spaces at ++# each end implied by leading space in second argument). ++func_append_uniq () ++{ ++ $debug_cmd ++ ++ eval _G_current_value='`$ECHO $'$1'`' ++ _G_delim=`expr "$2" : '\(.\)'` ++ ++ case $_G_delim$_G_current_value$_G_delim in ++ *"$2$_G_delim"*) ;; ++ *) func_append "$@" ;; ++ esac ++} ++ ++ ++# func_arith TERM... ++# ------------------ ++# Set func_arith_result to the result of evaluating TERMs. ++ test -z "$_G_HAVE_ARITH_OP" \ ++ && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ ++ && _G_HAVE_ARITH_OP=yes ++ ++if test yes = "$_G_HAVE_ARITH_OP"; then ++ eval 'func_arith () ++ { ++ $debug_cmd ++ ++ func_arith_result=$(( $* )) ++ }' ++else ++ func_arith () ++ { ++ $debug_cmd ++ ++ func_arith_result=`expr "$@"` ++ } ++fi ++ ++ ++# func_basename FILE ++# ------------------ ++# Set func_basename_result to FILE with everything up to and including ++# the last / stripped. ++if test yes = "$_G_HAVE_XSI_OPS"; then ++ # If this shell supports suffix pattern removal, then use it to avoid ++ # forking. Hide the definitions single quotes in case the shell chokes ++ # on unsupported syntax... ++ _b='func_basename_result=${1##*/}' ++ _d='case $1 in ++ */*) func_dirname_result=${1%/*}$2 ;; ++ * ) func_dirname_result=$3 ;; ++ esac' ++ ++else ++ # ...otherwise fall back to using sed. ++ _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' ++ _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` ++ if test "X$func_dirname_result" = "X$1"; then ++ func_dirname_result=$3 ++ else ++ func_append func_dirname_result "$2" ++ fi' ++fi ++ ++eval 'func_basename () ++{ ++ $debug_cmd ++ ++ '"$_b"' ++}' ++ ++ ++# func_dirname FILE APPEND NONDIR_REPLACEMENT ++# ------------------------------------------- ++# Compute the dirname of FILE. If nonempty, add APPEND to the result, ++# otherwise set result to NONDIR_REPLACEMENT. ++eval 'func_dirname () ++{ ++ $debug_cmd ++ ++ '"$_d"' ++}' ++ ++ ++# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT ++# -------------------------------------------------------- ++# Perform func_basename and func_dirname in a single function ++# call: ++# dirname: Compute the dirname of FILE. If nonempty, ++# add APPEND to the result, otherwise set result ++# to NONDIR_REPLACEMENT. ++# value returned in "$func_dirname_result" ++# basename: Compute filename of FILE. ++# value retuned in "$func_basename_result" ++# For efficiency, we do not delegate to the functions above but instead ++# duplicate the functionality here. ++eval 'func_dirname_and_basename () ++{ ++ $debug_cmd ++ ++ '"$_b"' ++ '"$_d"' ++}' ++ ++ ++# func_echo ARG... ++# ---------------- ++# Echo program name prefixed message. ++func_echo () ++{ ++ $debug_cmd ++ ++ _G_message=$* ++ ++ func_echo_IFS=$IFS ++ IFS=$nl ++ for _G_line in $_G_message; do ++ IFS=$func_echo_IFS ++ $ECHO "$progname: $_G_line" ++ done ++ IFS=$func_echo_IFS ++} ++ ++ ++# func_echo_all ARG... ++# -------------------- ++# Invoke $ECHO with all args, space-separated. ++func_echo_all () ++{ ++ $ECHO "$*" ++} ++ ++ ++# func_echo_infix_1 INFIX ARG... ++# ------------------------------ ++# Echo program name, followed by INFIX on the first line, with any ++# additional lines not showing INFIX. ++func_echo_infix_1 () ++{ ++ $debug_cmd ++ ++ $require_term_colors ++ ++ _G_infix=$1; shift ++ _G_indent=$_G_infix ++ _G_prefix="$progname: $_G_infix: " ++ _G_message=$* ++ ++ # Strip color escape sequences before counting printable length ++ for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" ++ do ++ test -n "$_G_tc" && { ++ _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` ++ _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` ++ } ++ done ++ _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes ++ ++ func_echo_infix_1_IFS=$IFS ++ IFS=$nl ++ for _G_line in $_G_message; do ++ IFS=$func_echo_infix_1_IFS ++ $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 ++ _G_prefix=$_G_indent ++ done ++ IFS=$func_echo_infix_1_IFS ++} ++ ++ ++# func_error ARG... ++# ----------------- ++# Echo program name prefixed message to standard error. ++func_error () ++{ ++ $debug_cmd ++ ++ $require_term_colors ++ ++ func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 ++} ++ ++ ++# func_fatal_error ARG... ++# ----------------------- ++# Echo program name prefixed message to standard error, and exit. ++func_fatal_error () ++{ ++ $debug_cmd ++ ++ func_error "$*" ++ exit $EXIT_FAILURE ++} ++ ++ ++# func_grep EXPRESSION FILENAME ++# ----------------------------- ++# Check whether EXPRESSION matches any line of FILENAME, without output. ++func_grep () ++{ ++ $debug_cmd ++ ++ $GREP "$1" "$2" >/dev/null 2>&1 ++} ++ ++ ++# func_len STRING ++# --------------- ++# Set func_len_result to the length of STRING. STRING may not ++# start with a hyphen. ++ test -z "$_G_HAVE_XSI_OPS" \ ++ && (eval 'x=a/b/c; ++ test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ ++ && _G_HAVE_XSI_OPS=yes ++ ++if test yes = "$_G_HAVE_XSI_OPS"; then ++ eval 'func_len () ++ { ++ $debug_cmd ++ ++ func_len_result=${#1} ++ }' ++else ++ func_len () ++ { ++ $debug_cmd ++ ++ func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` ++ } ++fi ++ ++ ++# func_mkdir_p DIRECTORY-PATH ++# --------------------------- ++# Make sure the entire path to DIRECTORY-PATH is available. ++func_mkdir_p () ++{ ++ $debug_cmd ++ ++ _G_directory_path=$1 ++ _G_dir_list= ++ ++ if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then ++ ++ # Protect directory names starting with '-' ++ case $_G_directory_path in ++ -*) _G_directory_path=./$_G_directory_path ;; ++ esac ++ ++ # While some portion of DIR does not yet exist... ++ while test ! -d "$_G_directory_path"; do ++ # ...make a list in topmost first order. Use a colon delimited ++ # list incase some portion of path contains whitespace. ++ _G_dir_list=$_G_directory_path:$_G_dir_list ++ ++ # If the last portion added has no slash in it, the list is done ++ case $_G_directory_path in */*) ;; *) break ;; esac ++ ++ # ...otherwise throw away the child directory and loop ++ _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` ++ done ++ _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` ++ ++ func_mkdir_p_IFS=$IFS; IFS=: ++ for _G_dir in $_G_dir_list; do ++ IFS=$func_mkdir_p_IFS ++ # mkdir can fail with a 'File exist' error if two processes ++ # try to create one of the directories concurrently. Don't ++ # stop in that case! ++ $MKDIR "$_G_dir" 2>/dev/null || : ++ done ++ IFS=$func_mkdir_p_IFS ++ ++ # Bail out if we (or some other process) failed to create a directory. ++ test -d "$_G_directory_path" || \ ++ func_fatal_error "Failed to create '$1'" ++ fi ++} ++ ++ ++# func_mktempdir [BASENAME] ++# ------------------------- ++# Make a temporary directory that won't clash with other running ++# libtool processes, and avoids race conditions if possible. If ++# given, BASENAME is the basename for that directory. ++func_mktempdir () ++{ ++ $debug_cmd ++ ++ _G_template=${TMPDIR-/tmp}/${1-$progname} ++ ++ if test : = "$opt_dry_run"; then ++ # Return a directory name, but don't create it in dry-run mode ++ _G_tmpdir=$_G_template-$$ ++ else ++ ++ # If mktemp works, use that first and foremost ++ _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` ++ ++ if test ! -d "$_G_tmpdir"; then ++ # Failing that, at least try and use $RANDOM to avoid a race ++ _G_tmpdir=$_G_template-${RANDOM-0}$$ ++ ++ func_mktempdir_umask=`umask` ++ umask 0077 ++ $MKDIR "$_G_tmpdir" ++ umask $func_mktempdir_umask ++ fi ++ ++ # If we're not in dry-run mode, bomb out on failure ++ test -d "$_G_tmpdir" || \ ++ func_fatal_error "cannot create temporary directory '$_G_tmpdir'" ++ fi ++ ++ $ECHO "$_G_tmpdir" ++} ++ ++ ++# func_normal_abspath PATH ++# ------------------------ ++# Remove doubled-up and trailing slashes, "." path components, ++# and cancel out any ".." path components in PATH after making ++# it an absolute path. ++func_normal_abspath () ++{ ++ $debug_cmd ++ ++ # These SED scripts presuppose an absolute path with a trailing slash. ++ _G_pathcar='s|^/\([^/]*\).*$|\1|' ++ _G_pathcdr='s|^/[^/]*||' ++ _G_removedotparts=':dotsl ++ s|/\./|/|g ++ t dotsl ++ s|/\.$|/|' ++ _G_collapseslashes='s|/\{1,\}|/|g' ++ _G_finalslash='s|/*$|/|' ++ ++ # Start from root dir and reassemble the path. ++ func_normal_abspath_result= ++ func_normal_abspath_tpath=$1 ++ func_normal_abspath_altnamespace= ++ case $func_normal_abspath_tpath in ++ "") ++ # Empty path, that just means $cwd. ++ func_stripname '' '/' "`pwd`" ++ func_normal_abspath_result=$func_stripname_result ++ return ++ ;; ++ # The next three entries are used to spot a run of precisely ++ # two leading slashes without using negated character classes; ++ # we take advantage of case's first-match behaviour. ++ ///*) ++ # Unusual form of absolute path, do nothing. ++ ;; ++ //*) ++ # Not necessarily an ordinary path; POSIX reserves leading '//' ++ # and for example Cygwin uses it to access remote file shares ++ # over CIFS/SMB, so we conserve a leading double slash if found. ++ func_normal_abspath_altnamespace=/ ++ ;; ++ /*) ++ # Absolute path, do nothing. ++ ;; ++ *) ++ # Relative path, prepend $cwd. ++ func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ++ ;; ++ esac ++ ++ # Cancel out all the simple stuff to save iterations. We also want ++ # the path to end with a slash for ease of parsing, so make sure ++ # there is one (and only one) here. ++ func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ ++ -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` ++ while :; do ++ # Processed it all yet? ++ if test / = "$func_normal_abspath_tpath"; then ++ # If we ascended to the root using ".." the result may be empty now. ++ if test -z "$func_normal_abspath_result"; then ++ func_normal_abspath_result=/ ++ fi ++ break ++ fi ++ func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ ++ -e "$_G_pathcar"` ++ func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ ++ -e "$_G_pathcdr"` ++ # Figure out what to do with it ++ case $func_normal_abspath_tcomponent in ++ "") ++ # Trailing empty path component, ignore it. ++ ;; ++ ..) ++ # Parent dir; strip last assembled component from result. ++ func_dirname "$func_normal_abspath_result" ++ func_normal_abspath_result=$func_dirname_result ++ ;; ++ *) ++ # Actual path component, append it. ++ func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" ++ ;; ++ esac ++ done ++ # Restore leading double-slash if one was found on entry. ++ func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result ++} ++ ++ ++# func_notquiet ARG... ++# -------------------- ++# Echo program name prefixed message only when not in quiet mode. ++func_notquiet () ++{ ++ $debug_cmd ++ ++ $opt_quiet || func_echo ${1+"$@"} ++ ++ # A bug in bash halts the script if the last line of a function ++ # fails when set -e is in force, so we need another command to ++ # work around that: ++ : ++} ++ ++ ++# func_relative_path SRCDIR DSTDIR ++# -------------------------------- ++# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. ++func_relative_path () ++{ ++ $debug_cmd ++ ++ func_relative_path_result= ++ func_normal_abspath "$1" ++ func_relative_path_tlibdir=$func_normal_abspath_result ++ func_normal_abspath "$2" ++ func_relative_path_tbindir=$func_normal_abspath_result ++ ++ # Ascend the tree starting from libdir ++ while :; do ++ # check if we have found a prefix of bindir ++ case $func_relative_path_tbindir in ++ $func_relative_path_tlibdir) ++ # found an exact match ++ func_relative_path_tcancelled= ++ break ++ ;; ++ $func_relative_path_tlibdir*) ++ # found a matching prefix ++ func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" ++ func_relative_path_tcancelled=$func_stripname_result ++ if test -z "$func_relative_path_result"; then ++ func_relative_path_result=. ++ fi ++ break ++ ;; ++ *) ++ func_dirname $func_relative_path_tlibdir ++ func_relative_path_tlibdir=$func_dirname_result ++ if test -z "$func_relative_path_tlibdir"; then ++ # Have to descend all the way to the root! ++ func_relative_path_result=../$func_relative_path_result ++ func_relative_path_tcancelled=$func_relative_path_tbindir ++ break ++ fi ++ func_relative_path_result=../$func_relative_path_result ++ ;; ++ esac ++ done ++ ++ # Now calculate path; take care to avoid doubling-up slashes. ++ func_stripname '' '/' "$func_relative_path_result" ++ func_relative_path_result=$func_stripname_result ++ func_stripname '/' '/' "$func_relative_path_tcancelled" ++ if test -n "$func_stripname_result"; then ++ func_append func_relative_path_result "/$func_stripname_result" ++ fi ++ ++ # Normalisation. If bindir is libdir, return '.' else relative path. ++ if test -n "$func_relative_path_result"; then ++ func_stripname './' '' "$func_relative_path_result" ++ func_relative_path_result=$func_stripname_result ++ fi ++ ++ test -n "$func_relative_path_result" || func_relative_path_result=. ++ ++ : ++} ++ ++ ++# func_quote_for_eval ARG... ++# -------------------------- ++# Aesthetically quote ARGs to be evaled later. ++# This function returns two values: ++# i) func_quote_for_eval_result ++# double-quoted, suitable for a subsequent eval ++# ii) func_quote_for_eval_unquoted_result ++# has all characters that are still active within double ++# quotes backslashified. ++func_quote_for_eval () ++{ ++ $debug_cmd ++ ++ func_quote_for_eval_unquoted_result= ++ func_quote_for_eval_result= ++ while test 0 -lt $#; do ++ case $1 in ++ *[\\\`\"\$]*) ++ _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; ++ *) ++ _G_unquoted_arg=$1 ;; ++ esac ++ if test -n "$func_quote_for_eval_unquoted_result"; then ++ func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" ++ else ++ func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" ++ fi ++ ++ case $_G_unquoted_arg in ++ # Double-quote args containing shell metacharacters to delay ++ # word splitting, command substitution and variable expansion ++ # for a subsequent eval. ++ # Many Bourne shells cannot handle close brackets correctly ++ # in scan sets, so we specify it separately. ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ _G_quoted_arg=\"$_G_unquoted_arg\" ++ ;; ++ *) ++ _G_quoted_arg=$_G_unquoted_arg ++ ;; ++ esac ++ ++ if test -n "$func_quote_for_eval_result"; then ++ func_append func_quote_for_eval_result " $_G_quoted_arg" ++ else ++ func_append func_quote_for_eval_result "$_G_quoted_arg" ++ fi ++ shift ++ done ++} ++ ++ ++# func_quote_for_expand ARG ++# ------------------------- ++# Aesthetically quote ARG to be evaled later; same as above, ++# but do not quote variable references. ++func_quote_for_expand () ++{ ++ $debug_cmd ++ ++ case $1 in ++ *[\\\`\"]*) ++ _G_arg=`$ECHO "$1" | $SED \ ++ -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; ++ *) ++ _G_arg=$1 ;; ++ esac ++ ++ case $_G_arg in ++ # Double-quote args containing shell metacharacters to delay ++ # word splitting and command substitution for a subsequent eval. ++ # Many Bourne shells cannot handle close brackets correctly ++ # in scan sets, so we specify it separately. ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ _G_arg=\"$_G_arg\" ++ ;; ++ esac ++ ++ func_quote_for_expand_result=$_G_arg ++} ++ ++ ++# func_stripname PREFIX SUFFIX NAME ++# --------------------------------- ++# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. ++# PREFIX and SUFFIX must not contain globbing or regex special ++# characters, hashes, percent signs, but SUFFIX may contain a leading ++# dot (in which case that matches only a dot). ++if test yes = "$_G_HAVE_XSI_OPS"; then ++ eval 'func_stripname () ++ { ++ $debug_cmd ++ ++ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are ++ # positional parameters, so assign one to ordinary variable first. ++ func_stripname_result=$3 ++ func_stripname_result=${func_stripname_result#"$1"} ++ func_stripname_result=${func_stripname_result%"$2"} ++ }' ++else ++ func_stripname () ++ { ++ $debug_cmd ++ ++ case $2 in ++ .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; ++ *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; ++ esac ++ } ++fi ++ ++ ++# func_show_eval CMD [FAIL_EXP] ++# ----------------------------- ++# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is ++# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP ++# is given, then evaluate it. ++func_show_eval () ++{ ++ $debug_cmd ++ ++ _G_cmd=$1 ++ _G_fail_exp=${2-':'} ++ ++ func_quote_for_expand "$_G_cmd" ++ eval "func_notquiet $func_quote_for_expand_result" ++ ++ $opt_dry_run || { ++ eval "$_G_cmd" ++ _G_status=$? ++ if test 0 -ne "$_G_status"; then ++ eval "(exit $_G_status); $_G_fail_exp" ++ fi ++ } ++} ++ ++ ++# func_show_eval_locale CMD [FAIL_EXP] ++# ------------------------------------ ++# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is ++# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP ++# is given, then evaluate it. Use the saved locale for evaluation. ++func_show_eval_locale () ++{ ++ $debug_cmd ++ ++ _G_cmd=$1 ++ _G_fail_exp=${2-':'} ++ ++ $opt_quiet || { ++ func_quote_for_expand "$_G_cmd" ++ eval "func_echo $func_quote_for_expand_result" ++ } ++ ++ $opt_dry_run || { ++ eval "$_G_user_locale ++ $_G_cmd" ++ _G_status=$? ++ eval "$_G_safe_locale" ++ if test 0 -ne "$_G_status"; then ++ eval "(exit $_G_status); $_G_fail_exp" ++ fi ++ } ++} ++ ++ ++# func_tr_sh ++# ---------- ++# Turn $1 into a string suitable for a shell variable name. ++# Result is stored in $func_tr_sh_result. All characters ++# not in the set a-zA-Z0-9_ are replaced with '_'. Further, ++# if $1 begins with a digit, a '_' is prepended as well. ++func_tr_sh () ++{ ++ $debug_cmd ++ ++ case $1 in ++ [0-9]* | *[!a-zA-Z0-9_]*) ++ func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` ++ ;; ++ * ) ++ func_tr_sh_result=$1 ++ ;; ++ esac ++} ++ ++ ++# func_verbose ARG... ++# ------------------- ++# Echo program name prefixed message in verbose mode only. ++func_verbose () ++{ ++ $debug_cmd ++ ++ $opt_verbose && func_echo "$*" ++ ++ : ++} ++ ++ ++# func_warn_and_continue ARG... ++# ----------------------------- ++# Echo program name prefixed warning message to standard error. ++func_warn_and_continue () ++{ ++ $debug_cmd ++ ++ $require_term_colors ++ ++ func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 ++} ++ ++ ++# func_warning CATEGORY ARG... ++# ---------------------------- ++# Echo program name prefixed warning message to standard error. Warning ++# messages can be filtered according to CATEGORY, where this function ++# elides messages where CATEGORY is not listed in the global variable ++# 'opt_warning_types'. ++func_warning () ++{ ++ $debug_cmd ++ ++ # CATEGORY must be in the warning_categories list! ++ case " $warning_categories " in ++ *" $1 "*) ;; ++ *) func_internal_error "invalid warning category '$1'" ;; ++ esac ++ ++ _G_category=$1 ++ shift ++ ++ case " $opt_warning_types " in ++ *" $_G_category "*) $warning_func ${1+"$@"} ;; ++ esac ++} ++ ++ ++# func_sort_ver VER1 VER2 ++# ----------------------- ++# 'sort -V' is not generally available. ++# Note this deviates from the version comparison in automake ++# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a ++# but this should suffice as we won't be specifying old ++# version formats or redundant trailing .0 in bootstrap.conf. ++# If we did want full compatibility then we should probably ++# use m4_version_compare from autoconf. ++func_sort_ver () ++{ ++ $debug_cmd ++ ++ printf '%s\n%s\n' "$1" "$2" \ ++ | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n ++} ++ ++# func_lt_ver PREV CURR ++# --------------------- ++# Return true if PREV and CURR are in the correct order according to ++# func_sort_ver, otherwise false. Use it like this: ++# ++# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." ++func_lt_ver () ++{ ++ $debug_cmd ++ ++ test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` ++} ++ ++ ++# Local variables: ++# mode: shell-script ++# sh-indentation: 2 ++# eval: (add-hook 'before-save-hook 'time-stamp) ++# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" ++# time-stamp-time-zone: "UTC" ++# End: ++#! /bin/sh ++ ++# Set a version string for this script. ++scriptversion=2014-01-07.03; # UTC ++ ++# A portable, pluggable option parser for Bourne shell. ++# Written by Gary V. Vaughan, 2010 ++ ++# Copyright (C) 2010-2015 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. ++ ++# This program is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++ ++# You should have received a copy of the GNU General Public License ++# along with this program. If not, see . ++ ++# Please report bugs or propose patches to gary@gnu.org. ++ ++ ++## ------ ## ++## Usage. ## ++## ------ ## ++ ++# This file is a library for parsing options in your shell scripts along ++# with assorted other useful supporting features that you can make use ++# of too. ++# ++# For the simplest scripts you might need only: ++# ++# #!/bin/sh ++# . relative/path/to/funclib.sh ++# . relative/path/to/options-parser ++# scriptversion=1.0 ++# func_options ${1+"$@"} ++# eval set dummy "$func_options_result"; shift ++# ...rest of your script... ++# ++# In order for the '--version' option to work, you will need to have a ++# suitably formatted comment like the one at the top of this file ++# starting with '# Written by ' and ending with '# warranty; '. ++# ++# For '-h' and '--help' to work, you will also need a one line ++# description of your script's purpose in a comment directly above the ++# '# Written by ' line, like the one at the top of this file. ++# ++# The default options also support '--debug', which will turn on shell ++# execution tracing (see the comment above debug_cmd below for another ++# use), and '--verbose' and the func_verbose function to allow your script ++# to display verbose messages only when your user has specified ++# '--verbose'. ++# ++# After sourcing this file, you can plug processing for additional ++# options by amending the variables from the 'Configuration' section ++# below, and following the instructions in the 'Option parsing' ++# section further down. ++ ++## -------------- ## ++## Configuration. ## ++## -------------- ## ++ ++# You should override these variables in your script after sourcing this ++# file so that they reflect the customisations you have added to the ++# option parser. ++ ++# The usage line for option parsing errors and the start of '-h' and ++# '--help' output messages. You can embed shell variables for delayed ++# expansion at the time the message is displayed, but you will need to ++# quote other shell meta-characters carefully to prevent them being ++# expanded when the contents are evaled. ++usage='$progpath [OPTION]...' ++ ++# Short help message in response to '-h' and '--help'. Add to this or ++# override it after sourcing this library to reflect the full set of ++# options your script accepts. ++usage_message="\ ++ --debug enable verbose shell tracing ++ -W, --warnings=CATEGORY ++ report the warnings falling in CATEGORY [all] ++ -v, --verbose verbosely report processing ++ --version print version information and exit ++ -h, --help print short or long help message and exit ++" ++ ++# Additional text appended to 'usage_message' in response to '--help'. ++long_help_message=" ++Warning categories include: ++ 'all' show all warnings ++ 'none' turn off all the warnings ++ 'error' warnings are treated as fatal errors" ++ ++# Help message printed before fatal option parsing errors. ++fatal_help="Try '\$progname --help' for more information." ++ ++ ++ ++## ------------------------- ## ++## Hook function management. ## ++## ------------------------- ## ++ ++# This section contains functions for adding, removing, and running hooks ++# to the main code. A hook is just a named list of of function, that can ++# be run in order later on. ++ ++# func_hookable FUNC_NAME ++# ----------------------- ++# Declare that FUNC_NAME will run hooks added with ++# 'func_add_hook FUNC_NAME ...'. ++func_hookable () ++{ ++ $debug_cmd ++ ++ func_append hookable_fns " $1" ++} ++ ++ ++# func_add_hook FUNC_NAME HOOK_FUNC ++# --------------------------------- ++# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must ++# first have been declared "hookable" by a call to 'func_hookable'. ++func_add_hook () ++{ ++ $debug_cmd ++ ++ case " $hookable_fns " in ++ *" $1 "*) ;; ++ *) func_fatal_error "'$1' does not accept hook functions." ;; ++ esac ++ ++ eval func_append ${1}_hooks '" $2"' ++} ++ ++ ++# func_remove_hook FUNC_NAME HOOK_FUNC ++# ------------------------------------ ++# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. ++func_remove_hook () ++{ ++ $debug_cmd ++ ++ eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' ++} ++ ++ ++# func_run_hooks FUNC_NAME [ARG]... ++# --------------------------------- ++# Run all hook functions registered to FUNC_NAME. ++# It is assumed that the list of hook functions contains nothing more ++# than a whitespace-delimited list of legal shell function names, and ++# no effort is wasted trying to catch shell meta-characters or preserve ++# whitespace. ++func_run_hooks () ++{ ++ $debug_cmd ++ ++ case " $hookable_fns " in ++ *" $1 "*) ;; ++ *) func_fatal_error "'$1' does not support hook funcions.n" ;; ++ esac ++ ++ eval _G_hook_fns=\$$1_hooks; shift ++ ++ for _G_hook in $_G_hook_fns; do ++ eval $_G_hook '"$@"' ++ ++ # store returned options list back into positional ++ # parameters for next 'cmd' execution. ++ eval _G_hook_result=\$${_G_hook}_result ++ eval set dummy "$_G_hook_result"; shift ++ done ++ ++ func_quote_for_eval ${1+"$@"} ++ func_run_hooks_result=$func_quote_for_eval_result ++} ++ ++ ++ ++## --------------- ## ++## Option parsing. ## ++## --------------- ## ++ ++# In order to add your own option parsing hooks, you must accept the ++# full positional parameter list in your hook function, remove any ++# options that you action, and then pass back the remaining unprocessed ++# options in '_result', escaped suitably for ++# 'eval'. Like this: ++# ++# my_options_prep () ++# { ++# $debug_cmd ++# ++# # Extend the existing usage message. ++# usage_message=$usage_message' ++# -s, --silent don'\''t print informational messages ++# ' ++# ++# func_quote_for_eval ${1+"$@"} ++# my_options_prep_result=$func_quote_for_eval_result ++# } ++# func_add_hook func_options_prep my_options_prep ++# ++# ++# my_silent_option () ++# { ++# $debug_cmd ++# ++# # Note that for efficiency, we parse as many options as we can ++# # recognise in a loop before passing the remainder back to the ++# # caller on the first unrecognised argument we encounter. ++# while test $# -gt 0; do ++# opt=$1; shift ++# case $opt in ++# --silent|-s) opt_silent=: ;; ++# # Separate non-argument short options: ++# -s*) func_split_short_opt "$_G_opt" ++# set dummy "$func_split_short_opt_name" \ ++# "-$func_split_short_opt_arg" ${1+"$@"} ++# shift ++# ;; ++# *) set dummy "$_G_opt" "$*"; shift; break ;; ++# esac ++# done ++# ++# func_quote_for_eval ${1+"$@"} ++# my_silent_option_result=$func_quote_for_eval_result ++# } ++# func_add_hook func_parse_options my_silent_option ++# ++# ++# my_option_validation () ++# { ++# $debug_cmd ++# ++# $opt_silent && $opt_verbose && func_fatal_help "\ ++# '--silent' and '--verbose' options are mutually exclusive." ++# ++# func_quote_for_eval ${1+"$@"} ++# my_option_validation_result=$func_quote_for_eval_result ++# } ++# func_add_hook func_validate_options my_option_validation ++# ++# You'll alse need to manually amend $usage_message to reflect the extra ++# options you parse. It's preferable to append if you can, so that ++# multiple option parsing hooks can be added safely. ++ ++ ++# func_options [ARG]... ++# --------------------- ++# All the functions called inside func_options are hookable. See the ++# individual implementations for details. ++func_hookable func_options ++func_options () ++{ ++ $debug_cmd ++ ++ func_options_prep ${1+"$@"} ++ eval func_parse_options \ ++ ${func_options_prep_result+"$func_options_prep_result"} ++ eval func_validate_options \ ++ ${func_parse_options_result+"$func_parse_options_result"} ++ ++ eval func_run_hooks func_options \ ++ ${func_validate_options_result+"$func_validate_options_result"} ++ ++ # save modified positional parameters for caller ++ func_options_result=$func_run_hooks_result ++} ++ ++ ++# func_options_prep [ARG]... ++# -------------------------- ++# All initialisations required before starting the option parse loop. ++# Note that when calling hook functions, we pass through the list of ++# positional parameters. If a hook function modifies that list, and ++# needs to propogate that back to rest of this script, then the complete ++# modified list must be put in 'func_run_hooks_result' before ++# returning. ++func_hookable func_options_prep ++func_options_prep () ++{ ++ $debug_cmd ++ ++ # Option defaults: ++ opt_verbose=false ++ opt_warning_types= ++ ++ func_run_hooks func_options_prep ${1+"$@"} ++ ++ # save modified positional parameters for caller ++ func_options_prep_result=$func_run_hooks_result ++} ++ ++ ++# func_parse_options [ARG]... ++# --------------------------- ++# The main option parsing loop. ++func_hookable func_parse_options ++func_parse_options () ++{ ++ $debug_cmd ++ ++ func_parse_options_result= ++ ++ # this just eases exit handling ++ while test $# -gt 0; do ++ # Defer to hook functions for initial option parsing, so they ++ # get priority in the event of reusing an option name. ++ func_run_hooks func_parse_options ${1+"$@"} ++ ++ # Adjust func_parse_options positional parameters to match ++ eval set dummy "$func_run_hooks_result"; shift ++ ++ # Break out of the loop if we already parsed every option. ++ test $# -gt 0 || break ++ ++ _G_opt=$1 ++ shift ++ case $_G_opt in ++ --debug|-x) debug_cmd='set -x' ++ func_echo "enabling shell trace mode" ++ $debug_cmd ++ ;; ++ ++ --no-warnings|--no-warning|--no-warn) ++ set dummy --warnings none ${1+"$@"} ++ shift ++ ;; ++ ++ --warnings|--warning|-W) ++ test $# = 0 && func_missing_arg $_G_opt && break ++ case " $warning_categories $1" in ++ *" $1 "*) ++ # trailing space prevents matching last $1 above ++ func_append_uniq opt_warning_types " $1" ++ ;; ++ *all) ++ opt_warning_types=$warning_categories ++ ;; ++ *none) ++ opt_warning_types=none ++ warning_func=: ++ ;; ++ *error) ++ opt_warning_types=$warning_categories ++ warning_func=func_fatal_error ++ ;; ++ *) ++ func_fatal_error \ ++ "unsupported warning category: '$1'" ++ ;; ++ esac ++ shift ++ ;; ++ ++ --verbose|-v) opt_verbose=: ;; ++ --version) func_version ;; ++ -\?|-h) func_usage ;; ++ --help) func_help ;; ++ ++ # Separate optargs to long options (plugins may need this): ++ --*=*) func_split_equals "$_G_opt" ++ set dummy "$func_split_equals_lhs" \ ++ "$func_split_equals_rhs" ${1+"$@"} ++ shift ++ ;; ++ ++ # Separate optargs to short options: ++ -W*) ++ func_split_short_opt "$_G_opt" ++ set dummy "$func_split_short_opt_name" \ ++ "$func_split_short_opt_arg" ${1+"$@"} ++ shift ++ ;; ++ ++ # Separate non-argument short options: ++ -\?*|-h*|-v*|-x*) ++ func_split_short_opt "$_G_opt" ++ set dummy "$func_split_short_opt_name" \ ++ "-$func_split_short_opt_arg" ${1+"$@"} ++ shift ++ ;; ++ ++ --) break ;; ++ -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; ++ *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; ++ esac ++ done ++ ++ # save modified positional parameters for caller ++ func_quote_for_eval ${1+"$@"} ++ func_parse_options_result=$func_quote_for_eval_result ++} ++ ++ ++# func_validate_options [ARG]... ++# ------------------------------ ++# Perform any sanity checks on option settings and/or unconsumed ++# arguments. ++func_hookable func_validate_options ++func_validate_options () ++{ ++ $debug_cmd ++ ++ # Display all warnings if -W was not given. ++ test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" ++ ++ func_run_hooks func_validate_options ${1+"$@"} ++ ++ # Bail if the options were screwed! ++ $exit_cmd $EXIT_FAILURE ++ ++ # save modified positional parameters for caller ++ func_validate_options_result=$func_run_hooks_result ++} ++ ++ ++ ++## ----------------- ## ++## Helper functions. ## ++## ----------------- ## ++ ++# This section contains the helper functions used by the rest of the ++# hookable option parser framework in ascii-betical order. ++ ++ ++# func_fatal_help ARG... ++# ---------------------- ++# Echo program name prefixed message to standard error, followed by ++# a help hint, and exit. ++func_fatal_help () ++{ ++ $debug_cmd ++ ++ eval \$ECHO \""Usage: $usage"\" ++ eval \$ECHO \""$fatal_help"\" ++ func_error ${1+"$@"} ++ exit $EXIT_FAILURE ++} ++ ++ ++# func_help ++# --------- ++# Echo long help message to standard output and exit. ++func_help () ++{ ++ $debug_cmd ++ ++ func_usage_message ++ $ECHO "$long_help_message" ++ exit 0 ++} ++ ++ ++# func_missing_arg ARGNAME ++# ------------------------ ++# Echo program name prefixed message to standard error and set global ++# exit_cmd. ++func_missing_arg () ++{ ++ $debug_cmd ++ ++ func_error "Missing argument for '$1'." ++ exit_cmd=exit ++} ++ ++ ++# func_split_equals STRING ++# ------------------------ ++# Set func_split_equals_lhs and func_split_equals_rhs shell variables after ++# splitting STRING at the '=' sign. ++test -z "$_G_HAVE_XSI_OPS" \ ++ && (eval 'x=a/b/c; ++ test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ ++ && _G_HAVE_XSI_OPS=yes ++ ++if test yes = "$_G_HAVE_XSI_OPS" ++then ++ # This is an XSI compatible shell, allowing a faster implementation... ++ eval 'func_split_equals () ++ { ++ $debug_cmd ++ ++ func_split_equals_lhs=${1%%=*} ++ func_split_equals_rhs=${1#*=} ++ test "x$func_split_equals_lhs" = "x$1" \ ++ && func_split_equals_rhs= ++ }' ++else ++ # ...otherwise fall back to using expr, which is often a shell builtin. ++ func_split_equals () ++ { ++ $debug_cmd ++ ++ func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` ++ func_split_equals_rhs= ++ test "x$func_split_equals_lhs" = "x$1" \ ++ || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` ++ } ++fi #func_split_equals ++ ++ ++# func_split_short_opt SHORTOPT ++# ----------------------------- ++# Set func_split_short_opt_name and func_split_short_opt_arg shell ++# variables after splitting SHORTOPT after the 2nd character. ++if test yes = "$_G_HAVE_XSI_OPS" ++then ++ # This is an XSI compatible shell, allowing a faster implementation... ++ eval 'func_split_short_opt () ++ { ++ $debug_cmd ++ ++ func_split_short_opt_arg=${1#??} ++ func_split_short_opt_name=${1%"$func_split_short_opt_arg"} ++ }' ++else ++ # ...otherwise fall back to using expr, which is often a shell builtin. ++ func_split_short_opt () ++ { ++ $debug_cmd ++ ++ func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` ++ func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` ++ } ++fi #func_split_short_opt ++ ++ ++# func_usage ++# ---------- ++# Echo short help message to standard output and exit. ++func_usage () ++{ ++ $debug_cmd ++ ++ func_usage_message ++ $ECHO "Run '$progname --help |${PAGER-more}' for full usage" ++ exit 0 ++} ++ ++ ++# func_usage_message ++# ------------------ ++# Echo short help message to standard output. ++func_usage_message () ++{ ++ $debug_cmd ++ ++ eval \$ECHO \""Usage: $usage"\" ++ echo ++ $SED -n 's|^# || ++ /^Written by/{ ++ x;p;x ++ } ++ h ++ /^Written by/q' < "$progpath" ++ echo ++ eval \$ECHO \""$usage_message"\" ++} ++ ++ ++# func_version ++# ------------ ++# Echo version message to standard output and exit. ++func_version () ++{ ++ $debug_cmd ++ ++ printf '%s\n' "$progname $scriptversion" ++ $SED -n ' ++ /(C)/!b go ++ :more ++ /\./!{ ++ N ++ s|\n# | | ++ b more ++ } ++ :go ++ /^# Written by /,/# warranty; / { ++ s|^# || ++ s|^# *$|| ++ s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| ++ p ++ } ++ /^# Written by / { ++ s|^# || ++ p ++ } ++ /^warranty; /q' < "$progpath" ++ ++ exit $? ++} ++ ++ ++# Local variables: ++# mode: shell-script ++# sh-indentation: 2 ++# eval: (add-hook 'before-save-hook 'time-stamp) ++# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" ++# time-stamp-time-zone: "UTC" ++# End: ++ ++# Set a version string. ++scriptversion='(GNU libtool) 2.4.6' ++ ++ ++# func_echo ARG... ++# ---------------- ++# Libtool also displays the current mode in messages, so override ++# funclib.sh func_echo with this custom definition. ++func_echo () ++{ ++ $debug_cmd ++ ++ _G_message=$* ++ ++ func_echo_IFS=$IFS ++ IFS=$nl ++ for _G_line in $_G_message; do ++ IFS=$func_echo_IFS ++ $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" ++ done ++ IFS=$func_echo_IFS ++} ++ ++ ++# func_warning ARG... ++# ------------------- ++# Libtool warnings are not categorized, so override funclib.sh ++# func_warning with this simpler definition. ++func_warning () ++{ ++ $debug_cmd ++ ++ $warning_func ${1+"$@"} ++} ++ ++ ++## ---------------- ## ++## Options parsing. ## ++## ---------------- ## ++ ++# Hook in the functions to make sure our own options are parsed during ++# the option parsing loop. ++ ++usage='$progpath [OPTION]... [MODE-ARG]...' ++ ++# Short help message in response to '-h'. ++usage_message="Options: ++ --config show all configuration variables ++ --debug enable verbose shell tracing ++ -n, --dry-run display commands without modifying any files ++ --features display basic configuration information and exit ++ --mode=MODE use operation mode MODE ++ --no-warnings equivalent to '-Wnone' ++ --preserve-dup-deps don't remove duplicate dependency libraries ++ --quiet, --silent don't print informational messages ++ --tag=TAG use configuration variables from tag TAG ++ -v, --verbose print more informational messages than default ++ --version print version information ++ -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] ++ -h, --help, --help-all print short, long, or detailed help message ++" ++ ++# Additional text appended to 'usage_message' in response to '--help'. ++func_help () ++{ ++ $debug_cmd ++ ++ func_usage_message ++ $ECHO "$long_help_message ++ ++MODE must be one of the following: ++ ++ clean remove files from the build directory ++ compile compile a source file into a libtool object ++ execute automatically set library path, then run a program ++ finish complete the installation of libtool libraries ++ install install libraries or executables ++ link create a library or an executable ++ uninstall remove libraries from an installed directory ++ ++MODE-ARGS vary depending on the MODE. When passed as first option, ++'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. ++Try '$progname --help --mode=MODE' for a more detailed description of MODE. ++ ++When reporting a bug, please describe a test case to reproduce it and ++include the following information: ++ ++ host-triplet: $host ++ shell: $SHELL ++ compiler: $LTCC ++ compiler flags: $LTCFLAGS ++ linker: $LD (gnu? $with_gnu_ld) ++ version: $progname (GNU libtool) 2.4.6 ++ automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` ++ autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` ++ ++Report bugs to . ++GNU libtool home page: . ++General help using GNU software: ." ++ exit 0 ++} ++ ++ ++# func_lo2o OBJECT-NAME ++# --------------------- ++# Transform OBJECT-NAME from a '.lo' suffix to the platform specific ++# object suffix. ++ ++lo2o=s/\\.lo\$/.$objext/ ++o2lo=s/\\.$objext\$/.lo/ ++ ++if test yes = "$_G_HAVE_XSI_OPS"; then ++ eval 'func_lo2o () ++ { ++ case $1 in ++ *.lo) func_lo2o_result=${1%.lo}.$objext ;; ++ * ) func_lo2o_result=$1 ;; ++ esac ++ }' ++ ++ # func_xform LIBOBJ-OR-SOURCE ++ # --------------------------- ++ # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) ++ # suffix to a '.lo' libtool-object suffix. ++ eval 'func_xform () ++ { ++ func_xform_result=${1%.*}.lo ++ }' ++else ++ # ...otherwise fall back to using sed. ++ func_lo2o () ++ { ++ func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` ++ } ++ ++ func_xform () ++ { ++ func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` ++ } ++fi ++ ++ ++# func_fatal_configuration ARG... ++# ------------------------------- ++# Echo program name prefixed message to standard error, followed by ++# a configuration failure hint, and exit. ++func_fatal_configuration () ++{ ++ func__fatal_error ${1+"$@"} \ ++ "See the $PACKAGE documentation for more information." \ ++ "Fatal configuration error." ++} ++ ++ ++# func_config ++# ----------- ++# Display the configuration for all the tags in this script. ++func_config () ++{ ++ re_begincf='^# ### BEGIN LIBTOOL' ++ re_endcf='^# ### END LIBTOOL' ++ ++ # Default configuration. ++ $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" ++ ++ # Now print the configurations for the tags. ++ for tagname in $taglist; do ++ $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" ++ done ++ ++ exit $? ++} ++ ++ ++# func_features ++# ------------- ++# Display the features supported by this script. ++func_features () ++{ ++ echo "host: $host" ++ if test yes = "$build_libtool_libs"; then ++ echo "enable shared libraries" ++ else ++ echo "disable shared libraries" ++ fi ++ if test yes = "$build_old_libs"; then ++ echo "enable static libraries" ++ else ++ echo "disable static libraries" ++ fi ++ ++ exit $? ++} ++ ++ ++# func_enable_tag TAGNAME ++# ----------------------- ++# Verify that TAGNAME is valid, and either flag an error and exit, or ++# enable the TAGNAME tag. We also add TAGNAME to the global $taglist ++# variable here. ++func_enable_tag () ++{ ++ # Global variable: ++ tagname=$1 ++ ++ re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" ++ re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" ++ sed_extractcf=/$re_begincf/,/$re_endcf/p ++ ++ # Validate tagname. ++ case $tagname in ++ *[!-_A-Za-z0-9,/]*) ++ func_fatal_error "invalid tag name: $tagname" ++ ;; ++ esac ++ ++ # Don't test for the "default" C tag, as we know it's ++ # there but not specially marked. ++ case $tagname in ++ CC) ;; ++ *) ++ if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then ++ taglist="$taglist $tagname" ++ ++ # Evaluate the configuration. Be careful to quote the path ++ # and the sed script, to avoid splitting on whitespace, but ++ # also don't use non-portable quotes within backquotes within ++ # quotes we have to do it in 2 steps: ++ extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` ++ eval "$extractedcf" ++ else ++ func_error "ignoring unknown tag $tagname" ++ fi ++ ;; ++ esac ++} ++ ++ ++# func_check_version_match ++# ------------------------ ++# Ensure that we are using m4 macros, and libtool script from the same ++# release of libtool. ++func_check_version_match () ++{ ++ if test "$package_revision" != "$macro_revision"; then ++ if test "$VERSION" != "$macro_version"; then ++ if test -z "$macro_version"; then ++ cat >&2 <<_LT_EOF ++$progname: Version mismatch error. This is $PACKAGE $VERSION, but the ++$progname: definition of this LT_INIT comes from an older release. ++$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION ++$progname: and run autoconf again. ++_LT_EOF ++ else ++ cat >&2 <<_LT_EOF ++$progname: Version mismatch error. This is $PACKAGE $VERSION, but the ++$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. ++$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION ++$progname: and run autoconf again. ++_LT_EOF ++ fi ++ else ++ cat >&2 <<_LT_EOF ++$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, ++$progname: but the definition of this LT_INIT comes from revision $macro_revision. ++$progname: You should recreate aclocal.m4 with macros from revision $package_revision ++$progname: of $PACKAGE $VERSION and run autoconf again. ++_LT_EOF ++ fi ++ ++ exit $EXIT_MISMATCH ++ fi ++} ++ ++ ++# libtool_options_prep [ARG]... ++# ----------------------------- ++# Preparation for options parsed by libtool. ++libtool_options_prep () ++{ ++ $debug_mode ++ ++ # Option defaults: ++ opt_config=false ++ opt_dlopen= ++ opt_dry_run=false ++ opt_help=false ++ opt_mode= ++ opt_preserve_dup_deps=false ++ opt_quiet=false ++ ++ nonopt= ++ preserve_args= ++ ++ # Shorthand for --mode=foo, only valid as the first argument ++ case $1 in ++ clean|clea|cle|cl) ++ shift; set dummy --mode clean ${1+"$@"}; shift ++ ;; ++ compile|compil|compi|comp|com|co|c) ++ shift; set dummy --mode compile ${1+"$@"}; shift ++ ;; ++ execute|execut|execu|exec|exe|ex|e) ++ shift; set dummy --mode execute ${1+"$@"}; shift ++ ;; ++ finish|finis|fini|fin|fi|f) ++ shift; set dummy --mode finish ${1+"$@"}; shift ++ ;; ++ install|instal|insta|inst|ins|in|i) ++ shift; set dummy --mode install ${1+"$@"}; shift ++ ;; ++ link|lin|li|l) ++ shift; set dummy --mode link ${1+"$@"}; shift ++ ;; ++ uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) ++ shift; set dummy --mode uninstall ${1+"$@"}; shift ++ ;; ++ esac ++ ++ # Pass back the list of options. ++ func_quote_for_eval ${1+"$@"} ++ libtool_options_prep_result=$func_quote_for_eval_result ++} ++func_add_hook func_options_prep libtool_options_prep ++ ++ ++# libtool_parse_options [ARG]... ++# --------------------------------- ++# Provide handling for libtool specific options. ++libtool_parse_options () ++{ ++ $debug_cmd ++ ++ # Perform our own loop to consume as many options as possible in ++ # each iteration. ++ while test $# -gt 0; do ++ _G_opt=$1 ++ shift ++ case $_G_opt in ++ --dry-run|--dryrun|-n) ++ opt_dry_run=: ++ ;; ++ ++ --config) func_config ;; ++ ++ --dlopen|-dlopen) ++ opt_dlopen="${opt_dlopen+$opt_dlopen ++}$1" ++ shift ++ ;; ++ ++ --preserve-dup-deps) ++ opt_preserve_dup_deps=: ;; ++ ++ --features) func_features ;; ++ ++ --finish) set dummy --mode finish ${1+"$@"}; shift ;; ++ ++ --help) opt_help=: ;; ++ ++ --help-all) opt_help=': help-all' ;; ++ ++ --mode) test $# = 0 && func_missing_arg $_G_opt && break ++ opt_mode=$1 ++ case $1 in ++ # Valid mode arguments: ++ clean|compile|execute|finish|install|link|relink|uninstall) ;; ++ ++ # Catch anything else as an error ++ *) func_error "invalid argument for $_G_opt" ++ exit_cmd=exit ++ break ++ ;; ++ esac ++ shift ++ ;; ++ ++ --no-silent|--no-quiet) ++ opt_quiet=false ++ func_append preserve_args " $_G_opt" ++ ;; ++ ++ --no-warnings|--no-warning|--no-warn) ++ opt_warning=false ++ func_append preserve_args " $_G_opt" ++ ;; ++ ++ --no-verbose) ++ opt_verbose=false ++ func_append preserve_args " $_G_opt" ++ ;; ++ ++ --silent|--quiet) ++ opt_quiet=: ++ opt_verbose=false ++ func_append preserve_args " $_G_opt" ++ ;; ++ ++ --tag) test $# = 0 && func_missing_arg $_G_opt && break ++ opt_tag=$1 ++ func_append preserve_args " $_G_opt $1" ++ func_enable_tag "$1" ++ shift ++ ;; ++ ++ --verbose|-v) opt_quiet=false ++ opt_verbose=: ++ func_append preserve_args " $_G_opt" ++ ;; ++ ++ # An option not handled by this hook function: ++ *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; ++ esac ++ done ++ ++ ++ # save modified positional parameters for caller ++ func_quote_for_eval ${1+"$@"} ++ libtool_parse_options_result=$func_quote_for_eval_result ++} ++func_add_hook func_parse_options libtool_parse_options ++ ++ ++ ++# libtool_validate_options [ARG]... ++# --------------------------------- ++# Perform any sanity checks on option settings and/or unconsumed ++# arguments. ++libtool_validate_options () ++{ ++ # save first non-option argument ++ if test 0 -lt $#; then ++ nonopt=$1 ++ shift ++ fi ++ ++ # preserve --debug ++ test : = "$debug_cmd" || func_append preserve_args " --debug" ++ ++ case $host in ++ # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 ++ # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 ++ *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) ++ # don't eliminate duplications in $postdeps and $predeps ++ opt_duplicate_compiler_generated_deps=: ++ ;; ++ *) ++ opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ++ ;; ++ esac ++ ++ $opt_help || { ++ # Sanity checks first: ++ func_check_version_match ++ ++ test yes != "$build_libtool_libs" \ ++ && test yes != "$build_old_libs" \ ++ && func_fatal_configuration "not configured to build any kind of library" ++ ++ # Darwin sucks ++ eval std_shrext=\"$shrext_cmds\" ++ ++ # Only execute mode is allowed to have -dlopen flags. ++ if test -n "$opt_dlopen" && test execute != "$opt_mode"; then ++ func_error "unrecognized option '-dlopen'" ++ $ECHO "$help" 1>&2 ++ exit $EXIT_FAILURE ++ fi ++ ++ # Change the help message to a mode-specific one. ++ generic_help=$help ++ help="Try '$progname --help --mode=$opt_mode' for more information." ++ } ++ ++ # Pass back the unparsed argument list ++ func_quote_for_eval ${1+"$@"} ++ libtool_validate_options_result=$func_quote_for_eval_result ++} ++func_add_hook func_validate_options libtool_validate_options ++ ++ ++# Process options as early as possible so that --help and --version ++# can return quickly. ++func_options ${1+"$@"} ++eval set dummy "$func_options_result"; shift ++ ++ ++ ++## ----------- ## ++## Main. ## ++## ----------- ## ++ ++magic='%%%MAGIC variable%%%' ++magic_exe='%%%MAGIC EXE variable%%%' ++ ++# Global variables. ++extracted_archives= ++extracted_serial=0 ++ ++# If this variable is set in any of the actions, the command in it ++# will be execed at the end. This prevents here-documents from being ++# left over by shells. ++exec_cmd= ++ ++ ++# A function that is used when there is no print builtin or printf. ++func_fallback_echo () ++{ ++ eval 'cat <<_LTECHO_EOF ++$1 ++_LTECHO_EOF' ++} ++ ++# func_generated_by_libtool ++# True iff stdin has been generated by Libtool. This function is only ++# a basic sanity check; it will hardly flush out determined imposters. ++func_generated_by_libtool_p () ++{ ++ $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 ++} ++ ++# func_lalib_p file ++# True iff FILE is a libtool '.la' library or '.lo' object file. ++# This function is only a basic sanity check; it will hardly flush out ++# determined imposters. ++func_lalib_p () ++{ ++ test -f "$1" && ++ $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p ++} ++ ++# func_lalib_unsafe_p file ++# True iff FILE is a libtool '.la' library or '.lo' object file. ++# This function implements the same check as func_lalib_p without ++# resorting to external programs. To this end, it redirects stdin and ++# closes it afterwards, without saving the original file descriptor. ++# As a safety measure, use it only where a negative result would be ++# fatal anyway. Works if 'file' does not exist. ++func_lalib_unsafe_p () ++{ ++ lalib_p=no ++ if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then ++ for lalib_p_l in 1 2 3 4 ++ do ++ read lalib_p_line ++ case $lalib_p_line in ++ \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; ++ esac ++ done ++ exec 0<&5 5<&- ++ fi ++ test yes = "$lalib_p" ++} ++ ++# func_ltwrapper_script_p file ++# True iff FILE is a libtool wrapper script ++# This function is only a basic sanity check; it will hardly flush out ++# determined imposters. ++func_ltwrapper_script_p () ++{ ++ test -f "$1" && ++ $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p ++} ++ ++# func_ltwrapper_executable_p file ++# True iff FILE is a libtool wrapper executable ++# This function is only a basic sanity check; it will hardly flush out ++# determined imposters. ++func_ltwrapper_executable_p () ++{ ++ func_ltwrapper_exec_suffix= ++ case $1 in ++ *.exe) ;; ++ *) func_ltwrapper_exec_suffix=.exe ;; ++ esac ++ $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 ++} ++ ++# func_ltwrapper_scriptname file ++# Assumes file is an ltwrapper_executable ++# uses $file to determine the appropriate filename for a ++# temporary ltwrapper_script. ++func_ltwrapper_scriptname () ++{ ++ func_dirname_and_basename "$1" "" "." ++ func_stripname '' '.exe' "$func_basename_result" ++ func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper ++} ++ ++# func_ltwrapper_p file ++# True iff FILE is a libtool wrapper script or wrapper executable ++# This function is only a basic sanity check; it will hardly flush out ++# determined imposters. ++func_ltwrapper_p () ++{ ++ func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" ++} ++ ++ ++# func_execute_cmds commands fail_cmd ++# Execute tilde-delimited COMMANDS. ++# If FAIL_CMD is given, eval that upon failure. ++# FAIL_CMD may read-access the current command in variable CMD! ++func_execute_cmds () ++{ ++ $debug_cmd ++ ++ save_ifs=$IFS; IFS='~' ++ for cmd in $1; do ++ IFS=$sp$nl ++ eval cmd=\"$cmd\" ++ IFS=$save_ifs ++ func_show_eval "$cmd" "${2-:}" ++ done ++ IFS=$save_ifs ++} ++ ++ ++# func_source file ++# Source FILE, adding directory component if necessary. ++# Note that it is not necessary on cygwin/mingw to append a dot to ++# FILE even if both FILE and FILE.exe exist: automatic-append-.exe ++# behavior happens only for exec(3), not for open(2)! Also, sourcing ++# 'FILE.' does not work on cygwin managed mounts. ++func_source () ++{ ++ $debug_cmd ++ ++ case $1 in ++ */* | *\\*) . "$1" ;; ++ *) . "./$1" ;; ++ esac ++} ++ ++ ++# func_resolve_sysroot PATH ++# Replace a leading = in PATH with a sysroot. Store the result into ++# func_resolve_sysroot_result ++func_resolve_sysroot () ++{ ++ func_resolve_sysroot_result=$1 ++ case $func_resolve_sysroot_result in ++ =*) ++ func_stripname '=' '' "$func_resolve_sysroot_result" ++ func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ++ ;; ++ esac ++} ++ ++# func_replace_sysroot PATH ++# If PATH begins with the sysroot, replace it with = and ++# store the result into func_replace_sysroot_result. ++func_replace_sysroot () ++{ ++ case $lt_sysroot:$1 in ++ ?*:"$lt_sysroot"*) ++ func_stripname "$lt_sysroot" '' "$1" ++ func_replace_sysroot_result='='$func_stripname_result ++ ;; ++ *) ++ # Including no sysroot. ++ func_replace_sysroot_result=$1 ++ ;; ++ esac ++} ++ ++# func_infer_tag arg ++# Infer tagged configuration to use if any are available and ++# if one wasn't chosen via the "--tag" command line option. ++# Only attempt this if the compiler in the base compile ++# command doesn't match the default compiler. ++# arg is usually of the form 'gcc ...' ++func_infer_tag () ++{ ++ $debug_cmd ++ ++ if test -n "$available_tags" && test -z "$tagname"; then ++ CC_quoted= ++ for arg in $CC; do ++ func_append_quoted CC_quoted "$arg" ++ done ++ CC_expanded=`func_echo_all $CC` ++ CC_quoted_expanded=`func_echo_all $CC_quoted` ++ case $@ in ++ # Blanks in the command may have been stripped by the calling shell, ++ # but not from the CC environment variable when configure was run. ++ " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ ++ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; ++ # Blanks at the start of $base_compile will cause this to fail ++ # if we don't check for them as well. ++ *) ++ for z in $available_tags; do ++ if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then ++ # Evaluate the configuration. ++ eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" ++ CC_quoted= ++ for arg in $CC; do ++ # Double-quote args containing other shell metacharacters. ++ func_append_quoted CC_quoted "$arg" ++ done ++ CC_expanded=`func_echo_all $CC` ++ CC_quoted_expanded=`func_echo_all $CC_quoted` ++ case "$@ " in ++ " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ ++ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ++ # The compiler in the base compile command matches ++ # the one in the tagged configuration. ++ # Assume this is the tagged configuration we want. ++ tagname=$z ++ break ++ ;; ++ esac ++ fi ++ done ++ # If $tagname still isn't set, then no tagged configuration ++ # was found and let the user know that the "--tag" command ++ # line option must be used. ++ if test -z "$tagname"; then ++ func_echo "unable to infer tagged configuration" ++ func_fatal_error "specify a tag with '--tag'" ++# else ++# func_verbose "using $tagname tagged configuration" ++ fi ++ ;; ++ esac ++ fi ++} ++ ++ ++ ++# func_write_libtool_object output_name pic_name nonpic_name ++# Create a libtool object file (analogous to a ".la" file), ++# but don't create it if we're doing a dry run. ++func_write_libtool_object () ++{ ++ write_libobj=$1 ++ if test yes = "$build_libtool_libs"; then ++ write_lobj=\'$2\' ++ else ++ write_lobj=none ++ fi ++ ++ if test yes = "$build_old_libs"; then ++ write_oldobj=\'$3\' ++ else ++ write_oldobj=none ++ fi ++ ++ $opt_dry_run || { ++ cat >${write_libobj}T </dev/null` ++ if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then ++ func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | ++ $SED -e "$sed_naive_backslashify"` ++ else ++ func_convert_core_file_wine_to_w32_result= ++ fi ++ fi ++} ++# end: func_convert_core_file_wine_to_w32 ++ ++ ++# func_convert_core_path_wine_to_w32 ARG ++# Helper function used by path conversion functions when $build is *nix, and ++# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly ++# configured wine environment available, with the winepath program in $build's ++# $PATH. Assumes ARG has no leading or trailing path separator characters. ++# ++# ARG is path to be converted from $build format to win32. ++# Result is available in $func_convert_core_path_wine_to_w32_result. ++# Unconvertible file (directory) names in ARG are skipped; if no directory names ++# are convertible, then the result may be empty. ++func_convert_core_path_wine_to_w32 () ++{ ++ $debug_cmd ++ ++ # unfortunately, winepath doesn't convert paths, only file names ++ func_convert_core_path_wine_to_w32_result= ++ if test -n "$1"; then ++ oldIFS=$IFS ++ IFS=: ++ for func_convert_core_path_wine_to_w32_f in $1; do ++ IFS=$oldIFS ++ func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" ++ if test -n "$func_convert_core_file_wine_to_w32_result"; then ++ if test -z "$func_convert_core_path_wine_to_w32_result"; then ++ func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result ++ else ++ func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" ++ fi ++ fi ++ done ++ IFS=$oldIFS ++ fi ++} ++# end: func_convert_core_path_wine_to_w32 ++ ++ ++# func_cygpath ARGS... ++# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when ++# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) ++# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or ++# (2), returns the Cygwin file name or path in func_cygpath_result (input ++# file name or path is assumed to be in w32 format, as previously converted ++# from $build's *nix or MSYS format). In case (3), returns the w32 file name ++# or path in func_cygpath_result (input file name or path is assumed to be in ++# Cygwin format). Returns an empty string on error. ++# ++# ARGS are passed to cygpath, with the last one being the file name or path to ++# be converted. ++# ++# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH ++# environment variable; do not put it in $PATH. ++func_cygpath () ++{ ++ $debug_cmd ++ ++ if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then ++ func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` ++ if test "$?" -ne 0; then ++ # on failure, ensure result is empty ++ func_cygpath_result= ++ fi ++ else ++ func_cygpath_result= ++ func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" ++ fi ++} ++#end: func_cygpath ++ ++ ++# func_convert_core_msys_to_w32 ARG ++# Convert file name or path ARG from MSYS format to w32 format. Return ++# result in func_convert_core_msys_to_w32_result. ++func_convert_core_msys_to_w32 () ++{ ++ $debug_cmd ++ ++ # awkward: cmd appends spaces to result ++ func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | ++ $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` ++} ++#end: func_convert_core_msys_to_w32 ++ ++ ++# func_convert_file_check ARG1 ARG2 ++# Verify that ARG1 (a file name in $build format) was converted to $host ++# format in ARG2. Otherwise, emit an error message, but continue (resetting ++# func_to_host_file_result to ARG1). ++func_convert_file_check () ++{ ++ $debug_cmd ++ ++ if test -z "$2" && test -n "$1"; then ++ func_error "Could not determine host file name corresponding to" ++ func_error " '$1'" ++ func_error "Continuing, but uninstalled executables may not work." ++ # Fallback: ++ func_to_host_file_result=$1 ++ fi ++} ++# end func_convert_file_check ++ ++ ++# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH ++# Verify that FROM_PATH (a path in $build format) was converted to $host ++# format in TO_PATH. Otherwise, emit an error message, but continue, resetting ++# func_to_host_file_result to a simplistic fallback value (see below). ++func_convert_path_check () ++{ ++ $debug_cmd ++ ++ if test -z "$4" && test -n "$3"; then ++ func_error "Could not determine the host path corresponding to" ++ func_error " '$3'" ++ func_error "Continuing, but uninstalled executables may not work." ++ # Fallback. This is a deliberately simplistic "conversion" and ++ # should not be "improved". See libtool.info. ++ if test "x$1" != "x$2"; then ++ lt_replace_pathsep_chars="s|$1|$2|g" ++ func_to_host_path_result=`echo "$3" | ++ $SED -e "$lt_replace_pathsep_chars"` ++ else ++ func_to_host_path_result=$3 ++ fi ++ fi ++} ++# end func_convert_path_check ++ ++ ++# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG ++# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT ++# and appending REPL if ORIG matches BACKPAT. ++func_convert_path_front_back_pathsep () ++{ ++ $debug_cmd ++ ++ case $4 in ++ $1 ) func_to_host_path_result=$3$func_to_host_path_result ++ ;; ++ esac ++ case $4 in ++ $2 ) func_append func_to_host_path_result "$3" ++ ;; ++ esac ++} ++# end func_convert_path_front_back_pathsep ++ ++ ++################################################## ++# $build to $host FILE NAME CONVERSION FUNCTIONS # ++################################################## ++# invoked via '$to_host_file_cmd ARG' ++# ++# In each case, ARG is the path to be converted from $build to $host format. ++# Result will be available in $func_to_host_file_result. ++ ++ ++# func_to_host_file ARG ++# Converts the file name ARG from $build format to $host format. Return result ++# in func_to_host_file_result. ++func_to_host_file () ++{ ++ $debug_cmd ++ ++ $to_host_file_cmd "$1" ++} ++# end func_to_host_file ++ ++ ++# func_to_tool_file ARG LAZY ++# converts the file name ARG from $build format to toolchain format. Return ++# result in func_to_tool_file_result. If the conversion in use is listed ++# in (the comma separated) LAZY, no conversion takes place. ++func_to_tool_file () ++{ ++ $debug_cmd ++ ++ case ,$2, in ++ *,"$to_tool_file_cmd",*) ++ func_to_tool_file_result=$1 ++ ;; ++ *) ++ $to_tool_file_cmd "$1" ++ func_to_tool_file_result=$func_to_host_file_result ++ ;; ++ esac ++} ++# end func_to_tool_file ++ ++ ++# func_convert_file_noop ARG ++# Copy ARG to func_to_host_file_result. ++func_convert_file_noop () ++{ ++ func_to_host_file_result=$1 ++} ++# end func_convert_file_noop ++ ++ ++# func_convert_file_msys_to_w32 ARG ++# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic ++# conversion to w32 is not available inside the cwrapper. Returns result in ++# func_to_host_file_result. ++func_convert_file_msys_to_w32 () ++{ ++ $debug_cmd ++ ++ func_to_host_file_result=$1 ++ if test -n "$1"; then ++ func_convert_core_msys_to_w32 "$1" ++ func_to_host_file_result=$func_convert_core_msys_to_w32_result ++ fi ++ func_convert_file_check "$1" "$func_to_host_file_result" ++} ++# end func_convert_file_msys_to_w32 ++ ++ ++# func_convert_file_cygwin_to_w32 ARG ++# Convert file name ARG from Cygwin to w32 format. Returns result in ++# func_to_host_file_result. ++func_convert_file_cygwin_to_w32 () ++{ ++ $debug_cmd ++ ++ func_to_host_file_result=$1 ++ if test -n "$1"; then ++ # because $build is cygwin, we call "the" cygpath in $PATH; no need to use ++ # LT_CYGPATH in this case. ++ func_to_host_file_result=`cygpath -m "$1"` ++ fi ++ func_convert_file_check "$1" "$func_to_host_file_result" ++} ++# end func_convert_file_cygwin_to_w32 ++ ++ ++# func_convert_file_nix_to_w32 ARG ++# Convert file name ARG from *nix to w32 format. Requires a wine environment ++# and a working winepath. Returns result in func_to_host_file_result. ++func_convert_file_nix_to_w32 () ++{ ++ $debug_cmd ++ ++ func_to_host_file_result=$1 ++ if test -n "$1"; then ++ func_convert_core_file_wine_to_w32 "$1" ++ func_to_host_file_result=$func_convert_core_file_wine_to_w32_result ++ fi ++ func_convert_file_check "$1" "$func_to_host_file_result" ++} ++# end func_convert_file_nix_to_w32 ++ ++ ++# func_convert_file_msys_to_cygwin ARG ++# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. ++# Returns result in func_to_host_file_result. ++func_convert_file_msys_to_cygwin () ++{ ++ $debug_cmd ++ ++ func_to_host_file_result=$1 ++ if test -n "$1"; then ++ func_convert_core_msys_to_w32 "$1" ++ func_cygpath -u "$func_convert_core_msys_to_w32_result" ++ func_to_host_file_result=$func_cygpath_result ++ fi ++ func_convert_file_check "$1" "$func_to_host_file_result" ++} ++# end func_convert_file_msys_to_cygwin ++ ++ ++# func_convert_file_nix_to_cygwin ARG ++# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed ++# in a wine environment, working winepath, and LT_CYGPATH set. Returns result ++# in func_to_host_file_result. ++func_convert_file_nix_to_cygwin () ++{ ++ $debug_cmd ++ ++ func_to_host_file_result=$1 ++ if test -n "$1"; then ++ # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. ++ func_convert_core_file_wine_to_w32 "$1" ++ func_cygpath -u "$func_convert_core_file_wine_to_w32_result" ++ func_to_host_file_result=$func_cygpath_result ++ fi ++ func_convert_file_check "$1" "$func_to_host_file_result" ++} ++# end func_convert_file_nix_to_cygwin ++ ++ ++############################################# ++# $build to $host PATH CONVERSION FUNCTIONS # ++############################################# ++# invoked via '$to_host_path_cmd ARG' ++# ++# In each case, ARG is the path to be converted from $build to $host format. ++# The result will be available in $func_to_host_path_result. ++# ++# Path separators are also converted from $build format to $host format. If ++# ARG begins or ends with a path separator character, it is preserved (but ++# converted to $host format) on output. ++# ++# All path conversion functions are named using the following convention: ++# file name conversion function : func_convert_file_X_to_Y () ++# path conversion function : func_convert_path_X_to_Y () ++# where, for any given $build/$host combination the 'X_to_Y' value is the ++# same. If conversion functions are added for new $build/$host combinations, ++# the two new functions must follow this pattern, or func_init_to_host_path_cmd ++# will break. ++ ++ ++# func_init_to_host_path_cmd ++# Ensures that function "pointer" variable $to_host_path_cmd is set to the ++# appropriate value, based on the value of $to_host_file_cmd. ++to_host_path_cmd= ++func_init_to_host_path_cmd () ++{ ++ $debug_cmd ++ ++ if test -z "$to_host_path_cmd"; then ++ func_stripname 'func_convert_file_' '' "$to_host_file_cmd" ++ to_host_path_cmd=func_convert_path_$func_stripname_result ++ fi ++} ++ ++ ++# func_to_host_path ARG ++# Converts the path ARG from $build format to $host format. Return result ++# in func_to_host_path_result. ++func_to_host_path () ++{ ++ $debug_cmd ++ ++ func_init_to_host_path_cmd ++ $to_host_path_cmd "$1" ++} ++# end func_to_host_path ++ ++ ++# func_convert_path_noop ARG ++# Copy ARG to func_to_host_path_result. ++func_convert_path_noop () ++{ ++ func_to_host_path_result=$1 ++} ++# end func_convert_path_noop ++ ++ ++# func_convert_path_msys_to_w32 ARG ++# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic ++# conversion to w32 is not available inside the cwrapper. Returns result in ++# func_to_host_path_result. ++func_convert_path_msys_to_w32 () ++{ ++ $debug_cmd ++ ++ func_to_host_path_result=$1 ++ if test -n "$1"; then ++ # Remove leading and trailing path separator characters from ARG. MSYS ++ # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; ++ # and winepath ignores them completely. ++ func_stripname : : "$1" ++ func_to_host_path_tmp1=$func_stripname_result ++ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" ++ func_to_host_path_result=$func_convert_core_msys_to_w32_result ++ func_convert_path_check : ";" \ ++ "$func_to_host_path_tmp1" "$func_to_host_path_result" ++ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" ++ fi ++} ++# end func_convert_path_msys_to_w32 ++ ++ ++# func_convert_path_cygwin_to_w32 ARG ++# Convert path ARG from Cygwin to w32 format. Returns result in ++# func_to_host_file_result. ++func_convert_path_cygwin_to_w32 () ++{ ++ $debug_cmd ++ ++ func_to_host_path_result=$1 ++ if test -n "$1"; then ++ # See func_convert_path_msys_to_w32: ++ func_stripname : : "$1" ++ func_to_host_path_tmp1=$func_stripname_result ++ func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` ++ func_convert_path_check : ";" \ ++ "$func_to_host_path_tmp1" "$func_to_host_path_result" ++ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" ++ fi ++} ++# end func_convert_path_cygwin_to_w32 ++ ++ ++# func_convert_path_nix_to_w32 ARG ++# Convert path ARG from *nix to w32 format. Requires a wine environment and ++# a working winepath. Returns result in func_to_host_file_result. ++func_convert_path_nix_to_w32 () ++{ ++ $debug_cmd ++ ++ func_to_host_path_result=$1 ++ if test -n "$1"; then ++ # See func_convert_path_msys_to_w32: ++ func_stripname : : "$1" ++ func_to_host_path_tmp1=$func_stripname_result ++ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" ++ func_to_host_path_result=$func_convert_core_path_wine_to_w32_result ++ func_convert_path_check : ";" \ ++ "$func_to_host_path_tmp1" "$func_to_host_path_result" ++ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" ++ fi ++} ++# end func_convert_path_nix_to_w32 ++ ++ ++# func_convert_path_msys_to_cygwin ARG ++# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. ++# Returns result in func_to_host_file_result. ++func_convert_path_msys_to_cygwin () ++{ ++ $debug_cmd ++ ++ func_to_host_path_result=$1 ++ if test -n "$1"; then ++ # See func_convert_path_msys_to_w32: ++ func_stripname : : "$1" ++ func_to_host_path_tmp1=$func_stripname_result ++ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" ++ func_cygpath -u -p "$func_convert_core_msys_to_w32_result" ++ func_to_host_path_result=$func_cygpath_result ++ func_convert_path_check : : \ ++ "$func_to_host_path_tmp1" "$func_to_host_path_result" ++ func_convert_path_front_back_pathsep ":*" "*:" : "$1" ++ fi ++} ++# end func_convert_path_msys_to_cygwin ++ ++ ++# func_convert_path_nix_to_cygwin ARG ++# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a ++# a wine environment, working winepath, and LT_CYGPATH set. Returns result in ++# func_to_host_file_result. ++func_convert_path_nix_to_cygwin () ++{ ++ $debug_cmd ++ ++ func_to_host_path_result=$1 ++ if test -n "$1"; then ++ # Remove leading and trailing path separator characters from ++ # ARG. msys behavior is inconsistent here, cygpath turns them ++ # into '.;' and ';.', and winepath ignores them completely. ++ func_stripname : : "$1" ++ func_to_host_path_tmp1=$func_stripname_result ++ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" ++ func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" ++ func_to_host_path_result=$func_cygpath_result ++ func_convert_path_check : : \ ++ "$func_to_host_path_tmp1" "$func_to_host_path_result" ++ func_convert_path_front_back_pathsep ":*" "*:" : "$1" ++ fi ++} ++# end func_convert_path_nix_to_cygwin ++ ++ ++# func_dll_def_p FILE ++# True iff FILE is a Windows DLL '.def' file. ++# Keep in sync with _LT_DLL_DEF_P in libtool.m4 ++func_dll_def_p () ++{ ++ $debug_cmd ++ ++ func_dll_def_p_tmp=`$SED -n \ ++ -e 's/^[ ]*//' \ ++ -e '/^\(;.*\)*$/d' \ ++ -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ ++ -e q \ ++ "$1"` ++ test DEF = "$func_dll_def_p_tmp" ++} ++ ++ ++# func_mode_compile arg... ++func_mode_compile () ++{ ++ $debug_cmd ++ ++ # Get the compilation command and the source file. ++ base_compile= ++ srcfile=$nonopt # always keep a non-empty value in "srcfile" ++ suppress_opt=yes ++ suppress_output= ++ arg_mode=normal ++ libobj= ++ later= ++ pie_flag= ++ ++ for arg ++ do ++ case $arg_mode in ++ arg ) ++ # do not "continue". Instead, add this to base_compile ++ lastarg=$arg ++ arg_mode=normal ++ ;; ++ ++ target ) ++ libobj=$arg ++ arg_mode=normal ++ continue ++ ;; ++ ++ normal ) ++ # Accept any command-line options. ++ case $arg in ++ -o) ++ test -n "$libobj" && \ ++ func_fatal_error "you cannot specify '-o' more than once" ++ arg_mode=target ++ continue ++ ;; ++ ++ -pie | -fpie | -fPIE) ++ func_append pie_flag " $arg" ++ continue ++ ;; ++ ++ -shared | -static | -prefer-pic | -prefer-non-pic) ++ func_append later " $arg" ++ continue ++ ;; ++ ++ -no-suppress) ++ suppress_opt=no ++ continue ++ ;; ++ ++ -Xcompiler) ++ arg_mode=arg # the next one goes into the "base_compile" arg list ++ continue # The current "srcfile" will either be retained or ++ ;; # replaced later. I would guess that would be a bug. ++ ++ -Wc,*) ++ func_stripname '-Wc,' '' "$arg" ++ args=$func_stripname_result ++ lastarg= ++ save_ifs=$IFS; IFS=, ++ for arg in $args; do ++ IFS=$save_ifs ++ func_append_quoted lastarg "$arg" ++ done ++ IFS=$save_ifs ++ func_stripname ' ' '' "$lastarg" ++ lastarg=$func_stripname_result ++ ++ # Add the arguments to base_compile. ++ func_append base_compile " $lastarg" ++ continue ++ ;; ++ ++ *) ++ # Accept the current argument as the source file. ++ # The previous "srcfile" becomes the current argument. ++ # ++ lastarg=$srcfile ++ srcfile=$arg ++ ;; ++ esac # case $arg ++ ;; ++ esac # case $arg_mode ++ ++ # Aesthetically quote the previous argument. ++ func_append_quoted base_compile "$lastarg" ++ done # for arg ++ ++ case $arg_mode in ++ arg) ++ func_fatal_error "you must specify an argument for -Xcompile" ++ ;; ++ target) ++ func_fatal_error "you must specify a target with '-o'" ++ ;; ++ *) ++ # Get the name of the library object. ++ test -z "$libobj" && { ++ func_basename "$srcfile" ++ libobj=$func_basename_result ++ } ++ ;; ++ esac ++ ++ # Recognize several different file suffixes. ++ # If the user specifies -o file.o, it is replaced with file.lo ++ case $libobj in ++ *.[cCFSifmso] | \ ++ *.ada | *.adb | *.ads | *.asm | \ ++ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ ++ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) ++ func_xform "$libobj" ++ libobj=$func_xform_result ++ ;; ++ esac ++ ++ case $libobj in ++ *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; ++ *) ++ func_fatal_error "cannot determine name of library object from '$libobj'" ++ ;; ++ esac ++ ++ func_infer_tag $base_compile ++ ++ for arg in $later; do ++ case $arg in ++ -shared) ++ test yes = "$build_libtool_libs" \ ++ || func_fatal_configuration "cannot build a shared library" ++ build_old_libs=no ++ continue ++ ;; ++ ++ -static) ++ build_libtool_libs=no ++ build_old_libs=yes ++ continue ++ ;; ++ ++ -prefer-pic) ++ pic_mode=yes ++ continue ++ ;; ++ ++ -prefer-non-pic) ++ pic_mode=no ++ continue ++ ;; ++ esac ++ done ++ ++ func_quote_for_eval "$libobj" ++ test "X$libobj" != "X$func_quote_for_eval_result" \ ++ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ ++ && func_warning "libobj name '$libobj' may not contain shell special characters." ++ func_dirname_and_basename "$obj" "/" "" ++ objname=$func_basename_result ++ xdir=$func_dirname_result ++ lobj=$xdir$objdir/$objname ++ ++ test -z "$base_compile" && \ ++ func_fatal_help "you must specify a compilation command" ++ ++ # Delete any leftover library objects. ++ if test yes = "$build_old_libs"; then ++ removelist="$obj $lobj $libobj ${libobj}T" ++ else ++ removelist="$lobj $libobj ${libobj}T" ++ fi ++ ++ # On Cygwin there's no "real" PIC flag so we must build both object types ++ case $host_os in ++ cygwin* | mingw* | pw32* | os2* | cegcc*) ++ pic_mode=default ++ ;; ++ esac ++ if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; 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 no = "$compiler_c_o"; then ++ output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext ++ lockfile=$output_obj.lock ++ else ++ output_obj= ++ need_locks=no ++ lockfile= ++ fi ++ ++ # Lock this critical section if it is needed ++ # We use this script file to make the link, it avoids creating a new file ++ if test yes = "$need_locks"; then ++ until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do ++ func_echo "Waiting for $lockfile to be removed" ++ sleep 2 ++ done ++ elif test warn = "$need_locks"; then ++ if test -f "$lockfile"; then ++ $ECHO "\ ++*** ERROR, $lockfile exists and contains: ++`cat $lockfile 2>/dev/null` ++ ++This indicates that another process is trying to use the same ++temporary object file, and libtool could not work around it because ++your compiler does not support '-c' and '-o' together. If you ++repeat this compilation, it may succeed, by chance, but you had better ++avoid parallel builds (make -j) in this platform, or get a better ++compiler." ++ ++ $opt_dry_run || $RM $removelist ++ exit $EXIT_FAILURE ++ fi ++ func_append removelist " $output_obj" ++ $ECHO "$srcfile" > "$lockfile" ++ fi ++ ++ $opt_dry_run || $RM $removelist ++ func_append removelist " $lockfile" ++ trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 ++ ++ func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 ++ srcfile=$func_to_tool_file_result ++ func_quote_for_eval "$srcfile" ++ qsrcfile=$func_quote_for_eval_result ++ ++ # Only build a PIC object if we are building libtool libraries. ++ if test yes = "$build_libtool_libs"; then ++ # Without this assignment, base_compile gets emptied. ++ fbsd_hideous_sh_bug=$base_compile ++ ++ if test no != "$pic_mode"; then ++ command="$base_compile $qsrcfile $pic_flag" ++ else ++ # Don't build PIC code ++ command="$base_compile $qsrcfile" ++ fi ++ ++ func_mkdir_p "$xdir$objdir" ++ ++ if test -z "$output_obj"; then ++ # Place PIC objects in $objdir ++ func_append command " -o $lobj" ++ fi ++ ++ func_show_eval_locale "$command" \ ++ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' ++ ++ if test warn = "$need_locks" && ++ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then ++ $ECHO "\ ++*** ERROR, $lockfile contains: ++`cat $lockfile 2>/dev/null` ++ ++but it should contain: ++$srcfile ++ ++This indicates that another process is trying to use the same ++temporary object file, and libtool could not work around it because ++your compiler does not support '-c' and '-o' together. If you ++repeat this compilation, it may succeed, by chance, but you had better ++avoid parallel builds (make -j) in this platform, or get a better ++compiler." ++ ++ $opt_dry_run || $RM $removelist ++ exit $EXIT_FAILURE ++ fi ++ ++ # Just move the object if needed, then go on to compile the next one ++ if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then ++ func_show_eval '$MV "$output_obj" "$lobj"' \ ++ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' ++ fi ++ ++ # Allow error messages only from the first compilation. ++ if test yes = "$suppress_opt"; then ++ suppress_output=' >/dev/null 2>&1' ++ fi ++ fi ++ ++ # Only build a position-dependent object if we build old libraries. ++ if test yes = "$build_old_libs"; then ++ if test yes != "$pic_mode"; then ++ # Don't build PIC code ++ command="$base_compile $qsrcfile$pie_flag" ++ else ++ command="$base_compile $qsrcfile $pic_flag" ++ fi ++ if test yes = "$compiler_c_o"; then ++ func_append command " -o $obj" ++ fi ++ ++ # Suppress compiler output if we already did a PIC compilation. ++ func_append command "$suppress_output" ++ func_show_eval_locale "$command" \ ++ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' ++ ++ if test warn = "$need_locks" && ++ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then ++ $ECHO "\ ++*** ERROR, $lockfile contains: ++`cat $lockfile 2>/dev/null` ++ ++but it should contain: ++$srcfile ++ ++This indicates that another process is trying to use the same ++temporary object file, and libtool could not work around it because ++your compiler does not support '-c' and '-o' together. If you ++repeat this compilation, it may succeed, by chance, but you had better ++avoid parallel builds (make -j) in this platform, or get a better ++compiler." ++ ++ $opt_dry_run || $RM $removelist ++ exit $EXIT_FAILURE ++ fi ++ ++ # Just move the object if needed ++ if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then ++ func_show_eval '$MV "$output_obj" "$obj"' \ ++ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' ++ fi ++ fi ++ ++ $opt_dry_run || { ++ func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" ++ ++ # Unlock the critical section if it was locked ++ if test no != "$need_locks"; then ++ removelist=$lockfile ++ $RM "$lockfile" ++ fi ++ } ++ ++ exit $EXIT_SUCCESS ++} ++ ++$opt_help || { ++ test compile = "$opt_mode" && func_mode_compile ${1+"$@"} ++} ++ ++func_mode_help () ++{ ++ # We need to display help for each of the modes. ++ case $opt_mode in ++ "") ++ # Generic help is extracted from the usage comments ++ # at the start of this file. ++ func_help ++ ;; ++ ++ clean) ++ $ECHO \ ++"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... ++ ++Remove files from the build directory. ++ ++RM is the name of the program to use to delete files associated with each FILE ++(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed ++to RM. ++ ++If FILE is a libtool library, object or program, all the files associated ++with it are deleted. Otherwise, only FILE itself is deleted using RM." ++ ;; ++ ++ compile) ++ $ECHO \ ++"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE ++ ++Compile a source file into a libtool library object. ++ ++This mode accepts the following additional options: ++ ++ -o OUTPUT-FILE set the output file name to OUTPUT-FILE ++ -no-suppress do not suppress compiler output for multiple passes ++ -prefer-pic try to build PIC objects only ++ -prefer-non-pic try to build non-PIC objects only ++ -shared do not build a '.o' file suitable for static linking ++ -static only build a '.o' file suitable for static linking ++ -Wc,FLAG pass FLAG directly to the compiler ++ ++COMPILE-COMMAND is a command to be used in creating a 'standard' object file ++from the given SOURCEFILE. ++ ++The output file name is determined by removing the directory component from ++SOURCEFILE, then substituting the C source code suffix '.c' with the ++library object suffix, '.lo'." ++ ;; ++ ++ execute) ++ $ECHO \ ++"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... ++ ++Automatically set library path, then run a program. ++ ++This mode accepts the following additional options: ++ ++ -dlopen FILE add the directory containing FILE to the library path ++ ++This mode sets the library path environment variable according to '-dlopen' ++flags. ++ ++If any of the ARGS are libtool executable wrappers, then they are translated ++into their corresponding uninstalled binary, and any of their required library ++directories are added to the library path. ++ ++Then, COMMAND is executed, with ARGS as arguments." ++ ;; ++ ++ finish) ++ $ECHO \ ++"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... ++ ++Complete the installation of libtool libraries. ++ ++Each LIBDIR is a directory that contains libtool libraries. ++ ++The commands that this mode executes may require superuser privileges. Use ++the '--dry-run' option if you just want to see what would be executed." ++ ;; ++ ++ install) ++ $ECHO \ ++"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... ++ ++Install executables or libraries. ++ ++INSTALL-COMMAND is the installation command. The first component should be ++either the 'install' or 'cp' program. ++ ++The following components of INSTALL-COMMAND are treated specially: ++ ++ -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation ++ ++The rest of the components are interpreted as arguments to that command (only ++BSD-compatible install options are recognized)." ++ ;; ++ ++ link) ++ $ECHO \ ++"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... ++ ++Link object files or libraries together to form another library, or to ++create an executable program. ++ ++LINK-COMMAND is a command using the C compiler that you would use to create ++a program from several object files. ++ ++The following components of LINK-COMMAND are treated specially: ++ ++ -all-static do not do any dynamic linking at all ++ -avoid-version do not add a version suffix if possible ++ -bindir BINDIR specify path to binaries directory (for systems where ++ libraries must be found in the PATH setting at runtime) ++ -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime ++ -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols ++ -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) ++ -export-symbols SYMFILE ++ try to export only the symbols listed in SYMFILE ++ -export-symbols-regex REGEX ++ try to export only the symbols matching REGEX ++ -LLIBDIR search LIBDIR for required installed libraries ++ -lNAME OUTPUT-FILE requires the installed library libNAME ++ -module build a library that can dlopened ++ -no-fast-install disable the fast-install mode ++ -no-install link a not-installable executable ++ -no-undefined declare that a library does not refer to external symbols ++ -o OUTPUT-FILE create OUTPUT-FILE from the specified objects ++ -objectlist FILE use a list of object files found in FILE to specify objects ++ -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) ++ -precious-files-regex REGEX ++ don't remove output files matching REGEX ++ -release RELEASE specify package release information ++ -rpath LIBDIR the created library will eventually be installed in LIBDIR ++ -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries ++ -shared only do dynamic linking of libtool libraries ++ -shrext SUFFIX override the standard shared library file extension ++ -static do not do any dynamic linking of uninstalled libtool libraries ++ -static-libtool-libs ++ do not do any dynamic linking of libtool libraries ++ -version-info CURRENT[:REVISION[:AGE]] ++ specify library version info [each variable defaults to 0] ++ -weak LIBNAME declare that the target provides the LIBNAME interface ++ -Wc,FLAG ++ -Xcompiler FLAG pass linker-specific FLAG directly to the compiler ++ -Wl,FLAG ++ -Xlinker FLAG pass linker-specific FLAG directly to the linker ++ -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) ++ ++All other options (arguments beginning with '-') are ignored. ++ ++Every other argument is treated as a filename. Files ending in '.la' are ++treated as uninstalled libtool libraries, other files are standard or library ++object files. ++ ++If the OUTPUT-FILE ends in '.la', then a libtool library is created, ++only library objects ('.lo' files) may be specified, and '-rpath' is ++required, except when creating a convenience library. ++ ++If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created ++using 'ar' and 'ranlib', or on Windows using 'lib'. ++ ++If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file ++is created, otherwise an executable program is created." ++ ;; ++ ++ uninstall) ++ $ECHO \ ++"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... ++ ++Remove libraries from an installation directory. ++ ++RM is the name of the program to use to delete files associated with each FILE ++(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed ++to RM. ++ ++If FILE is a libtool library, all the files associated with it are deleted. ++Otherwise, only FILE itself is deleted using RM." ++ ;; ++ ++ *) ++ func_fatal_help "invalid operation mode '$opt_mode'" ++ ;; ++ esac ++ ++ echo ++ $ECHO "Try '$progname --help' for more information about other modes." ++} ++ ++# Now that we've collected a possible --mode arg, show help if necessary ++if $opt_help; then ++ if test : = "$opt_help"; then ++ func_mode_help ++ else ++ { ++ func_help noexit ++ for opt_mode in compile link execute install finish uninstall clean; do ++ func_mode_help ++ done ++ } | $SED -n '1p; 2,$s/^Usage:/ or: /p' ++ { ++ func_help noexit ++ for opt_mode in compile link execute install finish uninstall clean; do ++ echo ++ func_mode_help ++ done ++ } | ++ $SED '1d ++ /^When reporting/,/^Report/{ ++ H ++ d ++ } ++ $x ++ /information about other modes/d ++ /more detailed .*MODE/d ++ s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' ++ fi ++ exit $? ++fi ++ ++ ++# func_mode_execute arg... ++func_mode_execute () ++{ ++ $debug_cmd ++ ++ # The first argument is the command name. ++ cmd=$nonopt ++ test -z "$cmd" && \ ++ func_fatal_help "you must specify a COMMAND" ++ ++ # Handle -dlopen flags immediately. ++ for file in $opt_dlopen; do ++ test -f "$file" \ ++ || func_fatal_help "'$file' is not a file" ++ ++ dir= ++ case $file in ++ *.la) ++ func_resolve_sysroot "$file" ++ file=$func_resolve_sysroot_result ++ ++ # Check to see that this really is a libtool archive. ++ func_lalib_unsafe_p "$file" \ ++ || func_fatal_help "'$lib' is not a valid libtool archive" ++ ++ # Read the libtool library. ++ dlname= ++ library_names= ++ func_source "$file" ++ ++ # Skip this library if it cannot be dlopened. ++ if test -z "$dlname"; then ++ # Warn if it was a shared library. ++ test -n "$library_names" && \ ++ func_warning "'$file' was not linked with '-export-dynamic'" ++ continue ++ fi ++ ++ func_dirname "$file" "" "." ++ dir=$func_dirname_result ++ ++ if test -f "$dir/$objdir/$dlname"; then ++ func_append dir "/$objdir" ++ else ++ if test ! -f "$dir/$dlname"; then ++ func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" ++ fi ++ fi ++ ;; ++ ++ *.lo) ++ # Just add the directory containing the .lo file. ++ func_dirname "$file" "" "." ++ dir=$func_dirname_result ++ ;; ++ ++ *) ++ func_warning "'-dlopen' is ignored for non-libtool libraries and objects" ++ continue ++ ;; ++ esac ++ ++ # Get the absolute pathname. ++ absdir=`cd "$dir" && pwd` ++ test -n "$absdir" && dir=$absdir ++ ++ # Now add the directory to shlibpath_var. ++ if eval "test -z \"\$$shlibpath_var\""; then ++ eval "$shlibpath_var=\"\$dir\"" ++ else ++ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" ++ fi ++ done ++ ++ # This variable tells wrapper scripts just to set shlibpath_var ++ # rather than running their programs. ++ libtool_execute_magic=$magic ++ ++ # Check if any of the arguments is a wrapper script. ++ args= ++ for file ++ do ++ case $file in ++ -* | *.la | *.lo ) ;; ++ *) ++ # Do a test to see if this is really a libtool program. ++ if func_ltwrapper_script_p "$file"; then ++ func_source "$file" ++ # Transform arg to wrapped name. ++ file=$progdir/$program ++ elif func_ltwrapper_executable_p "$file"; then ++ func_ltwrapper_scriptname "$file" ++ func_source "$func_ltwrapper_scriptname_result" ++ # Transform arg to wrapped name. ++ file=$progdir/$program ++ fi ++ ;; ++ esac ++ # Quote arguments (to preserve shell metacharacters). ++ func_append_quoted args "$file" ++ done ++ ++ if $opt_dry_run; then ++ # 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 ++ else ++ if test -n "$shlibpath_var"; then ++ # Export the shlibpath_var. ++ eval "export $shlibpath_var" ++ fi ++ ++ # Restore saved environment variables ++ for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES ++ do ++ eval "if test \"\${save_$lt_var+set}\" = set; then ++ $lt_var=\$save_$lt_var; export $lt_var ++ else ++ $lt_unset $lt_var ++ fi" ++ done ++ ++ # Now prepare to actually exec the command. ++ exec_cmd=\$cmd$args ++ fi ++} ++ ++test execute = "$opt_mode" && func_mode_execute ${1+"$@"} ++ ++ ++# func_mode_finish arg... ++func_mode_finish () ++{ ++ $debug_cmd ++ ++ libs= ++ libdirs= ++ admincmds= ++ ++ for opt in "$nonopt" ${1+"$@"} ++ do ++ if test -d "$opt"; then ++ func_append libdirs " $opt" ++ ++ elif test -f "$opt"; then ++ if func_lalib_unsafe_p "$opt"; then ++ func_append libs " $opt" ++ else ++ func_warning "'$opt' is not a valid libtool archive" ++ fi ++ ++ else ++ func_fatal_error "invalid argument '$opt'" ++ fi ++ done ++ ++ if test -n "$libs"; then ++ if test -n "$lt_sysroot"; then ++ sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` ++ sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" ++ else ++ sysroot_cmd= ++ fi ++ ++ # Remove sysroot references ++ if $opt_dry_run; then ++ for lib in $libs; do ++ echo "removing references to $lt_sysroot and '=' prefixes from $lib" ++ done ++ else ++ tmpdir=`func_mktempdir` ++ for lib in $libs; do ++ $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ ++ > $tmpdir/tmp-la ++ mv -f $tmpdir/tmp-la $lib ++ done ++ ${RM}r "$tmpdir" ++ fi ++ fi ++ ++ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then ++ for libdir in $libdirs; do ++ if test -n "$finish_cmds"; then ++ # Do each command in the finish commands. ++ func_execute_cmds "$finish_cmds" 'admincmds="$admincmds ++'"$cmd"'"' ++ fi ++ if test -n "$finish_eval"; then ++ # Do the single finish_eval. ++ eval cmds=\"$finish_eval\" ++ $opt_dry_run || eval "$cmds" || func_append admincmds " ++ $cmds" ++ fi ++ done ++ fi ++ ++ # Exit here if they wanted silent mode. ++ $opt_quiet && exit $EXIT_SUCCESS ++ ++ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then ++ echo "----------------------------------------------------------------------" ++ echo "Libraries have been installed in:" ++ for libdir in $libdirs; do ++ $ECHO " $libdir" ++ done ++ echo ++ echo "If you ever happen to want to link against installed libraries" ++ echo "in a given directory, LIBDIR, you must either use libtool, and" ++ echo "specify the full pathname of the library, or use the '-LLIBDIR'" ++ echo "flag during linking and do at least one of the following:" ++ if test -n "$shlibpath_var"; then ++ echo " - add LIBDIR to the '$shlibpath_var' environment variable" ++ echo " during execution" ++ fi ++ if test -n "$runpath_var"; then ++ echo " - add LIBDIR to the '$runpath_var' environment variable" ++ echo " during linking" ++ fi ++ if test -n "$hardcode_libdir_flag_spec"; then ++ libdir=LIBDIR ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ ++ $ECHO " - use the '$flag' linker flag" ++ fi ++ if test -n "$admincmds"; then ++ $ECHO " - have your system administrator run these commands:$admincmds" ++ fi ++ if test -f /etc/ld.so.conf; then ++ echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" ++ fi ++ echo ++ ++ echo "See any operating system documentation about shared libraries for" ++ case $host in ++ solaris2.[6789]|solaris2.1[0-9]) ++ echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" ++ echo "pages." ++ ;; ++ *) ++ echo "more information, such as the ld(1) and ld.so(8) manual pages." ++ ;; ++ esac ++ echo "----------------------------------------------------------------------" ++ fi ++ exit $EXIT_SUCCESS ++} ++ ++test finish = "$opt_mode" && func_mode_finish ${1+"$@"} ++ ++ ++# func_mode_install arg... ++func_mode_install () ++{ ++ $debug_cmd ++ ++ # There may be an optional sh(1) argument at the beginning of ++ # install_prog (especially on Windows NT). ++ if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || ++ # Allow the use of GNU shtool's install command. ++ case $nonopt in *shtool*) :;; *) false;; esac ++ then ++ # Aesthetically quote it. ++ func_quote_for_eval "$nonopt" ++ install_prog="$func_quote_for_eval_result " ++ arg=$1 ++ shift ++ else ++ install_prog= ++ arg=$nonopt ++ fi ++ ++ # The real first argument should be the name of the installation program. ++ # Aesthetically quote it. ++ func_quote_for_eval "$arg" ++ func_append install_prog "$func_quote_for_eval_result" ++ install_shared_prog=$install_prog ++ case " $install_prog " in ++ *[\\\ /]cp\ *) install_cp=: ;; ++ *) install_cp=false ;; ++ esac ++ ++ # We need to accept at least all the BSD install flags. ++ dest= ++ files= ++ opts= ++ prev= ++ install_type= ++ isdir=false ++ stripme= ++ no_mode=: ++ for arg ++ do ++ arg2= ++ if test -n "$dest"; then ++ func_append files " $dest" ++ dest=$arg ++ continue ++ fi ++ ++ case $arg in ++ -d) isdir=: ;; ++ -f) ++ if $install_cp; then :; else ++ prev=$arg ++ fi ++ ;; ++ -g | -m | -o) ++ prev=$arg ++ ;; ++ -s) ++ stripme=" -s" ++ continue ++ ;; ++ -*) ++ ;; ++ *) ++ # If the previous option needed an argument, then skip it. ++ if test -n "$prev"; then ++ if test X-m = "X$prev" && test -n "$install_override_mode"; then ++ arg2=$install_override_mode ++ no_mode=false ++ fi ++ prev= ++ else ++ dest=$arg ++ continue ++ fi ++ ;; ++ esac ++ ++ # Aesthetically quote the argument. ++ func_quote_for_eval "$arg" ++ func_append install_prog " $func_quote_for_eval_result" ++ if test -n "$arg2"; then ++ func_quote_for_eval "$arg2" ++ fi ++ func_append install_shared_prog " $func_quote_for_eval_result" ++ done ++ ++ test -z "$install_prog" && \ ++ func_fatal_help "you must specify an install program" ++ ++ test -n "$prev" && \ ++ func_fatal_help "the '$prev' option requires an argument" ++ ++ if test -n "$install_override_mode" && $no_mode; then ++ if $install_cp; then :; else ++ func_quote_for_eval "$install_override_mode" ++ func_append install_shared_prog " -m $func_quote_for_eval_result" ++ fi ++ fi ++ ++ if test -z "$files"; then ++ if test -z "$dest"; then ++ func_fatal_help "no file or destination specified" ++ else ++ func_fatal_help "you must specify a destination" ++ fi ++ fi ++ ++ # Strip any trailing slash from the destination. ++ func_stripname '' '/' "$dest" ++ dest=$func_stripname_result ++ ++ # Check to see that the destination is a directory. ++ test -d "$dest" && isdir=: ++ if $isdir; then ++ destdir=$dest ++ destname= ++ else ++ func_dirname_and_basename "$dest" "" "." ++ destdir=$func_dirname_result ++ destname=$func_basename_result ++ ++ # Not a directory, so check to see that there is only one file specified. ++ set dummy $files; shift ++ test "$#" -gt 1 && \ ++ func_fatal_help "'$dest' is not a directory" ++ fi ++ case $destdir in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; ++ *) ++ for file in $files; do ++ case $file in ++ *.lo) ;; ++ *) ++ func_fatal_help "'$destdir' must be an absolute directory name" ++ ;; ++ esac ++ done ++ ;; ++ esac ++ ++ # This variable tells wrapper scripts just to set variables rather ++ # than running their programs. ++ libtool_install_magic=$magic ++ ++ staticlibs= ++ future_libdirs= ++ current_libdirs= ++ for file in $files; do ++ ++ # Do each installation. ++ case $file in ++ *.$libext) ++ # Do the static libraries later. ++ func_append staticlibs " $file" ++ ;; ++ ++ *.la) ++ func_resolve_sysroot "$file" ++ file=$func_resolve_sysroot_result ++ ++ # Check to see that this really is a libtool archive. ++ func_lalib_unsafe_p "$file" \ ++ || func_fatal_help "'$file' is not a valid libtool archive" ++ ++ library_names= ++ old_library= ++ relink_command= ++ func_source "$file" ++ ++ # Add the libdir to current_libdirs if it is the destination. ++ if test "X$destdir" = "X$libdir"; then ++ case "$current_libdirs " in ++ *" $libdir "*) ;; ++ *) func_append current_libdirs " $libdir" ;; ++ esac ++ else ++ # Note the libdir as a future libdir. ++ case "$future_libdirs " in ++ *" $libdir "*) ;; ++ *) func_append future_libdirs " $libdir" ;; ++ esac ++ fi ++ ++ func_dirname "$file" "/" "" ++ dir=$func_dirname_result ++ func_append dir "$objdir" ++ ++ if test -n "$relink_command"; then ++ # Determine the prefix the user has applied to our future dir. ++ inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` ++ ++ # Don't allow the user to place us outside of our expected ++ # location b/c this prevents finding dependent libraries that ++ # are installed to the same prefix. ++ # At present, this check doesn't affect windows .dll's that ++ # are installed into $libdir/../bin (currently, that works fine) ++ # but it's something to keep an eye on. ++ test "$inst_prefix_dir" = "$destdir" && \ ++ func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" ++ ++ if test -n "$inst_prefix_dir"; then ++ # Stick the inst_prefix_dir data into the link command. ++ relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` ++ else ++ relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` ++ fi ++ ++ func_warning "relinking '$file'" ++ func_show_eval "$relink_command" \ ++ 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' ++ fi ++ ++ # See the names of the shared library. ++ set dummy $library_names; shift ++ if test -n "$1"; then ++ realname=$1 ++ shift ++ ++ srcname=$realname ++ test -n "$relink_command" && srcname=${realname}T ++ ++ # Install the shared library and build the symlinks. ++ func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ ++ 'exit $?' ++ tstripme=$stripme ++ case $host_os in ++ cygwin* | mingw* | pw32* | cegcc*) ++ case $realname in ++ *.dll.a) ++ tstripme= ++ ;; ++ esac ++ ;; ++ os2*) ++ case $realname in ++ *_dll.a) ++ tstripme= ++ ;; ++ esac ++ ;; ++ esac ++ if test -n "$tstripme" && test -n "$striplib"; then ++ func_show_eval "$striplib $destdir/$realname" 'exit $?' ++ fi ++ ++ if test "$#" -gt 0; then ++ # Delete the old symlinks, and create new ones. ++ # Try 'ln -sf' first, because the 'ln' binary might depend on ++ # the symlink we replace! Solaris /bin/ln does not understand -f, ++ # so we also need to try rm && ln -s. ++ for linkname ++ do ++ test "$linkname" != "$realname" \ ++ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" ++ done ++ fi ++ ++ # Do each command in the postinstall commands. ++ lib=$destdir/$realname ++ func_execute_cmds "$postinstall_cmds" 'exit $?' ++ fi ++ ++ # Install the pseudo-library for information purposes. ++ func_basename "$file" ++ name=$func_basename_result ++ instname=$dir/${name}i ++ func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' ++ ++ # Maybe install the static library, too. ++ test -n "$old_library" && func_append staticlibs " $dir/$old_library" ++ ;; ++ ++ *.lo) ++ # Install (i.e. copy) a libtool object. ++ ++ # Figure out destination file name, if it wasn't already specified. ++ if test -n "$destname"; then ++ destfile=$destdir/$destname ++ else ++ func_basename "$file" ++ destfile=$func_basename_result ++ destfile=$destdir/$destfile ++ fi ++ ++ # Deduce the name of the destination old-style object file. ++ case $destfile in ++ *.lo) ++ func_lo2o "$destfile" ++ staticdest=$func_lo2o_result ++ ;; ++ *.$objext) ++ staticdest=$destfile ++ destfile= ++ ;; ++ *) ++ func_fatal_help "cannot copy a libtool object to '$destfile'" ++ ;; ++ esac ++ ++ # Install the libtool object if requested. ++ test -n "$destfile" && \ ++ func_show_eval "$install_prog $file $destfile" 'exit $?' ++ ++ # Install the old object if enabled. ++ if test yes = "$build_old_libs"; then ++ # Deduce the name of the old-style object file. ++ func_lo2o "$file" ++ staticobj=$func_lo2o_result ++ func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' ++ fi ++ exit $EXIT_SUCCESS ++ ;; ++ ++ *) ++ # Figure out destination file name, if it wasn't already specified. ++ if test -n "$destname"; then ++ destfile=$destdir/$destname ++ else ++ func_basename "$file" ++ destfile=$func_basename_result ++ destfile=$destdir/$destfile ++ fi ++ ++ # If the file is missing, and there is a .exe on the end, strip it ++ # because it is most likely a libtool script we actually want to ++ # install ++ stripped_ext= ++ case $file in ++ *.exe) ++ if test ! -f "$file"; then ++ func_stripname '' '.exe' "$file" ++ file=$func_stripname_result ++ stripped_ext=.exe ++ fi ++ ;; ++ esac ++ ++ # Do a test to see if this is really a libtool program. ++ case $host in ++ *cygwin* | *mingw*) ++ if func_ltwrapper_executable_p "$file"; then ++ func_ltwrapper_scriptname "$file" ++ wrapper=$func_ltwrapper_scriptname_result ++ else ++ func_stripname '' '.exe' "$file" ++ wrapper=$func_stripname_result ++ fi ++ ;; ++ *) ++ wrapper=$file ++ ;; ++ esac ++ if func_ltwrapper_script_p "$wrapper"; then ++ notinst_deplibs= ++ relink_command= ++ ++ func_source "$wrapper" ++ ++ # Check the variables that should have been set. ++ test -z "$generated_by_libtool_version" && \ ++ func_fatal_error "invalid libtool wrapper script '$wrapper'" ++ ++ finalize=: ++ for lib in $notinst_deplibs; do ++ # Check to see that each library is installed. ++ libdir= ++ if test -f "$lib"; then ++ func_source "$lib" ++ fi ++ libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` ++ if test -n "$libdir" && test ! -f "$libfile"; then ++ func_warning "'$lib' has not been installed in '$libdir'" ++ finalize=false ++ fi ++ done ++ ++ relink_command= ++ func_source "$wrapper" ++ ++ outputname= ++ if test no = "$fast_install" && test -n "$relink_command"; then ++ $opt_dry_run || { ++ if $finalize; then ++ tmpdir=`func_mktempdir` ++ func_basename "$file$stripped_ext" ++ file=$func_basename_result ++ outputname=$tmpdir/$file ++ # Replace the output file specification. ++ relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` ++ ++ $opt_quiet || { ++ func_quote_for_expand "$relink_command" ++ eval "func_echo $func_quote_for_expand_result" ++ } ++ if eval "$relink_command"; then : ++ else ++ func_error "error: relink '$file' with the above command before installing it" ++ $opt_dry_run || ${RM}r "$tmpdir" ++ continue ++ fi ++ file=$outputname ++ else ++ func_warning "cannot relink '$file'" ++ fi ++ } ++ else ++ # Install the binary that we compiled earlier. ++ file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` ++ fi ++ fi ++ ++ # remove .exe since cygwin /usr/bin/install will append another ++ # one anyway ++ case $install_prog,$host in ++ */usr/bin/install*,*cygwin*) ++ case $file:$destfile in ++ *.exe:*.exe) ++ # this is ok ++ ;; ++ *.exe:*) ++ destfile=$destfile.exe ++ ;; ++ *:*.exe) ++ func_stripname '' '.exe' "$destfile" ++ destfile=$func_stripname_result ++ ;; ++ esac ++ ;; ++ esac ++ func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' ++ $opt_dry_run || if test -n "$outputname"; then ++ ${RM}r "$tmpdir" ++ fi ++ ;; ++ esac ++ done ++ ++ for file in $staticlibs; do ++ func_basename "$file" ++ name=$func_basename_result ++ ++ # Set up the ranlib parameters. ++ oldlib=$destdir/$name ++ func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 ++ tool_oldlib=$func_to_tool_file_result ++ ++ func_show_eval "$install_prog \$file \$oldlib" 'exit $?' ++ ++ if test -n "$stripme" && test -n "$old_striplib"; then ++ func_show_eval "$old_striplib $tool_oldlib" 'exit $?' ++ fi ++ ++ # Do each command in the postinstall commands. ++ func_execute_cmds "$old_postinstall_cmds" 'exit $?' ++ done ++ ++ test -n "$future_libdirs" && \ ++ func_warning "remember to run '$progname --finish$future_libdirs'" ++ ++ if test -n "$current_libdirs"; then ++ # Maybe just do a dry run. ++ $opt_dry_run && current_libdirs=" -n$current_libdirs" ++ exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' ++ else ++ exit $EXIT_SUCCESS ++ fi ++} ++ ++test install = "$opt_mode" && func_mode_install ${1+"$@"} ++ ++ ++# func_generate_dlsyms outputname originator pic_p ++# Extract symbols from dlprefiles and create ${outputname}S.o with ++# a dlpreopen symbol table. ++func_generate_dlsyms () ++{ ++ $debug_cmd ++ ++ my_outputname=$1 ++ my_originator=$2 ++ my_pic_p=${3-false} ++ my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` ++ my_dlsyms= ++ ++ if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then ++ if test -n "$NM" && test -n "$global_symbol_pipe"; then ++ my_dlsyms=${my_outputname}S.c ++ else ++ func_error "not configured to extract global symbols from dlpreopened files" ++ fi ++ fi ++ ++ if test -n "$my_dlsyms"; then ++ case $my_dlsyms in ++ "") ;; ++ *.c) ++ # Discover the nlist of each of the dlfiles. ++ nlist=$output_objdir/$my_outputname.nm ++ ++ func_show_eval "$RM $nlist ${nlist}S ${nlist}T" ++ ++ # Parse the name list into a source file. ++ func_verbose "creating $output_objdir/$my_dlsyms" ++ ++ $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ ++/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ ++/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ ++ ++#ifdef __cplusplus ++extern \"C\" { ++#endif ++ ++#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) ++#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" ++#endif ++ ++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ ++#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE ++/* DATA imports from DLLs on WIN32 can't be const, because runtime ++ relocations are performed -- see ld's documentation on pseudo-relocs. */ ++# define LT_DLSYM_CONST ++#elif defined __osf__ ++/* This system does not cope well with relocations in const data. */ ++# define LT_DLSYM_CONST ++#else ++# define LT_DLSYM_CONST const ++#endif ++ ++#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) ++ ++/* External symbol declarations for the compiler. */\ ++" ++ ++ if test yes = "$dlself"; then ++ func_verbose "generating symbol list for '$output'" ++ ++ $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" ++ ++ # Add our own program objects to the symbol list. ++ progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` ++ for progfile in $progfiles; do ++ func_to_tool_file "$progfile" func_convert_file_msys_to_w32 ++ func_verbose "extracting global C symbols from '$func_to_tool_file_result'" ++ $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" ++ done ++ ++ if test -n "$exclude_expsyms"; then ++ $opt_dry_run || { ++ eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' ++ eval '$MV "$nlist"T "$nlist"' ++ } ++ fi ++ ++ if test -n "$export_symbols_regex"; then ++ $opt_dry_run || { ++ eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' ++ eval '$MV "$nlist"T "$nlist"' ++ } ++ fi ++ ++ # Prepare the list of exported symbols ++ if test -z "$export_symbols"; then ++ export_symbols=$output_objdir/$outputname.exp ++ $opt_dry_run || { ++ $RM $export_symbols ++ eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' ++ case $host in ++ *cygwin* | *mingw* | *cegcc* ) ++ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' ++ eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ++ ;; ++ esac ++ } ++ else ++ $opt_dry_run || { ++ eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' ++ eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' ++ eval '$MV "$nlist"T "$nlist"' ++ case $host in ++ *cygwin* | *mingw* | *cegcc* ) ++ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' ++ eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ++ ;; ++ esac ++ } ++ fi ++ fi ++ ++ for dlprefile in $dlprefiles; do ++ func_verbose "extracting global C symbols from '$dlprefile'" ++ func_basename "$dlprefile" ++ name=$func_basename_result ++ case $host in ++ *cygwin* | *mingw* | *cegcc* ) ++ # if an import library, we need to obtain dlname ++ if func_win32_import_lib_p "$dlprefile"; then ++ func_tr_sh "$dlprefile" ++ eval "curr_lafile=\$libfile_$func_tr_sh_result" ++ dlprefile_dlbasename= ++ if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then ++ # Use subshell, to avoid clobbering current variable values ++ dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` ++ if test -n "$dlprefile_dlname"; then ++ func_basename "$dlprefile_dlname" ++ dlprefile_dlbasename=$func_basename_result ++ else ++ # no lafile. user explicitly requested -dlpreopen . ++ $sharedlib_from_linklib_cmd "$dlprefile" ++ dlprefile_dlbasename=$sharedlib_from_linklib_result ++ fi ++ fi ++ $opt_dry_run || { ++ if test -n "$dlprefile_dlbasename"; then ++ eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' ++ else ++ func_warning "Could not compute DLL name from $name" ++ eval '$ECHO ": $name " >> "$nlist"' ++ fi ++ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 ++ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | ++ $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" ++ } ++ else # not an import lib ++ $opt_dry_run || { ++ eval '$ECHO ": $name " >> "$nlist"' ++ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 ++ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" ++ } ++ fi ++ ;; ++ *) ++ $opt_dry_run || { ++ eval '$ECHO ": $name " >> "$nlist"' ++ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 ++ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" ++ } ++ ;; ++ esac ++ done ++ ++ $opt_dry_run || { ++ # Make sure we have at least an empty file. ++ test -f "$nlist" || : > "$nlist" ++ ++ if test -n "$exclude_expsyms"; then ++ $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T ++ $MV "$nlist"T "$nlist" ++ fi ++ ++ # Try sorting and uniquifying the output. ++ if $GREP -v "^: " < "$nlist" | ++ if sort -k 3 /dev/null 2>&1; then ++ sort -k 3 ++ else ++ sort +2 ++ fi | ++ uniq > "$nlist"S; then ++ : ++ else ++ $GREP -v "^: " < "$nlist" > "$nlist"S ++ fi ++ ++ if test -f "$nlist"S; then ++ eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' ++ else ++ echo '/* NONE */' >> "$output_objdir/$my_dlsyms" ++ fi ++ ++ func_show_eval '$RM "${nlist}I"' ++ if test -n "$global_symbol_to_import"; then ++ eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' ++ fi ++ ++ echo >> "$output_objdir/$my_dlsyms" "\ ++ ++/* The mapping between symbol names and symbols. */ ++typedef struct { ++ const char *name; ++ void *address; ++} lt_dlsymlist; ++extern LT_DLSYM_CONST lt_dlsymlist ++lt_${my_prefix}_LTX_preloaded_symbols[];\ ++" ++ ++ if test -s "$nlist"I; then ++ echo >> "$output_objdir/$my_dlsyms" "\ ++static void lt_syminit(void) ++{ ++ LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; ++ for (; symbol->name; ++symbol) ++ {" ++ $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" ++ echo >> "$output_objdir/$my_dlsyms" "\ ++ } ++}" ++ fi ++ echo >> "$output_objdir/$my_dlsyms" "\ ++LT_DLSYM_CONST lt_dlsymlist ++lt_${my_prefix}_LTX_preloaded_symbols[] = ++{ {\"$my_originator\", (void *) 0}," ++ ++ if test -s "$nlist"I; then ++ echo >> "$output_objdir/$my_dlsyms" "\ ++ {\"@INIT@\", (void *) <_syminit}," ++ fi ++ ++ case $need_lib_prefix in ++ no) ++ eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ++ ;; ++ *) ++ eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ++ ;; ++ esac ++ echo >> "$output_objdir/$my_dlsyms" "\ ++ {0, (void *) 0} ++}; ++ ++/* This works around a problem in FreeBSD linker */ ++#ifdef FREEBSD_WORKAROUND ++static const void *lt_preloaded_setup() { ++ return lt_${my_prefix}_LTX_preloaded_symbols; ++} ++#endif ++ ++#ifdef __cplusplus ++} ++#endif\ ++" ++ } # !$opt_dry_run ++ ++ pic_flag_for_symtable= ++ case "$compile_command " in ++ *" -static "*) ;; ++ *) ++ case $host in ++ # compiling the symbol table file with pic_flag works around ++ # a FreeBSD bug that causes programs to crash when -lm is ++ # linked before any other PIC object. But we must not use ++ # pic_flag when linking with -static. The problem exists in ++ # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. ++ *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) ++ pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; ++ *-*-hpux*) ++ pic_flag_for_symtable=" $pic_flag" ;; ++ *) ++ $my_pic_p && pic_flag_for_symtable=" $pic_flag" ++ ;; ++ esac ++ ;; ++ esac ++ symtab_cflags= ++ for arg in $LTCFLAGS; do ++ case $arg in ++ -pie | -fpie | -fPIE) ;; ++ *) func_append symtab_cflags " $arg" ;; ++ esac ++ done ++ ++ # Now compile the dynamic symbol file. ++ func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' ++ ++ # Clean up the generated files. ++ func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' ++ ++ # Transform the symbol file into the correct name. ++ symfileobj=$output_objdir/${my_outputname}S.$objext ++ case $host in ++ *cygwin* | *mingw* | *cegcc* ) ++ if test -f "$output_objdir/$my_outputname.def"; then ++ compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` ++ finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` ++ else ++ compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` ++ finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ++ fi ++ ;; ++ *) ++ compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` ++ finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ++ ;; ++ esac ++ ;; ++ *) ++ func_fatal_error "unknown suffix for '$my_dlsyms'" ++ ;; ++ esac ++ else ++ # We keep going just in case the user didn't refer to ++ # lt_preloaded_symbols. The linker will fail if global_symbol_pipe ++ # really was required. ++ ++ # Nullify the symbol file. ++ compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` ++ finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` ++ fi ++} ++ ++# func_cygming_gnu_implib_p ARG ++# This predicate returns with zero status (TRUE) if ++# ARG is a GNU/binutils-style import library. Returns ++# with nonzero status (FALSE) otherwise. ++func_cygming_gnu_implib_p () ++{ ++ $debug_cmd ++ ++ func_to_tool_file "$1" func_convert_file_msys_to_w32 ++ func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` ++ test -n "$func_cygming_gnu_implib_tmp" ++} ++ ++# func_cygming_ms_implib_p ARG ++# This predicate returns with zero status (TRUE) if ++# ARG is an MS-style import library. Returns ++# with nonzero status (FALSE) otherwise. ++func_cygming_ms_implib_p () ++{ ++ $debug_cmd ++ ++ func_to_tool_file "$1" func_convert_file_msys_to_w32 ++ func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` ++ test -n "$func_cygming_ms_implib_tmp" ++} ++ ++# func_win32_libid arg ++# return the library type of file 'arg' ++# ++# Need a lot of goo to handle *both* DLLs and import libs ++# Has to be a shell function in order to 'eat' the argument ++# that is supplied when $file_magic_command is called. ++# Despite the name, also deal with 64 bit binaries. ++func_win32_libid () ++{ ++ $debug_cmd ++ ++ win32_libid_type=unknown ++ win32_fileres=`file -L $1 2>/dev/null` ++ case $win32_fileres in ++ *ar\ archive\ import\ library*) # definitely import ++ win32_libid_type="x86 archive import" ++ ;; ++ *ar\ archive*) # could be an import, or static ++ # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. ++ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | ++ $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then ++ case $nm_interface in ++ "MS dumpbin") ++ if func_cygming_ms_implib_p "$1" || ++ func_cygming_gnu_implib_p "$1" ++ then ++ win32_nmres=import ++ else ++ win32_nmres= ++ fi ++ ;; ++ *) ++ func_to_tool_file "$1" func_convert_file_msys_to_w32 ++ win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | ++ $SED -n -e ' ++ 1,100{ ++ / I /{ ++ s|.*|import| ++ p ++ q ++ } ++ }'` ++ ;; ++ esac ++ case $win32_nmres in ++ import*) win32_libid_type="x86 archive import";; ++ *) win32_libid_type="x86 archive static";; ++ esac ++ fi ++ ;; ++ *DLL*) ++ win32_libid_type="x86 DLL" ++ ;; ++ *executable*) # but shell scripts are "executable" too... ++ case $win32_fileres in ++ *MS\ Windows\ PE\ Intel*) ++ win32_libid_type="x86 DLL" ++ ;; ++ esac ++ ;; ++ esac ++ $ECHO "$win32_libid_type" ++} ++ ++# func_cygming_dll_for_implib ARG ++# ++# Platform-specific function to extract the ++# name of the DLL associated with the specified ++# import library ARG. ++# Invoked by eval'ing the libtool variable ++# $sharedlib_from_linklib_cmd ++# Result is available in the variable ++# $sharedlib_from_linklib_result ++func_cygming_dll_for_implib () ++{ ++ $debug_cmd ++ ++ sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` ++} ++ ++# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs ++# ++# The is the core of a fallback implementation of a ++# platform-specific function to extract the name of the ++# DLL associated with the specified import library LIBNAME. ++# ++# SECTION_NAME is either .idata$6 or .idata$7, depending ++# on the platform and compiler that created the implib. ++# ++# Echos the name of the DLL associated with the ++# specified import library. ++func_cygming_dll_for_implib_fallback_core () ++{ ++ $debug_cmd ++ ++ match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` ++ $OBJDUMP -s --section "$1" "$2" 2>/dev/null | ++ $SED '/^Contents of section '"$match_literal"':/{ ++ # Place marker at beginning of archive member dllname section ++ s/.*/====MARK====/ ++ p ++ d ++ } ++ # These lines can sometimes be longer than 43 characters, but ++ # are always uninteresting ++ /:[ ]*file format pe[i]\{,1\}-/d ++ /^In archive [^:]*:/d ++ # Ensure marker is printed ++ /^====MARK====/p ++ # Remove all lines with less than 43 characters ++ /^.\{43\}/!d ++ # From remaining lines, remove first 43 characters ++ s/^.\{43\}//' | ++ $SED -n ' ++ # Join marker and all lines until next marker into a single line ++ /^====MARK====/ b para ++ H ++ $ b para ++ b ++ :para ++ x ++ s/\n//g ++ # Remove the marker ++ s/^====MARK====// ++ # Remove trailing dots and whitespace ++ s/[\. \t]*$// ++ # Print ++ /./p' | ++ # we now have a list, one entry per line, of the stringified ++ # contents of the appropriate section of all members of the ++ # archive that possess that section. Heuristic: eliminate ++ # all those that have a first or second character that is ++ # a '.' (that is, objdump's representation of an unprintable ++ # character.) This should work for all archives with less than ++ # 0x302f exports -- but will fail for DLLs whose name actually ++ # begins with a literal '.' or a single character followed by ++ # a '.'. ++ # ++ # Of those that remain, print the first one. ++ $SED -e '/^\./d;/^.\./d;q' ++} ++ ++# func_cygming_dll_for_implib_fallback ARG ++# Platform-specific function to extract the ++# name of the DLL associated with the specified ++# import library ARG. ++# ++# This fallback implementation is for use when $DLLTOOL ++# does not support the --identify-strict option. ++# Invoked by eval'ing the libtool variable ++# $sharedlib_from_linklib_cmd ++# Result is available in the variable ++# $sharedlib_from_linklib_result ++func_cygming_dll_for_implib_fallback () ++{ ++ $debug_cmd ++ ++ if func_cygming_gnu_implib_p "$1"; then ++ # binutils import library ++ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` ++ elif func_cygming_ms_implib_p "$1"; then ++ # ms-generated import library ++ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` ++ else ++ # unknown ++ sharedlib_from_linklib_result= ++ fi ++} ++ ++ ++# func_extract_an_archive dir oldlib ++func_extract_an_archive () ++{ ++ $debug_cmd ++ ++ f_ex_an_ar_dir=$1; shift ++ f_ex_an_ar_oldlib=$1 ++ if test yes = "$lock_old_archive_extraction"; then ++ lockfile=$f_ex_an_ar_oldlib.lock ++ until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do ++ func_echo "Waiting for $lockfile to be removed" ++ sleep 2 ++ done ++ fi ++ func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ ++ 'stat=$?; rm -f "$lockfile"; exit $stat' ++ if test yes = "$lock_old_archive_extraction"; then ++ $opt_dry_run || rm -f "$lockfile" ++ fi ++ if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then ++ : ++ else ++ func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" ++ fi ++} ++ ++ ++# func_extract_archives gentop oldlib ... ++func_extract_archives () ++{ ++ $debug_cmd ++ ++ my_gentop=$1; shift ++ my_oldlibs=${1+"$@"} ++ my_oldobjs= ++ my_xlib= ++ my_xabs= ++ my_xdir= ++ ++ for my_xlib in $my_oldlibs; do ++ # Extract the objects. ++ case $my_xlib in ++ [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; ++ *) my_xabs=`pwd`"/$my_xlib" ;; ++ esac ++ func_basename "$my_xlib" ++ my_xlib=$func_basename_result ++ my_xlib_u=$my_xlib ++ while :; do ++ case " $extracted_archives " in ++ *" $my_xlib_u "*) ++ func_arith $extracted_serial + 1 ++ extracted_serial=$func_arith_result ++ my_xlib_u=lt$extracted_serial-$my_xlib ;; ++ *) break ;; ++ esac ++ done ++ extracted_archives="$extracted_archives $my_xlib_u" ++ my_xdir=$my_gentop/$my_xlib_u ++ ++ func_mkdir_p "$my_xdir" ++ ++ case $host in ++ *-darwin*) ++ func_verbose "Extracting $my_xabs" ++ # Do not bother doing anything if just a dry run ++ $opt_dry_run || { ++ darwin_orig_dir=`pwd` ++ cd $my_xdir || exit $? ++ darwin_archive=$my_xabs ++ darwin_curdir=`pwd` ++ func_basename "$darwin_archive" ++ darwin_base_archive=$func_basename_result ++ darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` ++ if test -n "$darwin_arches"; then ++ darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` ++ darwin_arch= ++ func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" ++ for darwin_arch in $darwin_arches; do ++ func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" ++ $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" ++ cd "unfat-$$/$darwin_base_archive-$darwin_arch" ++ func_extract_an_archive "`pwd`" "$darwin_base_archive" ++ cd "$darwin_curdir" ++ $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" ++ done # $darwin_arches ++ ## Okay now we've a bunch of thin objects, gotta fatten them up :) ++ darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` ++ darwin_file= ++ darwin_files= ++ for darwin_file in $darwin_filelist; do ++ darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` ++ $LIPO -create -output "$darwin_file" $darwin_files ++ done # $darwin_filelist ++ $RM -rf unfat-$$ ++ cd "$darwin_orig_dir" ++ else ++ cd $darwin_orig_dir ++ func_extract_an_archive "$my_xdir" "$my_xabs" ++ fi # $darwin_arches ++ } # !$opt_dry_run ++ ;; ++ *) ++ func_extract_an_archive "$my_xdir" "$my_xabs" ++ ;; ++ esac ++ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` ++ done ++ ++ func_extract_archives_result=$my_oldobjs ++} ++ ++ ++# func_emit_wrapper [arg=no] ++# ++# Emit a libtool wrapper script on stdout. ++# Don't directly open a file because we may want to ++# incorporate the script contents within a cygwin/mingw ++# wrapper executable. Must ONLY be called from within ++# func_mode_link because it depends on a number of variables ++# set therein. ++# ++# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR ++# variable will take. If 'yes', then the emitted script ++# will assume that the directory where it is stored is ++# the $objdir directory. This is a cygwin/mingw-specific ++# behavior. ++func_emit_wrapper () ++{ ++ func_emit_wrapper_arg1=${1-no} ++ ++ $ECHO "\ ++#! $SHELL ++ ++# $output - temporary wrapper script for $objdir/$outputname ++# Generated by $PROGRAM (GNU $PACKAGE) $VERSION ++# ++# The $output program cannot be directly executed until all the libtool ++# libraries that it depends on are installed. ++# ++# This wrapper script should never be moved out of the build directory. ++# If it is, it will not operate correctly. ++ ++# Sed substitution that helps us do robust quoting. It backslashifies ++# metacharacters that are still active within double-quoted strings. ++sed_quote_subst='$sed_quote_subst' ++ ++# Be Bourne compatible ++if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then ++ emulate sh ++ NULLCMD=: ++ # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which ++ # is contrary to our usage. Disable this feature. ++ alias -g '\${1+\"\$@\"}'='\"\$@\"' ++ setopt NO_GLOB_SUBST ++else ++ case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac ++fi ++BIN_SH=xpg4; export BIN_SH # for Tru64 ++DUALCASE=1; export DUALCASE # for MKS sh ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++(unset CDPATH) >/dev/null 2>&1 && unset CDPATH ++ ++relink_command=\"$relink_command\" ++ ++# This environment variable determines our operation mode. ++if test \"\$libtool_install_magic\" = \"$magic\"; then ++ # install mode needs the following variables: ++ generated_by_libtool_version='$macro_version' ++ notinst_deplibs='$notinst_deplibs' ++else ++ # When we are sourced in execute mode, \$file and \$ECHO are already set. ++ if test \"\$libtool_execute_magic\" != \"$magic\"; then ++ file=\"\$0\"" ++ ++ qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` ++ $ECHO "\ ++ ++# A function that is used when there is no print builtin or printf. ++func_fallback_echo () ++{ ++ eval 'cat <<_LTECHO_EOF ++\$1 ++_LTECHO_EOF' ++} ++ ECHO=\"$qECHO\" ++ fi ++ ++# Very basic option parsing. These options are (a) specific to ++# the libtool wrapper, (b) are identical between the wrapper ++# /script/ and the wrapper /executable/ that is used only on ++# windows platforms, and (c) all begin with the string "--lt-" ++# (application programs are unlikely to have options that match ++# this pattern). ++# ++# There are only two supported options: --lt-debug and ++# --lt-dump-script. There is, deliberately, no --lt-help. ++# ++# The first argument to this parsing function should be the ++# script's $0 value, followed by "$@". ++lt_option_debug= ++func_parse_lt_options () ++{ ++ lt_script_arg0=\$0 ++ shift ++ for lt_opt ++ do ++ case \"\$lt_opt\" in ++ --lt-debug) lt_option_debug=1 ;; ++ --lt-dump-script) ++ lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` ++ test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. ++ lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` ++ cat \"\$lt_dump_D/\$lt_dump_F\" ++ exit 0 ++ ;; ++ --lt-*) ++ \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 ++ exit 1 ++ ;; ++ esac ++ done ++ ++ # Print the debug banner immediately: ++ if test -n \"\$lt_option_debug\"; then ++ echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 ++ fi ++} ++ ++# Used when --lt-debug. Prints its arguments to stdout ++# (redirection is the responsibility of the caller) ++func_lt_dump_args () ++{ ++ lt_dump_args_N=1; ++ for lt_arg ++ do ++ \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" ++ lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` ++ done ++} ++ ++# Core function for launching the target application ++func_exec_program_core () ++{ ++" ++ case $host in ++ # Backslashes separate directories on plain windows ++ *-*-mingw | *-*-os2* | *-cegcc*) ++ $ECHO "\ ++ if test -n \"\$lt_option_debug\"; then ++ \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 ++ func_lt_dump_args \${1+\"\$@\"} 1>&2 ++ fi ++ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} ++" ++ ;; ++ ++ *) ++ $ECHO "\ ++ if test -n \"\$lt_option_debug\"; then ++ \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 ++ func_lt_dump_args \${1+\"\$@\"} 1>&2 ++ fi ++ exec \"\$progdir/\$program\" \${1+\"\$@\"} ++" ++ ;; ++ esac ++ $ECHO "\ ++ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 ++ exit 1 ++} ++ ++# A function to encapsulate launching the target application ++# Strips options in the --lt-* namespace from \$@ and ++# launches target application with the remaining arguments. ++func_exec_program () ++{ ++ case \" \$* \" in ++ *\\ --lt-*) ++ for lt_wr_arg ++ do ++ case \$lt_wr_arg in ++ --lt-*) ;; ++ *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; ++ esac ++ shift ++ done ;; ++ esac ++ func_exec_program_core \${1+\"\$@\"} ++} ++ ++ # Parse options ++ func_parse_lt_options \"\$0\" \${1+\"\$@\"} ++ ++ # Find the directory that this script lives in. ++ thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` ++ test \"x\$thisdir\" = \"x\$file\" && thisdir=. ++ ++ # Follow symbolic links until we get to the real thisdir. ++ file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` ++ while test -n \"\$file\"; do ++ destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` ++ ++ # If there was a directory component, then change thisdir. ++ if test \"x\$destdir\" != \"x\$file\"; then ++ case \"\$destdir\" in ++ [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; ++ *) thisdir=\"\$thisdir/\$destdir\" ;; ++ esac ++ fi ++ ++ file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` ++ file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` ++ done ++ ++ # Usually 'no', except on cygwin/mingw when embedded into ++ # the cwrapper. ++ WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 ++ if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then ++ # special case for '.' ++ if test \"\$thisdir\" = \".\"; then ++ thisdir=\`pwd\` ++ fi ++ # remove .libs from thisdir ++ case \"\$thisdir\" in ++ *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; ++ $objdir ) thisdir=. ;; ++ esac ++ fi ++ ++ # Try to get the absolute directory name. ++ absdir=\`cd \"\$thisdir\" && pwd\` ++ test -n \"\$absdir\" && thisdir=\"\$absdir\" ++" ++ ++ if test yes = "$fast_install"; then ++ $ECHO "\ ++ program=lt-'$outputname'$exeext ++ progdir=\"\$thisdir/$objdir\" ++ ++ if test ! -f \"\$progdir/\$program\" || ++ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ ++ test \"X\$file\" != \"X\$progdir/\$program\"; }; then ++ ++ file=\"\$\$-\$program\" ++ ++ if test ! -d \"\$progdir\"; then ++ $MKDIR \"\$progdir\" ++ else ++ $RM \"\$progdir/\$file\" ++ fi" ++ ++ $ECHO "\ ++ ++ # relink executable if necessary ++ if test -n \"\$relink_command\"; then ++ if relink_command_output=\`eval \$relink_command 2>&1\`; then : ++ else ++ \$ECHO \"\$relink_command_output\" >&2 ++ $RM \"\$progdir/\$file\" ++ exit 1 ++ fi ++ fi ++ ++ $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || ++ { $RM \"\$progdir/\$program\"; ++ $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } ++ $RM \"\$progdir/\$file\" ++ fi" ++ else ++ $ECHO "\ ++ program='$outputname' ++ progdir=\"\$thisdir/$objdir\" ++" ++ fi ++ ++ $ECHO "\ ++ ++ if test -f \"\$progdir/\$program\"; then" ++ ++ # fixup the dll searchpath if we need to. ++ # ++ # Fix the DLL searchpath if we need to. Do this before prepending ++ # to shlibpath, because on Windows, both are PATH and uninstalled ++ # libraries must come first. ++ if test -n "$dllsearchpath"; then ++ $ECHO "\ ++ # Add the dll search path components to the executable PATH ++ PATH=$dllsearchpath:\$PATH ++" ++ fi ++ ++ # Export our shlibpath_var if we have one. ++ if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then ++ $ECHO "\ ++ # Add our own library path to $shlibpath_var ++ $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" ++ ++ # Some systems cannot cope with colon-terminated $shlibpath_var ++ # The second colon is a workaround for a bug in BeOS R4 sed ++ $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` ++ ++ export $shlibpath_var ++" ++ fi ++ ++ $ECHO "\ ++ if test \"\$libtool_execute_magic\" != \"$magic\"; then ++ # Run the actual program with our arguments. ++ func_exec_program \${1+\"\$@\"} ++ fi ++ else ++ # The program doesn't exist. ++ \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 ++ \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 ++ \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 ++ exit 1 ++ fi ++fi\ ++" ++} ++ ++ ++# func_emit_cwrapperexe_src ++# emit the source code for a wrapper executable on stdout ++# Must ONLY be called from within func_mode_link because ++# it depends on a number of variable set therein. ++func_emit_cwrapperexe_src () ++{ ++ cat < ++#include ++#ifdef _MSC_VER ++# include ++# include ++# include ++#else ++# include ++# include ++# ifdef __CYGWIN__ ++# include ++# endif ++#endif ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) ++ ++/* declarations of non-ANSI functions */ ++#if defined __MINGW32__ ++# ifdef __STRICT_ANSI__ ++int _putenv (const char *); ++# endif ++#elif defined __CYGWIN__ ++# ifdef __STRICT_ANSI__ ++char *realpath (const char *, char *); ++int putenv (char *); ++int setenv (const char *, const char *, int); ++# endif ++/* #elif defined other_platform || defined ... */ ++#endif ++ ++/* portability defines, excluding path handling macros */ ++#if defined _MSC_VER ++# define setmode _setmode ++# define stat _stat ++# define chmod _chmod ++# define getcwd _getcwd ++# define putenv _putenv ++# define S_IXUSR _S_IEXEC ++#elif defined __MINGW32__ ++# define setmode _setmode ++# define stat _stat ++# define chmod _chmod ++# define getcwd _getcwd ++# define putenv _putenv ++#elif defined __CYGWIN__ ++# define HAVE_SETENV ++# define FOPEN_WB "wb" ++/* #elif defined other platforms ... */ ++#endif ++ ++#if defined PATH_MAX ++# define LT_PATHMAX PATH_MAX ++#elif defined MAXPATHLEN ++# define LT_PATHMAX MAXPATHLEN ++#else ++# define LT_PATHMAX 1024 ++#endif ++ ++#ifndef S_IXOTH ++# define S_IXOTH 0 ++#endif ++#ifndef S_IXGRP ++# define S_IXGRP 0 ++#endif ++ ++/* path handling portability macros */ ++#ifndef DIR_SEPARATOR ++# define DIR_SEPARATOR '/' ++# define PATH_SEPARATOR ':' ++#endif ++ ++#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ ++ defined __OS2__ ++# define HAVE_DOS_BASED_FILE_SYSTEM ++# define FOPEN_WB "wb" ++# ifndef DIR_SEPARATOR_2 ++# define DIR_SEPARATOR_2 '\\' ++# endif ++# ifndef PATH_SEPARATOR_2 ++# define PATH_SEPARATOR_2 ';' ++# endif ++#endif ++ ++#ifndef DIR_SEPARATOR_2 ++# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) ++#else /* DIR_SEPARATOR_2 */ ++# define IS_DIR_SEPARATOR(ch) \ ++ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) ++#endif /* DIR_SEPARATOR_2 */ ++ ++#ifndef PATH_SEPARATOR_2 ++# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) ++#else /* PATH_SEPARATOR_2 */ ++# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) ++#endif /* PATH_SEPARATOR_2 */ ++ ++#ifndef FOPEN_WB ++# define FOPEN_WB "w" ++#endif ++#ifndef _O_BINARY ++# define _O_BINARY 0 ++#endif ++ ++#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) ++#define XFREE(stale) do { \ ++ if (stale) { free (stale); stale = 0; } \ ++} while (0) ++ ++#if defined LT_DEBUGWRAPPER ++static int lt_debug = 1; ++#else ++static int lt_debug = 0; ++#endif ++ ++const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ ++ ++void *xmalloc (size_t num); ++char *xstrdup (const char *string); ++const char *base_name (const char *name); ++char *find_executable (const char *wrapper); ++char *chase_symlinks (const char *pathspec); ++int make_executable (const char *path); ++int check_executable (const char *path); ++char *strendzap (char *str, const char *pat); ++void lt_debugprintf (const char *file, int line, const char *fmt, ...); ++void lt_fatal (const char *file, int line, const char *message, ...); ++static const char *nonnull (const char *s); ++static const char *nonempty (const char *s); ++void lt_setenv (const char *name, const char *value); ++char *lt_extend_str (const char *orig_value, const char *add, int to_end); ++void lt_update_exe_path (const char *name, const char *value); ++void lt_update_lib_path (const char *name, const char *value); ++char **prepare_spawn (char **argv); ++void lt_dump_script (FILE *f); ++EOF ++ ++ cat <= 0) ++ && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) ++ return 1; ++ else ++ return 0; ++} ++ ++int ++make_executable (const char *path) ++{ ++ int rval = 0; ++ struct stat st; ++ ++ lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", ++ nonempty (path)); ++ if ((!path) || (!*path)) ++ return 0; ++ ++ if (stat (path, &st) >= 0) ++ { ++ rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); ++ } ++ return rval; ++} ++ ++/* Searches for the full path of the wrapper. Returns ++ newly allocated full path name if found, NULL otherwise ++ Does not chase symlinks, even on platforms that support them. ++*/ ++char * ++find_executable (const char *wrapper) ++{ ++ int has_slash = 0; ++ const char *p; ++ const char *p_next; ++ /* static buffer for getcwd */ ++ char tmp[LT_PATHMAX + 1]; ++ size_t tmp_len; ++ char *concat_name; ++ ++ lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", ++ nonempty (wrapper)); ++ ++ if ((wrapper == NULL) || (*wrapper == '\0')) ++ return NULL; ++ ++ /* Absolute path? */ ++#if defined HAVE_DOS_BASED_FILE_SYSTEM ++ if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') ++ { ++ concat_name = xstrdup (wrapper); ++ if (check_executable (concat_name)) ++ return concat_name; ++ XFREE (concat_name); ++ } ++ else ++ { ++#endif ++ if (IS_DIR_SEPARATOR (wrapper[0])) ++ { ++ concat_name = xstrdup (wrapper); ++ if (check_executable (concat_name)) ++ return concat_name; ++ XFREE (concat_name); ++ } ++#if defined HAVE_DOS_BASED_FILE_SYSTEM ++ } ++#endif ++ ++ for (p = wrapper; *p; p++) ++ if (*p == '/') ++ { ++ has_slash = 1; ++ break; ++ } ++ if (!has_slash) ++ { ++ /* no slashes; search PATH */ ++ const char *path = getenv ("PATH"); ++ if (path != NULL) ++ { ++ for (p = path; *p; p = p_next) ++ { ++ const char *q; ++ size_t p_len; ++ for (q = p; *q; q++) ++ if (IS_PATH_SEPARATOR (*q)) ++ break; ++ p_len = (size_t) (q - p); ++ p_next = (*q == '\0' ? q : q + 1); ++ if (p_len == 0) ++ { ++ /* empty path: current directory */ ++ if (getcwd (tmp, LT_PATHMAX) == NULL) ++ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", ++ nonnull (strerror (errno))); ++ tmp_len = strlen (tmp); ++ concat_name = ++ XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); ++ memcpy (concat_name, tmp, tmp_len); ++ concat_name[tmp_len] = '/'; ++ strcpy (concat_name + tmp_len + 1, wrapper); ++ } ++ else ++ { ++ concat_name = ++ XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); ++ memcpy (concat_name, p, p_len); ++ concat_name[p_len] = '/'; ++ strcpy (concat_name + p_len + 1, wrapper); ++ } ++ if (check_executable (concat_name)) ++ return concat_name; ++ XFREE (concat_name); ++ } ++ } ++ /* not found in PATH; assume curdir */ ++ } ++ /* Relative path | not found in path: prepend cwd */ ++ if (getcwd (tmp, LT_PATHMAX) == NULL) ++ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", ++ nonnull (strerror (errno))); ++ tmp_len = strlen (tmp); ++ concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); ++ memcpy (concat_name, tmp, tmp_len); ++ concat_name[tmp_len] = '/'; ++ strcpy (concat_name + tmp_len + 1, wrapper); ++ ++ if (check_executable (concat_name)) ++ return concat_name; ++ XFREE (concat_name); ++ return NULL; ++} ++ ++char * ++chase_symlinks (const char *pathspec) ++{ ++#ifndef S_ISLNK ++ return xstrdup (pathspec); ++#else ++ char buf[LT_PATHMAX]; ++ struct stat s; ++ char *tmp_pathspec = xstrdup (pathspec); ++ char *p; ++ int has_symlinks = 0; ++ while (strlen (tmp_pathspec) && !has_symlinks) ++ { ++ lt_debugprintf (__FILE__, __LINE__, ++ "checking path component for symlinks: %s\n", ++ tmp_pathspec); ++ if (lstat (tmp_pathspec, &s) == 0) ++ { ++ if (S_ISLNK (s.st_mode) != 0) ++ { ++ has_symlinks = 1; ++ break; ++ } ++ ++ /* search backwards for last DIR_SEPARATOR */ ++ p = tmp_pathspec + strlen (tmp_pathspec) - 1; ++ while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) ++ p--; ++ if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) ++ { ++ /* no more DIR_SEPARATORS left */ ++ break; ++ } ++ *p = '\0'; ++ } ++ else ++ { ++ lt_fatal (__FILE__, __LINE__, ++ "error accessing file \"%s\": %s", ++ tmp_pathspec, nonnull (strerror (errno))); ++ } ++ } ++ XFREE (tmp_pathspec); ++ ++ if (!has_symlinks) ++ { ++ return xstrdup (pathspec); ++ } ++ ++ tmp_pathspec = realpath (pathspec, buf); ++ if (tmp_pathspec == 0) ++ { ++ lt_fatal (__FILE__, __LINE__, ++ "could not follow symlinks for %s", pathspec); ++ } ++ return xstrdup (tmp_pathspec); ++#endif ++} ++ ++char * ++strendzap (char *str, const char *pat) ++{ ++ size_t len, patlen; ++ ++ assert (str != NULL); ++ assert (pat != NULL); ++ ++ len = strlen (str); ++ patlen = strlen (pat); ++ ++ if (patlen <= len) ++ { ++ str += len - patlen; ++ if (STREQ (str, pat)) ++ *str = '\0'; ++ } ++ return str; ++} ++ ++void ++lt_debugprintf (const char *file, int line, const char *fmt, ...) ++{ ++ va_list args; ++ if (lt_debug) ++ { ++ (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); ++ va_start (args, fmt); ++ (void) vfprintf (stderr, fmt, args); ++ va_end (args); ++ } ++} ++ ++static void ++lt_error_core (int exit_status, const char *file, ++ int line, const char *mode, ++ const char *message, va_list ap) ++{ ++ fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); ++ vfprintf (stderr, message, ap); ++ fprintf (stderr, ".\n"); ++ ++ if (exit_status >= 0) ++ exit (exit_status); ++} ++ ++void ++lt_fatal (const char *file, int line, const char *message, ...) ++{ ++ va_list ap; ++ va_start (ap, message); ++ lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); ++ va_end (ap); ++} ++ ++static const char * ++nonnull (const char *s) ++{ ++ return s ? s : "(null)"; ++} ++ ++static const char * ++nonempty (const char *s) ++{ ++ return (s && !*s) ? "(empty)" : nonnull (s); ++} ++ ++void ++lt_setenv (const char *name, const char *value) ++{ ++ lt_debugprintf (__FILE__, __LINE__, ++ "(lt_setenv) setting '%s' to '%s'\n", ++ nonnull (name), nonnull (value)); ++ { ++#ifdef HAVE_SETENV ++ /* always make a copy, for consistency with !HAVE_SETENV */ ++ char *str = xstrdup (value); ++ setenv (name, str, 1); ++#else ++ size_t len = strlen (name) + 1 + strlen (value) + 1; ++ char *str = XMALLOC (char, len); ++ sprintf (str, "%s=%s", name, value); ++ if (putenv (str) != EXIT_SUCCESS) ++ { ++ XFREE (str); ++ } ++#endif ++ } ++} ++ ++char * ++lt_extend_str (const char *orig_value, const char *add, int to_end) ++{ ++ char *new_value; ++ if (orig_value && *orig_value) ++ { ++ size_t orig_value_len = strlen (orig_value); ++ size_t add_len = strlen (add); ++ new_value = XMALLOC (char, add_len + orig_value_len + 1); ++ if (to_end) ++ { ++ strcpy (new_value, orig_value); ++ strcpy (new_value + orig_value_len, add); ++ } ++ else ++ { ++ strcpy (new_value, add); ++ strcpy (new_value + add_len, orig_value); ++ } ++ } ++ else ++ { ++ new_value = xstrdup (add); ++ } ++ return new_value; ++} ++ ++void ++lt_update_exe_path (const char *name, const char *value) ++{ ++ lt_debugprintf (__FILE__, __LINE__, ++ "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", ++ nonnull (name), nonnull (value)); ++ ++ if (name && *name && value && *value) ++ { ++ char *new_value = lt_extend_str (getenv (name), value, 0); ++ /* some systems can't cope with a ':'-terminated path #' */ ++ size_t len = strlen (new_value); ++ while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) ++ { ++ new_value[--len] = '\0'; ++ } ++ lt_setenv (name, new_value); ++ XFREE (new_value); ++ } ++} ++ ++void ++lt_update_lib_path (const char *name, const char *value) ++{ ++ lt_debugprintf (__FILE__, __LINE__, ++ "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", ++ nonnull (name), nonnull (value)); ++ ++ if (name && *name && value && *value) ++ { ++ char *new_value = lt_extend_str (getenv (name), value, 0); ++ lt_setenv (name, new_value); ++ XFREE (new_value); ++ } ++} ++ ++EOF ++ case $host_os in ++ mingw*) ++ cat <<"EOF" ++ ++/* Prepares an argument vector before calling spawn(). ++ Note that spawn() does not by itself call the command interpreter ++ (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ++ ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); ++ GetVersionEx(&v); ++ v.dwPlatformId == VER_PLATFORM_WIN32_NT; ++ }) ? "cmd.exe" : "command.com"). ++ Instead it simply concatenates the arguments, separated by ' ', and calls ++ CreateProcess(). We must quote the arguments since Win32 CreateProcess() ++ interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a ++ special way: ++ - Space and tab are interpreted as delimiters. They are not treated as ++ delimiters if they are surrounded by double quotes: "...". ++ - Unescaped double quotes are removed from the input. Their only effect is ++ that within double quotes, space and tab are treated like normal ++ characters. ++ - Backslashes not followed by double quotes are not special. ++ - But 2*n+1 backslashes followed by a double quote become ++ n backslashes followed by a double quote (n >= 0): ++ \" -> " ++ \\\" -> \" ++ \\\\\" -> \\" ++ */ ++#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" ++#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" ++char ** ++prepare_spawn (char **argv) ++{ ++ size_t argc; ++ char **new_argv; ++ size_t i; ++ ++ /* Count number of arguments. */ ++ for (argc = 0; argv[argc] != NULL; argc++) ++ ; ++ ++ /* Allocate new argument vector. */ ++ new_argv = XMALLOC (char *, argc + 1); ++ ++ /* Put quoted arguments into the new argument vector. */ ++ for (i = 0; i < argc; i++) ++ { ++ const char *string = argv[i]; ++ ++ if (string[0] == '\0') ++ new_argv[i] = xstrdup ("\"\""); ++ else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) ++ { ++ int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); ++ size_t length; ++ unsigned int backslashes; ++ const char *s; ++ char *quoted_string; ++ char *p; ++ ++ length = 0; ++ backslashes = 0; ++ if (quote_around) ++ length++; ++ for (s = string; *s != '\0'; s++) ++ { ++ char c = *s; ++ if (c == '"') ++ length += backslashes + 1; ++ length++; ++ if (c == '\\') ++ backslashes++; ++ else ++ backslashes = 0; ++ } ++ if (quote_around) ++ length += backslashes + 1; ++ ++ quoted_string = XMALLOC (char, length + 1); ++ ++ p = quoted_string; ++ backslashes = 0; ++ if (quote_around) ++ *p++ = '"'; ++ for (s = string; *s != '\0'; s++) ++ { ++ char c = *s; ++ if (c == '"') ++ { ++ unsigned int j; ++ for (j = backslashes + 1; j > 0; j--) ++ *p++ = '\\'; ++ } ++ *p++ = c; ++ if (c == '\\') ++ backslashes++; ++ else ++ backslashes = 0; ++ } ++ if (quote_around) ++ { ++ unsigned int j; ++ for (j = backslashes; j > 0; j--) ++ *p++ = '\\'; ++ *p++ = '"'; ++ } ++ *p = '\0'; ++ ++ new_argv[i] = quoted_string; ++ } ++ else ++ new_argv[i] = (char *) string; ++ } ++ new_argv[argc] = NULL; ++ ++ return new_argv; ++} ++EOF ++ ;; ++ esac ++ ++ cat <<"EOF" ++void lt_dump_script (FILE* f) ++{ ++EOF ++ func_emit_wrapper yes | ++ $SED -n -e ' ++s/^\(.\{79\}\)\(..*\)/\1\ ++\2/ ++h ++s/\([\\"]\)/\\\1/g ++s/$/\\n/ ++s/\([^\n]*\).*/ fputs ("\1", f);/p ++g ++D' ++ cat <<"EOF" ++} ++EOF ++} ++# end: func_emit_cwrapperexe_src ++ ++# func_win32_import_lib_p ARG ++# True if ARG is an import lib, as indicated by $file_magic_cmd ++func_win32_import_lib_p () ++{ ++ $debug_cmd ++ ++ case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in ++ *import*) : ;; ++ *) false ;; ++ esac ++} ++ ++# func_suncc_cstd_abi ++# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! ++# Several compiler flags select an ABI that is incompatible with the ++# Cstd library. Avoid specifying it if any are in CXXFLAGS. ++func_suncc_cstd_abi () ++{ ++ $debug_cmd ++ ++ case " $compile_command " in ++ *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) ++ suncc_use_cstd_abi=no ++ ;; ++ *) ++ suncc_use_cstd_abi=yes ++ ;; ++ esac ++} ++ ++# func_mode_link arg... ++func_mode_link () ++{ ++ $debug_cmd ++ ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) ++ # It is impossible to link a dll without this setting, and ++ # we shouldn't force the makefile maintainer to figure out ++ # what system we are compiling for in order to pass an extra ++ # flag for every libtool invocation. ++ # allow_undefined=no ++ ++ # FIXME: Unfortunately, there are problems with the above when trying ++ # to make a dll that has undefined symbols, in which case not ++ # even a static library is built. For now, we need to specify ++ # -no-undefined on the libtool link line when we can be certain ++ # that all symbols are satisfied, otherwise we get a static library. ++ allow_undefined=yes ++ ;; ++ *) ++ allow_undefined=yes ++ ;; ++ esac ++ libtool_args=$nonopt ++ base_compile="$nonopt $@" ++ compile_command=$nonopt ++ finalize_command=$nonopt ++ ++ compile_rpath= ++ finalize_rpath= ++ compile_shlibpath= ++ finalize_shlibpath= ++ convenience= ++ old_convenience= ++ deplibs= ++ old_deplibs= ++ compiler_flags= ++ linker_flags= ++ dllsearchpath= ++ lib_search_path=`pwd` ++ inst_prefix_dir= ++ new_inherited_linker_flags= ++ ++ avoid_version=no ++ bindir= ++ dlfiles= ++ dlprefiles= ++ dlself=no ++ export_dynamic=no ++ export_symbols= ++ export_symbols_regex= ++ generated= ++ libobjs= ++ ltlibs= ++ module=no ++ no_install=no ++ objs= ++ os2dllname= ++ non_pic_objects= ++ precious_files_regex= ++ prefer_static_libs=no ++ preload=false ++ prev= ++ prevarg= ++ release= ++ rpath= ++ xrpath= ++ perm_rpath= ++ temp_rpath= ++ thread_safe=no ++ vinfo= ++ vinfo_number=no ++ weak_libs= ++ single_module=$wl-single_module ++ func_infer_tag $base_compile ++ ++ # We need to know -static, to get the right output filenames. ++ for arg ++ do ++ case $arg in ++ -shared) ++ test yes != "$build_libtool_libs" \ ++ && func_fatal_configuration "cannot build a shared library" ++ build_old_libs=no ++ break ++ ;; ++ -all-static | -static | -static-libtool-libs) ++ case $arg in ++ -all-static) ++ if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then ++ func_warning "complete static linking is impossible in this configuration" ++ fi ++ if test -n "$link_static_flag"; then ++ dlopen_self=$dlopen_self_static ++ fi ++ prefer_static_libs=yes ++ ;; ++ -static) ++ if test -z "$pic_flag" && test -n "$link_static_flag"; then ++ dlopen_self=$dlopen_self_static ++ fi ++ prefer_static_libs=built ++ ;; ++ -static-libtool-libs) ++ if test -z "$pic_flag" && test -n "$link_static_flag"; then ++ dlopen_self=$dlopen_self_static ++ fi ++ prefer_static_libs=yes ++ ;; ++ esac ++ build_libtool_libs=no ++ build_old_libs=yes ++ break ++ ;; ++ esac ++ done ++ ++ # See if our shared archives depend on static archives. ++ test -n "$old_archive_from_new_cmds" && build_old_libs=yes ++ ++ # Go through the arguments, transforming them on the way. ++ while test "$#" -gt 0; do ++ arg=$1 ++ shift ++ func_quote_for_eval "$arg" ++ qarg=$func_quote_for_eval_unquoted_result ++ func_append libtool_args " $func_quote_for_eval_result" ++ ++ # If the previous option needs an argument, assign it. ++ if test -n "$prev"; then ++ case $prev in ++ output) ++ func_append compile_command " @OUTPUT@" ++ func_append finalize_command " @OUTPUT@" ++ ;; ++ esac ++ ++ case $prev in ++ bindir) ++ bindir=$arg ++ prev= ++ continue ++ ;; ++ dlfiles|dlprefiles) ++ $preload || { ++ # Add the symbol object into the linking commands. ++ func_append compile_command " @SYMFILE@" ++ func_append finalize_command " @SYMFILE@" ++ preload=: ++ } ++ case $arg in ++ *.la | *.lo) ;; # We handle these cases below. ++ force) ++ if test no = "$dlself"; then ++ dlself=needless ++ export_dynamic=yes ++ fi ++ prev= ++ continue ++ ;; ++ self) ++ if test dlprefiles = "$prev"; then ++ dlself=yes ++ elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then ++ dlself=yes ++ else ++ dlself=needless ++ export_dynamic=yes ++ fi ++ prev= ++ continue ++ ;; ++ *) ++ if test dlfiles = "$prev"; then ++ func_append dlfiles " $arg" ++ else ++ func_append dlprefiles " $arg" ++ fi ++ prev= ++ continue ++ ;; ++ esac ++ ;; ++ expsyms) ++ export_symbols=$arg ++ test -f "$arg" \ ++ || func_fatal_error "symbol file '$arg' does not exist" ++ prev= ++ continue ++ ;; ++ expsyms_regex) ++ export_symbols_regex=$arg ++ prev= ++ continue ++ ;; ++ framework) ++ case $host in ++ *-*-darwin*) ++ case "$deplibs " in ++ *" $qarg.ltframework "*) ;; ++ *) func_append deplibs " $qarg.ltframework" # this is fixed later ++ ;; ++ esac ++ ;; ++ esac ++ prev= ++ continue ++ ;; ++ inst_prefix) ++ inst_prefix_dir=$arg ++ prev= ++ continue ++ ;; ++ mllvm) ++ # Clang does not use LLVM to link, so we can simply discard any ++ # '-mllvm $arg' options when doing the link step. ++ prev= ++ continue ++ ;; ++ objectlist) ++ if test -f "$arg"; then ++ save_arg=$arg ++ moreargs= ++ for fil in `cat "$save_arg"` ++ do ++# func_append moreargs " $fil" ++ arg=$fil ++ # A libtool-controlled object. ++ ++ # Check to see that this really is a libtool object. ++ if func_lalib_unsafe_p "$arg"; then ++ pic_object= ++ non_pic_object= ++ ++ # Read the .lo file ++ func_source "$arg" ++ ++ if test -z "$pic_object" || ++ test -z "$non_pic_object" || ++ test none = "$pic_object" && ++ test none = "$non_pic_object"; then ++ func_fatal_error "cannot find name of object for '$arg'" ++ fi ++ ++ # Extract subdirectory from the argument. ++ func_dirname "$arg" "/" "" ++ xdir=$func_dirname_result ++ ++ if test none != "$pic_object"; then ++ # Prepend the subdirectory the object is found in. ++ pic_object=$xdir$pic_object ++ ++ if test dlfiles = "$prev"; then ++ if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then ++ func_append dlfiles " $pic_object" ++ prev= ++ continue ++ else ++ # If libtool objects are unsupported, then we need to preload. ++ prev=dlprefiles ++ fi ++ fi ++ ++ # CHECK ME: I think I busted this. -Ossama ++ if test dlprefiles = "$prev"; then ++ # Preload the old-style object. ++ func_append dlprefiles " $pic_object" ++ prev= ++ fi ++ ++ # A PIC object. ++ func_append libobjs " $pic_object" ++ arg=$pic_object ++ fi ++ ++ # Non-PIC object. ++ if test none != "$non_pic_object"; then ++ # Prepend the subdirectory the object is found in. ++ non_pic_object=$xdir$non_pic_object ++ ++ # A standard non-PIC object ++ func_append non_pic_objects " $non_pic_object" ++ if test -z "$pic_object" || test none = "$pic_object"; then ++ arg=$non_pic_object ++ fi ++ else ++ # If the PIC object exists, use it instead. ++ # $xdir was prepended to $pic_object above. ++ non_pic_object=$pic_object ++ func_append non_pic_objects " $non_pic_object" ++ fi ++ else ++ # Only an error if not doing a dry-run. ++ if $opt_dry_run; then ++ # Extract subdirectory from the argument. ++ func_dirname "$arg" "/" "" ++ xdir=$func_dirname_result ++ ++ func_lo2o "$arg" ++ pic_object=$xdir$objdir/$func_lo2o_result ++ non_pic_object=$xdir$func_lo2o_result ++ func_append libobjs " $pic_object" ++ func_append non_pic_objects " $non_pic_object" ++ else ++ func_fatal_error "'$arg' is not a valid libtool object" ++ fi ++ fi ++ done ++ else ++ func_fatal_error "link input file '$arg' does not exist" ++ fi ++ arg=$save_arg ++ prev= ++ continue ++ ;; ++ os2dllname) ++ os2dllname=$arg ++ prev= ++ continue ++ ;; ++ precious_regex) ++ precious_files_regex=$arg ++ prev= ++ continue ++ ;; ++ release) ++ release=-$arg ++ prev= ++ continue ++ ;; ++ rpath | xrpath) ++ # We need an absolute path. ++ case $arg in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; ++ *) ++ func_fatal_error "only absolute run-paths are allowed" ++ ;; ++ esac ++ if test rpath = "$prev"; then ++ case "$rpath " in ++ *" $arg "*) ;; ++ *) func_append rpath " $arg" ;; ++ esac ++ else ++ case "$xrpath " in ++ *" $arg "*) ;; ++ *) func_append xrpath " $arg" ;; ++ esac ++ fi ++ prev= ++ continue ++ ;; ++ shrext) ++ shrext_cmds=$arg ++ prev= ++ continue ++ ;; ++ weak) ++ func_append weak_libs " $arg" ++ prev= ++ continue ++ ;; ++ xcclinker) ++ func_append linker_flags " $qarg" ++ func_append compiler_flags " $qarg" ++ prev= ++ func_append compile_command " $qarg" ++ func_append finalize_command " $qarg" ++ continue ++ ;; ++ xcompiler) ++ func_append compiler_flags " $qarg" ++ prev= ++ func_append compile_command " $qarg" ++ func_append finalize_command " $qarg" ++ continue ++ ;; ++ xlinker) ++ func_append linker_flags " $qarg" ++ func_append compiler_flags " $wl$qarg" ++ prev= ++ func_append compile_command " $wl$qarg" ++ func_append finalize_command " $wl$qarg" ++ continue ++ ;; ++ *) ++ eval "$prev=\"\$arg\"" ++ prev= ++ continue ++ ;; ++ esac ++ fi # test -n "$prev" ++ ++ prevarg=$arg ++ ++ case $arg in ++ -all-static) ++ if test -n "$link_static_flag"; then ++ # See comment for -static flag below, for more details. ++ func_append compile_command " $link_static_flag" ++ func_append finalize_command " $link_static_flag" ++ fi ++ continue ++ ;; ++ ++ -allow-undefined) ++ # FIXME: remove this flag sometime in the future. ++ func_fatal_error "'-allow-undefined' must not be used because it is the default" ++ ;; ++ ++ -avoid-version) ++ avoid_version=yes ++ continue ++ ;; ++ ++ -bindir) ++ prev=bindir ++ continue ++ ;; ++ ++ -dlopen) ++ prev=dlfiles ++ continue ++ ;; ++ ++ -dlpreopen) ++ prev=dlprefiles ++ continue ++ ;; ++ ++ -export-dynamic) ++ export_dynamic=yes ++ continue ++ ;; ++ ++ -export-symbols | -export-symbols-regex) ++ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then ++ func_fatal_error "more than one -exported-symbols argument is not allowed" ++ fi ++ if test X-export-symbols = "X$arg"; then ++ prev=expsyms ++ else ++ prev=expsyms_regex ++ fi ++ continue ++ ;; ++ ++ -framework) ++ prev=framework ++ continue ++ ;; ++ ++ -inst-prefix-dir) ++ prev=inst_prefix ++ continue ++ ;; ++ ++ # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* ++ # so, if we see these flags be careful not to treat them like -L ++ -L[A-Z][A-Z]*:*) ++ case $with_gcc/$host in ++ no/*-*-irix* | /*-*-irix*) ++ func_append compile_command " $arg" ++ func_append finalize_command " $arg" ++ ;; ++ esac ++ continue ++ ;; ++ ++ -L*) ++ func_stripname "-L" '' "$arg" ++ if test -z "$func_stripname_result"; then ++ if test "$#" -gt 0; then ++ func_fatal_error "require no space between '-L' and '$1'" ++ else ++ func_fatal_error "need path for '-L' option" ++ fi ++ fi ++ func_resolve_sysroot "$func_stripname_result" ++ dir=$func_resolve_sysroot_result ++ # We need an absolute path. ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; ++ *) ++ absdir=`cd "$dir" && pwd` ++ test -z "$absdir" && \ ++ func_fatal_error "cannot determine absolute directory name of '$dir'" ++ dir=$absdir ++ ;; ++ esac ++ case "$deplibs " in ++ *" -L$dir "* | *" $arg "*) ++ # Will only happen for absolute or sysroot arguments ++ ;; ++ *) ++ # Preserve sysroot, but never include relative directories ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; ++ *) func_append deplibs " -L$dir" ;; ++ esac ++ func_append lib_search_path " $dir" ++ ;; ++ esac ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) ++ testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` ++ case :$dllsearchpath: in ++ *":$dir:"*) ;; ++ ::) dllsearchpath=$dir;; ++ *) func_append dllsearchpath ":$dir";; ++ esac ++ case :$dllsearchpath: in ++ *":$testbindir:"*) ;; ++ ::) dllsearchpath=$testbindir;; ++ *) func_append dllsearchpath ":$testbindir";; ++ esac ++ ;; ++ esac ++ continue ++ ;; ++ ++ -l*) ++ if test X-lc = "X$arg" || test X-lm = "X$arg"; then ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) ++ # These systems don't actually have a C or math library (as such) ++ continue ++ ;; ++ *-*-os2*) ++ # These systems don't actually have a C library (as such) ++ test X-lc = "X$arg" && continue ++ ;; ++ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) ++ # Do not include libc due to us having libc/libc_r. ++ test X-lc = "X$arg" && continue ++ ;; ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # Rhapsody C and math libraries are in the System framework ++ func_append deplibs " System.ltframework" ++ continue ++ ;; ++ *-*-sco3.2v5* | *-*-sco5v6*) ++ # Causes problems with __ctype ++ test X-lc = "X$arg" && continue ++ ;; ++ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) ++ # Compiler inserts libc in the correct place for threads to work ++ test X-lc = "X$arg" && continue ++ ;; ++ esac ++ elif test X-lc_r = "X$arg"; then ++ case $host in ++ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) ++ # Do not include libc_r directly, use -pthread flag. ++ continue ++ ;; ++ esac ++ fi ++ func_append deplibs " $arg" ++ continue ++ ;; ++ ++ -mllvm) ++ prev=mllvm ++ continue ++ ;; ++ ++ -module) ++ module=yes ++ continue ++ ;; ++ ++ # Tru64 UNIX uses -model [arg] to determine the layout of C++ ++ # classes, name mangling, and exception handling. ++ # Darwin uses the -arch flag to determine output architecture. ++ -model|-arch|-isysroot|--sysroot) ++ func_append compiler_flags " $arg" ++ func_append compile_command " $arg" ++ func_append finalize_command " $arg" ++ prev=xcompiler ++ continue ++ ;; ++ ++ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ ++ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) ++ func_append compiler_flags " $arg" ++ func_append compile_command " $arg" ++ func_append finalize_command " $arg" ++ case "$new_inherited_linker_flags " in ++ *" $arg "*) ;; ++ * ) func_append new_inherited_linker_flags " $arg" ;; ++ esac ++ continue ++ ;; ++ ++ -multi_module) ++ single_module=$wl-multi_module ++ continue ++ ;; ++ ++ -no-fast-install) ++ fast_install=no ++ continue ++ ;; ++ ++ -no-install) ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) ++ # The PATH hackery in wrapper scripts is required on Windows ++ # and Darwin in order for the loader to find any dlls it needs. ++ func_warning "'-no-install' is ignored for $host" ++ func_warning "assuming '-no-fast-install' instead" ++ fast_install=no ++ ;; ++ *) no_install=yes ;; ++ esac ++ continue ++ ;; ++ ++ -no-undefined) ++ allow_undefined=no ++ continue ++ ;; ++ ++ -objectlist) ++ prev=objectlist ++ continue ++ ;; ++ ++ -os2dllname) ++ prev=os2dllname ++ continue ++ ;; ++ ++ -o) prev=output ;; ++ ++ -precious-files-regex) ++ prev=precious_regex ++ continue ++ ;; ++ ++ -release) ++ prev=release ++ continue ++ ;; ++ ++ -rpath) ++ prev=rpath ++ continue ++ ;; ++ ++ -R) ++ prev=xrpath ++ continue ++ ;; ++ ++ -R*) ++ func_stripname '-R' '' "$arg" ++ dir=$func_stripname_result ++ # We need an absolute path. ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; ++ =*) ++ func_stripname '=' '' "$dir" ++ dir=$lt_sysroot$func_stripname_result ++ ;; ++ *) ++ func_fatal_error "only absolute run-paths are allowed" ++ ;; ++ esac ++ case "$xrpath " in ++ *" $dir "*) ;; ++ *) func_append xrpath " $dir" ;; ++ esac ++ continue ++ ;; ++ ++ -shared) ++ # The effects of -shared are defined in a previous loop. ++ continue ++ ;; ++ ++ -shrext) ++ prev=shrext ++ continue ++ ;; ++ ++ -static | -static-libtool-libs) ++ # The effects of -static are defined in a previous loop. ++ # We used to do the same as -all-static on platforms that ++ # didn't have a PIC flag, but the assumption that the effects ++ # would be equivalent was wrong. It would break on at least ++ # Digital Unix and AIX. ++ continue ++ ;; ++ ++ -thread-safe) ++ thread_safe=yes ++ continue ++ ;; ++ ++ -version-info) ++ prev=vinfo ++ continue ++ ;; ++ ++ -version-number) ++ prev=vinfo ++ vinfo_number=yes ++ continue ++ ;; ++ ++ -weak) ++ prev=weak ++ continue ++ ;; ++ ++ -Wc,*) ++ func_stripname '-Wc,' '' "$arg" ++ args=$func_stripname_result ++ arg= ++ save_ifs=$IFS; IFS=, ++ for flag in $args; do ++ IFS=$save_ifs ++ func_quote_for_eval "$flag" ++ func_append arg " $func_quote_for_eval_result" ++ func_append compiler_flags " $func_quote_for_eval_result" ++ done ++ IFS=$save_ifs ++ func_stripname ' ' '' "$arg" ++ arg=$func_stripname_result ++ ;; ++ ++ -Wl,*) ++ func_stripname '-Wl,' '' "$arg" ++ args=$func_stripname_result ++ arg= ++ save_ifs=$IFS; IFS=, ++ for flag in $args; do ++ IFS=$save_ifs ++ func_quote_for_eval "$flag" ++ func_append arg " $wl$func_quote_for_eval_result" ++ func_append compiler_flags " $wl$func_quote_for_eval_result" ++ func_append linker_flags " $func_quote_for_eval_result" ++ done ++ IFS=$save_ifs ++ func_stripname ' ' '' "$arg" ++ arg=$func_stripname_result ++ ;; ++ ++ -Xcompiler) ++ prev=xcompiler ++ continue ++ ;; ++ ++ -Xlinker) ++ prev=xlinker ++ continue ++ ;; ++ ++ -XCClinker) ++ prev=xcclinker ++ continue ++ ;; ++ ++ # -msg_* for osf cc ++ -msg_*) ++ func_quote_for_eval "$arg" ++ arg=$func_quote_for_eval_result ++ ;; ++ ++ # Flags to be passed through unchanged, with rationale: ++ # -64, -mips[0-9] enable 64-bit mode for the SGI compiler ++ # -r[0-9][0-9]* specify processor for the SGI compiler ++ # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler ++ # +DA*, +DD* enable 64-bit mode for the HP compiler ++ # -q* compiler args for the IBM compiler ++ # -m*, -t[45]*, -txscale* architecture-specific flags for GCC ++ # -F/path path to uninstalled frameworks, gcc on darwin ++ # -p, -pg, --coverage, -fprofile-* profiling flags for GCC ++ # -fstack-protector* stack protector flags for GCC ++ # @file GCC response files ++ # -tp=* Portland pgcc target processor selection ++ # --sysroot=* for sysroot support ++ # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization ++ # -stdlib=* select c++ std lib with clang ++ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ ++ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ ++ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*) ++ func_quote_for_eval "$arg" ++ arg=$func_quote_for_eval_result ++ func_append compile_command " $arg" ++ func_append finalize_command " $arg" ++ func_append compiler_flags " $arg" ++ continue ++ ;; ++ ++ -Z*) ++ if test os2 = "`expr $host : '.*\(os2\)'`"; then ++ # OS/2 uses -Zxxx to specify OS/2-specific options ++ compiler_flags="$compiler_flags $arg" ++ func_append compile_command " $arg" ++ func_append finalize_command " $arg" ++ case $arg in ++ -Zlinker | -Zstack) ++ prev=xcompiler ++ ;; ++ esac ++ continue ++ else ++ # Otherwise treat like 'Some other compiler flag' below ++ func_quote_for_eval "$arg" ++ arg=$func_quote_for_eval_result ++ fi ++ ;; ++ ++ # Some other compiler flag. ++ -* | +*) ++ func_quote_for_eval "$arg" ++ arg=$func_quote_for_eval_result ++ ;; ++ ++ *.$objext) ++ # A standard object. ++ func_append objs " $arg" ++ ;; ++ ++ *.lo) ++ # A libtool-controlled object. ++ ++ # Check to see that this really is a libtool object. ++ if func_lalib_unsafe_p "$arg"; then ++ pic_object= ++ non_pic_object= ++ ++ # Read the .lo file ++ func_source "$arg" ++ ++ if test -z "$pic_object" || ++ test -z "$non_pic_object" || ++ test none = "$pic_object" && ++ test none = "$non_pic_object"; then ++ func_fatal_error "cannot find name of object for '$arg'" ++ fi ++ ++ # Extract subdirectory from the argument. ++ func_dirname "$arg" "/" "" ++ xdir=$func_dirname_result ++ ++ test none = "$pic_object" || { ++ # Prepend the subdirectory the object is found in. ++ pic_object=$xdir$pic_object ++ ++ if test dlfiles = "$prev"; then ++ if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then ++ func_append dlfiles " $pic_object" ++ prev= ++ continue ++ else ++ # If libtool objects are unsupported, then we need to preload. ++ prev=dlprefiles ++ fi ++ fi ++ ++ # CHECK ME: I think I busted this. -Ossama ++ if test dlprefiles = "$prev"; then ++ # Preload the old-style object. ++ func_append dlprefiles " $pic_object" ++ prev= ++ fi ++ ++ # A PIC object. ++ func_append libobjs " $pic_object" ++ arg=$pic_object ++ } ++ ++ # Non-PIC object. ++ if test none != "$non_pic_object"; then ++ # Prepend the subdirectory the object is found in. ++ non_pic_object=$xdir$non_pic_object ++ ++ # A standard non-PIC object ++ func_append non_pic_objects " $non_pic_object" ++ if test -z "$pic_object" || test none = "$pic_object"; then ++ arg=$non_pic_object ++ fi ++ else ++ # If the PIC object exists, use it instead. ++ # $xdir was prepended to $pic_object above. ++ non_pic_object=$pic_object ++ func_append non_pic_objects " $non_pic_object" ++ fi ++ else ++ # Only an error if not doing a dry-run. ++ if $opt_dry_run; then ++ # Extract subdirectory from the argument. ++ func_dirname "$arg" "/" "" ++ xdir=$func_dirname_result ++ ++ func_lo2o "$arg" ++ pic_object=$xdir$objdir/$func_lo2o_result ++ non_pic_object=$xdir$func_lo2o_result ++ func_append libobjs " $pic_object" ++ func_append non_pic_objects " $non_pic_object" ++ else ++ func_fatal_error "'$arg' is not a valid libtool object" ++ fi ++ fi ++ ;; ++ ++ *.$libext) ++ # An archive. ++ func_append deplibs " $arg" ++ func_append old_deplibs " $arg" ++ continue ++ ;; ++ ++ *.la) ++ # A libtool-controlled library. ++ ++ func_resolve_sysroot "$arg" ++ if test dlfiles = "$prev"; then ++ # This library was specified with -dlopen. ++ func_append dlfiles " $func_resolve_sysroot_result" ++ prev= ++ elif test dlprefiles = "$prev"; then ++ # The library was specified with -dlpreopen. ++ func_append dlprefiles " $func_resolve_sysroot_result" ++ prev= ++ else ++ func_append deplibs " $func_resolve_sysroot_result" ++ fi ++ continue ++ ;; ++ ++ # Some other compiler argument. ++ *) ++ # Unknown arguments in both finalize_command and compile_command need ++ # to be aesthetically quoted because they are evaled later. ++ func_quote_for_eval "$arg" ++ arg=$func_quote_for_eval_result ++ ;; ++ esac # arg ++ ++ # Now actually substitute the argument into the commands. ++ if test -n "$arg"; then ++ func_append compile_command " $arg" ++ func_append finalize_command " $arg" ++ fi ++ done # argument parsing loop ++ ++ test -n "$prev" && \ ++ func_fatal_help "the '$prevarg' option requires an argument" ++ ++ if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then ++ eval arg=\"$export_dynamic_flag_spec\" ++ func_append compile_command " $arg" ++ func_append finalize_command " $arg" ++ fi ++ ++ oldlibs= ++ # calculate the name of the file, without its directory ++ func_basename "$output" ++ outputname=$func_basename_result ++ libobjs_save=$libobjs ++ ++ if test -n "$shlibpath_var"; then ++ # get the directories listed in $shlibpath_var ++ eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` ++ else ++ shlib_search_path= ++ fi ++ eval sys_lib_search_path=\"$sys_lib_search_path_spec\" ++ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" ++ ++ # Definition is injected by LT_CONFIG during libtool generation. ++ func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" ++ ++ func_dirname "$output" "/" "" ++ output_objdir=$func_dirname_result$objdir ++ func_to_tool_file "$output_objdir/" ++ tool_output_objdir=$func_to_tool_file_result ++ # Create the object directory. ++ func_mkdir_p "$output_objdir" ++ ++ # Determine the type of output ++ case $output in ++ "") ++ func_fatal_help "you must specify an output file" ++ ;; ++ *.$libext) linkmode=oldlib ;; ++ *.lo | *.$objext) linkmode=obj ;; ++ *.la) linkmode=lib ;; ++ *) linkmode=prog ;; # Anything else should be a program. ++ esac ++ ++ specialdeplibs= ++ ++ libs= ++ # Find all interdependent deplibs by searching for libraries ++ # that are linked more than once (e.g. -la -lb -la) ++ for deplib in $deplibs; do ++ if $opt_preserve_dup_deps; then ++ case "$libs " in ++ *" $deplib "*) func_append specialdeplibs " $deplib" ;; ++ esac ++ fi ++ func_append libs " $deplib" ++ done ++ ++ if test lib = "$linkmode"; then ++ libs="$predeps $libs $compiler_lib_search_path $postdeps" ++ ++ # Compute libraries that are listed more than once in $predeps ++ # $postdeps and mark them as special (i.e., whose duplicates are ++ # not to be eliminated). ++ pre_post_deps= ++ if $opt_duplicate_compiler_generated_deps; then ++ for pre_post_dep in $predeps $postdeps; do ++ case "$pre_post_deps " in ++ *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; ++ esac ++ func_append pre_post_deps " $pre_post_dep" ++ done ++ fi ++ pre_post_deps= ++ fi ++ ++ deplibs= ++ newdependency_libs= ++ newlib_search_path= ++ need_relink=no # whether we're linking any uninstalled libtool libraries ++ notinst_deplibs= # not-installed libtool libraries ++ notinst_path= # paths that contain not-installed libtool libraries ++ ++ case $linkmode in ++ lib) ++ passes="conv dlpreopen link" ++ for file in $dlfiles $dlprefiles; do ++ case $file in ++ *.la) ;; ++ *) ++ func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" ++ ;; ++ esac ++ done ++ ;; ++ prog) ++ compile_deplibs= ++ finalize_deplibs= ++ alldeplibs=false ++ newdlfiles= ++ newdlprefiles= ++ passes="conv scan dlopen dlpreopen link" ++ ;; ++ *) passes="conv" ++ ;; ++ esac ++ ++ for pass in $passes; do ++ # The preopen pass in lib mode reverses $deplibs; put it back here ++ # so that -L comes before libs that need it for instance... ++ if test lib,link = "$linkmode,$pass"; then ++ ## FIXME: Find the place where the list is rebuilt in the wrong ++ ## order, and fix it there properly ++ tmp_deplibs= ++ for deplib in $deplibs; do ++ tmp_deplibs="$deplib $tmp_deplibs" ++ done ++ deplibs=$tmp_deplibs ++ fi ++ ++ if test lib,link = "$linkmode,$pass" || ++ test prog,scan = "$linkmode,$pass"; then ++ libs=$deplibs ++ deplibs= ++ fi ++ if test prog = "$linkmode"; then ++ case $pass in ++ dlopen) libs=$dlfiles ;; ++ dlpreopen) libs=$dlprefiles ;; ++ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; ++ esac ++ fi ++ if test lib,dlpreopen = "$linkmode,$pass"; then ++ # Collect and forward deplibs of preopened libtool libs ++ for lib in $dlprefiles; do ++ # Ignore non-libtool-libs ++ dependency_libs= ++ func_resolve_sysroot "$lib" ++ case $lib in ++ *.la) func_source "$func_resolve_sysroot_result" ;; ++ esac ++ ++ # Collect preopened libtool deplibs, except any this library ++ # has declared as weak libs ++ for deplib in $dependency_libs; do ++ func_basename "$deplib" ++ deplib_base=$func_basename_result ++ case " $weak_libs " in ++ *" $deplib_base "*) ;; ++ *) func_append deplibs " $deplib" ;; ++ esac ++ done ++ done ++ libs=$dlprefiles ++ fi ++ if test dlopen = "$pass"; then ++ # Collect dlpreopened libraries ++ save_deplibs=$deplibs ++ deplibs= ++ fi ++ ++ for deplib in $libs; do ++ lib= ++ found=false ++ case $deplib in ++ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ ++ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) ++ if test prog,link = "$linkmode,$pass"; then ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ else ++ func_append compiler_flags " $deplib" ++ if test lib = "$linkmode"; then ++ case "$new_inherited_linker_flags " in ++ *" $deplib "*) ;; ++ * ) func_append new_inherited_linker_flags " $deplib" ;; ++ esac ++ fi ++ fi ++ continue ++ ;; ++ -l*) ++ if test lib != "$linkmode" && test prog != "$linkmode"; then ++ func_warning "'-l' is ignored for archives/objects" ++ continue ++ fi ++ func_stripname '-l' '' "$deplib" ++ name=$func_stripname_result ++ if test lib = "$linkmode"; 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 .la = "$search_ext"; then ++ found=: ++ else ++ found=false ++ fi ++ break 2 ++ fi ++ done ++ done ++ if $found; then ++ # 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 yes = "$allow_libtool_libs_with_static_runtimes"; then ++ case " $predeps $postdeps " in ++ *" $deplib "*) ++ if func_lalib_p "$lib"; then ++ library_names= ++ old_library= ++ func_source "$lib" ++ for l in $old_library $library_names; do ++ ll=$l ++ done ++ if test "X$ll" = "X$old_library"; then # only static version available ++ found=false ++ func_dirname "$lib" "" "." ++ ladir=$func_dirname_result ++ lib=$ladir/$old_library ++ if test prog,link = "$linkmode,$pass"; then ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ else ++ deplibs="$deplib $deplibs" ++ test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" ++ fi ++ continue ++ fi ++ fi ++ ;; ++ *) ;; ++ esac ++ fi ++ else ++ # deplib doesn't seem to be a libtool library ++ if test prog,link = "$linkmode,$pass"; then ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ else ++ deplibs="$deplib $deplibs" ++ test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" ++ fi ++ continue ++ fi ++ ;; # -l ++ *.ltframework) ++ if test prog,link = "$linkmode,$pass"; then ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ else ++ deplibs="$deplib $deplibs" ++ if test lib = "$linkmode"; then ++ case "$new_inherited_linker_flags " in ++ *" $deplib "*) ;; ++ * ) func_append new_inherited_linker_flags " $deplib" ;; ++ esac ++ fi ++ fi ++ continue ++ ;; ++ -L*) ++ case $linkmode in ++ lib) ++ deplibs="$deplib $deplibs" ++ test conv = "$pass" && continue ++ newdependency_libs="$deplib $newdependency_libs" ++ func_stripname '-L' '' "$deplib" ++ func_resolve_sysroot "$func_stripname_result" ++ func_append newlib_search_path " $func_resolve_sysroot_result" ++ ;; ++ prog) ++ if test conv = "$pass"; then ++ deplibs="$deplib $deplibs" ++ continue ++ fi ++ if test scan = "$pass"; then ++ deplibs="$deplib $deplibs" ++ else ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ fi ++ func_stripname '-L' '' "$deplib" ++ func_resolve_sysroot "$func_stripname_result" ++ func_append newlib_search_path " $func_resolve_sysroot_result" ++ ;; ++ *) ++ func_warning "'-L' is ignored for archives/objects" ++ ;; ++ esac # linkmode ++ continue ++ ;; # -L ++ -R*) ++ if test link = "$pass"; then ++ func_stripname '-R' '' "$deplib" ++ func_resolve_sysroot "$func_stripname_result" ++ dir=$func_resolve_sysroot_result ++ # Make sure the xrpath contains only unique directories. ++ case "$xrpath " in ++ *" $dir "*) ;; ++ *) func_append xrpath " $dir" ;; ++ esac ++ fi ++ deplibs="$deplib $deplibs" ++ continue ++ ;; ++ *.la) ++ func_resolve_sysroot "$deplib" ++ lib=$func_resolve_sysroot_result ++ ;; ++ *.$libext) ++ if test conv = "$pass"; then ++ deplibs="$deplib $deplibs" ++ continue ++ fi ++ case $linkmode in ++ lib) ++ # Linking convenience modules into shared libraries is allowed, ++ # but linking other static libraries is non-portable. ++ case " $dlpreconveniencelibs " in ++ *" $deplib "*) ;; ++ *) ++ valid_a_lib=false ++ case $deplibs_check_method in ++ match_pattern*) ++ set dummy $deplibs_check_method; shift ++ match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` ++ if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ ++ | $EGREP "$match_pattern_regex" > /dev/null; then ++ valid_a_lib=: ++ fi ++ ;; ++ pass_all) ++ valid_a_lib=: ++ ;; ++ esac ++ if $valid_a_lib; then ++ echo ++ $ECHO "*** Warning: Linking the shared library $output against the" ++ $ECHO "*** static library $deplib is not portable!" ++ deplibs="$deplib $deplibs" ++ else ++ echo ++ $ECHO "*** Warning: Trying to link with static lib archive $deplib." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have" ++ echo "*** because the file extensions .$libext of this argument makes me believe" ++ echo "*** that it is just a static archive that I should not use here." ++ fi ++ ;; ++ esac ++ continue ++ ;; ++ prog) ++ if test link != "$pass"; then ++ deplibs="$deplib $deplibs" ++ else ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ fi ++ continue ++ ;; ++ esac # linkmode ++ ;; # *.$libext ++ *.lo | *.$objext) ++ if test conv = "$pass"; then ++ deplibs="$deplib $deplibs" ++ elif test prog = "$linkmode"; then ++ if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then ++ # If there is no dlopen support or we're linking statically, ++ # we need to preload. ++ func_append newdlprefiles " $deplib" ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ else ++ func_append newdlfiles " $deplib" ++ fi ++ fi ++ continue ++ ;; ++ %DEPLIBS%) ++ alldeplibs=: ++ continue ++ ;; ++ esac # case $deplib ++ ++ $found || test -f "$lib" \ ++ || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" ++ ++ # Check to see that this really is a libtool archive. ++ func_lalib_unsafe_p "$lib" \ ++ || func_fatal_error "'$lib' is not a valid libtool archive" ++ ++ func_dirname "$lib" "" "." ++ ladir=$func_dirname_result ++ ++ dlname= ++ dlopen= ++ dlpreopen= ++ libdir= ++ library_names= ++ old_library= ++ inherited_linker_flags= ++ # If the library was installed with an old release of libtool, ++ # it will not redefine variables installed, or shouldnotlink ++ installed=yes ++ shouldnotlink=no ++ avoidtemprpath= ++ ++ ++ # Read the .la file ++ func_source "$lib" ++ ++ # Convert "-framework foo" to "foo.ltframework" ++ if test -n "$inherited_linker_flags"; then ++ tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` ++ for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do ++ case " $new_inherited_linker_flags " in ++ *" $tmp_inherited_linker_flag "*) ;; ++ *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; ++ esac ++ done ++ fi ++ dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ++ if test lib,link = "$linkmode,$pass" || ++ test prog,scan = "$linkmode,$pass" || ++ { test prog != "$linkmode" && test lib != "$linkmode"; }; then ++ test -n "$dlopen" && func_append dlfiles " $dlopen" ++ test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" ++ fi ++ ++ if test conv = "$pass"; then ++ # Only check for convenience libraries ++ deplibs="$lib $deplibs" ++ if test -z "$libdir"; then ++ if test -z "$old_library"; then ++ func_fatal_error "cannot find name of link library for '$lib'" ++ fi ++ # It is a libtool convenience library, so add in its objects. ++ func_append convenience " $ladir/$objdir/$old_library" ++ func_append old_convenience " $ladir/$objdir/$old_library" ++ elif test prog != "$linkmode" && test lib != "$linkmode"; then ++ func_fatal_error "'$lib' is not a convenience library" ++ fi ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ deplibs="$deplib $deplibs" ++ if $opt_preserve_dup_deps; then ++ case "$tmp_libs " in ++ *" $deplib "*) func_append specialdeplibs " $deplib" ;; ++ esac ++ fi ++ func_append tmp_libs " $deplib" ++ done ++ continue ++ fi # $pass = conv ++ ++ ++ # Get the name of the library we link against. ++ linklib= ++ if test -n "$old_library" && ++ { test yes = "$prefer_static_libs" || ++ test built,no = "$prefer_static_libs,$installed"; }; then ++ linklib=$old_library ++ else ++ for l in $old_library $library_names; do ++ linklib=$l ++ done ++ fi ++ if test -z "$linklib"; then ++ func_fatal_error "cannot find name of link library for '$lib'" ++ fi ++ ++ # This library was specified with -dlopen. ++ if test dlopen = "$pass"; then ++ test -z "$libdir" \ ++ && func_fatal_error "cannot -dlopen a convenience library: '$lib'" ++ if test -z "$dlname" || ++ test yes != "$dlopen_support" || ++ test no = "$build_libtool_libs" ++ then ++ # If there is no dlname, no dlopen support or we're linking ++ # statically, we need to preload. We also need to preload any ++ # dependent libraries so libltdl's deplib preloader doesn't ++ # bomb out in the load deplibs phase. ++ func_append dlprefiles " $lib $dependency_libs" ++ else ++ func_append newdlfiles " $lib" ++ fi ++ continue ++ fi # $pass = dlopen ++ ++ # We need an absolute path. ++ case $ladir in ++ [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; ++ *) ++ abs_ladir=`cd "$ladir" && pwd` ++ if test -z "$abs_ladir"; then ++ func_warning "cannot determine absolute directory name of '$ladir'" ++ func_warning "passing it literally to the linker, although it might fail" ++ abs_ladir=$ladir ++ fi ++ ;; ++ esac ++ func_basename "$lib" ++ laname=$func_basename_result ++ ++ # Find the relevant object directory and library name. ++ if test yes = "$installed"; then ++ if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then ++ func_warning "library '$lib' was moved." ++ dir=$ladir ++ absdir=$abs_ladir ++ libdir=$abs_ladir ++ else ++ dir=$lt_sysroot$libdir ++ absdir=$lt_sysroot$libdir ++ fi ++ test yes = "$hardcode_automatic" && avoidtemprpath=yes ++ else ++ if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then ++ dir=$ladir ++ absdir=$abs_ladir ++ # Remove this search path later ++ func_append notinst_path " $abs_ladir" ++ else ++ dir=$ladir/$objdir ++ absdir=$abs_ladir/$objdir ++ # Remove this search path later ++ func_append notinst_path " $abs_ladir" ++ fi ++ fi # $installed = yes ++ func_stripname 'lib' '.la' "$laname" ++ name=$func_stripname_result ++ ++ # This library was specified with -dlpreopen. ++ if test dlpreopen = "$pass"; then ++ if test -z "$libdir" && test prog = "$linkmode"; then ++ func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" ++ fi ++ case $host in ++ # special handling for platforms with PE-DLLs. ++ *cygwin* | *mingw* | *cegcc* ) ++ # Linker will automatically link against shared library if both ++ # static and shared are present. Therefore, ensure we extract ++ # symbols from the import library if a shared library is present ++ # (otherwise, the dlopen module name will be incorrect). We do ++ # this by putting the import library name into $newdlprefiles. ++ # We recover the dlopen module name by 'saving' the la file ++ # name in a special purpose variable, and (later) extracting the ++ # dlname from the la file. ++ if test -n "$dlname"; then ++ func_tr_sh "$dir/$linklib" ++ eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" ++ func_append newdlprefiles " $dir/$linklib" ++ else ++ func_append newdlprefiles " $dir/$old_library" ++ # Keep a list of preopened convenience libraries to check ++ # that they are being used correctly in the link pass. ++ test -z "$libdir" && \ ++ func_append dlpreconveniencelibs " $dir/$old_library" ++ fi ++ ;; ++ * ) ++ # Prefer using a static library (so that no silly _DYNAMIC symbols ++ # are required to link). ++ if test -n "$old_library"; then ++ func_append newdlprefiles " $dir/$old_library" ++ # Keep a list of preopened convenience libraries to check ++ # that they are being used correctly in the link pass. ++ test -z "$libdir" && \ ++ func_append dlpreconveniencelibs " $dir/$old_library" ++ # Otherwise, use the dlname, so that lt_dlopen finds it. ++ elif test -n "$dlname"; then ++ func_append newdlprefiles " $dir/$dlname" ++ else ++ func_append newdlprefiles " $dir/$linklib" ++ fi ++ ;; ++ esac ++ fi # $pass = dlpreopen ++ ++ if test -z "$libdir"; then ++ # Link the convenience library ++ if test lib = "$linkmode"; then ++ deplibs="$dir/$old_library $deplibs" ++ elif test prog,link = "$linkmode,$pass"; 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 prog = "$linkmode" && test link != "$pass"; then ++ func_append newlib_search_path " $ladir" ++ deplibs="$lib $deplibs" ++ ++ linkalldeplibs=false ++ if test no != "$link_all_deplibs" || test -z "$library_names" || ++ test no = "$build_libtool_libs"; then ++ linkalldeplibs=: ++ fi ++ ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ case $deplib in ++ -L*) func_stripname '-L' '' "$deplib" ++ func_resolve_sysroot "$func_stripname_result" ++ func_append newlib_search_path " $func_resolve_sysroot_result" ++ ;; ++ esac ++ # Need to link against all dependency_libs? ++ if $linkalldeplibs; then ++ deplibs="$deplib $deplibs" ++ else ++ # Need to hardcode shared library paths ++ # or/and link against static libraries ++ newdependency_libs="$deplib $newdependency_libs" ++ fi ++ if $opt_preserve_dup_deps; then ++ case "$tmp_libs " in ++ *" $deplib "*) func_append specialdeplibs " $deplib" ;; ++ esac ++ fi ++ func_append tmp_libs " $deplib" ++ done # for deplib ++ continue ++ fi # $linkmode = prog... ++ ++ if test prog,link = "$linkmode,$pass"; then ++ if test -n "$library_names" && ++ { { test no = "$prefer_static_libs" || ++ test built,yes = "$prefer_static_libs,$installed"; } || ++ test -z "$old_library"; }; then ++ # We need to hardcode the library path ++ if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then ++ # Make sure the rpath contains only unique directories. ++ case $temp_rpath: in ++ *"$absdir:"*) ;; ++ *) func_append temp_rpath "$absdir:" ;; ++ esac ++ fi ++ ++ # Hardcode the library path. ++ # Skip directories that are in the system default run-time ++ # search path. ++ case " $sys_lib_dlsearch_path " in ++ *" $absdir "*) ;; ++ *) ++ case "$compile_rpath " in ++ *" $absdir "*) ;; ++ *) func_append compile_rpath " $absdir" ;; ++ esac ++ ;; ++ esac ++ case " $sys_lib_dlsearch_path " in ++ *" $libdir "*) ;; ++ *) ++ case "$finalize_rpath " in ++ *" $libdir "*) ;; ++ *) func_append finalize_rpath " $libdir" ;; ++ esac ++ ;; ++ esac ++ fi # $linkmode,$pass = prog,link... ++ ++ if $alldeplibs && ++ { test pass_all = "$deplibs_check_method" || ++ { test yes = "$build_libtool_libs" && ++ 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 built = "$use_static_libs" && test yes = "$installed"; then ++ use_static_libs=no ++ fi ++ if test -n "$library_names" && ++ { test no = "$use_static_libs" || test -z "$old_library"; }; then ++ case $host in ++ *cygwin* | *mingw* | *cegcc* | *os2*) ++ # No point in relinking DLLs because paths are not encoded ++ func_append notinst_deplibs " $lib" ++ need_relink=no ++ ;; ++ *) ++ if test no = "$installed"; then ++ func_append notinst_deplibs " $lib" ++ need_relink=yes ++ fi ++ ;; ++ esac ++ # This is a shared library ++ ++ # Warn about portability, can't link against -module's on some ++ # systems (darwin). Don't bleat about dlopened modules though! ++ dlopenmodule= ++ for dlpremoduletest in $dlprefiles; do ++ if test "X$dlpremoduletest" = "X$lib"; then ++ dlopenmodule=$dlpremoduletest ++ break ++ fi ++ done ++ if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then ++ echo ++ if test prog = "$linkmode"; 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 lib = "$linkmode" && ++ test yes = "$hardcode_into_libs"; then ++ # Hardcode the library path. ++ # Skip directories that are in the system default run-time ++ # search path. ++ case " $sys_lib_dlsearch_path " in ++ *" $absdir "*) ;; ++ *) ++ case "$compile_rpath " in ++ *" $absdir "*) ;; ++ *) func_append compile_rpath " $absdir" ;; ++ esac ++ ;; ++ esac ++ case " $sys_lib_dlsearch_path " in ++ *" $libdir "*) ;; ++ *) ++ case "$finalize_rpath " in ++ *" $libdir "*) ;; ++ *) func_append finalize_rpath " $libdir" ;; ++ esac ++ ;; ++ esac ++ fi ++ ++ if test -n "$old_archive_from_expsyms_cmds"; then ++ # figure out the soname ++ set dummy $library_names ++ shift ++ realname=$1 ++ shift ++ libname=`eval "\\$ECHO \"$libname_spec\""` ++ # use dlname if we got it. it's perfectly good, no? ++ if test -n "$dlname"; then ++ soname=$dlname ++ elif test -n "$soname_spec"; then ++ # bleh windows ++ case $host in ++ *cygwin* | mingw* | *cegcc* | *os2*) ++ func_arith $current - $age ++ major=$func_arith_result ++ versuffix=-$major ++ ;; ++ esac ++ eval soname=\"$soname_spec\" ++ else ++ soname=$realname ++ fi ++ ++ # Make a new name for the extract_expsyms_cmds to use ++ soroot=$soname ++ func_basename "$soroot" ++ soname=$func_basename_result ++ func_stripname 'lib' '.dll' "$soname" ++ newlib=libimp-$func_stripname_result.a ++ ++ # If the library has no export list, then create one now ++ if test -f "$output_objdir/$soname-def"; then : ++ else ++ func_verbose "extracting exported symbol list from '$soname'" ++ func_execute_cmds "$extract_expsyms_cmds" 'exit $?' ++ fi ++ ++ # Create $newlib ++ if test -f "$output_objdir/$newlib"; then :; else ++ func_verbose "generating import library for '$soname'" ++ func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' ++ fi ++ # make sure the library variables are pointing to the new library ++ dir=$output_objdir ++ linklib=$newlib ++ fi # test -n "$old_archive_from_expsyms_cmds" ++ ++ if test prog = "$linkmode" || test relink != "$opt_mode"; then ++ add_shlibpath= ++ add_dir= ++ add= ++ lib_linked=yes ++ case $hardcode_action in ++ immediate | unsupported) ++ if test no = "$hardcode_direct"; then ++ add=$dir/$linklib ++ case $host in ++ *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; ++ *-*-sysv4*uw2*) add_dir=-L$dir ;; ++ *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ ++ *-*-unixware7*) add_dir=-L$dir ;; ++ *-*-darwin* ) ++ # if the lib is a (non-dlopened) module then we cannot ++ # link against it, someone is ignoring the earlier warnings ++ if /usr/bin/file -L $add 2> /dev/null | ++ $GREP ": [^:]* bundle" >/dev/null; then ++ if test "X$dlopenmodule" != "X$lib"; then ++ $ECHO "*** Warning: lib $linklib is a module, not a shared library" ++ if test -z "$old_library"; then ++ echo ++ echo "*** And there doesn't seem to be a static archive available" ++ echo "*** The link will probably fail, sorry" ++ else ++ add=$dir/$old_library ++ fi ++ elif test -n "$old_library"; then ++ add=$dir/$old_library ++ fi ++ fi ++ esac ++ elif test no = "$hardcode_minus_L"; then ++ case $host in ++ *-*-sunos*) add_shlibpath=$dir ;; ++ esac ++ add_dir=-L$dir ++ add=-l$name ++ elif test no = "$hardcode_shlibpath_var"; then ++ add_shlibpath=$dir ++ add=-l$name ++ else ++ lib_linked=no ++ fi ++ ;; ++ relink) ++ if test yes = "$hardcode_direct" && ++ test no = "$hardcode_direct_absolute"; then ++ add=$dir/$linklib ++ elif test yes = "$hardcode_minus_L"; then ++ add_dir=-L$absdir ++ # Try looking first in the location we're being installed to. ++ if test -n "$inst_prefix_dir"; then ++ case $libdir in ++ [\\/]*) ++ func_append add_dir " -L$inst_prefix_dir$libdir" ++ ;; ++ esac ++ fi ++ add=-l$name ++ elif test yes = "$hardcode_shlibpath_var"; then ++ add_shlibpath=$dir ++ add=-l$name ++ else ++ lib_linked=no ++ fi ++ ;; ++ *) lib_linked=no ;; ++ esac ++ ++ if test yes != "$lib_linked"; then ++ func_fatal_configuration "unsupported hardcode properties" ++ fi ++ ++ if test -n "$add_shlibpath"; then ++ case :$compile_shlibpath: in ++ *":$add_shlibpath:"*) ;; ++ *) func_append compile_shlibpath "$add_shlibpath:" ;; ++ esac ++ fi ++ if test prog = "$linkmode"; 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 yes != "$hardcode_direct" && ++ test yes != "$hardcode_minus_L" && ++ test yes = "$hardcode_shlibpath_var"; then ++ case :$finalize_shlibpath: in ++ *":$libdir:"*) ;; ++ *) func_append finalize_shlibpath "$libdir:" ;; ++ esac ++ fi ++ fi ++ fi ++ ++ if test prog = "$linkmode" || test relink = "$opt_mode"; then ++ add_shlibpath= ++ add_dir= ++ add= ++ # Finalize command for both is simple: just hardcode it. ++ if test yes = "$hardcode_direct" && ++ test no = "$hardcode_direct_absolute"; then ++ add=$libdir/$linklib ++ elif test yes = "$hardcode_minus_L"; then ++ add_dir=-L$libdir ++ add=-l$name ++ elif test yes = "$hardcode_shlibpath_var"; then ++ case :$finalize_shlibpath: in ++ *":$libdir:"*) ;; ++ *) func_append finalize_shlibpath "$libdir:" ;; ++ esac ++ add=-l$name ++ elif test yes = "$hardcode_automatic"; then ++ if test -n "$inst_prefix_dir" && ++ test -f "$inst_prefix_dir$libdir/$linklib"; then ++ add=$inst_prefix_dir$libdir/$linklib ++ else ++ add=$libdir/$linklib ++ fi ++ else ++ # We cannot seem to hardcode it, guess we'll fake it. ++ add_dir=-L$libdir ++ # Try looking first in the location we're being installed to. ++ if test -n "$inst_prefix_dir"; then ++ case $libdir in ++ [\\/]*) ++ func_append add_dir " -L$inst_prefix_dir$libdir" ++ ;; ++ esac ++ fi ++ add=-l$name ++ fi ++ ++ if test prog = "$linkmode"; 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 prog = "$linkmode"; 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 unsupported != "$hardcode_direct"; 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 yes = "$build_libtool_libs"; then ++ # Not a shared library ++ if test pass_all != "$deplibs_check_method"; 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 cannot 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 yes = "$module"; 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 no = "$build_old_libs"; 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 lib = "$linkmode"; then ++ if test -n "$dependency_libs" && ++ { test yes != "$hardcode_into_libs" || ++ test yes = "$build_old_libs" || ++ test yes = "$link_static"; }; then ++ # Extract -R from dependency_libs ++ temp_deplibs= ++ for libdir in $dependency_libs; do ++ case $libdir in ++ -R*) func_stripname '-R' '' "$libdir" ++ temp_xrpath=$func_stripname_result ++ case " $xrpath " in ++ *" $temp_xrpath "*) ;; ++ *) func_append xrpath " $temp_xrpath";; ++ esac;; ++ *) func_append temp_deplibs " $libdir";; ++ esac ++ done ++ dependency_libs=$temp_deplibs ++ fi ++ ++ func_append newlib_search_path " $absdir" ++ # Link against this library ++ test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" ++ # ... and its dependency_libs ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ newdependency_libs="$deplib $newdependency_libs" ++ case $deplib in ++ -L*) func_stripname '-L' '' "$deplib" ++ func_resolve_sysroot "$func_stripname_result";; ++ *) func_resolve_sysroot "$deplib" ;; ++ esac ++ if $opt_preserve_dup_deps; then ++ case "$tmp_libs " in ++ *" $func_resolve_sysroot_result "*) ++ func_append specialdeplibs " $func_resolve_sysroot_result" ;; ++ esac ++ fi ++ func_append tmp_libs " $func_resolve_sysroot_result" ++ done ++ ++ if test no != "$link_all_deplibs"; then ++ # Add the search paths of all dependency libraries ++ for deplib in $dependency_libs; do ++ path= ++ case $deplib in ++ -L*) path=$deplib ;; ++ *.la) ++ func_resolve_sysroot "$deplib" ++ deplib=$func_resolve_sysroot_result ++ func_dirname "$deplib" "" "." ++ dir=$func_dirname_result ++ # We need an absolute path. ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; ++ *) ++ absdir=`cd "$dir" && pwd` ++ if test -z "$absdir"; then ++ func_warning "cannot determine absolute directory name of '$dir'" ++ absdir=$dir ++ fi ++ ;; ++ esac ++ if $GREP "^installed=no" $deplib > /dev/null; then ++ case $host in ++ *-*-darwin*) ++ depdepl= ++ eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` ++ if test -n "$deplibrary_names"; then ++ for tmp in $deplibrary_names; do ++ depdepl=$tmp ++ done ++ if test -f "$absdir/$objdir/$depdepl"; then ++ depdepl=$absdir/$objdir/$depdepl ++ darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` ++ if test -z "$darwin_install_name"; then ++ darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` ++ fi ++ func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" ++ func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" ++ path= ++ fi ++ fi ++ ;; ++ *) ++ path=-L$absdir/$objdir ++ ;; ++ esac ++ else ++ eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` ++ test -z "$libdir" && \ ++ func_fatal_error "'$deplib' is not a valid libtool archive" ++ test "$absdir" != "$libdir" && \ ++ func_warning "'$deplib' seems to be moved" ++ ++ path=-L$absdir ++ fi ++ ;; ++ esac ++ case " $deplibs " in ++ *" $path "*) ;; ++ *) deplibs="$path $deplibs" ;; ++ esac ++ done ++ fi # link_all_deplibs != no ++ fi # linkmode = lib ++ done # for deplib in $libs ++ if test link = "$pass"; then ++ if test prog = "$linkmode"; then ++ compile_deplibs="$new_inherited_linker_flags $compile_deplibs" ++ finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" ++ else ++ compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ++ fi ++ fi ++ dependency_libs=$newdependency_libs ++ if test dlpreopen = "$pass"; then ++ # Link the dlpreopened libraries before other libraries ++ for deplib in $save_deplibs; do ++ deplibs="$deplib $deplibs" ++ done ++ fi ++ if test dlopen != "$pass"; then ++ test conv = "$pass" || { ++ # Make sure lib_search_path contains only unique directories. ++ lib_search_path= ++ for dir in $newlib_search_path; do ++ case "$lib_search_path " in ++ *" $dir "*) ;; ++ *) func_append lib_search_path " $dir" ;; ++ esac ++ done ++ newlib_search_path= ++ } ++ ++ if test prog,link = "$linkmode,$pass"; then ++ vars="compile_deplibs finalize_deplibs" ++ else ++ vars=deplibs ++ fi ++ for var in $vars dependency_libs; do ++ # Add libraries to $var in reverse order ++ eval tmp_libs=\"\$$var\" ++ new_libs= ++ for deplib in $tmp_libs; do ++ # FIXME: Pedantically, this is the right thing to do, so ++ # that some nasty dependency loop isn't accidentally ++ # broken: ++ #new_libs="$deplib $new_libs" ++ # Pragmatically, this seems to cause very few problems in ++ # practice: ++ case $deplib in ++ -L*) new_libs="$deplib $new_libs" ;; ++ -R*) ;; ++ *) ++ # And here is the reason: when a library appears more ++ # than once as an explicit dependence of a library, or ++ # is implicitly linked in more than once by the ++ # compiler, it is considered special, and multiple ++ # occurrences thereof are not removed. Compare this ++ # with having the same library being listed as a ++ # dependency of multiple other libraries: in this case, ++ # we know (pedantically, we assume) the library does not ++ # need to be listed more than once, so we keep only the ++ # last copy. This is not always right, but it is rare ++ # enough that we require users that really mean to play ++ # such unportable linking tricks to link the library ++ # using -Wl,-lname, so that libtool does not consider it ++ # for duplicate removal. ++ case " $specialdeplibs " in ++ *" $deplib "*) new_libs="$deplib $new_libs" ;; ++ *) ++ case " $new_libs " in ++ *" $deplib "*) ;; ++ *) new_libs="$deplib $new_libs" ;; ++ esac ++ ;; ++ esac ++ ;; ++ esac ++ done ++ tmp_libs= ++ for deplib in $new_libs; do ++ case $deplib in ++ -L*) ++ case " $tmp_libs " in ++ *" $deplib "*) ;; ++ *) func_append tmp_libs " $deplib" ;; ++ esac ++ ;; ++ *) func_append tmp_libs " $deplib" ;; ++ esac ++ done ++ eval $var=\"$tmp_libs\" ++ done # for var ++ fi ++ ++ # Add Sun CC postdeps if required: ++ test CXX = "$tagname" && { ++ case $host_os in ++ linux*) ++ case `$CC -V 2>&1 | sed 5q` in ++ *Sun\ C*) # Sun C++ 5.9 ++ func_suncc_cstd_abi ++ ++ if test no != "$suncc_use_cstd_abi"; then ++ func_append postdeps ' -library=Cstd -library=Crun' ++ fi ++ ;; ++ esac ++ ;; ++ ++ solaris*) ++ func_cc_basename "$CC" ++ case $func_cc_basename_result in ++ CC* | sunCC*) ++ func_suncc_cstd_abi ++ ++ if test no != "$suncc_use_cstd_abi"; then ++ func_append postdeps ' -library=Cstd -library=Crun' ++ fi ++ ;; ++ esac ++ ;; ++ esac ++ } ++ ++ # Last step: remove runtime libs from dependency_libs ++ # (they stay in deplibs) ++ tmp_libs= ++ for i in $dependency_libs; do ++ case " $predeps $postdeps $compiler_lib_search_path " in ++ *" $i "*) ++ i= ++ ;; ++ esac ++ if test -n "$i"; then ++ func_append tmp_libs " $i" ++ fi ++ done ++ dependency_libs=$tmp_libs ++ done # for pass ++ if test prog = "$linkmode"; then ++ dlfiles=$newdlfiles ++ fi ++ if test prog = "$linkmode" || test lib = "$linkmode"; then ++ dlprefiles=$newdlprefiles ++ fi ++ ++ case $linkmode in ++ oldlib) ++ if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then ++ func_warning "'-dlopen' is ignored for archives" ++ fi ++ ++ case " $deplibs" in ++ *\ -l* | *\ -L*) ++ func_warning "'-l' and '-L' are ignored for archives" ;; ++ esac ++ ++ test -n "$rpath" && \ ++ func_warning "'-rpath' is ignored for archives" ++ ++ test -n "$xrpath" && \ ++ func_warning "'-R' is ignored for archives" ++ ++ test -n "$vinfo" && \ ++ func_warning "'-version-info/-version-number' is ignored for archives" ++ ++ test -n "$release" && \ ++ func_warning "'-release' is ignored for archives" ++ ++ test -n "$export_symbols$export_symbols_regex" && \ ++ func_warning "'-export-symbols' is ignored for archives" ++ ++ # Now set the variables for building old libraries. ++ build_libtool_libs=no ++ oldlibs=$output ++ func_append objs "$old_deplibs" ++ ;; ++ ++ lib) ++ # Make sure we only generate libraries of the form 'libNAME.la'. ++ case $outputname in ++ lib*) ++ func_stripname 'lib' '.la' "$outputname" ++ name=$func_stripname_result ++ eval shared_ext=\"$shrext_cmds\" ++ eval libname=\"$libname_spec\" ++ ;; ++ *) ++ test no = "$module" \ ++ && func_fatal_help "libtool library '$output' must begin with 'lib'" ++ ++ if test no != "$need_lib_prefix"; then ++ # Add the "lib" prefix for modules if required ++ func_stripname '' '.la' "$outputname" ++ name=$func_stripname_result ++ eval shared_ext=\"$shrext_cmds\" ++ eval libname=\"$libname_spec\" ++ else ++ func_stripname '' '.la' "$outputname" ++ libname=$func_stripname_result ++ fi ++ ;; ++ esac ++ ++ if test -n "$objs"; then ++ if test pass_all != "$deplibs_check_method"; then ++ func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" ++ else ++ echo ++ $ECHO "*** Warning: Linking the shared library $output against the non-libtool" ++ $ECHO "*** objects $objs is not portable!" ++ func_append libobjs " $objs" ++ fi ++ fi ++ ++ test no = "$dlself" \ ++ || func_warning "'-dlopen self' is ignored for libtool libraries" ++ ++ set dummy $rpath ++ shift ++ test 1 -lt "$#" \ ++ && func_warning "ignoring multiple '-rpath's for a libtool library" ++ ++ install_libdir=$1 ++ ++ oldlibs= ++ if test -z "$rpath"; then ++ if test yes = "$build_libtool_libs"; then ++ # Building a libtool convenience library. ++ # Some compilers have problems with a '.al' extension so ++ # convenience libraries should have the same extension an ++ # archive normally would. ++ oldlibs="$output_objdir/$libname.$libext $oldlibs" ++ build_libtool_libs=convenience ++ build_old_libs=yes ++ fi ++ ++ test -n "$vinfo" && \ ++ func_warning "'-version-info/-version-number' is ignored for convenience libraries" ++ ++ test -n "$release" && \ ++ func_warning "'-release' is ignored for convenience libraries" ++ else ++ ++ # Parse the version information argument. ++ save_ifs=$IFS; IFS=: ++ set dummy $vinfo 0 0 0 ++ shift ++ IFS=$save_ifs ++ ++ test -n "$7" && \ ++ func_fatal_help "too many parameters to '-version-info'" ++ ++ # convert absolute version numbers to libtool ages ++ # this retains compatibility with .la files and attempts ++ # to make the code below a bit more comprehensible ++ ++ case $vinfo_number in ++ yes) ++ number_major=$1 ++ number_minor=$2 ++ number_revision=$3 ++ # ++ # There are really only two kinds -- those that ++ # use the current revision as the major version ++ # and those that subtract age and use age as ++ # a minor version. But, then there is irix ++ # that has an extra 1 added just for fun ++ # ++ case $version_type in ++ # correct linux to gnu/linux during the next big refactor ++ darwin|freebsd-elf|linux|osf|windows|none) ++ func_arith $number_major + $number_minor ++ current=$func_arith_result ++ age=$number_minor ++ revision=$number_revision ++ ;; ++ freebsd-aout|qnx|sunos) ++ current=$number_major ++ revision=$number_minor ++ age=0 ++ ;; ++ irix|nonstopux) ++ func_arith $number_major + $number_minor ++ current=$func_arith_result ++ age=$number_minor ++ revision=$number_minor ++ lt_irix_increment=no ++ ;; ++ esac ++ ;; ++ no) ++ current=$1 ++ revision=$2 ++ age=$3 ++ ;; ++ esac ++ ++ # Check that each of the things are valid numbers. ++ case $current in ++ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; ++ *) ++ func_error "CURRENT '$current' must be a nonnegative integer" ++ func_fatal_error "'$vinfo' is not valid version information" ++ ;; ++ esac ++ ++ case $revision in ++ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; ++ *) ++ func_error "REVISION '$revision' must be a nonnegative integer" ++ func_fatal_error "'$vinfo' is not valid version information" ++ ;; ++ esac ++ ++ case $age in ++ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; ++ *) ++ func_error "AGE '$age' must be a nonnegative integer" ++ func_fatal_error "'$vinfo' is not valid version information" ++ ;; ++ esac ++ ++ if test "$age" -gt "$current"; then ++ func_error "AGE '$age' is greater than the current interface number '$current'" ++ func_fatal_error "'$vinfo' is not valid version information" ++ fi ++ ++ # Calculate the version variables. ++ major= ++ versuffix= ++ verstring= ++ case $version_type in ++ none) ;; ++ ++ darwin) ++ # Like Linux, but with the current version available in ++ # verstring for coding it into the library header ++ func_arith $current - $age ++ major=.$func_arith_result ++ versuffix=$major.$age.$revision ++ # Darwin ld doesn't like 0 for these options... ++ func_arith $current + 1 ++ minor_current=$func_arith_result ++ xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" ++ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ++ # On Darwin other compilers ++ case $CC in ++ nagfor*) ++ verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" ++ ;; ++ *) ++ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ++ ;; ++ esac ++ ;; ++ ++ freebsd-aout) ++ major=.$current ++ versuffix=.$current.$revision ++ ;; ++ ++ freebsd-elf) ++ func_arith $current - $age ++ major=.$func_arith_result ++ versuffix=$major.$age.$revision ++ ;; ++ ++ irix | nonstopux) ++ if test no = "$lt_irix_increment"; then ++ func_arith $current - $age ++ else ++ func_arith $current - $age + 1 ++ fi ++ major=$func_arith_result ++ ++ case $version_type in ++ nonstopux) verstring_prefix=nonstopux ;; ++ *) verstring_prefix=sgi ;; ++ esac ++ verstring=$verstring_prefix$major.$revision ++ ++ # Add in all the interfaces that we are compatible with. ++ loop=$revision ++ while test 0 -ne "$loop"; do ++ func_arith $revision - $loop ++ iface=$func_arith_result ++ func_arith $loop - 1 ++ loop=$func_arith_result ++ verstring=$verstring_prefix$major.$iface:$verstring ++ done ++ ++ # Before this point, $major must not contain '.'. ++ major=.$major ++ versuffix=$major.$revision ++ ;; ++ ++ linux) # correct to gnu/linux during the next big refactor ++ func_arith $current - $age ++ major=.$func_arith_result ++ versuffix=$major.$age.$revision ++ ;; ++ ++ osf) ++ func_arith $current - $age ++ major=.$func_arith_result ++ versuffix=.$current.$age.$revision ++ verstring=$current.$age.$revision ++ ++ # Add in all the interfaces that we are compatible with. ++ loop=$age ++ while test 0 -ne "$loop"; do ++ func_arith $current - $loop ++ iface=$func_arith_result ++ func_arith $loop - 1 ++ loop=$func_arith_result ++ verstring=$verstring:$iface.0 ++ done ++ ++ # Make executables depend on our current version. ++ func_append verstring ":$current.0" ++ ;; ++ ++ qnx) ++ major=.$current ++ versuffix=.$current ++ ;; ++ ++ sco) ++ major=.$current ++ versuffix=.$current ++ ;; ++ ++ sunos) ++ major=.$current ++ versuffix=.$current.$revision ++ ;; ++ ++ windows) ++ # Use '-' rather than '.', since we only want one ++ # extension on DOS 8.3 file systems. ++ func_arith $current - $age ++ major=$func_arith_result ++ versuffix=-$major ++ ;; ++ ++ *) ++ func_fatal_configuration "unknown library version type '$version_type'" ++ ;; ++ esac ++ ++ # Clear the version info if we defaulted, and they specified a release. ++ if test -z "$vinfo" && test -n "$release"; then ++ major= ++ case $version_type in ++ darwin) ++ # we can't check for "0.0" in archive_cmds due to quoting ++ # problems, so we reset it completely ++ verstring= ++ ;; ++ *) ++ verstring=0.0 ++ ;; ++ esac ++ if test no = "$need_version"; then ++ versuffix= ++ else ++ versuffix=.0.0 ++ fi ++ fi ++ ++ # Remove version info from name if versioning should be avoided ++ if test yes,no = "$avoid_version,$need_version"; then ++ major= ++ versuffix= ++ verstring= ++ fi ++ ++ # Check to see if the archive will have undefined symbols. ++ if test yes = "$allow_undefined"; then ++ if test unsupported = "$allow_undefined_flag"; then ++ if test yes = "$build_old_libs"; then ++ func_warning "undefined symbols not allowed in $host shared libraries; building static only" ++ build_libtool_libs=no ++ else ++ func_fatal_error "can't build $host shared library unless -no-undefined is specified" ++ fi ++ fi ++ else ++ # Don't allow undefined symbols. ++ allow_undefined_flag=$no_undefined_flag ++ fi ++ ++ fi ++ ++ func_generate_dlsyms "$libname" "$libname" : ++ func_append libobjs " $symfileobj" ++ test " " = "$libobjs" && libobjs= ++ ++ if test relink != "$opt_mode"; then ++ # Remove our outputs, but don't remove object files since they ++ # may have been created when compiling PIC objects. ++ removelist= ++ tempremovelist=`$ECHO "$output_objdir/*"` ++ for p in $tempremovelist; do ++ case $p in ++ *.$objext | *.gcno) ++ ;; ++ $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) ++ if test -n "$precious_files_regex"; then ++ if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 ++ then ++ continue ++ fi ++ fi ++ func_append removelist " $p" ++ ;; ++ *) ;; ++ esac ++ done ++ test -n "$removelist" && \ ++ func_show_eval "${RM}r \$removelist" ++ fi ++ ++ # Now set the variables for building old libraries. ++ if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then ++ func_append oldlibs " $output_objdir/$libname.$libext" ++ ++ # Transform .lo files to .o files. ++ oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` ++ fi ++ ++ # Eliminate all temporary directories. ++ #for path in $notinst_path; do ++ # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` ++ # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` ++ # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` ++ #done ++ ++ if test -n "$xrpath"; then ++ # If the user specified any rpath flags, then add them. ++ temp_xrpath= ++ for libdir in $xrpath; do ++ func_replace_sysroot "$libdir" ++ func_append temp_xrpath " -R$func_replace_sysroot_result" ++ case "$finalize_rpath " in ++ *" $libdir "*) ;; ++ *) func_append finalize_rpath " $libdir" ;; ++ esac ++ done ++ if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then ++ dependency_libs="$temp_xrpath $dependency_libs" ++ fi ++ fi ++ ++ # Make sure dlfiles contains only unique files that won't be dlpreopened ++ old_dlfiles=$dlfiles ++ dlfiles= ++ for lib in $old_dlfiles; do ++ case " $dlprefiles $dlfiles " in ++ *" $lib "*) ;; ++ *) func_append dlfiles " $lib" ;; ++ esac ++ done ++ ++ # Make sure dlprefiles contains only unique files ++ old_dlprefiles=$dlprefiles ++ dlprefiles= ++ for lib in $old_dlprefiles; do ++ case "$dlprefiles " in ++ *" $lib "*) ;; ++ *) func_append dlprefiles " $lib" ;; ++ esac ++ done ++ ++ if test yes = "$build_libtool_libs"; then ++ if test -n "$rpath"; then ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) ++ # these systems don't actually have a c library (as such)! ++ ;; ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # Rhapsody C library is in the System framework ++ func_append deplibs " System.ltframework" ++ ;; ++ *-*-netbsd*) ++ # Don't link with libc until the a.out ld.so is fixed. ++ ;; ++ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) ++ # Do not include libc due to us having libc/libc_r. ++ ;; ++ *-*-sco3.2v5* | *-*-sco5v6*) ++ # Causes problems with __ctype ++ ;; ++ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) ++ # Compiler inserts libc in the correct place for threads to work ++ ;; ++ *) ++ # Add libc to deplibs on all other systems if necessary. ++ if test yes = "$build_libtool_need_lc"; then ++ func_append deplibs " -lc" ++ fi ++ ;; ++ esac ++ fi ++ ++ # Transform deplibs into only deplibs that can be linked in shared. ++ name_save=$name ++ libname_save=$libname ++ release_save=$release ++ versuffix_save=$versuffix ++ major_save=$major ++ # I'm not sure if I'm treating the release correctly. I think ++ # release should show up in the -l (ie -lgmp5) so we don't want to ++ # add it in twice. Is that correct? ++ release= ++ versuffix= ++ major= ++ newdeplibs= ++ droppeddeps=no ++ case $deplibs_check_method in ++ pass_all) ++ # Don't check for shared/static. Everything works. ++ # This might be a little naive. We might want to check ++ # whether the library exists or not. But this is on ++ # osf3 & osf4 and I'm not really sure... Just ++ # implementing what was already the behavior. ++ newdeplibs=$deplibs ++ ;; ++ test_compile) ++ # This code stresses the "libraries are programs" paradigm to its ++ # limits. Maybe even breaks it. We compile a program, linking it ++ # against the deplibs as a proxy for the library. Then we can check ++ # whether they linked in statically or dynamically with ldd. ++ $opt_dry_run || $RM conftest.c ++ cat > conftest.c </dev/null` ++ $nocaseglob ++ else ++ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` ++ fi ++ for potent_lib in $potential_libs; do ++ # Follow soft links. ++ if ls -lLd "$potent_lib" 2>/dev/null | ++ $GREP " -> " >/dev/null; then ++ continue ++ fi ++ # The statement above tries to avoid entering an ++ # endless loop below, in case of cyclic links. ++ # We might still enter an endless loop, since a link ++ # loop can be closed while we follow links, ++ # but so what? ++ potlib=$potent_lib ++ while test -h "$potlib" 2>/dev/null; do ++ potliblink=`ls -ld $potlib | $SED 's/.* -> //'` ++ case $potliblink in ++ [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; ++ *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; ++ esac ++ done ++ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | ++ $SED -e 10q | ++ $EGREP "$file_magic_regex" > /dev/null; then ++ func_append newdeplibs " $a_deplib" ++ a_deplib= ++ break 2 ++ fi ++ done ++ done ++ fi ++ if test -n "$a_deplib"; then ++ droppeddeps=yes ++ echo ++ $ECHO "*** Warning: linker path does not have real file for library $a_deplib." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have" ++ echo "*** because I did check the linker path looking for a file starting" ++ if test -z "$potlib"; then ++ $ECHO "*** with $libname but no candidates were found. (...for file magic test)" ++ else ++ $ECHO "*** with $libname and none of the candidates passed a file format test" ++ $ECHO "*** using a file magic. Last file checked: $potlib" ++ fi ++ fi ++ ;; ++ *) ++ # Add a -L argument. ++ func_append newdeplibs " $a_deplib" ++ ;; ++ esac ++ done # Gone through all deplibs. ++ ;; ++ match_pattern*) ++ set dummy $deplibs_check_method; shift ++ match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` ++ for a_deplib in $deplibs; do ++ case $a_deplib in ++ -l*) ++ func_stripname -l '' "$a_deplib" ++ name=$func_stripname_result ++ if test yes = "$allow_libtool_libs_with_static_runtimes"; then ++ case " $predeps $postdeps " in ++ *" $a_deplib "*) ++ func_append newdeplibs " $a_deplib" ++ a_deplib= ++ ;; ++ esac ++ fi ++ if test -n "$a_deplib"; then ++ libname=`eval "\\$ECHO \"$libname_spec\""` ++ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do ++ potential_libs=`ls $i/$libname[.-]* 2>/dev/null` ++ for potent_lib in $potential_libs; do ++ potlib=$potent_lib # see symlink-check above in file_magic test ++ if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ ++ $EGREP "$match_pattern_regex" > /dev/null; then ++ func_append newdeplibs " $a_deplib" ++ a_deplib= ++ break 2 ++ fi ++ done ++ done ++ fi ++ if test -n "$a_deplib"; then ++ droppeddeps=yes ++ echo ++ $ECHO "*** Warning: linker path does not have real file for library $a_deplib." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have" ++ echo "*** because I did check the linker path looking for a file starting" ++ if test -z "$potlib"; then ++ $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" ++ else ++ $ECHO "*** with $libname and none of the candidates passed a file format test" ++ $ECHO "*** using a regex pattern. Last file checked: $potlib" ++ fi ++ fi ++ ;; ++ *) ++ # Add a -L argument. ++ func_append newdeplibs " $a_deplib" ++ ;; ++ esac ++ done # Gone through all deplibs. ++ ;; ++ none | unknown | *) ++ newdeplibs= ++ tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` ++ if test yes = "$allow_libtool_libs_with_static_runtimes"; then ++ for i in $predeps $postdeps; do ++ # can't use Xsed below, because $i might contain '/' ++ tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` ++ done ++ fi ++ case $tmp_deplibs in ++ *[!\ \ ]*) ++ echo ++ if test none = "$deplibs_check_method"; then ++ echo "*** Warning: inter-library dependencies are not supported in this platform." ++ else ++ echo "*** Warning: inter-library dependencies are not known to be supported." ++ fi ++ echo "*** All declared inter-library dependencies are being dropped." ++ droppeddeps=yes ++ ;; ++ esac ++ ;; ++ esac ++ versuffix=$versuffix_save ++ major=$major_save ++ release=$release_save ++ libname=$libname_save ++ name=$name_save ++ ++ case $host in ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # On Rhapsody replace the C library with the System framework ++ newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ++ ;; ++ esac ++ ++ if test yes = "$droppeddeps"; then ++ if test yes = "$module"; 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 no = "$build_old_libs"; 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 no = "$allow_undefined"; 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 no = "$build_old_libs"; then ++ oldlibs=$output_objdir/$libname.$libext ++ build_libtool_libs=module ++ build_old_libs=yes ++ else ++ build_libtool_libs=no ++ fi ++ fi ++ fi ++ fi ++ # Done checking deplibs! ++ deplibs=$newdeplibs ++ fi ++ # Time to change all our "foo.ltframework" stuff back to "-framework foo" ++ case $host in ++ *-*-darwin*) ++ newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ++ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ++ deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ++ ;; ++ esac ++ ++ # move library search paths that coincide with paths to not yet ++ # installed libraries to the beginning of the library search list ++ new_libs= ++ for path in $notinst_path; do ++ case " $new_libs " in ++ *" -L$path/$objdir "*) ;; ++ *) ++ case " $deplibs " in ++ *" -L$path/$objdir "*) ++ func_append new_libs " -L$path/$objdir" ;; ++ esac ++ ;; ++ esac ++ done ++ for deplib in $deplibs; do ++ case $deplib in ++ -L*) ++ case " $new_libs " in ++ *" $deplib "*) ;; ++ *) func_append new_libs " $deplib" ;; ++ esac ++ ;; ++ *) func_append new_libs " $deplib" ;; ++ esac ++ done ++ deplibs=$new_libs ++ ++ # All the library-specific variables (install_libdir is set above). ++ library_names= ++ old_library= ++ dlname= ++ ++ # Test again, we may have decided not to build it any more ++ if test yes = "$build_libtool_libs"; then ++ # Remove $wl instances when linking with ld. ++ # FIXME: should test the right _cmds variable. ++ case $archive_cmds in ++ *\$LD\ *) wl= ;; ++ esac ++ if test yes = "$hardcode_into_libs"; then ++ # Hardcode the library paths ++ hardcode_libdirs= ++ dep_rpath= ++ rpath=$finalize_rpath ++ test relink = "$opt_mode" || rpath=$compile_rpath$rpath ++ for libdir in $rpath; do ++ if test -n "$hardcode_libdir_flag_spec"; then ++ if test -n "$hardcode_libdir_separator"; then ++ func_replace_sysroot "$libdir" ++ libdir=$func_replace_sysroot_result ++ if test -z "$hardcode_libdirs"; then ++ hardcode_libdirs=$libdir ++ else ++ # Just accumulate the unique libdirs. ++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in ++ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ++ ;; ++ *) ++ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ++ ;; ++ esac ++ fi ++ else ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ func_append dep_rpath " $flag" ++ fi ++ elif test -n "$runpath_var"; then ++ case "$perm_rpath " in ++ *" $libdir "*) ;; ++ *) func_append perm_rpath " $libdir" ;; ++ esac ++ fi ++ done ++ # Substitute the hardcoded libdirs into the rpath. ++ if test -n "$hardcode_libdir_separator" && ++ test -n "$hardcode_libdirs"; then ++ libdir=$hardcode_libdirs ++ eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" ++ fi ++ if test -n "$runpath_var" && test -n "$perm_rpath"; then ++ # We should set the runpath_var. ++ rpath= ++ for dir in $perm_rpath; do ++ func_append rpath "$dir:" ++ done ++ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" ++ fi ++ test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" ++ fi ++ ++ shlibpath=$finalize_shlibpath ++ test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath ++ if test -n "$shlibpath"; then ++ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" ++ fi ++ ++ # Get the real and link names of the library. ++ eval shared_ext=\"$shrext_cmds\" ++ eval library_names=\"$library_names_spec\" ++ set dummy $library_names ++ shift ++ realname=$1 ++ shift ++ ++ if test -n "$soname_spec"; then ++ eval soname=\"$soname_spec\" ++ else ++ soname=$realname ++ fi ++ if test -z "$dlname"; then ++ dlname=$soname ++ fi ++ ++ lib=$output_objdir/$realname ++ linknames= ++ for link ++ do ++ func_append linknames " $link" ++ done ++ ++ # Use standard objects if they are pic ++ test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` ++ test "X$libobjs" = "X " && libobjs= ++ ++ delfiles= ++ if test -n "$export_symbols" && test -n "$include_expsyms"; then ++ $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" ++ export_symbols=$output_objdir/$libname.uexp ++ func_append delfiles " $export_symbols" ++ fi ++ ++ orig_export_symbols= ++ case $host_os in ++ cygwin* | mingw* | cegcc*) ++ if test -n "$export_symbols" && test -z "$export_symbols_regex"; then ++ # exporting using user supplied symfile ++ func_dll_def_p "$export_symbols" || { ++ # and it's NOT already a .def file. Must figure out ++ # which of the given symbols are data symbols and tag ++ # them as such. So, trigger use of export_symbols_cmds. ++ # export_symbols gets reassigned inside the "prepare ++ # the list of exported symbols" if statement, so the ++ # include_expsyms logic still works. ++ orig_export_symbols=$export_symbols ++ export_symbols= ++ always_export_symbols=yes ++ } ++ fi ++ ;; ++ esac ++ ++ # Prepare the list of exported symbols ++ if test -z "$export_symbols"; then ++ if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then ++ func_verbose "generating symbol list for '$libname.la'" ++ export_symbols=$output_objdir/$libname.exp ++ $opt_dry_run || $RM $export_symbols ++ cmds=$export_symbols_cmds ++ save_ifs=$IFS; IFS='~' ++ for cmd1 in $cmds; do ++ IFS=$save_ifs ++ # Take the normal branch if the nm_file_list_spec branch ++ # doesn't work or if tool conversion is not needed. ++ case $nm_file_list_spec~$to_tool_file_cmd in ++ *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) ++ try_normal_branch=yes ++ eval cmd=\"$cmd1\" ++ func_len " $cmd" ++ len=$func_len_result ++ ;; ++ *) ++ try_normal_branch=no ++ ;; ++ esac ++ if test yes = "$try_normal_branch" \ ++ && { test "$len" -lt "$max_cmd_len" \ ++ || test "$max_cmd_len" -le -1; } ++ then ++ func_show_eval "$cmd" 'exit $?' ++ skipped_export=false ++ elif test -n "$nm_file_list_spec"; then ++ func_basename "$output" ++ output_la=$func_basename_result ++ save_libobjs=$libobjs ++ save_output=$output ++ output=$output_objdir/$output_la.nm ++ func_to_tool_file "$output" ++ libobjs=$nm_file_list_spec$func_to_tool_file_result ++ func_append delfiles " $output" ++ func_verbose "creating $NM input file list: $output" ++ for obj in $save_libobjs; do ++ func_to_tool_file "$obj" ++ $ECHO "$func_to_tool_file_result" ++ done > "$output" ++ eval cmd=\"$cmd1\" ++ func_show_eval "$cmd" 'exit $?' ++ output=$save_output ++ libobjs=$save_libobjs ++ skipped_export=false ++ else ++ # The command line is too long to execute in one step. ++ func_verbose "using reloadable object file for export list..." ++ skipped_export=: ++ # Break out early, otherwise skipped_export may be ++ # set to false by a later but shorter cmd. ++ break ++ fi ++ done ++ IFS=$save_ifs ++ if test -n "$export_symbols_regex" && test : != "$skipped_export"; then ++ func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' ++ func_show_eval '$MV "${export_symbols}T" "$export_symbols"' ++ fi ++ fi ++ fi ++ ++ if test -n "$export_symbols" && test -n "$include_expsyms"; then ++ tmp_export_symbols=$export_symbols ++ test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols ++ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' ++ fi ++ ++ if test : != "$skipped_export" && test -n "$orig_export_symbols"; then ++ # The given exports_symbols file has to be filtered, so filter it. ++ func_verbose "filter symbol list for '$libname.la' to tag DATA exports" ++ # FIXME: $output_objdir/$libname.filter potentially contains lots of ++ # 's' commands, which not all seds can handle. GNU sed should be fine ++ # though. Also, the filter scales superlinearly with the number of ++ # global variables. join(1) would be nice here, but unfortunately ++ # isn't a blessed tool. ++ $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter ++ func_append delfiles " $export_symbols $output_objdir/$libname.filter" ++ export_symbols=$output_objdir/$libname.def ++ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols ++ fi ++ ++ tmp_deplibs= ++ for test_deplib in $deplibs; do ++ case " $convenience " in ++ *" $test_deplib "*) ;; ++ *) ++ func_append tmp_deplibs " $test_deplib" ++ ;; ++ esac ++ done ++ deplibs=$tmp_deplibs ++ ++ if test -n "$convenience"; then ++ if test -n "$whole_archive_flag_spec" && ++ test yes = "$compiler_needs_object" && ++ test -z "$libobjs"; then ++ # extract the archives, so we have objects to list. ++ # TODO: could optimize this to just extract one archive. ++ whole_archive_flag_spec= ++ fi ++ if test -n "$whole_archive_flag_spec"; then ++ save_libobjs=$libobjs ++ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" ++ test "X$libobjs" = "X " && libobjs= ++ else ++ gentop=$output_objdir/${outputname}x ++ func_append generated " $gentop" ++ ++ func_extract_archives $gentop $convenience ++ func_append libobjs " $func_extract_archives_result" ++ test "X$libobjs" = "X " && libobjs= ++ fi ++ fi ++ ++ if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then ++ eval flag=\"$thread_safe_flag_spec\" ++ func_append linker_flags " $flag" ++ fi ++ ++ # Make a backup of the uninstalled library when relinking ++ if test relink = "$opt_mode"; then ++ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? ++ fi ++ ++ # Do each of the archive commands. ++ if test yes = "$module" && 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 : != "$skipped_export" && ++ func_len " $test_cmds" && ++ len=$func_len_result && ++ test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then ++ : ++ else ++ # The command line is too long to link in one step, link piecewise ++ # or, if using GNU ld and skipped_export is not :, use a linker ++ # script. ++ ++ # Save the value of $output and $libobjs because we want to ++ # use them later. If we have whole_archive_flag_spec, we ++ # want to use save_libobjs as it was before ++ # whole_archive_flag_spec was expanded, because we can't ++ # assume the linker understands whole_archive_flag_spec. ++ # This may have to be revisited, in case too many ++ # convenience libraries get linked in and end up exceeding ++ # the spec. ++ if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then ++ save_libobjs=$libobjs ++ fi ++ save_output=$output ++ func_basename "$output" ++ output_la=$func_basename_result ++ ++ # Clear the reloadable object creation command queue and ++ # initialize k to one. ++ test_cmds= ++ concat_cmds= ++ objlist= ++ last_robj= ++ k=1 ++ ++ if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then ++ output=$output_objdir/$output_la.lnkscript ++ func_verbose "creating GNU ld script: $output" ++ echo 'INPUT (' > $output ++ for obj in $save_libobjs ++ do ++ func_to_tool_file "$obj" ++ $ECHO "$func_to_tool_file_result" >> $output ++ done ++ echo ')' >> $output ++ func_append delfiles " $output" ++ func_to_tool_file "$output" ++ output=$func_to_tool_file_result ++ elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then ++ output=$output_objdir/$output_la.lnk ++ func_verbose "creating linker input file list: $output" ++ : > $output ++ set x $save_libobjs ++ shift ++ firstobj= ++ if test yes = "$compiler_needs_object"; then ++ firstobj="$1 " ++ shift ++ fi ++ for obj ++ do ++ func_to_tool_file "$obj" ++ $ECHO "$func_to_tool_file_result" >> $output ++ done ++ func_append delfiles " $output" ++ func_to_tool_file "$output" ++ output=$firstobj\"$file_list_spec$func_to_tool_file_result\" ++ else ++ if test -n "$save_libobjs"; then ++ func_verbose "creating reloadable object files..." ++ output=$output_objdir/$output_la-$k.$objext ++ eval test_cmds=\"$reload_cmds\" ++ func_len " $test_cmds" ++ len0=$func_len_result ++ len=$len0 ++ ++ # Loop over the list of objects to be linked. ++ for obj in $save_libobjs ++ do ++ func_len " $obj" ++ func_arith $len + $func_len_result ++ len=$func_arith_result ++ if test -z "$objlist" || ++ test "$len" -lt "$max_cmd_len"; then ++ func_append objlist " $obj" ++ else ++ # The command $test_cmds is almost too long, add a ++ # command to the queue. ++ if test 1 -eq "$k"; then ++ # The first file doesn't have a previous command to add. ++ reload_objs=$objlist ++ eval concat_cmds=\"$reload_cmds\" ++ else ++ # All subsequent reloadable object files will link in ++ # the last one created. ++ reload_objs="$objlist $last_robj" ++ eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" ++ fi ++ last_robj=$output_objdir/$output_la-$k.$objext ++ func_arith $k + 1 ++ k=$func_arith_result ++ output=$output_objdir/$output_la-$k.$objext ++ objlist=" $obj" ++ func_len " $last_robj" ++ func_arith $len0 + $func_len_result ++ len=$func_arith_result ++ fi ++ done ++ # Handle the remaining objects by creating one last ++ # reloadable object file. All subsequent reloadable object ++ # files will link in the last one created. ++ test -z "$concat_cmds" || concat_cmds=$concat_cmds~ ++ reload_objs="$objlist $last_robj" ++ eval concat_cmds=\"\$concat_cmds$reload_cmds\" ++ if test -n "$last_robj"; then ++ eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" ++ fi ++ func_append delfiles " $output" ++ ++ else ++ output= ++ fi ++ ++ ${skipped_export-false} && { ++ func_verbose "generating symbol list for '$libname.la'" ++ export_symbols=$output_objdir/$libname.exp ++ $opt_dry_run || $RM $export_symbols ++ libobjs=$output ++ # Append the command to create the export file. ++ test -z "$concat_cmds" || concat_cmds=$concat_cmds~ ++ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" ++ if test -n "$last_robj"; then ++ eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" ++ fi ++ } ++ ++ test -n "$save_libobjs" && ++ func_verbose "creating a temporary reloadable object file: $output" ++ ++ # Loop through the commands generated above and execute them. ++ save_ifs=$IFS; IFS='~' ++ for cmd in $concat_cmds; do ++ IFS=$save_ifs ++ $opt_quiet || { ++ func_quote_for_expand "$cmd" ++ eval "func_echo $func_quote_for_expand_result" ++ } ++ $opt_dry_run || eval "$cmd" || { ++ lt_exit=$? ++ ++ # Restore the uninstalled library and exit ++ if test relink = "$opt_mode"; then ++ ( cd "$output_objdir" && \ ++ $RM "${realname}T" && \ ++ $MV "${realname}U" "$realname" ) ++ fi ++ ++ exit $lt_exit ++ } ++ done ++ IFS=$save_ifs ++ ++ if test -n "$export_symbols_regex" && ${skipped_export-false}; then ++ func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' ++ func_show_eval '$MV "${export_symbols}T" "$export_symbols"' ++ fi ++ fi ++ ++ ${skipped_export-false} && { ++ if test -n "$export_symbols" && test -n "$include_expsyms"; then ++ tmp_export_symbols=$export_symbols ++ test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols ++ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' ++ fi ++ ++ if test -n "$orig_export_symbols"; then ++ # The given exports_symbols file has to be filtered, so filter it. ++ func_verbose "filter symbol list for '$libname.la' to tag DATA exports" ++ # FIXME: $output_objdir/$libname.filter potentially contains lots of ++ # 's' commands, which not all seds can handle. GNU sed should be fine ++ # though. Also, the filter scales superlinearly with the number of ++ # global variables. join(1) would be nice here, but unfortunately ++ # isn't a blessed tool. ++ $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter ++ func_append delfiles " $export_symbols $output_objdir/$libname.filter" ++ export_symbols=$output_objdir/$libname.def ++ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols ++ fi ++ } ++ ++ libobjs=$output ++ # Restore the value of output. ++ output=$save_output ++ ++ if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then ++ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" ++ test "X$libobjs" = "X " && libobjs= ++ fi ++ # Expand the library linking commands again to reset the ++ # value of $libobjs for piecewise linking. ++ ++ # Do each of the archive commands. ++ if test yes = "$module" && test -n "$module_cmds"; then ++ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then ++ cmds=$module_expsym_cmds ++ else ++ cmds=$module_cmds ++ fi ++ else ++ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then ++ cmds=$archive_expsym_cmds ++ else ++ cmds=$archive_cmds ++ fi ++ fi ++ fi ++ ++ if test -n "$delfiles"; then ++ # Append the command to remove temporary files to $cmds. ++ eval cmds=\"\$cmds~\$RM $delfiles\" ++ fi ++ ++ # Add any objects from preloaded convenience libraries ++ if test -n "$dlprefiles"; then ++ gentop=$output_objdir/${outputname}x ++ func_append generated " $gentop" ++ ++ func_extract_archives $gentop $dlprefiles ++ func_append libobjs " $func_extract_archives_result" ++ test "X$libobjs" = "X " && libobjs= ++ fi ++ ++ save_ifs=$IFS; IFS='~' ++ for cmd in $cmds; do ++ IFS=$sp$nl ++ eval cmd=\"$cmd\" ++ IFS=$save_ifs ++ $opt_quiet || { ++ func_quote_for_expand "$cmd" ++ eval "func_echo $func_quote_for_expand_result" ++ } ++ $opt_dry_run || eval "$cmd" || { ++ lt_exit=$? ++ ++ # Restore the uninstalled library and exit ++ if test relink = "$opt_mode"; then ++ ( cd "$output_objdir" && \ ++ $RM "${realname}T" && \ ++ $MV "${realname}U" "$realname" ) ++ fi ++ ++ exit $lt_exit ++ } ++ done ++ IFS=$save_ifs ++ ++ # Restore the uninstalled library and exit ++ if test relink = "$opt_mode"; then ++ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? ++ ++ if test -n "$convenience"; then ++ if test -z "$whole_archive_flag_spec"; then ++ func_show_eval '${RM}r "$gentop"' ++ fi ++ fi ++ ++ exit $EXIT_SUCCESS ++ fi ++ ++ # Create links to the real library. ++ for linkname in $linknames; do ++ if test "$realname" != "$linkname"; then ++ func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' ++ fi ++ done ++ ++ # If -module or -export-dynamic was specified, set the dlname. ++ if test yes = "$module" || test yes = "$export_dynamic"; then ++ # On all known operating systems, these are identical. ++ dlname=$soname ++ fi ++ fi ++ ;; ++ ++ obj) ++ if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then ++ func_warning "'-dlopen' is ignored for objects" ++ fi ++ ++ case " $deplibs" in ++ *\ -l* | *\ -L*) ++ func_warning "'-l' and '-L' are ignored for objects" ;; ++ esac ++ ++ test -n "$rpath" && \ ++ func_warning "'-rpath' is ignored for objects" ++ ++ test -n "$xrpath" && \ ++ func_warning "'-R' is ignored for objects" ++ ++ test -n "$vinfo" && \ ++ func_warning "'-version-info' is ignored for objects" ++ ++ test -n "$release" && \ ++ func_warning "'-release' is ignored for objects" ++ ++ case $output in ++ *.lo) ++ test -n "$objs$old_deplibs" && \ ++ func_fatal_error "cannot build library object '$output' from non-libtool objects" ++ ++ libobj=$output ++ func_lo2o "$libobj" ++ obj=$func_lo2o_result ++ ;; ++ *) ++ libobj= ++ obj=$output ++ ;; ++ esac ++ ++ # Delete the old objects. ++ $opt_dry_run || $RM $obj $libobj ++ ++ # Objects from convenience libraries. This assumes ++ # single-version convenience libraries. Whenever we create ++ # different ones for PIC/non-PIC, this we'll have to duplicate ++ # the extraction. ++ reload_conv_objs= ++ gentop= ++ # if reload_cmds runs $LD directly, get rid of -Wl from ++ # whole_archive_flag_spec and hope we can get by with turning comma ++ # into space. ++ case $reload_cmds in ++ *\$LD[\ \$]*) wl= ;; ++ esac ++ if test -n "$convenience"; then ++ if test -n "$whole_archive_flag_spec"; then ++ eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" ++ test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` ++ reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags ++ else ++ gentop=$output_objdir/${obj}x ++ func_append generated " $gentop" ++ ++ func_extract_archives $gentop $convenience ++ reload_conv_objs="$reload_objs $func_extract_archives_result" ++ fi ++ fi ++ ++ # If we're not building shared, we need to use non_pic_objs ++ test yes = "$build_libtool_libs" || libobjs=$non_pic_objects ++ ++ # Create the old-style object. ++ reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs ++ ++ output=$obj ++ func_execute_cmds "$reload_cmds" 'exit $?' ++ ++ # Exit if we aren't doing a library object file. ++ if test -z "$libobj"; then ++ if test -n "$gentop"; then ++ func_show_eval '${RM}r "$gentop"' ++ fi ++ ++ exit $EXIT_SUCCESS ++ fi ++ ++ test yes = "$build_libtool_libs" || { ++ if test -n "$gentop"; then ++ func_show_eval '${RM}r "$gentop"' ++ fi ++ ++ # Create an invalid libtool object if no PIC, so that we don't ++ # accidentally link it into a program. ++ # $show "echo timestamp > $libobj" ++ # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? ++ exit $EXIT_SUCCESS ++ } ++ ++ if test -n "$pic_flag" || test default != "$pic_mode"; then ++ # Only do commands if we really have different PIC objects. ++ reload_objs="$libobjs $reload_conv_objs" ++ output=$libobj ++ func_execute_cmds "$reload_cmds" 'exit $?' ++ fi ++ ++ if test -n "$gentop"; then ++ func_show_eval '${RM}r "$gentop"' ++ fi ++ ++ exit $EXIT_SUCCESS ++ ;; ++ ++ prog) ++ case $host in ++ *cygwin*) func_stripname '' '.exe' "$output" ++ output=$func_stripname_result.exe;; ++ esac ++ test -n "$vinfo" && \ ++ func_warning "'-version-info' is ignored for programs" ++ ++ test -n "$release" && \ ++ func_warning "'-release' is ignored for programs" ++ ++ $preload \ ++ && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ ++ && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." ++ ++ case $host in ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # On Rhapsody replace the C library is the System framework ++ compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` ++ finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ++ ;; ++ esac ++ ++ case $host in ++ *-*-darwin*) ++ # Don't allow lazy linking, it breaks C++ global constructors ++ # But is supposedly fixed on 10.4 or later (yay!). ++ if test CXX = "$tagname"; then ++ case ${MACOSX_DEPLOYMENT_TARGET-10.0} in ++ 10.[0123]) ++ func_append compile_command " $wl-bind_at_load" ++ func_append finalize_command " $wl-bind_at_load" ++ ;; ++ esac ++ fi ++ # Time to change all our "foo.ltframework" stuff back to "-framework foo" ++ compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ++ finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ++ ;; ++ esac ++ ++ ++ # move library search paths that coincide with paths to not yet ++ # installed libraries to the beginning of the library search list ++ new_libs= ++ for path in $notinst_path; do ++ case " $new_libs " in ++ *" -L$path/$objdir "*) ;; ++ *) ++ case " $compile_deplibs " in ++ *" -L$path/$objdir "*) ++ func_append new_libs " -L$path/$objdir" ;; ++ esac ++ ;; ++ esac ++ done ++ for deplib in $compile_deplibs; do ++ case $deplib in ++ -L*) ++ case " $new_libs " in ++ *" $deplib "*) ;; ++ *) func_append new_libs " $deplib" ;; ++ esac ++ ;; ++ *) func_append new_libs " $deplib" ;; ++ esac ++ done ++ compile_deplibs=$new_libs ++ ++ ++ func_append compile_command " $compile_deplibs" ++ func_append finalize_command " $finalize_deplibs" ++ ++ if test -n "$rpath$xrpath"; then ++ # If the user specified any rpath flags, then add them. ++ for libdir in $rpath $xrpath; do ++ # This is the magic to use -rpath. ++ case "$finalize_rpath " in ++ *" $libdir "*) ;; ++ *) func_append finalize_rpath " $libdir" ;; ++ esac ++ done ++ fi ++ ++ # Now hardcode the library paths ++ rpath= ++ hardcode_libdirs= ++ for libdir in $compile_rpath $finalize_rpath; do ++ if test -n "$hardcode_libdir_flag_spec"; then ++ if test -n "$hardcode_libdir_separator"; then ++ if test -z "$hardcode_libdirs"; then ++ hardcode_libdirs=$libdir ++ else ++ # Just accumulate the unique libdirs. ++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in ++ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ++ ;; ++ *) ++ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ++ ;; ++ esac ++ fi ++ else ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ func_append rpath " $flag" ++ fi ++ elif test -n "$runpath_var"; then ++ case "$perm_rpath " in ++ *" $libdir "*) ;; ++ *) func_append perm_rpath " $libdir" ;; ++ esac ++ fi ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) ++ testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` ++ case :$dllsearchpath: in ++ *":$libdir:"*) ;; ++ ::) dllsearchpath=$libdir;; ++ *) func_append dllsearchpath ":$libdir";; ++ esac ++ case :$dllsearchpath: in ++ *":$testbindir:"*) ;; ++ ::) dllsearchpath=$testbindir;; ++ *) func_append dllsearchpath ":$testbindir";; ++ esac ++ ;; ++ esac ++ done ++ # Substitute the hardcoded libdirs into the rpath. ++ if test -n "$hardcode_libdir_separator" && ++ test -n "$hardcode_libdirs"; then ++ libdir=$hardcode_libdirs ++ eval rpath=\" $hardcode_libdir_flag_spec\" ++ fi ++ compile_rpath=$rpath ++ ++ rpath= ++ hardcode_libdirs= ++ for libdir in $finalize_rpath; do ++ if test -n "$hardcode_libdir_flag_spec"; then ++ if test -n "$hardcode_libdir_separator"; then ++ if test -z "$hardcode_libdirs"; then ++ hardcode_libdirs=$libdir ++ else ++ # Just accumulate the unique libdirs. ++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in ++ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ++ ;; ++ *) ++ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ++ ;; ++ esac ++ fi ++ else ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ func_append rpath " $flag" ++ fi ++ elif test -n "$runpath_var"; then ++ case "$finalize_perm_rpath " in ++ *" $libdir "*) ;; ++ *) func_append finalize_perm_rpath " $libdir" ;; ++ esac ++ fi ++ done ++ # Substitute the hardcoded libdirs into the rpath. ++ if test -n "$hardcode_libdir_separator" && ++ test -n "$hardcode_libdirs"; then ++ libdir=$hardcode_libdirs ++ eval rpath=\" $hardcode_libdir_flag_spec\" ++ fi ++ finalize_rpath=$rpath ++ ++ if test -n "$libobjs" && test yes = "$build_old_libs"; then ++ # Transform all the library objects into standard objects. ++ compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` ++ finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` ++ fi ++ ++ func_generate_dlsyms "$outputname" "@PROGRAM@" false ++ ++ # template prelinking step ++ if test -n "$prelink_cmds"; then ++ func_execute_cmds "$prelink_cmds" 'exit $?' ++ fi ++ ++ wrappers_required=: ++ case $host in ++ *cegcc* | *mingw32ce*) ++ # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. ++ wrappers_required=false ++ ;; ++ *cygwin* | *mingw* ) ++ test yes = "$build_libtool_libs" || wrappers_required=false ++ ;; ++ *) ++ if test no = "$need_relink" || test yes != "$build_libtool_libs"; then ++ wrappers_required=false ++ fi ++ ;; ++ esac ++ $wrappers_required || { ++ # Replace the output file specification. ++ compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` ++ link_command=$compile_command$compile_rpath ++ ++ # We have no uninstalled library dependencies, so finalize right now. ++ exit_status=0 ++ func_show_eval "$link_command" 'exit_status=$?' ++ ++ if test -n "$postlink_cmds"; then ++ func_to_tool_file "$output" ++ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` ++ func_execute_cmds "$postlink_cmds" 'exit $?' ++ fi ++ ++ # Delete the generated files. ++ if test -f "$output_objdir/${outputname}S.$objext"; then ++ func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' ++ fi ++ ++ exit $exit_status ++ } ++ ++ if test -n "$compile_shlibpath$finalize_shlibpath"; then ++ compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" ++ fi ++ if test -n "$finalize_shlibpath"; then ++ finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" ++ fi ++ ++ compile_var= ++ finalize_var= ++ if test -n "$runpath_var"; then ++ if test -n "$perm_rpath"; then ++ # We should set the runpath_var. ++ rpath= ++ for dir in $perm_rpath; do ++ func_append rpath "$dir:" ++ done ++ compile_var="$runpath_var=\"$rpath\$$runpath_var\" " ++ fi ++ if test -n "$finalize_perm_rpath"; then ++ # We should set the runpath_var. ++ rpath= ++ for dir in $finalize_perm_rpath; do ++ func_append rpath "$dir:" ++ done ++ finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " ++ fi ++ fi ++ ++ if test yes = "$no_install"; then ++ # We don't need to create a wrapper script. ++ link_command=$compile_var$compile_command$compile_rpath ++ # Replace the output file specification. ++ link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` ++ # Delete the old output file. ++ $opt_dry_run || $RM $output ++ # Link the executable and exit ++ func_show_eval "$link_command" 'exit $?' ++ ++ if test -n "$postlink_cmds"; then ++ func_to_tool_file "$output" ++ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` ++ func_execute_cmds "$postlink_cmds" 'exit $?' ++ fi ++ ++ exit $EXIT_SUCCESS ++ fi ++ ++ case $hardcode_action,$fast_install in ++ relink,*) ++ # Fast installation is not supported ++ link_command=$compile_var$compile_command$compile_rpath ++ relink_command=$finalize_var$finalize_command$finalize_rpath ++ ++ func_warning "this platform does not like uninstalled shared libraries" ++ func_warning "'$output' will be relinked during installation" ++ ;; ++ *,yes) ++ link_command=$finalize_var$compile_command$finalize_rpath ++ relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` ++ ;; ++ *,no) ++ link_command=$compile_var$compile_command$compile_rpath ++ relink_command=$finalize_var$finalize_command$finalize_rpath ++ ;; ++ *,needless) ++ link_command=$finalize_var$compile_command$finalize_rpath ++ relink_command= ++ ;; ++ esac ++ ++ # Replace the output file specification. ++ link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` ++ ++ # Delete the old output files. ++ $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname ++ ++ func_show_eval "$link_command" 'exit $?' ++ ++ if test -n "$postlink_cmds"; then ++ func_to_tool_file "$output_objdir/$outputname" ++ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` ++ func_execute_cmds "$postlink_cmds" 'exit $?' ++ fi ++ ++ # Now create the wrapper script. ++ func_verbose "creating $output" ++ ++ # Quote the relink command for shipping. ++ if test -n "$relink_command"; then ++ # Preserve any variables that may affect compiler behavior ++ for var in $variables_saved_for_relink; do ++ if eval test -z \"\${$var+set}\"; then ++ relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" ++ elif eval var_value=\$$var; test -z "$var_value"; then ++ relink_command="$var=; export $var; $relink_command" ++ else ++ func_quote_for_eval "$var_value" ++ relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" ++ fi ++ done ++ relink_command="(cd `pwd`; $relink_command)" ++ relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` ++ fi ++ ++ # Only actually do things if not in dry run mode. ++ $opt_dry_run || { ++ # win32 will think the script is a binary if it has ++ # a .exe suffix, so we strip it off here. ++ case $output in ++ *.exe) func_stripname '' '.exe' "$output" ++ output=$func_stripname_result ;; ++ esac ++ # test for cygwin because mv fails w/o .exe extensions ++ case $host in ++ *cygwin*) ++ exeext=.exe ++ func_stripname '' '.exe' "$outputname" ++ outputname=$func_stripname_result ;; ++ *) exeext= ;; ++ esac ++ case $host in ++ *cygwin* | *mingw* ) ++ func_dirname_and_basename "$output" "" "." ++ output_name=$func_basename_result ++ output_path=$func_dirname_result ++ cwrappersource=$output_path/$objdir/lt-$output_name.c ++ cwrapper=$output_path/$output_name.exe ++ $RM $cwrappersource $cwrapper ++ trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 ++ ++ func_emit_cwrapperexe_src > $cwrappersource ++ ++ # The wrapper executable is built using the $host compiler, ++ # because it contains $host paths and files. If cross- ++ # compiling, it, like the target executable, must be ++ # executed on the $host or under an emulation environment. ++ $opt_dry_run || { ++ $LTCC $LTCFLAGS -o $cwrapper $cwrappersource ++ $STRIP $cwrapper ++ } ++ ++ # Now, create the wrapper script for func_source use: ++ func_ltwrapper_scriptname $cwrapper ++ $RM $func_ltwrapper_scriptname_result ++ trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 ++ $opt_dry_run || { ++ # note: this script will not be executed, so do not chmod. ++ if test "x$build" = "x$host"; then ++ $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result ++ else ++ func_emit_wrapper no > $func_ltwrapper_scriptname_result ++ fi ++ } ++ ;; ++ * ) ++ $RM $output ++ trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 ++ ++ func_emit_wrapper no > $output ++ chmod +x $output ++ ;; ++ esac ++ } ++ exit $EXIT_SUCCESS ++ ;; ++ esac ++ ++ # See if we need to build an old-fashioned archive. ++ for oldlib in $oldlibs; do ++ ++ case $build_libtool_libs in ++ convenience) ++ oldobjs="$libobjs_save $symfileobj" ++ addlibs=$convenience ++ build_libtool_libs=no ++ ;; ++ module) ++ oldobjs=$libobjs_save ++ addlibs=$old_convenience ++ build_libtool_libs=no ++ ;; ++ *) ++ oldobjs="$old_deplibs $non_pic_objects" ++ $preload && test -f "$symfileobj" \ ++ && func_append oldobjs " $symfileobj" ++ addlibs=$old_convenience ++ ;; ++ esac ++ ++ if test -n "$addlibs"; then ++ gentop=$output_objdir/${outputname}x ++ func_append generated " $gentop" ++ ++ func_extract_archives $gentop $addlibs ++ func_append oldobjs " $func_extract_archives_result" ++ fi ++ ++ # Do each command in the archive commands. ++ if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then ++ cmds=$old_archive_from_new_cmds ++ else ++ ++ # Add any objects from preloaded convenience libraries ++ if test -n "$dlprefiles"; then ++ gentop=$output_objdir/${outputname}x ++ func_append generated " $gentop" ++ ++ func_extract_archives $gentop $dlprefiles ++ func_append oldobjs " $func_extract_archives_result" ++ fi ++ ++ # POSIX demands no paths to be encoded in archives. We have ++ # to avoid creating archives with duplicate basenames if we ++ # might have to extract them afterwards, e.g., when creating a ++ # static archive out of a convenience library, or when linking ++ # the entirety of a libtool archive into another (currently ++ # not supported by libtool). ++ if (for obj in $oldobjs ++ do ++ func_basename "$obj" ++ $ECHO "$func_basename_result" ++ done | sort | sort -uc >/dev/null 2>&1); then ++ : ++ else ++ echo "copying selected object files to avoid basename conflicts..." ++ gentop=$output_objdir/${outputname}x ++ func_append generated " $gentop" ++ func_mkdir_p "$gentop" ++ save_oldobjs=$oldobjs ++ oldobjs= ++ counter=1 ++ for obj in $save_oldobjs ++ do ++ func_basename "$obj" ++ objbase=$func_basename_result ++ case " $oldobjs " in ++ " ") oldobjs=$obj ;; ++ *[\ /]"$objbase "*) ++ while :; do ++ # Make sure we don't pick an alternate name that also ++ # overlaps. ++ newobj=lt$counter-$objbase ++ func_arith $counter + 1 ++ counter=$func_arith_result ++ case " $oldobjs " in ++ *[\ /]"$newobj "*) ;; ++ *) if test ! -f "$gentop/$newobj"; then break; fi ;; ++ esac ++ done ++ func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" ++ func_append oldobjs " $gentop/$newobj" ++ ;; ++ *) func_append oldobjs " $obj" ;; ++ esac ++ done ++ fi ++ func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 ++ tool_oldlib=$func_to_tool_file_result ++ eval cmds=\"$old_archive_cmds\" ++ ++ func_len " $cmds" ++ len=$func_len_result ++ if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then ++ cmds=$old_archive_cmds ++ elif test -n "$archiver_list_spec"; then ++ func_verbose "using command file archive linking..." ++ for obj in $oldobjs ++ do ++ func_to_tool_file "$obj" ++ $ECHO "$func_to_tool_file_result" ++ done > $output_objdir/$libname.libcmd ++ func_to_tool_file "$output_objdir/$libname.libcmd" ++ oldobjs=" $archiver_list_spec$func_to_tool_file_result" ++ cmds=$old_archive_cmds ++ else ++ # the command line is too long to link in one step, link in parts ++ func_verbose "using piecewise archive linking..." ++ save_RANLIB=$RANLIB ++ RANLIB=: ++ objlist= ++ concat_cmds= ++ save_oldobjs=$oldobjs ++ oldobjs= ++ # Is there a better way of finding the last object in the list? ++ for obj in $save_oldobjs ++ do ++ last_oldobj=$obj ++ done ++ eval test_cmds=\"$old_archive_cmds\" ++ func_len " $test_cmds" ++ len0=$func_len_result ++ len=$len0 ++ for obj in $save_oldobjs ++ do ++ func_len " $obj" ++ func_arith $len + $func_len_result ++ len=$func_arith_result ++ func_append objlist " $obj" ++ if test "$len" -lt "$max_cmd_len"; then ++ : ++ else ++ # the above command should be used before it gets too long ++ oldobjs=$objlist ++ if test "$obj" = "$last_oldobj"; then ++ RANLIB=$save_RANLIB ++ fi ++ test -z "$concat_cmds" || concat_cmds=$concat_cmds~ ++ eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" ++ objlist= ++ len=$len0 ++ fi ++ done ++ RANLIB=$save_RANLIB ++ oldobjs=$objlist ++ if test -z "$oldobjs"; then ++ eval cmds=\"\$concat_cmds\" ++ else ++ eval cmds=\"\$concat_cmds~\$old_archive_cmds\" ++ fi ++ fi ++ fi ++ func_execute_cmds "$cmds" 'exit $?' ++ done ++ ++ test -n "$generated" && \ ++ func_show_eval "${RM}r$generated" ++ ++ # Now create the libtool archive. ++ case $output in ++ *.la) ++ old_library= ++ test yes = "$build_old_libs" && old_library=$libname.$libext ++ func_verbose "creating $output" ++ ++ # Preserve any variables that may affect compiler behavior ++ for var in $variables_saved_for_relink; do ++ if eval test -z \"\${$var+set}\"; then ++ relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" ++ elif eval var_value=\$$var; test -z "$var_value"; then ++ relink_command="$var=; export $var; $relink_command" ++ else ++ func_quote_for_eval "$var_value" ++ relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" ++ fi ++ done ++ # Quote the link command for shipping. ++ relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" ++ relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` ++ if test yes = "$hardcode_automatic"; then ++ relink_command= ++ fi ++ ++ # Only create the output if not a dry run. ++ $opt_dry_run || { ++ for installed in no yes; do ++ if test yes = "$installed"; then ++ if test -z "$install_libdir"; then ++ break ++ fi ++ output=$output_objdir/${outputname}i ++ # Replace all uninstalled libtool libraries with the installed ones ++ newdependency_libs= ++ for deplib in $dependency_libs; do ++ case $deplib in ++ *.la) ++ func_basename "$deplib" ++ name=$func_basename_result ++ func_resolve_sysroot "$deplib" ++ eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` ++ test -z "$libdir" && \ ++ func_fatal_error "'$deplib' is not a valid libtool archive" ++ func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ++ ;; ++ -L*) ++ func_stripname -L '' "$deplib" ++ func_replace_sysroot "$func_stripname_result" ++ func_append newdependency_libs " -L$func_replace_sysroot_result" ++ ;; ++ -R*) ++ func_stripname -R '' "$deplib" ++ func_replace_sysroot "$func_stripname_result" ++ func_append newdependency_libs " -R$func_replace_sysroot_result" ++ ;; ++ *) func_append newdependency_libs " $deplib" ;; ++ esac ++ done ++ dependency_libs=$newdependency_libs ++ newdlfiles= ++ ++ for lib in $dlfiles; do ++ case $lib in ++ *.la) ++ func_basename "$lib" ++ name=$func_basename_result ++ eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` ++ test -z "$libdir" && \ ++ func_fatal_error "'$lib' is not a valid libtool archive" ++ func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ++ ;; ++ *) func_append newdlfiles " $lib" ;; ++ esac ++ done ++ dlfiles=$newdlfiles ++ newdlprefiles= ++ for lib in $dlprefiles; do ++ case $lib in ++ *.la) ++ # Only pass preopened files to the pseudo-archive (for ++ # eventual linking with the app. that links it) if we ++ # didn't already link the preopened objects directly into ++ # the library: ++ func_basename "$lib" ++ name=$func_basename_result ++ eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` ++ test -z "$libdir" && \ ++ func_fatal_error "'$lib' is not a valid libtool archive" ++ func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ++ ;; ++ esac ++ done ++ dlprefiles=$newdlprefiles ++ else ++ newdlfiles= ++ for lib in $dlfiles; do ++ case $lib in ++ [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; ++ *) abs=`pwd`"/$lib" ;; ++ esac ++ func_append newdlfiles " $abs" ++ done ++ dlfiles=$newdlfiles ++ newdlprefiles= ++ for lib in $dlprefiles; do ++ case $lib in ++ [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; ++ *) abs=`pwd`"/$lib" ;; ++ esac ++ func_append newdlprefiles " $abs" ++ done ++ dlprefiles=$newdlprefiles ++ fi ++ $RM $output ++ # place dlname in correct position for cygwin ++ # In fact, it would be nice if we could use this code for all target ++ # systems that can't hard-code library paths into their executables ++ # and that have no shared library path variable independent of PATH, ++ # but it turns out we can't easily determine that from inspecting ++ # libtool variables, so we have to hard-code the OSs to which it ++ # applies here; at the moment, that means platforms that use the PE ++ # object format with DLL files. See the long comment at the top of ++ # tests/bindir.at for full details. ++ tdlname=$dlname ++ case $host,$output,$installed,$module,$dlname in ++ *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) ++ # If a -bindir argument was supplied, place the dll there. ++ if test -n "$bindir"; then ++ func_relative_path "$install_libdir" "$bindir" ++ tdlname=$func_relative_path_result/$dlname ++ else ++ # Otherwise fall back on heuristic. ++ tdlname=../bin/$dlname ++ fi ++ ;; ++ esac ++ $ECHO > $output "\ ++# $outputname - a libtool library file ++# Generated by $PROGRAM (GNU $PACKAGE) $VERSION ++# ++# Please DO NOT delete this file! ++# It is necessary for linking the library. ++ ++# The name that we can dlopen(3). ++dlname='$tdlname' ++ ++# Names of this library. ++library_names='$library_names' ++ ++# The name of the static archive. ++old_library='$old_library' ++ ++# Linker flags that cannot go in dependency_libs. ++inherited_linker_flags='$new_inherited_linker_flags' ++ ++# Libraries that this one depends upon. ++dependency_libs='$dependency_libs' ++ ++# Names of additional weak libraries provided by this library ++weak_library_names='$weak_libs' ++ ++# Version information for $libname. ++current=$current ++age=$age ++revision=$revision ++ ++# Is this an already installed library? ++installed=$installed ++ ++# Should we warn about portability when linking against -modules? ++shouldnotlink=$module ++ ++# Files to dlopen/dlpreopen ++dlopen='$dlfiles' ++dlpreopen='$dlprefiles' ++ ++# Directory that this library needs to be installed in: ++libdir='$install_libdir'" ++ if test no,yes = "$installed,$need_relink"; then ++ $ECHO >> $output "\ ++relink_command=\"$relink_command\"" ++ fi ++ done ++ } ++ ++ # Do a symbolic link so that the libtool archive can be found in ++ # LD_LIBRARY_PATH before the program is installed. ++ func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ++ ;; ++ esac ++ exit $EXIT_SUCCESS ++} ++ ++if test link = "$opt_mode" || test relink = "$opt_mode"; then ++ func_mode_link ${1+"$@"} ++fi ++ ++ ++# func_mode_uninstall arg... ++func_mode_uninstall () ++{ ++ $debug_cmd ++ ++ RM=$nonopt ++ files= ++ rmforce=false ++ exit_status=0 ++ ++ # This variable tells wrapper scripts just to set variables rather ++ # than running their programs. ++ libtool_install_magic=$magic ++ ++ for arg ++ do ++ case $arg in ++ -f) func_append RM " $arg"; rmforce=: ;; ++ -*) func_append RM " $arg" ;; ++ *) func_append files " $arg" ;; ++ esac ++ done ++ ++ test -z "$RM" && \ ++ func_fatal_help "you must specify an RM program" ++ ++ rmdirs= ++ ++ for file in $files; do ++ func_dirname "$file" "" "." ++ dir=$func_dirname_result ++ if test . = "$dir"; then ++ odir=$objdir ++ else ++ odir=$dir/$objdir ++ fi ++ func_basename "$file" ++ name=$func_basename_result ++ test uninstall = "$opt_mode" && odir=$dir ++ ++ # Remember odir for removal later, being careful to avoid duplicates ++ if test clean = "$opt_mode"; then ++ case " $rmdirs " in ++ *" $odir "*) ;; ++ *) func_append rmdirs " $odir" ;; ++ esac ++ fi ++ ++ # Don't error if the file doesn't exist and rm -f was used. ++ if { test -L "$file"; } >/dev/null 2>&1 || ++ { test -h "$file"; } >/dev/null 2>&1 || ++ test -f "$file"; then ++ : ++ elif test -d "$file"; then ++ exit_status=1 ++ continue ++ elif $rmforce; then ++ continue ++ fi ++ ++ rmfiles=$file ++ ++ case $name in ++ *.la) ++ # Possibly a libtool archive, so verify it. ++ if func_lalib_p "$file"; then ++ func_source $dir/$name ++ ++ # Delete the libtool libraries and symlinks. ++ for n in $library_names; do ++ func_append rmfiles " $odir/$n" ++ done ++ test -n "$old_library" && func_append rmfiles " $odir/$old_library" ++ ++ case $opt_mode in ++ clean) ++ case " $library_names " in ++ *" $dlname "*) ;; ++ *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; ++ esac ++ test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ++ ;; ++ uninstall) ++ if test -n "$library_names"; then ++ # Do each command in the postuninstall commands. ++ func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' ++ fi ++ ++ if test -n "$old_library"; then ++ # Do each command in the old_postuninstall commands. ++ func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' ++ fi ++ # FIXME: should reinstall the best remaining shared library. ++ ;; ++ esac ++ fi ++ ;; ++ ++ *.lo) ++ # Possibly a libtool object, so verify it. ++ if func_lalib_p "$file"; then ++ ++ # Read the .lo file ++ func_source $dir/$name ++ ++ # Add PIC object to the list of files to remove. ++ if test -n "$pic_object" && test none != "$pic_object"; then ++ func_append rmfiles " $dir/$pic_object" ++ fi ++ ++ # Add non-PIC object to the list of files to remove. ++ if test -n "$non_pic_object" && test none != "$non_pic_object"; then ++ func_append rmfiles " $dir/$non_pic_object" ++ fi ++ fi ++ ;; ++ ++ *) ++ if test clean = "$opt_mode"; then ++ noexename=$name ++ case $file in ++ *.exe) ++ func_stripname '' '.exe' "$file" ++ file=$func_stripname_result ++ func_stripname '' '.exe' "$name" ++ noexename=$func_stripname_result ++ # $file with .exe has already been added to rmfiles, ++ # add $file without .exe ++ func_append rmfiles " $file" ++ ;; ++ esac ++ # Do a test to see if this is a libtool program. ++ if func_ltwrapper_p "$file"; then ++ if func_ltwrapper_executable_p "$file"; then ++ func_ltwrapper_scriptname "$file" ++ relink_command= ++ func_source $func_ltwrapper_scriptname_result ++ func_append rmfiles " $func_ltwrapper_scriptname_result" ++ else ++ relink_command= ++ func_source $dir/$noexename ++ fi ++ ++ # note $name still contains .exe if it was in $file originally ++ # as does the version of $file that was added into $rmfiles ++ func_append rmfiles " $odir/$name $odir/${name}S.$objext" ++ if test yes = "$fast_install" && test -n "$relink_command"; then ++ func_append rmfiles " $odir/lt-$name" ++ fi ++ if test "X$noexename" != "X$name"; then ++ func_append rmfiles " $odir/lt-$noexename.c" ++ fi ++ fi ++ fi ++ ;; ++ esac ++ func_show_eval "$RM $rmfiles" 'exit_status=1' ++ done ++ ++ # Try to remove the $objdir's in the directories where we deleted files ++ for dir in $rmdirs; do ++ if test -d "$dir"; then ++ func_show_eval "rmdir $dir >/dev/null 2>&1" ++ fi ++ done ++ ++ exit $exit_status ++} ++ ++if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then ++ func_mode_uninstall ${1+"$@"} ++fi ++ ++test -z "$opt_mode" && { ++ help=$generic_help ++ func_fatal_help "you must specify a MODE" ++} ++ ++test -z "$exec_cmd" && \ ++ func_fatal_help "invalid operation mode '$opt_mode'" ++ ++if test -n "$exec_cmd"; then ++ eval exec "$exec_cmd" ++ exit $EXIT_FAILURE ++fi ++ ++exit $exit_status ++ ++ ++# The TAGs below are defined such that we never get into a situation ++# where we disable both kinds of libraries. Given conflicting ++# choices, we go for a static library, that is the most portable, ++# since we can't tell whether shared libraries were disabled because ++# the user asked for that or because the platform doesn't support ++# them. This is particularly important on AIX, because we don't ++# support having both static and shared libraries enabled at the same ++# time on that platform, so we default to a shared-only configuration. ++# If a disable-shared tag is given, we'll fallback to a static-only ++# configuration. But we'll never go from static-only to shared-only. ++ ++# ### BEGIN LIBTOOL TAG CONFIG: disable-shared ++build_libtool_libs=no ++build_old_libs=yes ++# ### END LIBTOOL TAG CONFIG: disable-shared ++ ++# ### BEGIN LIBTOOL TAG CONFIG: disable-static ++build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` ++# ### END LIBTOOL TAG CONFIG: disable-static ++ ++# Local Variables: ++# mode:shell-script ++# sh-indentation:2 ++# End: +diff --git a/m4/Makefile.in b/m4/Makefile.in +new file mode 100644 +index 0000000..93a4ddf +--- /dev/null ++++ b/m4/Makefile.in +@@ -0,0 +1,518 @@ ++# Makefile.in generated by automake 1.15 from Makefile.am. ++# @configure_input@ ++ ++# Copyright (C) 1994-2014 Free Software Foundation, Inc. ++ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++@SET_MAKE@ ++VPATH = @srcdir@ ++am__is_gnu_make = { \ ++ if test -z '$(MAKELEVEL)'; then \ ++ false; \ ++ elif test -n '$(MAKE_HOST)'; then \ ++ true; \ ++ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ ++ true; \ ++ else \ ++ false; \ ++ fi; \ ++} ++am__make_running_with_option = \ ++ case $${target_option-} in \ ++ ?) ;; \ ++ *) echo "am__make_running_with_option: internal error: invalid" \ ++ "target option '$${target_option-}' specified" >&2; \ ++ exit 1;; \ ++ esac; \ ++ has_opt=no; \ ++ sane_makeflags=$$MAKEFLAGS; \ ++ if $(am__is_gnu_make); then \ ++ sane_makeflags=$$MFLAGS; \ ++ else \ ++ case $$MAKEFLAGS in \ ++ *\\[\ \ ]*) \ ++ bs=\\; \ ++ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ ++ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ ++ esac; \ ++ fi; \ ++ skip_next=no; \ ++ strip_trailopt () \ ++ { \ ++ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ ++ }; \ ++ for flg in $$sane_makeflags; do \ ++ test $$skip_next = yes && { skip_next=no; continue; }; \ ++ case $$flg in \ ++ *=*|--*) continue;; \ ++ -*I) strip_trailopt 'I'; skip_next=yes;; \ ++ -*I?*) strip_trailopt 'I';; \ ++ -*O) strip_trailopt 'O'; skip_next=yes;; \ ++ -*O?*) strip_trailopt 'O';; \ ++ -*l) strip_trailopt 'l'; skip_next=yes;; \ ++ -*l?*) strip_trailopt 'l';; \ ++ -[dEDm]) skip_next=yes;; \ ++ -[JT]) skip_next=yes;; \ ++ esac; \ ++ case $$flg in \ ++ *$$target_option*) has_opt=yes; break;; \ ++ esac; \ ++ done; \ ++ test $$has_opt = yes ++am__make_dryrun = (target_option=n; $(am__make_running_with_option)) ++am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkglibexecdir = $(libexecdir)/@PACKAGE@ ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = @build@ ++host_triplet = @host@ ++subdir = m4 ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ ++ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ ++ $(top_srcdir)/m4/glibc2.m4 $(top_srcdir)/m4/glibc21.m4 \ ++ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \ ++ $(top_srcdir)/m4/intl.m4 $(top_srcdir)/m4/intlmacosx.m4 \ ++ $(top_srcdir)/m4/intmax.m4 $(top_srcdir)/m4/inttypes-pri.m4 \ ++ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ ++ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ ++ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ ++ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ ++ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ++ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ ++ $(top_srcdir)/m4/printf-posix.m4 $(top_srcdir)/m4/progtest.m4 \ ++ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/stdint_h.m4 \ ++ $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/m4/uintmax_t.m4 \ ++ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ ++ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ++ $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) ++mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = ++AM_V_P = $(am__v_P_@AM_V@) ++am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) ++am__v_P_0 = false ++am__v_P_1 = : ++AM_V_GEN = $(am__v_GEN_@AM_V@) ++am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) ++am__v_GEN_0 = @echo " GEN " $@; ++am__v_GEN_1 = ++AM_V_at = $(am__v_at_@AM_V@) ++am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) ++am__v_at_0 = @ ++am__v_at_1 = ++SOURCES = ++DIST_SOURCES = ++am__can_run_installinfo = \ ++ case $$AM_UPDATE_INFO_DIR in \ ++ n|no|NO) false;; \ ++ *) (install-info --version) >/dev/null 2>&1;; \ ++ esac ++am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) ++am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/mkinstalldirs \ ++ ChangeLog README ++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ++ACLOCAL = @ACLOCAL@ ++ALLOCA = @ALLOCA@ ++AMTAR = @AMTAR@ ++AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ ++AR = @AR@ ++AS = @AS@ ++AUTOCONF = @AUTOCONF@ ++AUTOHEADER = @AUTOHEADER@ ++AUTOMAKE = @AUTOMAKE@ ++AWK = @AWK@ ++BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ ++CATOBJEXT = @CATOBJEXT@ ++CC = @CC@ ++CCDEPMODE = @CCDEPMODE@ ++CFLAGS = @CFLAGS@ ++CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ ++CPP = @CPP@ ++CPPFLAGS = @CPPFLAGS@ ++CURSESLIB = @CURSESLIB@ ++CXX = @CXX@ ++CXXCPP = @CXXCPP@ ++CXXDEPMODE = @CXXDEPMODE@ ++CXXFLAGS = @CXXFLAGS@ ++CYGPATH_W = @CYGPATH_W@ ++DATADIRNAME = @DATADIRNAME@ ++DEFS = @DEFS@ ++DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ ++DSYMUTIL = @DSYMUTIL@ ++DUMPBIN = @DUMPBIN@ ++ECHO_C = @ECHO_C@ ++ECHO_N = @ECHO_N@ ++ECHO_T = @ECHO_T@ ++EGREP = @EGREP@ ++EXEEXT = @EXEEXT@ ++FGREP = @FGREP@ ++GENCAT = @GENCAT@ ++GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ ++GLIBC2 = @GLIBC2@ ++GLIBC21 = @GLIBC21@ ++GMSGFMT = @GMSGFMT@ ++GMSGFMT_015 = @GMSGFMT_015@ ++GREP = @GREP@ ++HAVE_ASPRINTF = @HAVE_ASPRINTF@ ++HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ ++HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ ++HAVE_SNPRINTF = @HAVE_SNPRINTF@ ++HAVE_VISIBILITY = @HAVE_VISIBILITY@ ++HAVE_WPRINTF = @HAVE_WPRINTF@ ++HUNSPELL_VERSION_MAJOR = @HUNSPELL_VERSION_MAJOR@ ++HUNSPELL_VERSION_MINOR = @HUNSPELL_VERSION_MINOR@ ++INSTALL = @INSTALL@ ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ++INSTOBJEXT = @INSTOBJEXT@ ++INTLBISON = @INTLBISON@ ++INTLLIBS = @INTLLIBS@ ++INTLOBJS = @INTLOBJS@ ++INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ ++INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ ++INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ++LD = @LD@ ++LDFLAGS = @LDFLAGS@ ++LIBICONV = @LIBICONV@ ++LIBINTL = @LIBINTL@ ++LIBMULTITHREAD = @LIBMULTITHREAD@ ++LIBOBJS = @LIBOBJS@ ++LIBPTH = @LIBPTH@ ++LIBPTH_PREFIX = @LIBPTH_PREFIX@ ++LIBS = @LIBS@ ++LIBTHREAD = @LIBTHREAD@ ++LIBTOOL = @LIBTOOL@ ++LIPO = @LIPO@ ++LN_S = @LN_S@ ++LTLIBC = @LTLIBC@ ++LTLIBICONV = @LTLIBICONV@ ++LTLIBINTL = @LTLIBINTL@ ++LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ ++LTLIBOBJS = @LTLIBOBJS@ ++LTLIBPTH = @LTLIBPTH@ ++LTLIBTHREAD = @LTLIBTHREAD@ ++LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ ++MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ ++MKDIR_P = @MKDIR_P@ ++MSGFMT = @MSGFMT@ ++MSGFMT_015 = @MSGFMT_015@ ++MSGMERGE = @MSGMERGE@ ++NM = @NM@ ++NMEDIT = @NMEDIT@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++OTOOL = @OTOOL@ ++OTOOL64 = @OTOOL64@ ++PACKAGE = @PACKAGE@ ++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ ++PACKAGE_NAME = @PACKAGE_NAME@ ++PACKAGE_STRING = @PACKAGE_STRING@ ++PACKAGE_TARNAME = @PACKAGE_TARNAME@ ++PACKAGE_URL = @PACKAGE_URL@ ++PACKAGE_VERSION = @PACKAGE_VERSION@ ++PATH_SEPARATOR = @PATH_SEPARATOR@ ++POSUB = @POSUB@ ++PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ ++RANLIB = @RANLIB@ ++READLINELIB = @READLINELIB@ ++SED = @SED@ ++SET_MAKE = @SET_MAKE@ ++SHELL = @SHELL@ ++STRIP = @STRIP@ ++USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ ++USE_NLS = @USE_NLS@ ++VERSION = @VERSION@ ++WINDRES = @WINDRES@ ++WOE32 = @WOE32@ ++WOE32DLL = @WOE32DLL@ ++XFAILED = @XFAILED@ ++XGETTEXT = @XGETTEXT@ ++XGETTEXT_015 = @XGETTEXT_015@ ++XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ++abs_builddir = @abs_builddir@ ++abs_srcdir = @abs_srcdir@ ++abs_top_builddir = @abs_top_builddir@ ++abs_top_srcdir = @abs_top_srcdir@ ++ac_ct_AR = @ac_ct_AR@ ++ac_ct_CC = @ac_ct_CC@ ++ac_ct_CXX = @ac_ct_CXX@ ++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ++am__include = @am__include@ ++am__leading_dot = @am__leading_dot@ ++am__quote = @am__quote@ ++am__tar = @am__tar@ ++am__untar = @am__untar@ ++bindir = @bindir@ ++build = @build@ ++build_alias = @build_alias@ ++build_cpu = @build_cpu@ ++build_os = @build_os@ ++build_vendor = @build_vendor@ ++builddir = @builddir@ ++datadir = @datadir@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++dvidir = @dvidir@ ++exec_prefix = @exec_prefix@ ++host = @host@ ++host_alias = @host_alias@ ++host_cpu = @host_cpu@ ++host_os = @host_os@ ++host_vendor = @host_vendor@ ++htmldir = @htmldir@ ++includedir = @includedir@ ++infodir = @infodir@ ++install_sh = @install_sh@ ++libdir = @libdir@ ++libexecdir = @libexecdir@ ++localedir = @localedir@ ++localstatedir = @localstatedir@ ++mandir = @mandir@ ++mkdir_p = @mkdir_p@ ++oldincludedir = @oldincludedir@ ++pdfdir = @pdfdir@ ++prefix = @prefix@ ++program_transform_name = @program_transform_name@ ++psdir = @psdir@ ++runstatedir = @runstatedir@ ++sbindir = @sbindir@ ++sharedstatedir = @sharedstatedir@ ++srcdir = @srcdir@ ++sysconfdir = @sysconfdir@ ++target_alias = @target_alias@ ++top_build_prefix = @top_build_prefix@ ++top_builddir = @top_builddir@ ++top_srcdir = @top_srcdir@ ++EXTRA_DIST = fcntl-o.m4 threadlib.m4 README codeset.m4 gettext.m4 glibc21.m4 iconv.m4 \ ++isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 \ ++progtest.m4 glibc2.m4 intdiv0.m4 intl.m4 intldir.m4 intlmacosx.m4 \ ++intmax.m4 inttypes-pri.m4 inttypes_h.m4 lock.m4 longlong.m4 \ ++nls.m4 po.m4 printf-posix.m4 size_max.m4 stdint_h.m4 uintmax_t.m4 \ ++visibility.m4 wchar_t.m4 wint_t.m4 xsize.m4 ++ ++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 ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu m4/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnu m4/Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++tags TAGS: ++ ++ctags CTAGS: ++ ++cscope cscopelist: ++ ++ ++distdir: $(DISTFILES) ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ ++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ ++ if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ ++ else \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ ++ || exit 1; \ ++ fi; \ ++ done ++check-am: all-am ++check: check-am ++all-am: Makefile ++installdirs: ++install: install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ if test -z '$(STRIP)'; then \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ install; \ ++ else \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ ++ fi ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-am ++ ++clean-am: clean-generic clean-libtool mostlyclean-am ++ ++distclean: distclean-am ++ -rm -f Makefile ++distclean-am: clean-am distclean-generic ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++html: html-am ++ ++html-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: ++ ++install-dvi: install-dvi-am ++ ++install-dvi-am: ++ ++install-exec-am: ++ ++install-html: install-html-am ++ ++install-html-am: ++ ++install-info: install-info-am ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-am ++ ++install-pdf-am: ++ ++install-ps: install-ps-am ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-am ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-generic mostlyclean-libtool ++ ++pdf: pdf-am ++ ++pdf-am: ++ ++ps: ps-am ++ ++ps-am: ++ ++uninstall-am: ++ ++.MAKE: install-am install-strip ++ ++.PHONY: all all-am check check-am clean clean-generic clean-libtool \ ++ cscopelist-am ctags-am distclean distclean-generic \ ++ distclean-libtool distdir dvi dvi-am html html-am info info-am \ ++ install install-am install-data install-data-am install-dvi \ ++ install-dvi-am install-exec install-exec-am install-html \ ++ install-html-am install-info install-info-am install-man \ ++ install-pdf install-pdf-am install-ps install-ps-am \ ++ install-strip installcheck installcheck-am installdirs \ ++ maintainer-clean maintainer-clean-generic mostlyclean \ ++ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ ++ tags-am uninstall uninstall-am ++ ++.PRECIOUS: Makefile ++ ++ ++# 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/m4/isc-posix.m4 b/m4/isc-posix.m4 +new file mode 100644 +index 0000000..1319dd1 +--- /dev/null ++++ b/m4/isc-posix.m4 +@@ -0,0 +1,26 @@ ++# isc-posix.m4 serial 2 (gettext-0.11.2) ++dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. ++dnl This file is free software, distributed under the terms of the GNU ++dnl General Public License. As a special exception to the GNU General ++dnl Public License, this file may be distributed as part of a program ++dnl that contains a configuration script generated by Autoconf, under ++dnl the same distribution terms as the rest of that program. ++ ++# This file is not needed with autoconf-2.53 and newer. Remove it in 2005. ++ ++# This test replaces the one in autoconf. ++# Currently this macro should have the same name as the autoconf macro ++# because gettext's gettext.m4 (distributed in the automake package) ++# still uses it. Otherwise, the use in gettext.m4 makes autoheader ++# give these diagnostics: ++# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX ++# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX ++ ++undefine([AC_ISC_POSIX]) ++ ++AC_DEFUN([AC_ISC_POSIX], ++ [ ++ dnl This test replaces the obsolescent AC_ISC_POSIX kludge. ++ AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) ++ ] ++) +diff --git a/m4/libtool.m4 b/m4/libtool.m4 +new file mode 100644 +index 0000000..a644432 +--- /dev/null ++++ b/m4/libtool.m4 +@@ -0,0 +1,8372 @@ ++# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- ++# ++# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. ++# Written by Gordon Matzigkeit, 1996 ++# ++# This file is free software; the Free Software Foundation gives ++# unlimited permission to copy and/or distribute it, with or without ++# modifications, as long as this notice is preserved. ++ ++m4_define([_LT_COPYING], [dnl ++# Copyright (C) 2014 Free Software Foundation, Inc. ++# This is free software; see the source for copying conditions. There is NO ++# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++ ++# GNU Libtool is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of of the License, or ++# (at your option) any later version. ++# ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program or library that is built ++# using GNU Libtool, you may include this file under the same ++# distribution terms that you use for the rest of that program. ++# ++# GNU Libtool is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program. If not, see . ++]) ++ ++# serial 58 LT_INIT ++ ++ ++# LT_PREREQ(VERSION) ++# ------------------ ++# Complain and exit if this libtool version is less that VERSION. ++m4_defun([LT_PREREQ], ++[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, ++ [m4_default([$3], ++ [m4_fatal([Libtool version $1 or higher is required], ++ 63)])], ++ [$2])]) ++ ++ ++# _LT_CHECK_BUILDDIR ++# ------------------ ++# Complain if the absolute build directory name contains unusual characters ++m4_defun([_LT_CHECK_BUILDDIR], ++[case `pwd` in ++ *\ * | *\ *) ++ AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; ++esac ++]) ++ ++ ++# LT_INIT([OPTIONS]) ++# ------------------ ++AC_DEFUN([LT_INIT], ++[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK ++AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl ++AC_BEFORE([$0], [LT_LANG])dnl ++AC_BEFORE([$0], [LT_OUTPUT])dnl ++AC_BEFORE([$0], [LTDL_INIT])dnl ++m4_require([_LT_CHECK_BUILDDIR])dnl ++ ++dnl Autoconf doesn't catch unexpanded LT_ macros by default: ++m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl ++m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl ++dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 ++dnl unless we require an AC_DEFUNed macro: ++AC_REQUIRE([LTOPTIONS_VERSION])dnl ++AC_REQUIRE([LTSUGAR_VERSION])dnl ++AC_REQUIRE([LTVERSION_VERSION])dnl ++AC_REQUIRE([LTOBSOLETE_VERSION])dnl ++m4_require([_LT_PROG_LTMAIN])dnl ++ ++_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) ++ ++dnl Parse OPTIONS ++_LT_SET_OPTIONS([$0], [$1]) ++ ++# This can be used to rebuild libtool when needed ++LIBTOOL_DEPS=$ltmain ++ ++# Always use our own libtool. ++LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++AC_SUBST(LIBTOOL)dnl ++ ++_LT_SETUP ++ ++# Only expand once: ++m4_define([LT_INIT]) ++])# LT_INIT ++ ++# Old names: ++AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) ++AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_PROG_LIBTOOL], []) ++dnl AC_DEFUN([AM_PROG_LIBTOOL], []) ++ ++ ++# _LT_PREPARE_CC_BASENAME ++# ----------------------- ++m4_defun([_LT_PREPARE_CC_BASENAME], [ ++# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. ++func_cc_basename () ++{ ++ for cc_temp in @S|@*""; do ++ case $cc_temp in ++ compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; ++ distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; ++ \-*) ;; ++ *) break;; ++ esac ++ done ++ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ++} ++])# _LT_PREPARE_CC_BASENAME ++ ++ ++# _LT_CC_BASENAME(CC) ++# ------------------- ++# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, ++# but that macro is also expanded into generated libtool script, which ++# arranges for $SED and $ECHO to be set by different means. ++m4_defun([_LT_CC_BASENAME], ++[m4_require([_LT_PREPARE_CC_BASENAME])dnl ++AC_REQUIRE([_LT_DECL_SED])dnl ++AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl ++func_cc_basename $1 ++cc_basename=$func_cc_basename_result ++]) ++ ++ ++# _LT_FILEUTILS_DEFAULTS ++# ---------------------- ++# It is okay to use these file commands and assume they have been set ++# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. ++m4_defun([_LT_FILEUTILS_DEFAULTS], ++[: ${CP="cp -f"} ++: ${MV="mv -f"} ++: ${RM="rm -f"} ++])# _LT_FILEUTILS_DEFAULTS ++ ++ ++# _LT_SETUP ++# --------- ++m4_defun([_LT_SETUP], ++[AC_REQUIRE([AC_CANONICAL_HOST])dnl ++AC_REQUIRE([AC_CANONICAL_BUILD])dnl ++AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl ++AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl ++ ++_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl ++dnl ++_LT_DECL([], [host_alias], [0], [The host system])dnl ++_LT_DECL([], [host], [0])dnl ++_LT_DECL([], [host_os], [0])dnl ++dnl ++_LT_DECL([], [build_alias], [0], [The build system])dnl ++_LT_DECL([], [build], [0])dnl ++_LT_DECL([], [build_os], [0])dnl ++dnl ++AC_REQUIRE([AC_PROG_CC])dnl ++AC_REQUIRE([LT_PATH_LD])dnl ++AC_REQUIRE([LT_PATH_NM])dnl ++dnl ++AC_REQUIRE([AC_PROG_LN_S])dnl ++test -z "$LN_S" && LN_S="ln -s" ++_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl ++dnl ++AC_REQUIRE([LT_CMD_MAX_LEN])dnl ++_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl ++_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl ++dnl ++m4_require([_LT_FILEUTILS_DEFAULTS])dnl ++m4_require([_LT_CHECK_SHELL_FEATURES])dnl ++m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl ++m4_require([_LT_CMD_RELOAD])dnl ++m4_require([_LT_CHECK_MAGIC_METHOD])dnl ++m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl ++m4_require([_LT_CMD_OLD_ARCHIVE])dnl ++m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl ++m4_require([_LT_WITH_SYSROOT])dnl ++m4_require([_LT_CMD_TRUNCATE])dnl ++ ++_LT_CONFIG_LIBTOOL_INIT([ ++# See if we are running on zsh, and set the options that allow our ++# commands through without removal of \ escapes INIT. ++if test -n "\${ZSH_VERSION+set}"; then ++ setopt NO_GLOB_SUBST ++fi ++]) ++if test -n "${ZSH_VERSION+set}"; then ++ setopt NO_GLOB_SUBST ++fi ++ ++_LT_CHECK_OBJDIR ++ ++m4_require([_LT_TAG_COMPILER])dnl ++ ++case $host_os in ++aix3*) ++ # AIX sometimes has problems with the GCC collect2 program. For some ++ # reason, if we set the COLLECT_NAMES environment variable, the problems ++ # vanish in a puff of smoke. ++ if test set != "${COLLECT_NAMES+set}"; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++ fi ++ ;; ++esac ++ ++# Global variables: ++ofile=libtool ++can_build_shared=yes ++ ++# All known linkers require a '.a' archive for static linking (except MSVC, ++# which needs '.lib'). ++libext=a ++ ++with_gnu_ld=$lt_cv_prog_gnu_ld ++ ++old_CC=$CC ++old_CFLAGS=$CFLAGS ++ ++# Set sane defaults for various variables ++test -z "$CC" && CC=cc ++test -z "$LTCC" && LTCC=$CC ++test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS ++test -z "$LD" && LD=ld ++test -z "$ac_objext" && ac_objext=o ++ ++_LT_CC_BASENAME([$compiler]) ++ ++# Only perform the check for file, if the check method requires it ++test -z "$MAGIC_CMD" && MAGIC_CMD=file ++case $deplibs_check_method in ++file_magic*) ++ if test "$file_magic_cmd" = '$MAGIC_CMD'; then ++ _LT_PATH_MAGIC ++ fi ++ ;; ++esac ++ ++# Use C for the default configuration in the libtool script ++LT_SUPPORTED_TAG([CC]) ++_LT_LANG_C_CONFIG ++_LT_LANG_DEFAULT_CONFIG ++_LT_CONFIG_COMMANDS ++])# _LT_SETUP ++ ++ ++# _LT_PREPARE_SED_QUOTE_VARS ++# -------------------------- ++# Define a few sed substitution that help us do robust quoting. ++m4_defun([_LT_PREPARE_SED_QUOTE_VARS], ++[# Backslashify metacharacters that are still active within ++# double-quoted strings. ++sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' ++ ++# Same as above, but do not quote variable references. ++double_quote_subst='s/\([["`\\]]\)/\\\1/g' ++ ++# Sed substitution to delay expansion of an escaped shell variable in a ++# double_quote_subst'ed string. ++delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' ++ ++# Sed substitution to delay expansion of an escaped single quote. ++delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' ++ ++# Sed substitution to avoid accidental globbing in evaled expressions ++no_glob_subst='s/\*/\\\*/g' ++]) ++ ++# _LT_PROG_LTMAIN ++# --------------- ++# Note that this code is called both from 'configure', and 'config.status' ++# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, ++# 'config.status' has no value for ac_aux_dir unless we are using Automake, ++# so we pass a copy along to make sure it has a sensible value anyway. ++m4_defun([_LT_PROG_LTMAIN], ++[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl ++_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ++ltmain=$ac_aux_dir/ltmain.sh ++])# _LT_PROG_LTMAIN ++ ++ ++## ------------------------------------- ## ++## Accumulate code for creating libtool. ## ++## ------------------------------------- ## ++ ++# So that we can recreate a full libtool script including additional ++# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS ++# in macros and then make a single call at the end using the 'libtool' ++# label. ++ ++ ++# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) ++# ---------------------------------------- ++# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. ++m4_define([_LT_CONFIG_LIBTOOL_INIT], ++[m4_ifval([$1], ++ [m4_append([_LT_OUTPUT_LIBTOOL_INIT], ++ [$1 ++])])]) ++ ++# Initialize. ++m4_define([_LT_OUTPUT_LIBTOOL_INIT]) ++ ++ ++# _LT_CONFIG_LIBTOOL([COMMANDS]) ++# ------------------------------ ++# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. ++m4_define([_LT_CONFIG_LIBTOOL], ++[m4_ifval([$1], ++ [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], ++ [$1 ++])])]) ++ ++# Initialize. ++m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) ++ ++ ++# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) ++# ----------------------------------------------------- ++m4_defun([_LT_CONFIG_SAVE_COMMANDS], ++[_LT_CONFIG_LIBTOOL([$1]) ++_LT_CONFIG_LIBTOOL_INIT([$2]) ++]) ++ ++ ++# _LT_FORMAT_COMMENT([COMMENT]) ++# ----------------------------- ++# Add leading comment marks to the start of each line, and a trailing ++# full-stop to the whole comment if one is not present already. ++m4_define([_LT_FORMAT_COMMENT], ++[m4_ifval([$1], [ ++m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], ++ [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) ++)]) ++ ++ ++ ++## ------------------------ ## ++## FIXME: Eliminate VARNAME ## ++## ------------------------ ## ++ ++ ++# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) ++# ------------------------------------------------------------------- ++# CONFIGNAME is the name given to the value in the libtool script. ++# VARNAME is the (base) name used in the configure script. ++# VALUE may be 0, 1 or 2 for a computed quote escaped value based on ++# VARNAME. Any other value will be used directly. ++m4_define([_LT_DECL], ++[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], ++ [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], ++ [m4_ifval([$1], [$1], [$2])]) ++ lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) ++ m4_ifval([$4], ++ [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) ++ lt_dict_add_subkey([lt_decl_dict], [$2], ++ [tagged?], [m4_ifval([$5], [yes], [no])])]) ++]) ++ ++ ++# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) ++# -------------------------------------------------------- ++m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) ++ ++ ++# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) ++# ------------------------------------------------ ++m4_define([lt_decl_tag_varnames], ++[_lt_decl_filter([tagged?], [yes], $@)]) ++ ++ ++# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) ++# --------------------------------------------------------- ++m4_define([_lt_decl_filter], ++[m4_case([$#], ++ [0], [m4_fatal([$0: too few arguments: $#])], ++ [1], [m4_fatal([$0: too few arguments: $#: $1])], ++ [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], ++ [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], ++ [lt_dict_filter([lt_decl_dict], $@)])[]dnl ++]) ++ ++ ++# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) ++# -------------------------------------------------- ++m4_define([lt_decl_quote_varnames], ++[_lt_decl_filter([value], [1], $@)]) ++ ++ ++# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) ++# --------------------------------------------------- ++m4_define([lt_decl_dquote_varnames], ++[_lt_decl_filter([value], [2], $@)]) ++ ++ ++# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) ++# --------------------------------------------------- ++m4_define([lt_decl_varnames_tagged], ++[m4_assert([$# <= 2])dnl ++_$0(m4_quote(m4_default([$1], [[, ]])), ++ m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), ++ m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) ++m4_define([_lt_decl_varnames_tagged], ++[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) ++ ++ ++# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) ++# ------------------------------------------------ ++m4_define([lt_decl_all_varnames], ++[_$0(m4_quote(m4_default([$1], [[, ]])), ++ m4_if([$2], [], ++ m4_quote(lt_decl_varnames), ++ m4_quote(m4_shift($@))))[]dnl ++]) ++m4_define([_lt_decl_all_varnames], ++[lt_join($@, lt_decl_varnames_tagged([$1], ++ lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ++]) ++ ++ ++# _LT_CONFIG_STATUS_DECLARE([VARNAME]) ++# ------------------------------------ ++# Quote a variable value, and forward it to 'config.status' so that its ++# declaration there will have the same value as in 'configure'. VARNAME ++# must have a single quote delimited value for this to work. ++m4_define([_LT_CONFIG_STATUS_DECLARE], ++[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) ++ ++ ++# _LT_CONFIG_STATUS_DECLARATIONS ++# ------------------------------ ++# We delimit libtool config variables with single quotes, so when ++# we write them to config.status, we have to be sure to quote all ++# embedded single quotes properly. In configure, this macro expands ++# each variable declared with _LT_DECL (and _LT_TAGDECL) into: ++# ++# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' ++m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], ++[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), ++ [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) ++ ++ ++# _LT_LIBTOOL_TAGS ++# ---------------- ++# Output comment and list of tags supported by the script ++m4_defun([_LT_LIBTOOL_TAGS], ++[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl ++available_tags='_LT_TAGS'dnl ++]) ++ ++ ++# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) ++# ----------------------------------- ++# Extract the dictionary values for VARNAME (optionally with TAG) and ++# expand to a commented shell variable setting: ++# ++# # Some comment about what VAR is for. ++# visible_name=$lt_internal_name ++m4_define([_LT_LIBTOOL_DECLARE], ++[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], ++ [description])))[]dnl ++m4_pushdef([_libtool_name], ++ m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl ++m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), ++ [0], [_libtool_name=[$]$1], ++ [1], [_libtool_name=$lt_[]$1], ++ [2], [_libtool_name=$lt_[]$1], ++ [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl ++m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ++]) ++ ++ ++# _LT_LIBTOOL_CONFIG_VARS ++# ----------------------- ++# Produce commented declarations of non-tagged libtool config variables ++# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' ++# script. Tagged libtool config variables (even for the LIBTOOL CONFIG ++# section) are produced by _LT_LIBTOOL_TAG_VARS. ++m4_defun([_LT_LIBTOOL_CONFIG_VARS], ++[m4_foreach([_lt_var], ++ m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), ++ [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) ++ ++ ++# _LT_LIBTOOL_TAG_VARS(TAG) ++# ------------------------- ++m4_define([_LT_LIBTOOL_TAG_VARS], ++[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), ++ [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) ++ ++ ++# _LT_TAGVAR(VARNAME, [TAGNAME]) ++# ------------------------------ ++m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) ++ ++ ++# _LT_CONFIG_COMMANDS ++# ------------------- ++# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of ++# variables for single and double quote escaping we saved from calls ++# to _LT_DECL, we can put quote escaped variables declarations ++# into 'config.status', and then the shell code to quote escape them in ++# for loops in 'config.status'. Finally, any additional code accumulated ++# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. ++m4_defun([_LT_CONFIG_COMMANDS], ++[AC_PROVIDE_IFELSE([LT_OUTPUT], ++ dnl If the libtool generation code has been placed in $CONFIG_LT, ++ dnl instead of duplicating it all over again into config.status, ++ dnl then we will have config.status run $CONFIG_LT later, so it ++ dnl needs to know what name is stored there: ++ [AC_CONFIG_COMMANDS([libtool], ++ [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], ++ dnl If the libtool generation code is destined for config.status, ++ dnl expand the accumulated commands and init code now: ++ [AC_CONFIG_COMMANDS([libtool], ++ [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ++])#_LT_CONFIG_COMMANDS ++ ++ ++# Initialize. ++m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], ++[ ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++(unset CDPATH) >/dev/null 2>&1 && unset CDPATH ++ ++sed_quote_subst='$sed_quote_subst' ++double_quote_subst='$double_quote_subst' ++delay_variable_subst='$delay_variable_subst' ++_LT_CONFIG_STATUS_DECLARATIONS ++LTCC='$LTCC' ++LTCFLAGS='$LTCFLAGS' ++compiler='$compiler_DEFAULT' ++ ++# A function that is used when there is no print builtin or printf. ++func_fallback_echo () ++{ ++ eval 'cat <<_LTECHO_EOF ++\$[]1 ++_LTECHO_EOF' ++} ++ ++# Quote evaled strings. ++for var in lt_decl_all_varnames([[ \ ++]], lt_decl_quote_varnames); do ++ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in ++ *[[\\\\\\\`\\"\\\$]]*) ++ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ++ ;; ++ *) ++ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ++ ;; ++ esac ++done ++ ++# Double-quote double-evaled strings. ++for var in lt_decl_all_varnames([[ \ ++]], lt_decl_dquote_varnames); do ++ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in ++ *[[\\\\\\\`\\"\\\$]]*) ++ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ++ ;; ++ *) ++ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ++ ;; ++ esac ++done ++ ++_LT_OUTPUT_LIBTOOL_INIT ++]) ++ ++# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) ++# ------------------------------------ ++# Generate a child script FILE with all initialization necessary to ++# reuse the environment learned by the parent script, and make the ++# file executable. If COMMENT is supplied, it is inserted after the ++# '#!' sequence but before initialization text begins. After this ++# macro, additional text can be appended to FILE to form the body of ++# the child script. The macro ends with non-zero status if the ++# file could not be fully written (such as if the disk is full). ++m4_ifdef([AS_INIT_GENERATED], ++[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], ++[m4_defun([_LT_GENERATED_FILE_INIT], ++[m4_require([AS_PREPARE])]dnl ++[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl ++[lt_write_fail=0 ++cat >$1 <<_ASEOF || lt_write_fail=1 ++#! $SHELL ++# Generated by $as_me. ++$2 ++SHELL=\${CONFIG_SHELL-$SHELL} ++export SHELL ++_ASEOF ++cat >>$1 <<\_ASEOF || lt_write_fail=1 ++AS_SHELL_SANITIZE ++_AS_PREPARE ++exec AS_MESSAGE_FD>&1 ++_ASEOF ++test 0 = "$lt_write_fail" && chmod +x $1[]dnl ++m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT ++ ++# LT_OUTPUT ++# --------- ++# This macro allows early generation of the libtool script (before ++# AC_OUTPUT is called), incase it is used in configure for compilation ++# tests. ++AC_DEFUN([LT_OUTPUT], ++[: ${CONFIG_LT=./config.lt} ++AC_MSG_NOTICE([creating $CONFIG_LT]) ++_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], ++[# Run this file to recreate a libtool stub with the current configuration.]) ++ ++cat >>"$CONFIG_LT" <<\_LTEOF ++lt_cl_silent=false ++exec AS_MESSAGE_LOG_FD>>config.log ++{ ++ echo ++ AS_BOX([Running $as_me.]) ++} >&AS_MESSAGE_LOG_FD ++ ++lt_cl_help="\ ++'$as_me' creates a local libtool stub from the current configuration, ++for use in further configure time tests before the real libtool is ++generated. ++ ++Usage: $[0] [[OPTIONS]] ++ ++ -h, --help print this help, then exit ++ -V, --version print version number, then exit ++ -q, --quiet do not print progress messages ++ -d, --debug don't remove temporary files ++ ++Report bugs to ." ++ ++lt_cl_version="\ ++m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl ++m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) ++configured by $[0], generated by m4_PACKAGE_STRING. ++ ++Copyright (C) 2011 Free Software Foundation, Inc. ++This config.lt script is free software; the Free Software Foundation ++gives unlimited permision to copy, distribute and modify it." ++ ++while test 0 != $[#] ++do ++ case $[1] in ++ --version | --v* | -V ) ++ echo "$lt_cl_version"; exit 0 ;; ++ --help | --h* | -h ) ++ echo "$lt_cl_help"; exit 0 ;; ++ --debug | --d* | -d ) ++ debug=: ;; ++ --quiet | --q* | --silent | --s* | -q ) ++ lt_cl_silent=: ;; ++ ++ -*) AC_MSG_ERROR([unrecognized option: $[1] ++Try '$[0] --help' for more information.]) ;; ++ ++ *) AC_MSG_ERROR([unrecognized argument: $[1] ++Try '$[0] --help' for more information.]) ;; ++ esac ++ shift ++done ++ ++if $lt_cl_silent; then ++ exec AS_MESSAGE_FD>/dev/null ++fi ++_LTEOF ++ ++cat >>"$CONFIG_LT" <<_LTEOF ++_LT_OUTPUT_LIBTOOL_COMMANDS_INIT ++_LTEOF ++ ++cat >>"$CONFIG_LT" <<\_LTEOF ++AC_MSG_NOTICE([creating $ofile]) ++_LT_OUTPUT_LIBTOOL_COMMANDS ++AS_EXIT(0) ++_LTEOF ++chmod +x "$CONFIG_LT" ++ ++# configure is writing to config.log, but config.lt does its own redirection, ++# appending to config.log, which fails on DOS, as config.log is still kept ++# open by configure. Here we exec the FD to /dev/null, effectively closing ++# config.log, so it can be properly (re)opened and appended to by config.lt. ++lt_cl_success=: ++test yes = "$silent" && ++ lt_config_lt_args="$lt_config_lt_args --quiet" ++exec AS_MESSAGE_LOG_FD>/dev/null ++$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false ++exec AS_MESSAGE_LOG_FD>>config.log ++$lt_cl_success || AS_EXIT(1) ++])# LT_OUTPUT ++ ++ ++# _LT_CONFIG(TAG) ++# --------------- ++# If TAG is the built-in tag, create an initial libtool script with a ++# default configuration from the untagged config vars. Otherwise add code ++# to config.status for appending the configuration named by TAG from the ++# matching tagged config vars. ++m4_defun([_LT_CONFIG], ++[m4_require([_LT_FILEUTILS_DEFAULTS])dnl ++_LT_CONFIG_SAVE_COMMANDS([ ++ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl ++ m4_if(_LT_TAG, [C], [ ++ # See if we are running on zsh, and set the options that allow our ++ # commands through without removal of \ escapes. ++ if test -n "${ZSH_VERSION+set}"; then ++ setopt NO_GLOB_SUBST ++ fi ++ ++ cfgfile=${ofile}T ++ trap "$RM \"$cfgfile\"; exit 1" 1 2 15 ++ $RM "$cfgfile" ++ ++ cat <<_LT_EOF >> "$cfgfile" ++#! $SHELL ++# Generated automatically by $as_me ($PACKAGE) $VERSION ++# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: ++# NOTE: Changes made to this file will be lost: look at ltmain.sh. ++ ++# Provide generalized library-building support services. ++# Written by Gordon Matzigkeit, 1996 ++ ++_LT_COPYING ++_LT_LIBTOOL_TAGS ++ ++# Configured defaults for sys_lib_dlsearch_path munging. ++: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} ++ ++# ### BEGIN LIBTOOL CONFIG ++_LT_LIBTOOL_CONFIG_VARS ++_LT_LIBTOOL_TAG_VARS ++# ### END LIBTOOL CONFIG ++ ++_LT_EOF ++ ++ cat <<'_LT_EOF' >> "$cfgfile" ++ ++# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE ++ ++_LT_PREPARE_MUNGE_PATH_LIST ++_LT_PREPARE_CC_BASENAME ++ ++# ### END FUNCTIONS SHARED WITH CONFIGURE ++ ++_LT_EOF ++ ++ case $host_os in ++ aix3*) ++ cat <<\_LT_EOF >> "$cfgfile" ++# AIX sometimes has problems with the GCC collect2 program. For some ++# reason, if we set the COLLECT_NAMES environment variable, the problems ++# vanish in a puff of smoke. ++if test set != "${COLLECT_NAMES+set}"; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++fi ++_LT_EOF ++ ;; ++ esac ++ ++ _LT_PROG_LTMAIN ++ ++ # We use sed instead of cat because bash on DJGPP gets confused if ++ # if finds mixed CR/LF and LF-only lines. Since sed operates in ++ # text mode, it properly converts lines to CR/LF. This bash problem ++ # is reportedly fixed, but why not run on old versions too? ++ sed '$q' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) ++ ++ mv -f "$cfgfile" "$ofile" || ++ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") ++ chmod +x "$ofile" ++], ++[cat <<_LT_EOF >> "$ofile" ++ ++dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded ++dnl in a comment (ie after a #). ++# ### BEGIN LIBTOOL TAG CONFIG: $1 ++_LT_LIBTOOL_TAG_VARS(_LT_TAG) ++# ### END LIBTOOL TAG CONFIG: $1 ++_LT_EOF ++])dnl /m4_if ++], ++[m4_if([$1], [], [ ++ PACKAGE='$PACKAGE' ++ VERSION='$VERSION' ++ RM='$RM' ++ ofile='$ofile'], []) ++])dnl /_LT_CONFIG_SAVE_COMMANDS ++])# _LT_CONFIG ++ ++ ++# LT_SUPPORTED_TAG(TAG) ++# --------------------- ++# Trace this macro to discover what tags are supported by the libtool ++# --tag option, using: ++# autoconf --trace 'LT_SUPPORTED_TAG:$1' ++AC_DEFUN([LT_SUPPORTED_TAG], []) ++ ++ ++# C support is built-in for now ++m4_define([_LT_LANG_C_enabled], []) ++m4_define([_LT_TAGS], []) ++ ++ ++# LT_LANG(LANG) ++# ------------- ++# Enable libtool support for the given language if not already enabled. ++AC_DEFUN([LT_LANG], ++[AC_BEFORE([$0], [LT_OUTPUT])dnl ++m4_case([$1], ++ [C], [_LT_LANG(C)], ++ [C++], [_LT_LANG(CXX)], ++ [Go], [_LT_LANG(GO)], ++ [Java], [_LT_LANG(GCJ)], ++ [Fortran 77], [_LT_LANG(F77)], ++ [Fortran], [_LT_LANG(FC)], ++ [Windows Resource], [_LT_LANG(RC)], ++ [m4_ifdef([_LT_LANG_]$1[_CONFIG], ++ [_LT_LANG($1)], ++ [m4_fatal([$0: unsupported language: "$1"])])])dnl ++])# LT_LANG ++ ++ ++# _LT_LANG(LANGNAME) ++# ------------------ ++m4_defun([_LT_LANG], ++[m4_ifdef([_LT_LANG_]$1[_enabled], [], ++ [LT_SUPPORTED_TAG([$1])dnl ++ m4_append([_LT_TAGS], [$1 ])dnl ++ m4_define([_LT_LANG_]$1[_enabled], [])dnl ++ _LT_LANG_$1_CONFIG($1)])dnl ++])# _LT_LANG ++ ++ ++m4_ifndef([AC_PROG_GO], [ ++############################################################ ++# NOTE: This macro has been submitted for inclusion into # ++# GNU Autoconf as AC_PROG_GO. When it is available in # ++# a released version of Autoconf we should remove this # ++# macro and use it instead. # ++############################################################ ++m4_defun([AC_PROG_GO], ++[AC_LANG_PUSH(Go)dnl ++AC_ARG_VAR([GOC], [Go compiler command])dnl ++AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl ++_AC_ARG_VAR_LDFLAGS()dnl ++AC_CHECK_TOOL(GOC, gccgo) ++if test -z "$GOC"; then ++ if test -n "$ac_tool_prefix"; then ++ AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) ++ fi ++fi ++if test -z "$GOC"; then ++ AC_CHECK_PROG(GOC, gccgo, gccgo, false) ++fi ++])#m4_defun ++])#m4_ifndef ++ ++ ++# _LT_LANG_DEFAULT_CONFIG ++# ----------------------- ++m4_defun([_LT_LANG_DEFAULT_CONFIG], ++[AC_PROVIDE_IFELSE([AC_PROG_CXX], ++ [LT_LANG(CXX)], ++ [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) ++ ++AC_PROVIDE_IFELSE([AC_PROG_F77], ++ [LT_LANG(F77)], ++ [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) ++ ++AC_PROVIDE_IFELSE([AC_PROG_FC], ++ [LT_LANG(FC)], ++ [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) ++ ++dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal ++dnl pulling things in needlessly. ++AC_PROVIDE_IFELSE([AC_PROG_GCJ], ++ [LT_LANG(GCJ)], ++ [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], ++ [LT_LANG(GCJ)], ++ [AC_PROVIDE_IFELSE([LT_PROG_GCJ], ++ [LT_LANG(GCJ)], ++ [m4_ifdef([AC_PROG_GCJ], ++ [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) ++ m4_ifdef([A][M_PROG_GCJ], ++ [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) ++ m4_ifdef([LT_PROG_GCJ], ++ [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) ++ ++AC_PROVIDE_IFELSE([AC_PROG_GO], ++ [LT_LANG(GO)], ++ [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) ++ ++AC_PROVIDE_IFELSE([LT_PROG_RC], ++ [LT_LANG(RC)], ++ [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ++])# _LT_LANG_DEFAULT_CONFIG ++ ++# Obsolete macros: ++AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) ++AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) ++AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) ++AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) ++AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_LIBTOOL_CXX], []) ++dnl AC_DEFUN([AC_LIBTOOL_F77], []) ++dnl AC_DEFUN([AC_LIBTOOL_FC], []) ++dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) ++dnl AC_DEFUN([AC_LIBTOOL_RC], []) ++ ++ ++# _LT_TAG_COMPILER ++# ---------------- ++m4_defun([_LT_TAG_COMPILER], ++[AC_REQUIRE([AC_PROG_CC])dnl ++ ++_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl ++_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl ++_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl ++_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl ++ ++# If no C compiler was specified, use CC. ++LTCC=${LTCC-"$CC"} ++ ++# If no C compiler flags were specified, use CFLAGS. ++LTCFLAGS=${LTCFLAGS-"$CFLAGS"} ++ ++# Allow CC to be a program name with arguments. ++compiler=$CC ++])# _LT_TAG_COMPILER ++ ++ ++# _LT_COMPILER_BOILERPLATE ++# ------------------------ ++# Check for compiler boilerplate output or warnings with ++# the simple compiler test code. ++m4_defun([_LT_COMPILER_BOILERPLATE], ++[m4_require([_LT_DECL_SED])dnl ++ac_outfile=conftest.$ac_objext ++echo "$lt_simple_compile_test_code" >conftest.$ac_ext ++eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err ++_lt_compiler_boilerplate=`cat conftest.err` ++$RM conftest* ++])# _LT_COMPILER_BOILERPLATE ++ ++ ++# _LT_LINKER_BOILERPLATE ++# ---------------------- ++# Check for linker boilerplate output or warnings with ++# the simple link test code. ++m4_defun([_LT_LINKER_BOILERPLATE], ++[m4_require([_LT_DECL_SED])dnl ++ac_outfile=conftest.$ac_objext ++echo "$lt_simple_link_test_code" >conftest.$ac_ext ++eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err ++_lt_linker_boilerplate=`cat conftest.err` ++$RM -r conftest* ++])# _LT_LINKER_BOILERPLATE ++ ++# _LT_REQUIRED_DARWIN_CHECKS ++# ------------------------- ++m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ ++ case $host_os in ++ rhapsody* | darwin*) ++ AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) ++ AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) ++ AC_CHECK_TOOL([LIPO], [lipo], [:]) ++ AC_CHECK_TOOL([OTOOL], [otool], [:]) ++ AC_CHECK_TOOL([OTOOL64], [otool64], [:]) ++ _LT_DECL([], [DSYMUTIL], [1], ++ [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) ++ _LT_DECL([], [NMEDIT], [1], ++ [Tool to change global to local symbols on Mac OS X]) ++ _LT_DECL([], [LIPO], [1], ++ [Tool to manipulate fat objects and archives on Mac OS X]) ++ _LT_DECL([], [OTOOL], [1], ++ [ldd/readelf like tool for Mach-O binaries on Mac OS X]) ++ _LT_DECL([], [OTOOL64], [1], ++ [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) ++ ++ AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], ++ [lt_cv_apple_cc_single_mod=no ++ if test -z "$LT_MULTI_MODULE"; then ++ # By default we will add the -single_module flag. You can override ++ # by either setting the environment variable LT_MULTI_MODULE ++ # non-empty at configure time, or by adding -multi_module to the ++ # link flags. ++ rm -rf libconftest.dylib* ++ echo "int foo(void){return 1;}" > conftest.c ++ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ ++-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD ++ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ ++ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err ++ _lt_result=$? ++ # If there is a non-empty error log, and "single_module" ++ # appears in it, assume the flag caused a linker warning ++ if test -s conftest.err && $GREP single_module conftest.err; then ++ cat conftest.err >&AS_MESSAGE_LOG_FD ++ # Otherwise, if the output was created with a 0 exit code from ++ # the compiler, it worked. ++ elif test -f libconftest.dylib && test 0 = "$_lt_result"; then ++ lt_cv_apple_cc_single_mod=yes ++ else ++ cat conftest.err >&AS_MESSAGE_LOG_FD ++ fi ++ rm -rf libconftest.dylib* ++ rm -f conftest.* ++ fi]) ++ ++ AC_CACHE_CHECK([for -exported_symbols_list linker flag], ++ [lt_cv_ld_exported_symbols_list], ++ [lt_cv_ld_exported_symbols_list=no ++ save_LDFLAGS=$LDFLAGS ++ echo "_main" > conftest.sym ++ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" ++ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], ++ [lt_cv_ld_exported_symbols_list=yes], ++ [lt_cv_ld_exported_symbols_list=no]) ++ LDFLAGS=$save_LDFLAGS ++ ]) ++ ++ AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], ++ [lt_cv_ld_force_load=no ++ cat > conftest.c << _LT_EOF ++int forced_loaded() { return 2;} ++_LT_EOF ++ echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD ++ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD ++ echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD ++ $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD ++ echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD ++ $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD ++ cat > conftest.c << _LT_EOF ++int main() { return 0;} ++_LT_EOF ++ echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD ++ $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err ++ _lt_result=$? ++ if test -s conftest.err && $GREP force_load conftest.err; then ++ cat conftest.err >&AS_MESSAGE_LOG_FD ++ elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then ++ lt_cv_ld_force_load=yes ++ else ++ cat conftest.err >&AS_MESSAGE_LOG_FD ++ fi ++ rm -f conftest.err libconftest.a conftest conftest.c ++ rm -rf conftest.dSYM ++ ]) ++ case $host_os in ++ rhapsody* | darwin1.[[012]]) ++ _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; ++ darwin1.*) ++ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; ++ darwin*) # darwin 5.x on ++ # if running on 10.5 or later, the deployment target defaults ++ # to the OS version, if on x86, and 10.4, the deployment ++ # target defaults to 10.4. Don't you love it? ++ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in ++ 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) ++ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; ++ 10.[[012]][[,.]]*) ++ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; ++ 10.*) ++ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; ++ esac ++ ;; ++ esac ++ if test yes = "$lt_cv_apple_cc_single_mod"; then ++ _lt_dar_single_mod='$single_module' ++ fi ++ if test yes = "$lt_cv_ld_exported_symbols_list"; then ++ _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' ++ else ++ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' ++ fi ++ if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then ++ _lt_dsymutil='~$DSYMUTIL $lib || :' ++ else ++ _lt_dsymutil= ++ fi ++ ;; ++ esac ++]) ++ ++ ++# _LT_DARWIN_LINKER_FEATURES([TAG]) ++# --------------------------------- ++# Checks for linker and compiler features on darwin ++m4_defun([_LT_DARWIN_LINKER_FEATURES], ++[ ++ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) ++ _LT_TAGVAR(archive_cmds_need_lc, $1)=no ++ _LT_TAGVAR(hardcode_direct, $1)=no ++ _LT_TAGVAR(hardcode_automatic, $1)=yes ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported ++ if test yes = "$lt_cv_ld_force_load"; then ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' ++ m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], ++ [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) ++ else ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='' ++ fi ++ _LT_TAGVAR(link_all_deplibs, $1)=yes ++ _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined ++ case $cc_basename in ++ ifort*|nagfor*) _lt_dar_can_shared=yes ;; ++ *) _lt_dar_can_shared=$GCC ;; ++ esac ++ if test yes = "$_lt_dar_can_shared"; then ++ output_verbose_link_cmd=func_echo_all ++ _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" ++ _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" ++ _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" ++ _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" ++ m4_if([$1], [CXX], ++[ if test yes != "$lt_cv_apple_cc_single_mod"; then ++ _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" ++ _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" ++ fi ++],[]) ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++]) ++ ++# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) ++# ---------------------------------- ++# Links a minimal program and checks the executable ++# for the system default hardcoded library path. In most cases, ++# this is /usr/lib:/lib, but when the MPI compilers are used ++# the location of the communication and MPI libs are included too. ++# If we don't find anything, use the default library path according ++# to the aix ld manual. ++# Store the results from the different compilers for each TAGNAME. ++# Allow to override them for all tags through lt_cv_aix_libpath. ++m4_defun([_LT_SYS_MODULE_PATH_AIX], ++[m4_require([_LT_DECL_SED])dnl ++if test set = "${lt_cv_aix_libpath+set}"; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], ++ [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ ++ lt_aix_libpath_sed='[ ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }]' ++ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then ++ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi],[]) ++ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then ++ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib ++ fi ++ ]) ++ aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) ++fi ++])# _LT_SYS_MODULE_PATH_AIX ++ ++ ++# _LT_SHELL_INIT(ARG) ++# ------------------- ++m4_define([_LT_SHELL_INIT], ++[m4_divert_text([M4SH-INIT], [$1 ++])])# _LT_SHELL_INIT ++ ++ ++ ++# _LT_PROG_ECHO_BACKSLASH ++# ----------------------- ++# Find how we can fake an echo command that does not interpret backslash. ++# In particular, with Autoconf 2.60 or later we add some code to the start ++# of the generated configure script that will find a shell with a builtin ++# printf (that we can use as an echo command). ++m4_defun([_LT_PROG_ECHO_BACKSLASH], ++[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ++ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ++ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO ++ ++AC_MSG_CHECKING([how to print strings]) ++# Test print first, because it will be a builtin if present. ++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ ++ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ++ ECHO='print -r --' ++elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ++ ECHO='printf %s\n' ++else ++ # Use this function as a fallback that always works. ++ func_fallback_echo () ++ { ++ eval 'cat <<_LTECHO_EOF ++$[]1 ++_LTECHO_EOF' ++ } ++ ECHO='func_fallback_echo' ++fi ++ ++# func_echo_all arg... ++# Invoke $ECHO with all args, space-separated. ++func_echo_all () ++{ ++ $ECHO "$*" ++} ++ ++case $ECHO in ++ printf*) AC_MSG_RESULT([printf]) ;; ++ print*) AC_MSG_RESULT([print -r]) ;; ++ *) AC_MSG_RESULT([cat]) ;; ++esac ++ ++m4_ifdef([_AS_DETECT_SUGGESTED], ++[_AS_DETECT_SUGGESTED([ ++ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ++ ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ++ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ++ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO ++ PATH=/empty FPATH=/empty; export PATH FPATH ++ test "X`printf %s $ECHO`" = "X$ECHO" \ ++ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) ++ ++_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) ++_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ++])# _LT_PROG_ECHO_BACKSLASH ++ ++ ++# _LT_WITH_SYSROOT ++# ---------------- ++AC_DEFUN([_LT_WITH_SYSROOT], ++[AC_MSG_CHECKING([for sysroot]) ++AC_ARG_WITH([sysroot], ++[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], ++ [Search for dependent libraries within DIR (or the compiler's sysroot ++ if not specified).])], ++[], [with_sysroot=no]) ++ ++dnl lt_sysroot will always be passed unquoted. We quote it here ++dnl in case the user passed a directory name. ++lt_sysroot= ++case $with_sysroot in #( ++ yes) ++ if test yes = "$GCC"; then ++ lt_sysroot=`$CC --print-sysroot 2>/dev/null` ++ fi ++ ;; #( ++ /*) ++ lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ++ ;; #( ++ no|'') ++ ;; #( ++ *) ++ AC_MSG_RESULT([$with_sysroot]) ++ AC_MSG_ERROR([The sysroot must be an absolute path.]) ++ ;; ++esac ++ ++ AC_MSG_RESULT([${lt_sysroot:-no}]) ++_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl ++[dependent libraries, and where our libraries should be installed.])]) ++ ++# _LT_ENABLE_LOCK ++# --------------- ++m4_defun([_LT_ENABLE_LOCK], ++[AC_ARG_ENABLE([libtool-lock], ++ [AS_HELP_STRING([--disable-libtool-lock], ++ [avoid locking (might break parallel builds)])]) ++test no = "$enable_libtool_lock" || 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 what ABI is being produced by ac_compile, and set mode ++ # options accordingly. ++ 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 what ABI is being produced by ac_compile, and set linker ++ # options accordingly. ++ echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext ++ if AC_TRY_EVAL(ac_compile); then ++ if test yes = "$lt_cv_prog_gnu_ld"; 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* ++ ;; ++ ++mips64*-*linux*) ++ # Find out what ABI is being produced by ac_compile, and set linker ++ # options accordingly. ++ echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext ++ if AC_TRY_EVAL(ac_compile); then ++ emul=elf ++ case `/usr/bin/file conftest.$ac_objext` in ++ *32-bit*) ++ emul="${emul}32" ++ ;; ++ *64-bit*) ++ emul="${emul}64" ++ ;; ++ esac ++ case `/usr/bin/file conftest.$ac_objext` in ++ *MSB*) ++ emul="${emul}btsmip" ++ ;; ++ *LSB*) ++ emul="${emul}ltsmip" ++ ;; ++ esac ++ case `/usr/bin/file conftest.$ac_objext` in ++ *N32*) ++ emul="${emul}n32" ++ ;; ++ esac ++ LD="${LD-ld} -m $emul" ++ fi ++ rm -rf conftest* ++ ;; ++ ++x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ ++s390*-*linux*|s390*-*tpf*|sparc*-*linux*) ++ # Find out what ABI is being produced by ac_compile, and set linker ++ # options accordingly. Note that the listed cases only cover the ++ # situations where additional linker options are needed (such as when ++ # doing 32-bit compilation for a host where ld defaults to 64-bit, or ++ # vice versa); the common cases where no linker options are needed do ++ # not appear in the list. ++ echo 'int i;' > conftest.$ac_ext ++ if AC_TRY_EVAL(ac_compile); then ++ case `/usr/bin/file conftest.o` in ++ *32-bit*) ++ case $host in ++ x86_64-*kfreebsd*-gnu) ++ LD="${LD-ld} -m elf_i386_fbsd" ++ ;; ++ x86_64-*linux*) ++ case `/usr/bin/file conftest.o` in ++ *x86-64*) ++ LD="${LD-ld} -m elf32_x86_64" ++ ;; ++ *) ++ LD="${LD-ld} -m elf_i386" ++ ;; ++ esac ++ ;; ++ powerpc64le-*linux*) ++ LD="${LD-ld} -m elf32lppclinux" ++ ;; ++ 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" ++ ;; ++ powerpcle-*linux*) ++ LD="${LD-ld} -m elf64lppc" ++ ;; ++ powerpc-*linux*) ++ LD="${LD-ld} -m elf64ppc" ++ ;; ++ s390*-*linux*|s390*-*tpf*) ++ LD="${LD-ld} -m elf64_s390" ++ ;; ++ sparc*-*linux*) ++ LD="${LD-ld} -m elf64_sparc" ++ ;; ++ esac ++ ;; ++ esac ++ fi ++ rm -rf conftest* ++ ;; ++ ++*-*-sco3.2v5*) ++ # On SCO OpenServer 5, we need -belf to get full-featured binaries. ++ SAVE_CFLAGS=$CFLAGS ++ CFLAGS="$CFLAGS -belf" ++ AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, ++ [AC_LANG_PUSH(C) ++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) ++ AC_LANG_POP]) ++ if test yes != "$lt_cv_cc_needs_belf"; then ++ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf ++ CFLAGS=$SAVE_CFLAGS ++ fi ++ ;; ++*-*solaris*) ++ # Find out what ABI is being produced by ac_compile, and set linker ++ # options accordingly. ++ echo 'int i;' > conftest.$ac_ext ++ if AC_TRY_EVAL(ac_compile); then ++ case `/usr/bin/file conftest.o` in ++ *64-bit*) ++ case $lt_cv_prog_gnu_ld in ++ yes*) ++ case $host in ++ i?86-*-solaris*|x86_64-*-solaris*) ++ LD="${LD-ld} -m elf_x86_64" ++ ;; ++ sparc*-*-solaris*) ++ LD="${LD-ld} -m elf64_sparc" ++ ;; ++ esac ++ # GNU ld 2.21 introduced _sol2 emulations. Use them if available. ++ if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then ++ LD=${LD-ld}_sol2 ++ fi ++ ;; ++ *) ++ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then ++ LD="${LD-ld} -64" ++ fi ++ ;; ++ esac ++ ;; ++ esac ++ fi ++ rm -rf conftest* ++ ;; ++esac ++ ++need_locks=$enable_libtool_lock ++])# _LT_ENABLE_LOCK ++ ++ ++# _LT_PROG_AR ++# ----------- ++m4_defun([_LT_PROG_AR], ++[AC_CHECK_TOOLS(AR, [ar], false) ++: ${AR=ar} ++: ${AR_FLAGS=cru} ++_LT_DECL([], [AR], [1], [The archiver]) ++_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) ++ ++AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], ++ [lt_cv_ar_at_file=no ++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM], ++ [echo conftest.$ac_objext > conftest.lst ++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' ++ AC_TRY_EVAL([lt_ar_try]) ++ if test 0 -eq "$ac_status"; then ++ # Ensure the archiver fails upon bogus file names. ++ rm -f conftest.$ac_objext libconftest.a ++ AC_TRY_EVAL([lt_ar_try]) ++ if test 0 -ne "$ac_status"; then ++ lt_cv_ar_at_file=@ ++ fi ++ fi ++ rm -f conftest.* libconftest.a ++ ]) ++ ]) ++ ++if test no = "$lt_cv_ar_at_file"; then ++ archiver_list_spec= ++else ++ archiver_list_spec=$lt_cv_ar_at_file ++fi ++_LT_DECL([], [archiver_list_spec], [1], ++ [How to feed a file listing to the archiver]) ++])# _LT_PROG_AR ++ ++ ++# _LT_CMD_OLD_ARCHIVE ++# ------------------- ++m4_defun([_LT_CMD_OLD_ARCHIVE], ++[_LT_PROG_AR ++ ++AC_CHECK_TOOL(STRIP, strip, :) ++test -z "$STRIP" && STRIP=: ++_LT_DECL([], [STRIP], [1], [A symbol stripping program]) ++ ++AC_CHECK_TOOL(RANLIB, ranlib, :) ++test -z "$RANLIB" && RANLIB=: ++_LT_DECL([], [RANLIB], [1], ++ [Commands used to install an old-style archive]) ++ ++# Determine commands to create old-style static archives. ++old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' ++old_postinstall_cmds='chmod 644 $oldlib' ++old_postuninstall_cmds= ++ ++if test -n "$RANLIB"; then ++ case $host_os in ++ bitrig* | openbsd*) ++ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ++ ;; ++ *) ++ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ++ ;; ++ esac ++ old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" ++fi ++ ++case $host_os in ++ darwin*) ++ lock_old_archive_extraction=yes ;; ++ *) ++ lock_old_archive_extraction=no ;; ++esac ++_LT_DECL([], [old_postinstall_cmds], [2]) ++_LT_DECL([], [old_postuninstall_cmds], [2]) ++_LT_TAGDECL([], [old_archive_cmds], [2], ++ [Commands used to build an old-style archive]) ++_LT_DECL([], [lock_old_archive_extraction], [0], ++ [Whether to use a lock for old archive extraction]) ++])# _LT_CMD_OLD_ARCHIVE ++ ++ ++# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, ++# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) ++# ---------------------------------------------------------------- ++# Check whether the given compiler option works ++AC_DEFUN([_LT_COMPILER_OPTION], ++[m4_require([_LT_FILEUTILS_DEFAULTS])dnl ++m4_require([_LT_DECL_SED])dnl ++AC_CACHE_CHECK([$1], [$2], ++ [$2=no ++ m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) ++ echo "$lt_simple_compile_test_code" > conftest.$ac_ext ++ lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment ++ # Insert the option either (1) after the last *FLAGS variable, or ++ # (2) before a word containing "conftest.", or (3) at the end. ++ # Note that $ac_compile itself does not contain backslashes and begins ++ # with a dollar sign (not a hyphen), so the echo should work correctly. ++ # The option is referenced via a variable to avoid confusing sed. ++ lt_compile=`echo "$ac_compile" | $SED \ ++ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ ++ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ ++ -e 's:$: $lt_compiler_flag:'` ++ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) ++ (eval "$lt_compile" 2>conftest.err) ++ ac_status=$? ++ cat conftest.err >&AS_MESSAGE_LOG_FD ++ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD ++ if (exit $ac_status) && test -s "$ac_outfile"; then ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings other than the usual output. ++ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp ++ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 ++ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then ++ $2=yes ++ fi ++ fi ++ $RM conftest* ++]) ++ ++if test yes = "[$]$2"; then ++ m4_if([$5], , :, [$5]) ++else ++ m4_if([$6], , :, [$6]) ++fi ++])# _LT_COMPILER_OPTION ++ ++# Old name: ++AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) ++ ++ ++# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, ++# [ACTION-SUCCESS], [ACTION-FAILURE]) ++# ---------------------------------------------------- ++# Check whether the given linker option works ++AC_DEFUN([_LT_LINKER_OPTION], ++[m4_require([_LT_FILEUTILS_DEFAULTS])dnl ++m4_require([_LT_DECL_SED])dnl ++AC_CACHE_CHECK([$1], [$2], ++ [$2=no ++ save_LDFLAGS=$LDFLAGS ++ LDFLAGS="$LDFLAGS $3" ++ echo "$lt_simple_link_test_code" > conftest.$ac_ext ++ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then ++ # The linker can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ # Append any errors to the config.log. ++ cat conftest.err 1>&AS_MESSAGE_LOG_FD ++ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp ++ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 ++ if diff conftest.exp conftest.er2 >/dev/null; then ++ $2=yes ++ fi ++ else ++ $2=yes ++ fi ++ fi ++ $RM -r conftest* ++ LDFLAGS=$save_LDFLAGS ++]) ++ ++if test yes = "[$]$2"; then ++ m4_if([$4], , :, [$4]) ++else ++ m4_if([$5], , :, [$5]) ++fi ++])# _LT_LINKER_OPTION ++ ++# Old name: ++AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) ++ ++ ++# LT_CMD_MAX_LEN ++#--------------- ++AC_DEFUN([LT_CMD_MAX_LEN], ++[AC_REQUIRE([AC_CANONICAL_HOST])dnl ++# find the maximum length of command line arguments ++AC_MSG_CHECKING([the maximum length of command line arguments]) ++AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl ++ i=0 ++ teststring=ABCD ++ ++ case $build_os in ++ msdosdjgpp*) ++ # On DJGPP, this test can blow up pretty badly due to problems in libc ++ # (any single argument exceeding 2000 bytes causes a buffer overrun ++ # during glob expansion). Even if it were fixed, the result of this ++ # check would be larger than it should be. ++ lt_cv_sys_max_cmd_len=12288; # 12K is about right ++ ;; ++ ++ gnu*) ++ # Under GNU Hurd, this test is not required because there is ++ # no limit to the length of command line arguments. ++ # Libtool will interpret -1 as no limit whatsoever ++ lt_cv_sys_max_cmd_len=-1; ++ ;; ++ ++ cygwin* | mingw* | cegcc*) ++ # On Win9x/ME, this test blows up -- it succeeds, but takes ++ # about 5 minutes as the teststring grows exponentially. ++ # Worse, since 9x/ME are not pre-emptively multitasking, ++ # you end up with a "frozen" computer, even though with patience ++ # the test eventually succeeds (with a max line length of 256k). ++ # Instead, let's just punt: use the minimum linelength reported by ++ # all of the supported platforms: 8192 (on NT/2K/XP). ++ lt_cv_sys_max_cmd_len=8192; ++ ;; ++ ++ mint*) ++ # On MiNT this can take a long time and run out of memory. ++ lt_cv_sys_max_cmd_len=8192; ++ ;; ++ ++ amigaos*) ++ # On AmigaOS with pdksh, this test takes hours, literally. ++ # So we just punt and use a minimum line length of 8192. ++ lt_cv_sys_max_cmd_len=8192; ++ ;; ++ ++ bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) ++ # This has been around since 386BSD, at least. Likely further. ++ if test -x /sbin/sysctl; then ++ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` ++ elif test -x /usr/sbin/sysctl; then ++ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` ++ else ++ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs ++ fi ++ # And add a safety zone ++ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` ++ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ++ ;; ++ ++ interix*) ++ # We know the value 262144 and hardcode it with a safety zone (like BSD) ++ lt_cv_sys_max_cmd_len=196608 ++ ;; ++ ++ os2*) ++ # The test takes a long time on OS/2. ++ lt_cv_sys_max_cmd_len=8192 ++ ;; ++ ++ osf*) ++ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure ++ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not ++ # nice to cause kernel panics so lets avoid the loop below. ++ # First set a reasonable default. ++ lt_cv_sys_max_cmd_len=16384 ++ # ++ if test -x /sbin/sysconfig; then ++ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in ++ *1*) lt_cv_sys_max_cmd_len=-1 ;; ++ esac ++ fi ++ ;; ++ sco3.2v5*) ++ lt_cv_sys_max_cmd_len=102400 ++ ;; ++ sysv5* | sco5v6* | sysv4.2uw2*) ++ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` ++ if test -n "$kargmax"; then ++ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` ++ else ++ lt_cv_sys_max_cmd_len=32768 ++ fi ++ ;; ++ *) ++ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` ++ if test -n "$lt_cv_sys_max_cmd_len" && \ ++ test undefined != "$lt_cv_sys_max_cmd_len"; then ++ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` ++ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ++ else ++ # Make teststring a little bigger before we do anything with it. ++ # a 1K string should be a reasonable start. ++ for i in 1 2 3 4 5 6 7 8; do ++ teststring=$teststring$teststring ++ done ++ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} ++ # If test is not a shell built-in, we'll probably end up computing a ++ # maximum length that is only half of the actual maximum length, but ++ # we can't tell. ++ while { test X`env echo "$teststring$teststring" 2>/dev/null` \ ++ = "X$teststring$teststring"; } >/dev/null 2>&1 && ++ test 17 != "$i" # 1/2 MB should be enough ++ do ++ i=`expr $i + 1` ++ teststring=$teststring$teststring ++ done ++ # Only check the string length outside the loop. ++ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` ++ teststring= ++ # Add a significant safety factor because C++ compilers can tack on ++ # massive amounts of additional arguments before passing them to the ++ # linker. It appears as though 1/2 is a usable value. ++ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` ++ fi ++ ;; ++ esac ++]) ++if test -n "$lt_cv_sys_max_cmd_len"; then ++ AC_MSG_RESULT($lt_cv_sys_max_cmd_len) ++else ++ AC_MSG_RESULT(none) ++fi ++max_cmd_len=$lt_cv_sys_max_cmd_len ++_LT_DECL([], [max_cmd_len], [0], ++ [What is the maximum length of a command?]) ++])# LT_CMD_MAX_LEN ++ ++# Old name: ++AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) ++ ++ ++# _LT_HEADER_DLFCN ++# ---------------- ++m4_defun([_LT_HEADER_DLFCN], ++[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ++])# _LT_HEADER_DLFCN ++ ++ ++# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, ++# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) ++# ---------------------------------------------------------------- ++m4_defun([_LT_TRY_DLOPEN_SELF], ++[m4_require([_LT_HEADER_DLFCN])dnl ++if test yes = "$cross_compiling"; then : ++ [$4] ++else ++ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 ++ lt_status=$lt_dlunknown ++ cat > conftest.$ac_ext <<_LT_EOF ++[#line $LINENO "configure" ++#include "confdefs.h" ++ ++#if HAVE_DLFCN_H ++#include ++#endif ++ ++#include ++ ++#ifdef RTLD_GLOBAL ++# define LT_DLGLOBAL RTLD_GLOBAL ++#else ++# ifdef DL_GLOBAL ++# define LT_DLGLOBAL DL_GLOBAL ++# else ++# define LT_DLGLOBAL 0 ++# endif ++#endif ++ ++/* We may have to define LT_DLLAZY_OR_NOW in the command line if we ++ find out it does not work in some platform. */ ++#ifndef LT_DLLAZY_OR_NOW ++# ifdef RTLD_LAZY ++# define LT_DLLAZY_OR_NOW RTLD_LAZY ++# else ++# ifdef DL_LAZY ++# define LT_DLLAZY_OR_NOW DL_LAZY ++# else ++# ifdef RTLD_NOW ++# define LT_DLLAZY_OR_NOW RTLD_NOW ++# else ++# ifdef DL_NOW ++# define LT_DLLAZY_OR_NOW DL_NOW ++# else ++# define LT_DLLAZY_OR_NOW 0 ++# endif ++# endif ++# endif ++# endif ++#endif ++ ++/* When -fvisibility=hidden is used, assume the code has been annotated ++ correspondingly for the symbols needed. */ ++#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) ++int fnord () __attribute__((visibility("default"))); ++#endif ++ ++int fnord () { return 42; } ++int main () ++{ ++ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); ++ int status = $lt_dlunknown; ++ ++ if (self) ++ { ++ if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ++ else ++ { ++ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ else puts (dlerror ()); ++ } ++ /* dlclose (self); */ ++ } ++ else ++ puts (dlerror ()); ++ ++ return status; ++}] ++_LT_EOF ++ if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then ++ (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null ++ lt_status=$? ++ case x$lt_status in ++ x$lt_dlno_uscore) $1 ;; ++ x$lt_dlneed_uscore) $2 ;; ++ x$lt_dlunknown|x*) $3 ;; ++ esac ++ else : ++ # compilation failed ++ $3 ++ fi ++fi ++rm -fr conftest* ++])# _LT_TRY_DLOPEN_SELF ++ ++ ++# LT_SYS_DLOPEN_SELF ++# ------------------ ++AC_DEFUN([LT_SYS_DLOPEN_SELF], ++[m4_require([_LT_HEADER_DLFCN])dnl ++if test yes != "$enable_dlopen"; then ++ enable_dlopen=unknown ++ enable_dlopen_self=unknown ++ enable_dlopen_self_static=unknown ++else ++ lt_cv_dlopen=no ++ lt_cv_dlopen_libs= ++ ++ case $host_os in ++ beos*) ++ lt_cv_dlopen=load_add_on ++ lt_cv_dlopen_libs= ++ lt_cv_dlopen_self=yes ++ ;; ++ ++ mingw* | pw32* | cegcc*) ++ lt_cv_dlopen=LoadLibrary ++ lt_cv_dlopen_libs= ++ ;; ++ ++ cygwin*) ++ lt_cv_dlopen=dlopen ++ lt_cv_dlopen_libs= ++ ;; ++ ++ darwin*) ++ # if libdl is installed we need to link against it ++ AC_CHECK_LIB([dl], [dlopen], ++ [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[ ++ lt_cv_dlopen=dyld ++ lt_cv_dlopen_libs= ++ lt_cv_dlopen_self=yes ++ ]) ++ ;; ++ ++ tpf*) ++ # Don't try to run any link tests for TPF. We know it's impossible ++ # because TPF is a cross-compiler, and we know how we open DSOs. ++ lt_cv_dlopen=dlopen ++ lt_cv_dlopen_libs= ++ lt_cv_dlopen_self=no ++ ;; ++ ++ *) ++ 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 no = "$lt_cv_dlopen"; then ++ enable_dlopen=no ++ else ++ enable_dlopen=yes ++ fi ++ ++ case $lt_cv_dlopen in ++ dlopen) ++ save_CPPFLAGS=$CPPFLAGS ++ test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" ++ ++ save_LDFLAGS=$LDFLAGS ++ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" ++ ++ save_LIBS=$LIBS ++ LIBS="$lt_cv_dlopen_libs $LIBS" ++ ++ AC_CACHE_CHECK([whether a program can dlopen itself], ++ lt_cv_dlopen_self, [dnl ++ _LT_TRY_DLOPEN_SELF( ++ lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, ++ lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ++ ]) ++ ++ if test yes = "$lt_cv_dlopen_self"; then ++ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" ++ AC_CACHE_CHECK([whether a statically linked program can dlopen itself], ++ lt_cv_dlopen_self_static, [dnl ++ _LT_TRY_DLOPEN_SELF( ++ lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, ++ lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ++ ]) ++ fi ++ ++ CPPFLAGS=$save_CPPFLAGS ++ LDFLAGS=$save_LDFLAGS ++ LIBS=$save_LIBS ++ ;; ++ esac ++ ++ case $lt_cv_dlopen_self in ++ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; ++ *) enable_dlopen_self=unknown ;; ++ esac ++ ++ case $lt_cv_dlopen_self_static in ++ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; ++ *) enable_dlopen_self_static=unknown ;; ++ esac ++fi ++_LT_DECL([dlopen_support], [enable_dlopen], [0], ++ [Whether dlopen is supported]) ++_LT_DECL([dlopen_self], [enable_dlopen_self], [0], ++ [Whether dlopen of programs is supported]) ++_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], ++ [Whether dlopen of statically linked programs is supported]) ++])# LT_SYS_DLOPEN_SELF ++ ++# Old name: ++AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) ++ ++ ++# _LT_COMPILER_C_O([TAGNAME]) ++# --------------------------- ++# Check to see if options -c and -o are simultaneously supported by compiler. ++# This macro does not hard code the compiler like AC_PROG_CC_C_O. ++m4_defun([_LT_COMPILER_C_O], ++[m4_require([_LT_DECL_SED])dnl ++m4_require([_LT_FILEUTILS_DEFAULTS])dnl ++m4_require([_LT_TAG_COMPILER])dnl ++AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], ++ [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], ++ [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no ++ $RM -r conftest 2>/dev/null ++ mkdir conftest ++ cd conftest ++ mkdir out ++ echo "$lt_simple_compile_test_code" > conftest.$ac_ext ++ ++ lt_compiler_flag="-o out/conftest2.$ac_objext" ++ # Insert the option either (1) after the last *FLAGS variable, or ++ # (2) before a word containing "conftest.", or (3) at the end. ++ # Note that $ac_compile itself does not contain backslashes and begins ++ # with a dollar sign (not a hyphen), so the echo should work correctly. ++ lt_compile=`echo "$ac_compile" | $SED \ ++ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ ++ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ ++ -e 's:$: $lt_compiler_flag:'` ++ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) ++ (eval "$lt_compile" 2>out/conftest.err) ++ ac_status=$? ++ cat out/conftest.err >&AS_MESSAGE_LOG_FD ++ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD ++ if (exit $ac_status) && test -s out/conftest2.$ac_objext ++ then ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp ++ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 ++ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then ++ _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes ++ fi ++ fi ++ chmod u+w . 2>&AS_MESSAGE_LOG_FD ++ $RM conftest* ++ # SGI C++ compiler will create directory out/ii_files/ for ++ # template instantiation ++ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files ++ $RM out/* && rmdir out ++ cd .. ++ $RM -r conftest ++ $RM conftest* ++]) ++_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], ++ [Does compiler simultaneously support -c and -o options?]) ++])# _LT_COMPILER_C_O ++ ++ ++# _LT_COMPILER_FILE_LOCKS([TAGNAME]) ++# ---------------------------------- ++# Check to see if we can do hard links to lock some files if needed ++m4_defun([_LT_COMPILER_FILE_LOCKS], ++[m4_require([_LT_ENABLE_LOCK])dnl ++m4_require([_LT_FILEUTILS_DEFAULTS])dnl ++_LT_COMPILER_C_O([$1]) ++ ++hard_links=nottested ++if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; 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 no = "$hard_links"; then ++ AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) ++ need_locks=warn ++ fi ++else ++ need_locks=no ++fi ++_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ++])# _LT_COMPILER_FILE_LOCKS ++ ++ ++# _LT_CHECK_OBJDIR ++# ---------------- ++m4_defun([_LT_CHECK_OBJDIR], ++[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], ++[rm -f .libs 2>/dev/null ++mkdir .libs 2>/dev/null ++if test -d .libs; then ++ lt_cv_objdir=.libs ++else ++ # MS-DOS does not allow filenames that begin with a dot. ++ lt_cv_objdir=_libs ++fi ++rmdir .libs 2>/dev/null]) ++objdir=$lt_cv_objdir ++_LT_DECL([], [objdir], [0], ++ [The name of the directory that contains temporary libtool files])dnl ++m4_pattern_allow([LT_OBJDIR])dnl ++AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", ++ [Define to the sub-directory where libtool stores uninstalled libraries.]) ++])# _LT_CHECK_OBJDIR ++ ++ ++# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) ++# -------------------------------------- ++# Check hardcoding attributes. ++m4_defun([_LT_LINKER_HARDCODE_LIBPATH], ++[AC_MSG_CHECKING([how to hardcode library paths into programs]) ++_LT_TAGVAR(hardcode_action, $1)= ++if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || ++ test -n "$_LT_TAGVAR(runpath_var, $1)" || ++ test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then ++ ++ # We can hardcode non-existent directories. ++ if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && ++ # 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 no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && ++ test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then ++ # Linking always hardcodes the temporary library directory. ++ _LT_TAGVAR(hardcode_action, $1)=relink ++ else ++ # We can link without hardcoding, and we can hardcode nonexisting dirs. ++ _LT_TAGVAR(hardcode_action, $1)=immediate ++ fi ++else ++ # We cannot hardcode anything, or else we can only hardcode existing ++ # directories. ++ _LT_TAGVAR(hardcode_action, $1)=unsupported ++fi ++AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) ++ ++if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || ++ test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then ++ # Fast installation is not supported ++ enable_fast_install=no ++elif test yes = "$shlibpath_overrides_runpath" || ++ test no = "$enable_shared"; then ++ # Fast installation is not necessary ++ enable_fast_install=needless ++fi ++_LT_TAGDECL([], [hardcode_action], [0], ++ [How to hardcode a shared library path into an executable]) ++])# _LT_LINKER_HARDCODE_LIBPATH ++ ++ ++# _LT_CMD_STRIPLIB ++# ---------------- ++m4_defun([_LT_CMD_STRIPLIB], ++[m4_require([_LT_DECL_EGREP]) ++striplib= ++old_striplib= ++AC_MSG_CHECKING([whether stripping libraries is possible]) ++if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then ++ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" ++ test -z "$striplib" && striplib="$STRIP --strip-unneeded" ++ AC_MSG_RESULT([yes]) ++else ++# FIXME - insert some real tests, host_os isn't really good enough ++ case $host_os in ++ darwin*) ++ if test -n "$STRIP"; then ++ striplib="$STRIP -x" ++ old_striplib="$STRIP -S" ++ AC_MSG_RESULT([yes]) ++ else ++ AC_MSG_RESULT([no]) ++ fi ++ ;; ++ *) ++ AC_MSG_RESULT([no]) ++ ;; ++ esac ++fi ++_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) ++_LT_DECL([], [striplib], [1]) ++])# _LT_CMD_STRIPLIB ++ ++ ++# _LT_PREPARE_MUNGE_PATH_LIST ++# --------------------------- ++# Make sure func_munge_path_list() is defined correctly. ++m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], ++[[# func_munge_path_list VARIABLE PATH ++# ----------------------------------- ++# VARIABLE is name of variable containing _space_ separated list of ++# directories to be munged by the contents of PATH, which is string ++# having a format: ++# "DIR[:DIR]:" ++# string "DIR[ DIR]" will be prepended to VARIABLE ++# ":DIR[:DIR]" ++# string "DIR[ DIR]" will be appended to VARIABLE ++# "DIRP[:DIRP]::[DIRA:]DIRA" ++# string "DIRP[ DIRP]" will be prepended to VARIABLE and string ++# "DIRA[ DIRA]" will be appended to VARIABLE ++# "DIR[:DIR]" ++# VARIABLE will be replaced by "DIR[ DIR]" ++func_munge_path_list () ++{ ++ case x@S|@2 in ++ x) ++ ;; ++ *:) ++ eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" ++ ;; ++ x:*) ++ eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" ++ ;; ++ *::*) ++ eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" ++ eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" ++ ;; ++ *) ++ eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" ++ ;; ++ esac ++} ++]])# _LT_PREPARE_PATH_LIST ++ ++ ++# _LT_SYS_DYNAMIC_LINKER([TAG]) ++# ----------------------------- ++# PORTME Fill in your ld.so characteristics ++m4_defun([_LT_SYS_DYNAMIC_LINKER], ++[AC_REQUIRE([AC_CANONICAL_HOST])dnl ++m4_require([_LT_DECL_EGREP])dnl ++m4_require([_LT_FILEUTILS_DEFAULTS])dnl ++m4_require([_LT_DECL_OBJDUMP])dnl ++m4_require([_LT_DECL_SED])dnl ++m4_require([_LT_CHECK_SHELL_FEATURES])dnl ++m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl ++AC_MSG_CHECKING([dynamic linker characteristics]) ++m4_if([$1], ++ [], [ ++if test yes = "$GCC"; then ++ case $host_os in ++ darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; ++ *) lt_awk_arg='/^libraries:/' ;; ++ esac ++ case $host_os in ++ mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; ++ *) lt_sed_strip_eq='s|=/|/|g' ;; ++ esac ++ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` ++ case $lt_search_path_spec in ++ *\;*) ++ # if the path contains ";" then we assume it to be the separator ++ # otherwise default to the standard path separator (i.e. ":") - it is ++ # assumed that no part of a normal pathname contains ";" but that should ++ # okay in the real world where ";" in dirpaths is itself problematic. ++ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ++ ;; ++ *) ++ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ++ ;; ++ esac ++ # Ok, now we have the path, separated by spaces, we can step through it ++ # and add multilib dir if necessary... ++ lt_tmp_lt_search_path_spec= ++ lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` ++ # ...but if some path component already ends with the multilib dir we assume ++ # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). ++ case "$lt_multi_os_dir; $lt_search_path_spec " in ++ "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) ++ lt_multi_os_dir= ++ ;; ++ esac ++ 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" ++ elif test -n "$lt_multi_os_dir"; then ++ test -d "$lt_sys_path" && \ ++ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" ++ fi ++ done ++ lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' ++BEGIN {RS = " "; FS = "/|\n";} { ++ lt_foo = ""; ++ lt_count = 0; ++ for (lt_i = NF; lt_i > 0; lt_i--) { ++ if ($lt_i != "" && $lt_i != ".") { ++ if ($lt_i == "..") { ++ lt_count++; ++ } else { ++ if (lt_count == 0) { ++ lt_foo = "/" $lt_i lt_foo; ++ } else { ++ lt_count--; ++ } ++ } ++ } ++ } ++ if (lt_foo != "") { lt_freq[[lt_foo]]++; } ++ if (lt_freq[[lt_foo]] == 1) { print lt_foo; } ++}'` ++ # AWK program above erroneously prepends '/' to C:/dos/paths ++ # for these hosts. ++ case $host_os in ++ mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ ++ $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; ++ esac ++ sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` ++else ++ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" ++fi]) ++library_names_spec= ++libname_spec='lib$name' ++soname_spec= ++shrext_cmds=.so ++postinstall_cmds= ++postuninstall_cmds= ++finish_cmds= ++finish_eval= ++shlibpath_var= ++shlibpath_overrides_runpath=unknown ++version_type=none ++dynamic_linker="$host_os ld.so" ++sys_lib_dlsearch_path_spec="/lib /usr/lib" ++need_lib_prefix=unknown ++hardcode_into_libs=no ++ ++# when you set need_version to no, make sure it does not cause -set_version ++# flags to be left without arguments ++need_version=unknown ++ ++AC_ARG_VAR([LT_SYS_LIBRARY_PATH], ++[User-defined run-time library search path.]) ++ ++case $host_os in ++aix3*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ library_names_spec='$libname$release$shared_ext$versuffix $libname.a' ++ shlibpath_var=LIBPATH ++ ++ # AIX 3 has no versioning support, so we append a major version to the name. ++ soname_spec='$libname$release$shared_ext$major' ++ ;; ++ ++aix[[4-9]]*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_lib_prefix=no ++ need_version=no ++ hardcode_into_libs=yes ++ if test ia64 = "$host_cpu"; 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 ++ # Using Import Files as archive members, it is possible to support ++ # filename-based versioning of shared library archives on AIX. While ++ # this would work for both with and without runtime linking, it will ++ # prevent static linking of such archives. So we do filename-based ++ # shared library versioning with .so extension only, which is used ++ # when both runtime linking and shared linking is enabled. ++ # Unfortunately, runtime linking may impact performance, so we do ++ # not want this to be the default eventually. Also, we use the ++ # versioned .so libs for executables only if there is the -brtl ++ # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. ++ # To allow for filename-based versioning support, we need to create ++ # libNAME.so.V as an archive file, containing: ++ # *) an Import File, referring to the versioned filename of the ++ # archive as well as the shared archive member, telling the ++ # bitwidth (32 or 64) of that shared object, and providing the ++ # list of exported symbols of that shared object, eventually ++ # decorated with the 'weak' keyword ++ # *) the shared object with the F_LOADONLY flag set, to really avoid ++ # it being seen by the linker. ++ # At run time we better use the real file rather than another symlink, ++ # but for link time we create the symlink libNAME.so -> libNAME.so.V ++ ++ case $with_aix_soname,$aix_use_runtimelinking in ++ # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct ++ # soname into executable. Probably we can add versioning support to ++ # collect2, so additional links can be useful in future. ++ aix,yes) # traditional libtool ++ dynamic_linker='AIX unversionable lib.so' ++ # 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' ++ ;; ++ aix,no) # traditional AIX only ++ dynamic_linker='AIX lib.a[(]lib.so.V[)]' ++ # 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' ++ ;; ++ svr4,*) # full svr4 only ++ dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" ++ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' ++ # We do not specify a path in Import Files, so LIBPATH fires. ++ shlibpath_overrides_runpath=yes ++ ;; ++ *,yes) # both, prefer svr4 ++ dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" ++ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' ++ # unpreferred sharedlib libNAME.a needs extra handling ++ postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' ++ postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' ++ # We do not specify a path in Import Files, so LIBPATH fires. ++ shlibpath_overrides_runpath=yes ++ ;; ++ *,no) # both, prefer aix ++ dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" ++ library_names_spec='$libname$release.a $libname.a' ++ soname_spec='$libname$release$shared_ext$major' ++ # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling ++ postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' ++ postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ++ ;; ++ esac ++ shlibpath_var=LIBPATH ++ fi ++ ;; ++ ++amigaos*) ++ case $host_cpu in ++ powerpc) ++ # Since July 2007 AmigaOS4 officially supports .so libraries. ++ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ ;; ++ m68k) ++ library_names_spec='$libname.ixlibrary $libname.a' ++ # Create ${libname}_ixlibrary.a entries in /sys/libs. ++ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ++ ;; ++ esac ++ ;; ++ ++beos*) ++ library_names_spec='$libname$shared_ext' ++ dynamic_linker="$host_os ld.so" ++ shlibpath_var=LIBRARY_PATH ++ ;; ++ ++bsdi[[45]]*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" ++ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" ++ # the default ld.so.conf also contains /usr/contrib/lib and ++ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow ++ # libtool to hard-code these into programs ++ ;; ++ ++cygwin* | mingw* | pw32* | cegcc*) ++ version_type=windows ++ shrext_cmds=.dll ++ need_version=no ++ need_lib_prefix=no ++ ++ case $GCC,$cc_basename in ++ yes,*) ++ # gcc ++ library_names_spec='$libname.dll.a' ++ # DLL is installed to $(libdir)/../bin by postinstall_cmds ++ postinstall_cmds='base_file=`basename \$file`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname~ ++ chmod a+x \$dldir/$dlname~ ++ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then ++ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; ++ fi' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ shlibpath_overrides_runpath=yes ++ ++ case $host_os in ++ cygwin*) ++ # Cygwin DLLs use 'cyg' prefix rather than 'lib' ++ soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ++m4_if([$1], [],[ ++ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ++ ;; ++ mingw* | cegcc*) ++ # MinGW DLLs use traditional 'lib' prefix ++ soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ++ ;; ++ pw32*) ++ # pw32 DLLs use 'pw' prefix rather than 'lib' ++ library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ++ ;; ++ esac ++ dynamic_linker='Win32 ld.exe' ++ ;; ++ ++ *,cl*) ++ # Native MSVC ++ libname_spec='$name' ++ soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ++ library_names_spec='$libname.dll.lib' ++ ++ case $build_os in ++ mingw*) ++ sys_lib_search_path_spec= ++ lt_save_ifs=$IFS ++ IFS=';' ++ for lt_path in $LIB ++ do ++ IFS=$lt_save_ifs ++ # Let DOS variable expansion print the short 8.3 style file name. ++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` ++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" ++ done ++ IFS=$lt_save_ifs ++ # Convert to MSYS style. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ++ ;; ++ cygwin*) ++ # Convert to unix form, then to dos form, then back to unix form ++ # but this time dos style (no spaces!) so that the unix form looks ++ # like /cygdrive/c/PROGRA~1:/cygdr... ++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` ++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` ++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ ;; ++ *) ++ sys_lib_search_path_spec=$LIB ++ if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then ++ # It is most probably a Windows format PATH. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` ++ else ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ fi ++ # FIXME: find the short name or the path components, as spaces are ++ # common. (e.g. "Program Files" -> "PROGRA~1") ++ ;; ++ esac ++ ++ # DLL is installed to $(libdir)/../bin by postinstall_cmds ++ postinstall_cmds='base_file=`basename \$file`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ shlibpath_overrides_runpath=yes ++ dynamic_linker='Win32 link.exe' ++ ;; ++ ++ *) ++ # Assume MSVC wrapper ++ library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' ++ dynamic_linker='Win32 ld.exe' ++ ;; ++ esac ++ # FIXME: first we should search . and the directory the executable is in ++ shlibpath_var=PATH ++ ;; ++ ++darwin* | rhapsody*) ++ dynamic_linker="$host_os dyld" ++ version_type=darwin ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' ++ soname_spec='$libname$release$major$shared_ext' ++ shlibpath_overrides_runpath=yes ++ shlibpath_var=DYLD_LIBRARY_PATH ++ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' ++m4_if([$1], [],[ ++ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) ++ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ++ ;; ++ ++dgux*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++freebsd* | dragonfly*) ++ # DragonFly does not have aout. When/if they implement a new ++ # versioning mechanism, adjust this. ++ if test -x /usr/bin/objformat; then ++ objformat=`/usr/bin/objformat` ++ else ++ case $host_os in ++ freebsd[[23]].*) objformat=aout ;; ++ *) objformat=elf ;; ++ esac ++ fi ++ version_type=freebsd-$objformat ++ case $version_type in ++ freebsd-elf*) ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ need_version=no ++ need_lib_prefix=no ++ ;; ++ freebsd-*) ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' ++ need_version=yes ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_os in ++ freebsd2.*) ++ shlibpath_overrides_runpath=yes ++ ;; ++ freebsd3.[[01]]* | freebsdelf3.[[01]]*) ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ ++ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ ;; ++ *) # from 4.6 on, and DragonFly ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ esac ++ ;; ++ ++haiku*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_lib_prefix=no ++ need_version=no ++ dynamic_linker="$host_os runtime_loader" ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ shlibpath_var=LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' ++ hardcode_into_libs=yes ++ ;; ++ ++hpux9* | hpux10* | hpux11*) ++ # Give a soname corresponding to the major version so that dld.sl refuses to ++ # link against other versions. ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ case $host_cpu in ++ ia64*) ++ shrext_cmds='.so' ++ hardcode_into_libs=yes ++ dynamic_linker="$host_os dld.so" ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ if test 32 = "$HPUX_IA64_MODE"; then ++ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" ++ sys_lib_dlsearch_path_spec=/usr/lib/hpux32 ++ else ++ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" ++ sys_lib_dlsearch_path_spec=/usr/lib/hpux64 ++ fi ++ ;; ++ hppa*64*) ++ shrext_cmds='.sl' ++ hardcode_into_libs=yes ++ dynamic_linker="$host_os dld.sl" ++ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH ++ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" ++ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ++ ;; ++ *) ++ shrext_cmds='.sl' ++ dynamic_linker="$host_os dld.sl" ++ shlibpath_var=SHLIB_PATH ++ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ ;; ++ esac ++ # HP-UX runs *really* slowly unless shared libraries are mode 555, ... ++ postinstall_cmds='chmod 555 $lib' ++ # or fails outright, so override atomically: ++ install_override_mode=555 ++ ;; ++ ++interix[[3-9]]*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $host_os in ++ nonstopux*) version_type=nonstopux ;; ++ *) ++ if test yes = "$lt_cv_prog_gnu_ld"; then ++ version_type=linux # correct to gnu/linux during the next big refactor ++ else ++ version_type=irix ++ fi ;; ++ esac ++ need_lib_prefix=no ++ need_version=no ++ soname_spec='$libname$release$shared_ext$major' ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' ++ case $host_os in ++ irix5* | nonstopux*) ++ libsuff= shlibsuff= ++ ;; ++ *) ++ case $LD in # libtool.m4 will add one of these switches to LD ++ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") ++ libsuff= shlibsuff= libmagic=32-bit;; ++ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") ++ libsuff=32 shlibsuff=N32 libmagic=N32;; ++ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") ++ libsuff=64 shlibsuff=64 libmagic=64-bit;; ++ *) libsuff= shlibsuff= libmagic=never-match;; ++ esac ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" ++ sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" ++ hardcode_into_libs=yes ++ ;; ++ ++# No shared lib support for Linux oldld, aout, or coff. ++linux*oldld* | linux*aout* | linux*coff*) ++ dynamic_linker=no ++ ;; ++ ++linux*android*) ++ version_type=none # Android doesn't support versioned libraries. ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext' ++ soname_spec='$libname$release$shared_ext' ++ finish_cmds= ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ ++ # 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 ++ ++ dynamic_linker='Android linker' ++ # Don't embed -rpath directories since the linker doesn't support them. ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ ;; ++ ++# This must be glibc/ELF. ++linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ ++ # Some binutils ld are patched to set DT_RUNPATH ++ AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], ++ [lt_cv_shlibpath_overrides_runpath=no ++ save_LDFLAGS=$LDFLAGS ++ save_libdir=$libdir ++ eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ ++ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" ++ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], ++ [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], ++ [lt_cv_shlibpath_overrides_runpath=yes])]) ++ LDFLAGS=$save_LDFLAGS ++ libdir=$save_libdir ++ ]) ++ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath ++ ++ # This implies no fast_install, which is unacceptable. ++ # Some rework will be needed to allow for fast_install ++ # before this can be enabled. ++ hardcode_into_libs=yes ++ ++ # Add ABI-specific directories to the system library path. ++ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" ++ ++ # Ideally, we could use ldconfig to report *all* directores which are ++ # searched for libraries, however this is still not possible. Aside from not ++ # being certain /sbin/ldconfig is available, command ++ # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, ++ # even though it is searched at run-time. Try to do the best guess by ++ # appending ld.so.conf contents (and includes) to the search path. ++ if test -f /etc/ld.so.conf; then ++ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` ++ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $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' ++ ;; ++ ++netbsd*) ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ dynamic_linker='NetBSD (a.out) ld.so' ++ else ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ dynamic_linker='NetBSD ld.elf_so' ++ fi ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ ++newsos6) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ ;; ++ ++*nto* | *qnx*) ++ version_type=qnx ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ dynamic_linker='ldqnx.so' ++ ;; ++ ++openbsd* | bitrig*) ++ version_type=sunos ++ sys_lib_dlsearch_path_spec=/usr/lib ++ need_lib_prefix=no ++ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then ++ need_version=no ++ else ++ need_version=yes ++ fi ++ 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 ++ shlibpath_overrides_runpath=yes ++ ;; ++ ++os2*) ++ libname_spec='$name' ++ version_type=windows ++ shrext_cmds=.dll ++ need_version=no ++ need_lib_prefix=no ++ # OS/2 can only load a DLL with a base name of 8 characters or less. ++ soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; ++ v=$($ECHO $release$versuffix | tr -d .-); ++ n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); ++ $ECHO $n$v`$shared_ext' ++ library_names_spec='${libname}_dll.$libext' ++ dynamic_linker='OS/2 ld.exe' ++ shlibpath_var=BEGINLIBPATH ++ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" ++ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ++ postinstall_cmds='base_file=`basename \$file`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname~ ++ chmod a+x \$dldir/$dlname~ ++ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then ++ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; ++ fi' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ ;; ++ ++osf3* | osf4* | osf5*) ++ version_type=osf ++ need_lib_prefix=no ++ need_version=no ++ soname_spec='$libname$release$shared_ext$major' ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" ++ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ++ ;; ++ ++rdos*) ++ dynamic_linker=no ++ ;; ++ ++solaris*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ # ldd complains unless libraries are executable ++ postinstall_cmds='chmod +x $lib' ++ ;; ++ ++sunos4*) ++ version_type=sunos ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' ++ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ if test yes = "$with_gnu_ld"; then ++ need_lib_prefix=no ++ fi ++ need_version=yes ++ ;; ++ ++sysv4 | sysv4.3*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_vendor in ++ sni) ++ shlibpath_overrides_runpath=no ++ need_lib_prefix=no ++ runpath_var=LD_RUN_PATH ++ ;; ++ siemens) ++ need_lib_prefix=no ++ ;; ++ motorola) ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ++ ;; ++ esac ++ ;; ++ ++sysv4*MP*) ++ if test -d /usr/nec; then ++ version_type=linux # correct to gnu/linux during the next big refactor ++ library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' ++ soname_spec='$libname$shared_ext.$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ fi ++ ;; ++ ++sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) ++ version_type=sco ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ if test yes = "$with_gnu_ld"; then ++ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' ++ else ++ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' ++ case $host_os in ++ sco3.2v5*) ++ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ++ ;; ++ esac ++ fi ++ sys_lib_dlsearch_path_spec='/usr/lib' ++ ;; ++ ++tpf*) ++ # TPF is a cross-target only. Preferred cross-host = GNU/Linux. ++ version_type=linux # correct to gnu/linux during the next big refactor ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ ;; ++ ++uts4*) ++ version_type=linux # correct to gnu/linux during the next big refactor ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ soname_spec='$libname$release$shared_ext$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++*) ++ dynamic_linker=no ++ ;; ++esac ++AC_MSG_RESULT([$dynamic_linker]) ++test no = "$dynamic_linker" && can_build_shared=no ++ ++variables_saved_for_relink="PATH $shlibpath_var $runpath_var" ++if test yes = "$GCC"; then ++ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" ++fi ++ ++if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then ++ sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec ++fi ++ ++if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then ++ sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec ++fi ++ ++# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... ++configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec ++ ++# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code ++func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" ++ ++# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool ++configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH ++ ++_LT_DECL([], [variables_saved_for_relink], [1], ++ [Variables whose values should be saved in libtool wrapper scripts and ++ restored at link time]) ++_LT_DECL([], [need_lib_prefix], [0], ++ [Do we need the "lib" prefix for modules?]) ++_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) ++_LT_DECL([], [version_type], [0], [Library versioning type]) ++_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) ++_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) ++_LT_DECL([], [shlibpath_overrides_runpath], [0], ++ [Is shlibpath searched before the hard-coded library search path?]) ++_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) ++_LT_DECL([], [library_names_spec], [1], ++ [[List of archive names. First name is the real one, the rest are links. ++ The last name is the one that the linker finds with -lNAME]]) ++_LT_DECL([], [soname_spec], [1], ++ [[The coded name of the library, if different from the real name]]) ++_LT_DECL([], [install_override_mode], [1], ++ [Permission mode override for installation of shared libraries]) ++_LT_DECL([], [postinstall_cmds], [2], ++ [Command to use after installation of a shared archive]) ++_LT_DECL([], [postuninstall_cmds], [2], ++ [Command to use after uninstallation of a shared archive]) ++_LT_DECL([], [finish_cmds], [2], ++ [Commands used to finish a libtool library installation in a directory]) ++_LT_DECL([], [finish_eval], [1], ++ [[As "finish_cmds", except a single script fragment to be evaled but ++ not shown]]) ++_LT_DECL([], [hardcode_into_libs], [0], ++ [Whether we should hardcode library paths into libraries]) ++_LT_DECL([], [sys_lib_search_path_spec], [2], ++ [Compile-time system search path for libraries]) ++_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], ++ [Detected run-time system search path for libraries]) ++_LT_DECL([], [configure_time_lt_sys_library_path], [2], ++ [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) ++])# _LT_SYS_DYNAMIC_LINKER ++ ++ ++# _LT_PATH_TOOL_PREFIX(TOOL) ++# -------------------------- ++# find a file program that can recognize shared library ++AC_DEFUN([_LT_PATH_TOOL_PREFIX], ++[m4_require([_LT_DECL_EGREP])dnl ++AC_MSG_CHECKING([for $1]) ++AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, ++[case $MAGIC_CMD in ++[[\\/*] | ?:[\\/]*]) ++ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ++ ;; ++*) ++ lt_save_MAGIC_CMD=$MAGIC_CMD ++ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ++dnl $ac_dummy forces splitting on constant user-supplied paths. ++dnl POSIX.2 word splitting is done only on the output of word expansions, ++dnl not every word. This closes a longstanding sh security hole. ++ ac_dummy="m4_if([$2], , $PATH, [$2])" ++ for ac_dir in $ac_dummy; do ++ IFS=$lt_save_ifs ++ test -z "$ac_dir" && ac_dir=. ++ if test -f "$ac_dir/$1"; then ++ lt_cv_path_MAGIC_CMD=$ac_dir/"$1" ++ if test -n "$file_magic_test_file"; then ++ case $deplibs_check_method in ++ "file_magic "*) ++ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` ++ MAGIC_CMD=$lt_cv_path_MAGIC_CMD ++ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ++ $EGREP "$file_magic_regex" > /dev/null; then ++ : ++ else ++ cat <<_LT_EOF 1>&2 ++ ++*** Warning: the command libtool uses to detect shared libraries, ++*** $file_magic_cmd, produces output that libtool cannot recognize. ++*** The result is that libtool may fail to recognize shared libraries ++*** as such. This will affect the creation of libtool libraries that ++*** depend on shared libraries, but programs linked with such libtool ++*** libraries will work regardless of this problem. Nevertheless, you ++*** may want to report the problem to your system manager and/or to ++*** bug-libtool@gnu.org ++ ++_LT_EOF ++ fi ;; ++ esac ++ fi ++ break ++ fi ++ done ++ IFS=$lt_save_ifs ++ MAGIC_CMD=$lt_save_MAGIC_CMD ++ ;; ++esac]) ++MAGIC_CMD=$lt_cv_path_MAGIC_CMD ++if test -n "$MAGIC_CMD"; then ++ AC_MSG_RESULT($MAGIC_CMD) ++else ++ AC_MSG_RESULT(no) ++fi ++_LT_DECL([], [MAGIC_CMD], [0], ++ [Used to examine libraries when file_magic_cmd begins with "file"])dnl ++])# _LT_PATH_TOOL_PREFIX ++ ++# Old name: ++AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) ++ ++ ++# _LT_PATH_MAGIC ++# -------------- ++# find a file program that can recognize a shared library ++m4_defun([_LT_PATH_MAGIC], ++[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) ++if test -z "$lt_cv_path_MAGIC_CMD"; then ++ if test -n "$ac_tool_prefix"; then ++ _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) ++ else ++ MAGIC_CMD=: ++ fi ++fi ++])# _LT_PATH_MAGIC ++ ++ ++# LT_PATH_LD ++# ---------- ++# find the pathname to the GNU or non-GNU linker ++AC_DEFUN([LT_PATH_LD], ++[AC_REQUIRE([AC_PROG_CC])dnl ++AC_REQUIRE([AC_CANONICAL_HOST])dnl ++AC_REQUIRE([AC_CANONICAL_BUILD])dnl ++m4_require([_LT_DECL_SED])dnl ++m4_require([_LT_DECL_EGREP])dnl ++m4_require([_LT_PROG_ECHO_BACKSLASH])dnl ++ ++AC_ARG_WITH([gnu-ld], ++ [AS_HELP_STRING([--with-gnu-ld], ++ [assume the C compiler uses GNU ld @<:@default=no@:>@])], ++ [test no = "$withval" || with_gnu_ld=yes], ++ [with_gnu_ld=no])dnl ++ ++ac_prog=ld ++if test yes = "$GCC"; 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 yes = "$with_gnu_ld"; 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 conftest.i ++cat conftest.i conftest.i >conftest2.i ++: ${lt_DD:=$DD} ++AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], ++[if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then ++ cmp -s conftest.i conftest.out \ ++ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: ++fi]) ++rm -f conftest.i conftest2.i conftest.out]) ++])# _LT_PATH_DD ++ ++ ++# _LT_CMD_TRUNCATE ++# ---------------- ++# find command to truncate a binary pipe ++m4_defun([_LT_CMD_TRUNCATE], ++[m4_require([_LT_PATH_DD]) ++AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], ++[printf 0123456789abcdef0123456789abcdef >conftest.i ++cat conftest.i conftest.i >conftest2.i ++lt_cv_truncate_bin= ++if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then ++ cmp -s conftest.i conftest.out \ ++ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" ++fi ++rm -f conftest.i conftest2.i conftest.out ++test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) ++_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], ++ [Command to truncate a binary pipe]) ++])# _LT_CMD_TRUNCATE ++ ++ ++# _LT_CHECK_MAGIC_METHOD ++# ---------------------- ++# how to check for library dependencies ++# -- PORTME fill in with the dynamic library characteristics ++m4_defun([_LT_CHECK_MAGIC_METHOD], ++[m4_require([_LT_DECL_EGREP]) ++m4_require([_LT_DECL_OBJDUMP]) ++AC_CACHE_CHECK([how to recognize dependent libraries], ++lt_cv_deplibs_check_method, ++[lt_cv_file_magic_cmd='$MAGIC_CMD' ++lt_cv_file_magic_test_file= ++lt_cv_deplibs_check_method='unknown' ++# Need to set the preceding variable on all platforms that support ++# interlibrary dependencies. ++# 'none' -- dependencies not supported. ++# 'unknown' -- same as none, but documents that we really don't know. ++# 'pass_all' -- all dependencies passed with no checks. ++# 'test_compile' -- check by making test program. ++# 'file_magic [[regex]]' -- check by looking for files in library path ++# that 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 ++ # Keep this pattern in sync with the one in func_win32_libid. ++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' ++ lt_cv_file_magic_cmd='$OBJDUMP -f' ++ fi ++ ;; ++ ++cegcc*) ++ # use the weaker test based on 'objdump'. See mingw*. ++ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' ++ lt_cv_file_magic_cmd='$OBJDUMP -f' ++ ;; ++ ++darwin* | rhapsody*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++freebsd* | dragonfly*) ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then ++ case $host_cpu in ++ i*86 ) ++ # Not sure whether the presence of OpenBSD here was a mistake. ++ # Let's accept both of them until this is cleared up. ++ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ++ ;; ++ esac ++ else ++ lt_cv_deplibs_check_method=pass_all ++ fi ++ ;; ++ ++haiku*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++hpux10.20* | hpux11*) ++ lt_cv_file_magic_cmd=/usr/bin/file ++ case $host_cpu in ++ ia64*) ++ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' ++ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ++ ;; ++ hppa*64*) ++ [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] ++ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ++ ;; ++ *) ++ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' ++ lt_cv_file_magic_test_file=/usr/lib/libc.sl ++ ;; ++ esac ++ ;; ++ ++interix[[3-9]]*) ++ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here ++ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $LD in ++ *-32|*"-32 ") libmagic=32-bit;; ++ *-n32|*"-n32 ") libmagic=N32;; ++ *-64|*"-64 ") libmagic=64-bit;; ++ *) libmagic=never-match;; ++ esac ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++# This must be glibc/ELF. ++linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++netbsd*) ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then ++ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' ++ else ++ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' ++ fi ++ ;; ++ ++newos6*) ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=/usr/lib/libnls.so ++ ;; ++ ++*nto* | *qnx*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++openbsd* | bitrig*) ++ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then ++ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' ++ else ++ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' ++ fi ++ ;; ++ ++osf3* | osf4* | osf5*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++rdos*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++solaris*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sysv4 | sysv4.3*) ++ case $host_vendor in ++ motorola) ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ++ ;; ++ ncr) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ sequent) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ++ ;; ++ sni) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" ++ lt_cv_file_magic_test_file=/lib/libc.so ++ ;; ++ siemens) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ pc) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ esac ++ ;; ++ ++tpf*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++os2*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++esac ++]) ++ ++file_magic_glob= ++want_nocaseglob=no ++if test "$build" = "$host"; then ++ case $host_os in ++ mingw* | pw32*) ++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then ++ want_nocaseglob=yes ++ else ++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` ++ fi ++ ;; ++ esac ++fi ++ ++file_magic_cmd=$lt_cv_file_magic_cmd ++deplibs_check_method=$lt_cv_deplibs_check_method ++test -z "$deplibs_check_method" && deplibs_check_method=unknown ++ ++_LT_DECL([], [deplibs_check_method], [1], ++ [Method to check whether dependent libraries are shared objects]) ++_LT_DECL([], [file_magic_cmd], [1], ++ [Command to use when deplibs_check_method = "file_magic"]) ++_LT_DECL([], [file_magic_glob], [1], ++ [How to find potential files when deplibs_check_method = "file_magic"]) ++_LT_DECL([], [want_nocaseglob], [1], ++ [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ++])# _LT_CHECK_MAGIC_METHOD ++ ++ ++# LT_PATH_NM ++# ---------- ++# find the pathname to a BSD- or MS-compatible name lister ++AC_DEFUN([LT_PATH_NM], ++[AC_REQUIRE([AC_PROG_CC])dnl ++AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, ++[if test -n "$NM"; then ++ # Let the user override the test. ++ lt_cv_path_NM=$NM ++else ++ lt_nm_to_check=${ac_tool_prefix}nm ++ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then ++ lt_nm_to_check="$lt_nm_to_check nm" ++ fi ++ for lt_tmp_nm in $lt_nm_to_check; do ++ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ++ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do ++ IFS=$lt_save_ifs ++ test -z "$ac_dir" && ac_dir=. ++ tmp_nm=$ac_dir/$lt_tmp_nm ++ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then ++ # Check to see if the nm accepts a BSD-compat flag. ++ # Adding the 'sed 1q' prevents false positives on HP-UX, which says: ++ # nm: unknown option "B" ignored ++ # Tru64's nm complains that /dev/null is an invalid object file ++ # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty ++ case $build_os in ++ mingw*) lt_bad_file=conftest.nm/nofile ;; ++ *) lt_bad_file=/dev/null ;; ++ esac ++ case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in ++ *$lt_bad_file* | *'Invalid file or object type'*) ++ lt_cv_path_NM="$tmp_nm -B" ++ break 2 ++ ;; ++ *) ++ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in ++ */dev/null*) ++ lt_cv_path_NM="$tmp_nm -p" ++ break 2 ++ ;; ++ *) ++ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but ++ continue # so that we can try to find one that supports BSD flags ++ ;; ++ esac ++ ;; ++ esac ++ fi ++ done ++ IFS=$lt_save_ifs ++ done ++ : ${lt_cv_path_NM=no} ++fi]) ++if test no != "$lt_cv_path_NM"; then ++ NM=$lt_cv_path_NM ++else ++ # Didn't find any BSD compatible name lister, look for dumpbin. ++ if test -n "$DUMPBIN"; then : ++ # Let the user override the test. ++ else ++ AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) ++ case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in ++ *COFF*) ++ DUMPBIN="$DUMPBIN -symbols -headers" ++ ;; ++ *) ++ DUMPBIN=: ++ ;; ++ esac ++ fi ++ AC_SUBST([DUMPBIN]) ++ if test : != "$DUMPBIN"; then ++ NM=$DUMPBIN ++ fi ++fi ++test -z "$NM" && NM=nm ++AC_SUBST([NM]) ++_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl ++ ++AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], ++ [lt_cv_nm_interface="BSD nm" ++ echo "int some_variable = 0;" > conftest.$ac_ext ++ (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) ++ (eval "$ac_compile" 2>conftest.err) ++ cat conftest.err >&AS_MESSAGE_LOG_FD ++ (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) ++ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) ++ cat conftest.err >&AS_MESSAGE_LOG_FD ++ (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) ++ cat conftest.out >&AS_MESSAGE_LOG_FD ++ if $GREP 'External.*some_variable' conftest.out > /dev/null; then ++ lt_cv_nm_interface="MS dumpbin" ++ fi ++ rm -f conftest*]) ++])# LT_PATH_NM ++ ++# Old names: ++AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) ++AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AM_PROG_NM], []) ++dnl AC_DEFUN([AC_PROG_NM], []) ++ ++# _LT_CHECK_SHAREDLIB_FROM_LINKLIB ++# -------------------------------- ++# how to determine the name of the shared library ++# associated with a specific link library. ++# -- PORTME fill in with the dynamic library characteristics ++m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], ++[m4_require([_LT_DECL_EGREP]) ++m4_require([_LT_DECL_OBJDUMP]) ++m4_require([_LT_DECL_DLLTOOL]) ++AC_CACHE_CHECK([how to associate runtime and link libraries], ++lt_cv_sharedlib_from_linklib_cmd, ++[lt_cv_sharedlib_from_linklib_cmd='unknown' ++ ++case $host_os in ++cygwin* | mingw* | pw32* | cegcc*) ++ # two different shell functions defined in ltmain.sh; ++ # decide which one to use based on capabilities of $DLLTOOL ++ case `$DLLTOOL --help 2>&1` in ++ *--identify-strict*) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ++ ;; ++ *) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ++ ;; ++ esac ++ ;; ++*) ++ # fallback: assume linklib IS sharedlib ++ lt_cv_sharedlib_from_linklib_cmd=$ECHO ++ ;; ++esac ++]) ++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd ++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO ++ ++_LT_DECL([], [sharedlib_from_linklib_cmd], [1], ++ [Command to associate shared and link libraries]) ++])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB ++ ++ ++# _LT_PATH_MANIFEST_TOOL ++# ---------------------- ++# locate the manifest tool ++m4_defun([_LT_PATH_MANIFEST_TOOL], ++[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) ++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt ++AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], ++ [lt_cv_path_mainfest_tool=no ++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD ++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out ++ cat conftest.err >&AS_MESSAGE_LOG_FD ++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then ++ lt_cv_path_mainfest_tool=yes ++ fi ++ rm -f conftest*]) ++if test yes != "$lt_cv_path_mainfest_tool"; then ++ MANIFEST_TOOL=: ++fi ++_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ++])# _LT_PATH_MANIFEST_TOOL ++ ++ ++# _LT_DLL_DEF_P([FILE]) ++# --------------------- ++# True iff FILE is a Windows DLL '.def' file. ++# Keep in sync with func_dll_def_p in the libtool script ++AC_DEFUN([_LT_DLL_DEF_P], ++[dnl ++ test DEF = "`$SED -n dnl ++ -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace ++ -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments ++ -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl ++ -e q dnl Only consider the first "real" line ++ $1`" dnl ++])# _LT_DLL_DEF_P ++ ++ ++# LT_LIB_M ++# -------- ++# check for math library ++AC_DEFUN([LT_LIB_M], ++[AC_REQUIRE([AC_CANONICAL_HOST])dnl ++LIBM= ++case $host in ++*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) ++ # These system don't have libm, or don't need it ++ ;; ++*-ncr-sysv4.3*) ++ AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw) ++ AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ++ ;; ++*) ++ AC_CHECK_LIB(m, cos, LIBM=-lm) ++ ;; ++esac ++AC_SUBST([LIBM]) ++])# LT_LIB_M ++ ++# Old name: ++AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_CHECK_LIBM], []) ++ ++ ++# _LT_COMPILER_NO_RTTI([TAGNAME]) ++# ------------------------------- ++m4_defun([_LT_COMPILER_NO_RTTI], ++[m4_require([_LT_TAG_COMPILER])dnl ++ ++_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= ++ ++if test yes = "$GCC"; then ++ case $cc_basename in ++ nvcc*) ++ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; ++ *) ++ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; ++ esac ++ ++ _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], ++ lt_cv_prog_compiler_rtti_exceptions, ++ [-fno-rtti -fno-exceptions], [], ++ [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) ++fi ++_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], ++ [Compiler flag to turn off builtin functions]) ++])# _LT_COMPILER_NO_RTTI ++ ++ ++# _LT_CMD_GLOBAL_SYMBOLS ++# ---------------------- ++m4_defun([_LT_CMD_GLOBAL_SYMBOLS], ++[AC_REQUIRE([AC_CANONICAL_HOST])dnl ++AC_REQUIRE([AC_PROG_CC])dnl ++AC_REQUIRE([AC_PROG_AWK])dnl ++AC_REQUIRE([LT_PATH_NM])dnl ++AC_REQUIRE([LT_PATH_LD])dnl ++m4_require([_LT_DECL_SED])dnl ++m4_require([_LT_DECL_EGREP])dnl ++m4_require([_LT_TAG_COMPILER])dnl ++ ++# Check for command to grab the raw symbol name followed by C symbol from nm. ++AC_MSG_CHECKING([command to parse $NM output from $compiler object]) ++AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], ++[ ++# These are sane defaults that work on at least a few old systems. ++# [They come from Ultrix. What could be older than Ultrix?!! ;)] ++ ++# Character class describing NM global symbol codes. ++symcode='[[BCDEGRST]]' ++ ++# Regexp to match symbols that can be accessed directly from C. ++sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' ++ ++# Define system-specific variables. ++case $host_os in ++aix*) ++ symcode='[[BCDT]]' ++ ;; ++cygwin* | mingw* | pw32* | cegcc*) ++ symcode='[[ABCDGISTW]]' ++ ;; ++hpux*) ++ if test ia64 = "$host_cpu"; then ++ symcode='[[ABCDEGRST]]' ++ fi ++ ;; ++irix* | nonstopux*) ++ symcode='[[BCDEGRST]]' ++ ;; ++osf*) ++ symcode='[[BCDEGQRST]]' ++ ;; ++solaris*) ++ symcode='[[BDRT]]' ++ ;; ++sco3.2v5*) ++ symcode='[[DT]]' ++ ;; ++sysv4.2uw2*) ++ symcode='[[DT]]' ++ ;; ++sysv5* | sco5v6* | unixware* | OpenUNIX*) ++ symcode='[[ABDT]]' ++ ;; ++sysv4) ++ symcode='[[DFNSTU]]' ++ ;; ++esac ++ ++# If we're using GNU nm, then use its standard symbol codes. ++case `$NM -V 2>&1` in ++*GNU* | *'with BFD'*) ++ symcode='[[ABCDGIRSTW]]' ;; ++esac ++ ++if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ # Gets list of data symbols to import. ++ lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" ++ # Adjust the below global symbol transforms to fixup imported variables. ++ lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" ++ lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" ++ lt_c_name_lib_hook="\ ++ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ ++ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" ++else ++ # Disable hooks by default. ++ lt_cv_sys_global_symbol_to_import= ++ lt_cdecl_hook= ++ lt_c_name_hook= ++ lt_c_name_lib_hook= ++fi ++ ++# Transform an extracted symbol line into a proper C declaration. ++# Some systems (esp. on ia64) link data and code symbols differently, ++# so use this general approach. ++lt_cv_sys_global_symbol_to_cdecl="sed -n"\ ++$lt_cdecl_hook\ ++" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ ++" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" ++ ++# Transform an extracted symbol line into symbol name and symbol address ++lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ ++$lt_c_name_hook\ ++" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ ++" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" ++ ++# Transform an extracted symbol line into symbol name with lib prefix and ++# symbol address. ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ ++$lt_c_name_lib_hook\ ++" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ ++" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ ++" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" ++ ++# Handle CRLF in mingw tool chain ++opt_cr= ++case $build_os in ++mingw*) ++ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ++ ;; ++esac ++ ++# Try without a prefix underscore, then with it. ++for ac_symprfx in "" "_"; do ++ ++ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. ++ symxfrm="\\1 $ac_symprfx\\2 \\2" ++ ++ # Write the raw and C identifiers. ++ if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ # Fake it for dumpbin and say T for any non-static function, ++ # D for any global variable and I for any imported variable. ++ # Also find C++ and __fastcall symbols from MSVC++, ++ # which start with @ or ?. ++ lt_cv_sys_global_symbol_pipe="$AWK ['"\ ++" {last_section=section; section=\$ 3};"\ ++" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ ++" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ ++" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ ++" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ ++" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ ++" \$ 0!~/External *\|/{next};"\ ++" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ ++" {if(hide[section]) next};"\ ++" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ ++" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ ++" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ ++" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ ++" ' prfx=^$ac_symprfx]" ++ else ++ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" ++ fi ++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" ++ ++ # Check to see that the pipe works correctly. ++ pipe_works=no ++ ++ rm -f conftest* ++ cat > conftest.$ac_ext <<_LT_EOF ++#ifdef __cplusplus ++extern "C" { ++#endif ++char nm_test_var; ++void nm_test_func(void); ++void nm_test_func(void){} ++#ifdef __cplusplus ++} ++#endif ++int main(){nm_test_var='a';nm_test_func();return(0);} ++_LT_EOF ++ ++ if AC_TRY_EVAL(ac_compile); then ++ # Now try to grab the symbols. ++ nlist=conftest.nm ++ if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then ++ # Try sorting and uniquifying the output. ++ if sort "$nlist" | uniq > "$nlist"T; then ++ mv -f "$nlist"T "$nlist" ++ else ++ rm -f "$nlist"T ++ fi ++ ++ # Make sure that we snagged all the symbols we need. ++ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then ++ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then ++ cat <<_LT_EOF > conftest.$ac_ext ++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ ++#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE ++/* DATA imports from DLLs on WIN32 can't be const, because runtime ++ relocations are performed -- see ld's documentation on pseudo-relocs. */ ++# define LT@&t@_DLSYM_CONST ++#elif defined __osf__ ++/* This system does not cope well with relocations in const data. */ ++# define LT@&t@_DLSYM_CONST ++#else ++# define LT@&t@_DLSYM_CONST const ++#endif ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++_LT_EOF ++ # Now generate the symbol file. ++ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' ++ ++ cat <<_LT_EOF >> conftest.$ac_ext ++ ++/* The mapping between symbol names and symbols. */ ++LT@&t@_DLSYM_CONST struct { ++ const char *name; ++ void *address; ++} ++lt__PROGRAM__LTX_preloaded_symbols[[]] = ++{ ++ { "@PROGRAM@", (void *) 0 }, ++_LT_EOF ++ $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext ++ cat <<\_LT_EOF >> conftest.$ac_ext ++ {0, (void *) 0} ++}; ++ ++/* This works around a problem in FreeBSD linker */ ++#ifdef FREEBSD_WORKAROUND ++static const void *lt_preloaded_setup() { ++ return lt__PROGRAM__LTX_preloaded_symbols; ++} ++#endif ++ ++#ifdef __cplusplus ++} ++#endif ++_LT_EOF ++ # Now try linking the two files. ++ mv conftest.$ac_objext conftstm.$ac_objext ++ lt_globsym_save_LIBS=$LIBS ++ lt_globsym_save_CFLAGS=$CFLAGS ++ LIBS=conftstm.$ac_objext ++ CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" ++ if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then ++ pipe_works=yes ++ fi ++ LIBS=$lt_globsym_save_LIBS ++ CFLAGS=$lt_globsym_save_CFLAGS ++ else ++ echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD ++ fi ++ else ++ echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD ++ fi ++ else ++ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD ++ fi ++ else ++ echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD ++ cat conftest.$ac_ext >&5 ++ fi ++ rm -rf conftest* conftst* ++ ++ # Do not use the global_symbol_pipe unless it works. ++ if test yes = "$pipe_works"; then ++ break ++ else ++ lt_cv_sys_global_symbol_pipe= ++ fi ++done ++]) ++if test -z "$lt_cv_sys_global_symbol_pipe"; then ++ lt_cv_sys_global_symbol_to_cdecl= ++fi ++if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then ++ AC_MSG_RESULT(failed) ++else ++ AC_MSG_RESULT(ok) ++fi ++ ++# Response file support. ++if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ nm_file_list_spec='@' ++elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then ++ nm_file_list_spec='@' ++fi ++ ++_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], ++ [Take the output of nm and produce a listing of raw symbols and C names]) ++_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], ++ [Transform the output of nm in a proper C declaration]) ++_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], ++ [Transform the output of nm into a list of symbols to manually relocate]) ++_LT_DECL([global_symbol_to_c_name_address], ++ [lt_cv_sys_global_symbol_to_c_name_address], [1], ++ [Transform the output of nm in a C name address pair]) ++_LT_DECL([global_symbol_to_c_name_address_lib_prefix], ++ [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], ++ [Transform the output of nm in a C name address pair when lib prefix is needed]) ++_LT_DECL([nm_interface], [lt_cv_nm_interface], [1], ++ [The name lister interface]) ++_LT_DECL([], [nm_file_list_spec], [1], ++ [Specify filename containing input files for $NM]) ++]) # _LT_CMD_GLOBAL_SYMBOLS ++ ++ ++# _LT_COMPILER_PIC([TAGNAME]) ++# --------------------------- ++m4_defun([_LT_COMPILER_PIC], ++[m4_require([_LT_TAG_COMPILER])dnl ++_LT_TAGVAR(lt_prog_compiler_wl, $1)= ++_LT_TAGVAR(lt_prog_compiler_pic, $1)= ++_LT_TAGVAR(lt_prog_compiler_static, $1)= ++ ++m4_if([$1], [CXX], [ ++ # C++ specific cases for pic, static, wl, etc. ++ if test yes = "$GXX"; then ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ++ ++ case $host_os in ++ aix*) ++ # All AIX code is PIC. ++ if test ia64 = "$host_cpu"; then ++ # AIX 5 now supports IA64 processor ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ fi ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ++ ;; ++ ++ amigaos*) ++ case $host_cpu in ++ powerpc) ++ # see comment about AmigaOS4 .so support ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ++ ;; ++ m68k) ++ # FIXME: we need at least 68020 code to build shared libraries, but ++ # adding the '-m68020' flag to GCC prevents building anything better, ++ # like '-m68040'. ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ++ ;; ++ esac ++ ;; ++ ++ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) ++ # PIC is the default for these OSes. ++ ;; ++ mingw* | cygwin* | os2* | pw32* | cegcc*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ # Although the cygwin gcc ignores -fPIC, still need this for old-style ++ # (--disable-auto-import) libraries ++ m4_if([$1], [GCJ], [], ++ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ++ case $host_os in ++ os2*) ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ++ ;; ++ esac ++ ;; ++ darwin* | rhapsody*) ++ # PIC is the default on this platform ++ # Common symbols not allowed in MH_DYLIB files ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ++ ;; ++ *djgpp*) ++ # DJGPP does not support shared libraries at all ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)= ++ ;; ++ haiku*) ++ # PIC is the default for Haiku. ++ # The "-static" flag exists, but is broken. ++ _LT_TAGVAR(lt_prog_compiler_static, $1)= ++ ;; ++ interix[[3-9]]*) ++ # Interix 3.x gcc -fpic/-fPIC options generate broken code. ++ # Instead, we relocate shared libraries at runtime. ++ ;; ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic ++ fi ++ ;; ++ hpux*) ++ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit ++ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag ++ # sets the default TLS model and affects inlining. ++ case $host_cpu in ++ hppa*64*) ++ ;; ++ *) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ++ ;; ++ esac ++ ;; ++ *qnx* | *nto*) ++ # QNX uses GNU C++, but need to define -shared option too, otherwise ++ # it will coredump. ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ++ ;; ++ *) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ++ ;; ++ esac ++ else ++ case $host_os in ++ aix[[4-9]]*) ++ # All AIX code is PIC. ++ if test ia64 = "$host_cpu"; then ++ # AIX 5 now supports IA64 processor ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ else ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' ++ fi ++ ;; ++ chorus*) ++ case $cc_basename in ++ cxch68*) ++ # Green Hills C++ Compiler ++ # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ++ ;; ++ esac ++ ;; ++ mingw* | cygwin* | os2* | pw32* | cegcc*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ m4_if([$1], [GCJ], [], ++ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ++ ;; ++ dgux*) ++ case $cc_basename in ++ ec++*) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ ;; ++ ghcx*) ++ # Green Hills C++ Compiler ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ freebsd* | dragonfly*) ++ # FreeBSD uses GNU C++ ++ ;; ++ hpux9* | hpux10* | hpux11*) ++ case $cc_basename in ++ CC*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' ++ if test ia64 != "$host_cpu"; then ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ++ fi ++ ;; ++ aCC*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' ++ case $host_cpu in ++ hppa*64*|ia64*) ++ # +Z the default ++ ;; ++ *) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ++ ;; ++ esac ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ interix*) ++ # This is c89, which is MS Visual C++ (no shared libs) ++ # Anyone wants to do a port? ++ ;; ++ irix5* | irix6* | nonstopux*) ++ case $cc_basename in ++ CC*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ++ # CC pic flag -KPIC is the default. ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) ++ case $cc_basename in ++ KCC*) ++ # KAI C++ Compiler ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ++ ;; ++ ecpc* ) ++ # old Intel C++ for x86_64, which still supported -KPIC. ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ++ ;; ++ icpc* ) ++ # Intel C++, used to be incompatible with GCC. ++ # ICC 10 doesn't accept -KPIC any more. ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ++ ;; ++ pgCC* | pgcpp*) ++ # Portland Group C++ compiler ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ ;; ++ cxx*) ++ # Compaq C++ ++ # Make sure the PIC flag is empty. It appears that all Alpha ++ # Linux and Compaq Tru64 Unix objects are PIC. ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)= ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ++ ;; ++ xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) ++ # IBM XL 8.0, 9.0 on PPC and BlueGene ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ++ ;; ++ *) ++ case `$CC -V 2>&1 | sed 5q` in ++ *Sun\ C*) ++ # Sun C++ 5.9 ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ++ ;; ++ esac ++ ;; ++ esac ++ ;; ++ lynxos*) ++ ;; ++ m88k*) ++ ;; ++ mvs*) ++ case $cc_basename in ++ cxx*) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ netbsd*) ++ ;; ++ *qnx* | *nto*) ++ # QNX uses GNU C++, but need to define -shared option too, otherwise ++ # it will coredump. ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ++ ;; ++ osf3* | osf4* | osf5*) ++ case $cc_basename in ++ KCC*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ++ ;; ++ RCC*) ++ # Rational C++ 2.4.1 ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ++ ;; ++ cxx*) ++ # Digital/Compaq C++ ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ # Make sure the PIC flag is empty. It appears that all Alpha ++ # Linux and Compaq Tru64 Unix objects are PIC. ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)= ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ psos*) ++ ;; ++ solaris*) ++ case $cc_basename in ++ CC* | sunCC*) ++ # Sun C++ 4.2, 5.x and Centerline C++ ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ++ ;; ++ gcx*) ++ # Green Hills C++ Compiler ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ sunos4*) ++ case $cc_basename in ++ CC*) ++ # Sun C++ 4.x ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ ;; ++ lcc*) ++ # Lucid ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) ++ case $cc_basename in ++ CC*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ ;; ++ esac ++ ;; ++ tandem*) ++ case $cc_basename in ++ NCC*) ++ # NonStop-UX NCC 3.20 ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ vxworks*) ++ ;; ++ *) ++ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ++ ;; ++ esac ++ fi ++], ++[ ++ if test yes = "$GCC"; then ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ++ ++ case $host_os in ++ aix*) ++ # All AIX code is PIC. ++ if test ia64 = "$host_cpu"; then ++ # AIX 5 now supports IA64 processor ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ fi ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ++ ;; ++ ++ amigaos*) ++ case $host_cpu in ++ powerpc) ++ # see comment about AmigaOS4 .so support ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ++ ;; ++ m68k) ++ # FIXME: we need at least 68020 code to build shared libraries, but ++ # adding the '-m68020' flag to GCC prevents building anything better, ++ # like '-m68040'. ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ++ ;; ++ esac ++ ;; ++ ++ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) ++ # PIC is the default for these OSes. ++ ;; ++ ++ mingw* | cygwin* | pw32* | os2* | cegcc*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ # Although the cygwin gcc ignores -fPIC, still need this for old-style ++ # (--disable-auto-import) libraries ++ m4_if([$1], [GCJ], [], ++ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ++ case $host_os in ++ os2*) ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ++ ;; ++ esac ++ ;; ++ ++ darwin* | rhapsody*) ++ # PIC is the default on this platform ++ # Common symbols not allowed in MH_DYLIB files ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ++ ;; ++ ++ haiku*) ++ # PIC is the default for Haiku. ++ # The "-static" flag exists, but is broken. ++ _LT_TAGVAR(lt_prog_compiler_static, $1)= ++ ;; ++ ++ hpux*) ++ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit ++ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag ++ # sets the default TLS model and affects inlining. ++ case $host_cpu in ++ hppa*64*) ++ # +Z the default ++ ;; ++ *) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ++ ;; ++ esac ++ ;; ++ ++ interix[[3-9]]*) ++ # Interix 3.x gcc -fpic/-fPIC options generate broken code. ++ # Instead, we relocate shared libraries at runtime. ++ ;; ++ ++ msdosdjgpp*) ++ # Just because we use GCC doesn't mean we suddenly get shared libraries ++ # on systems that don't support them. ++ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ++ enable_shared=no ++ ;; ++ ++ *nto* | *qnx*) ++ # QNX uses GNU C++, but need to define -shared option too, otherwise ++ # it will coredump. ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic ++ fi ++ ;; ++ ++ *) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ++ ;; ++ esac ++ ++ case $cc_basename in ++ nvcc*) # Cuda Compiler Driver 2.2 ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' ++ if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ++ fi ++ ;; ++ esac ++ else ++ # PORTME Check for flag to pass linker flags through the system compiler. ++ case $host_os in ++ aix*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ if test ia64 = "$host_cpu"; then ++ # AIX 5 now supports IA64 processor ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ else ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' ++ fi ++ ;; ++ ++ darwin* | rhapsody*) ++ # PIC is the default on this platform ++ # Common symbols not allowed in MH_DYLIB files ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ++ case $cc_basename in ++ nagfor*) ++ # NAG Fortran compiler ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ ;; ++ esac ++ ;; ++ ++ mingw* | cygwin* | pw32* | os2* | cegcc*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ m4_if([$1], [GCJ], [], ++ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ++ case $host_os in ++ os2*) ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ++ ;; ++ esac ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but ++ # not for PA HP-UX. ++ case $host_cpu in ++ hppa*64*|ia64*) ++ # +Z the default ++ ;; ++ *) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ++ ;; ++ esac ++ # Is there a better lt_prog_compiler_static that works with the bundled CC? ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ # PIC (with -KPIC) is the default. ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ++ ;; ++ ++ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) ++ case $cc_basename in ++ # old Intel for x86_64, which still supported -KPIC. ++ ecc*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ++ ;; ++ # icc used to be incompatible with GCC. ++ # ICC 10 doesn't accept -KPIC any more. ++ icc* | ifort*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ++ ;; ++ # Lahey Fortran 8.1. ++ lf95*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ++ ;; ++ nagfor*) ++ # NAG Fortran compiler ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ ;; ++ tcc*) ++ # Fabrice Bellard et al's Tiny C Compiler ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ++ ;; ++ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) ++ # Portland Group compilers (*not* the Pentium gcc compiler, ++ # which looks to be a dead project) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ ;; ++ ccc*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ # All Alpha code is PIC. ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ++ ;; ++ xl* | bgxl* | bgf* | mpixl*) ++ # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ++ ;; ++ *) ++ case `$CC -V 2>&1 | sed 5q` in ++ *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) ++ # Sun Fortran 8.3 passes all unrecognized flags to the linker ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ++ ;; ++ *Sun\ F* | *Sun*Fortran*) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ++ ;; ++ *Sun\ C*) ++ # Sun C 5.9 ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ ;; ++ *Intel*\ [[CF]]*Compiler*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ++ ;; ++ *Portland\ Group*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ ;; ++ esac ++ ;; ++ esac ++ ;; ++ ++ newsos6) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ ;; ++ ++ *nto* | *qnx*) ++ # QNX uses GNU C++, but need to define -shared option too, otherwise ++ # it will coredump. ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ++ ;; ++ ++ osf3* | osf4* | osf5*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ # All OSF/1 code is PIC. ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ++ ;; ++ ++ rdos*) ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ++ ;; ++ ++ solaris*) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ case $cc_basename in ++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; ++ *) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; ++ esac ++ ;; ++ ++ sunos4*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ ;; ++ ++ sysv4 | sysv4.2uw2* | sysv4.3*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ fi ++ ;; ++ ++ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ ;; ++ ++ unicos*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ++ ;; ++ ++ uts4*) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ ;; ++ ++ *) ++ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ++ ;; ++ esac ++ fi ++]) ++case $host_os in ++ # For platforms that do not support PIC, -DPIC is meaningless: ++ *djgpp*) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)= ++ ;; ++ *) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ++ ;; ++esac ++ ++AC_CACHE_CHECK([for $compiler option to produce PIC], ++ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], ++ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) ++_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) ++ ++# ++# Check to make sure the PIC flag actually works. ++# ++if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then ++ _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], ++ [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], ++ [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], ++ [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in ++ "" | " "*) ;; ++ *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; ++ esac], ++ [_LT_TAGVAR(lt_prog_compiler_pic, $1)= ++ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) ++fi ++_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], ++ [Additional compiler flags for building library objects]) ++ ++_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], ++ [How to pass a linker flag through the compiler]) ++# ++# Check to make sure the static flag actually works. ++# ++wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" ++_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], ++ _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), ++ $lt_tmp_static_flag, ++ [], ++ [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) ++_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], ++ [Compiler flag to prevent dynamic linking]) ++])# _LT_COMPILER_PIC ++ ++ ++# _LT_LINKER_SHLIBS([TAGNAME]) ++# ---------------------------- ++# See if the linker supports building shared libraries. ++m4_defun([_LT_LINKER_SHLIBS], ++[AC_REQUIRE([LT_PATH_LD])dnl ++AC_REQUIRE([LT_PATH_NM])dnl ++m4_require([_LT_PATH_MANIFEST_TOOL])dnl ++m4_require([_LT_FILEUTILS_DEFAULTS])dnl ++m4_require([_LT_DECL_EGREP])dnl ++m4_require([_LT_DECL_SED])dnl ++m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl ++m4_require([_LT_TAG_COMPILER])dnl ++AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) ++m4_if([$1], [CXX], [ ++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ++ _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ++ case $host_os in ++ aix[[4-9]]*) ++ # If we're using GNU nm, then we don't want the "-C" option. ++ # -C means demangle to GNU nm, but means don't demangle to AIX nm. ++ # Without the "-l" option, or with the "-B" option, AIX nm treats ++ # weak defined symbols like other global defined symbols, whereas ++ # GNU nm marks them as "W". ++ # While the 'weak' keyword is ignored in the Export File, we need ++ # it in the Import File for the 'aix-soname' feature, so we have ++ # to replace the "-B" option with "-P" for AIX nm. ++ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then ++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' ++ else ++ _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' ++ fi ++ ;; ++ pw32*) ++ _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds ++ ;; ++ cygwin* | mingw* | cegcc*) ++ case $cc_basename in ++ cl*) ++ _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ++ ;; ++ *) ++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ++ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ++ ;; ++ esac ++ ;; ++ *) ++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ++ ;; ++ esac ++], [ ++ runpath_var= ++ _LT_TAGVAR(allow_undefined_flag, $1)= ++ _LT_TAGVAR(always_export_symbols, $1)=no ++ _LT_TAGVAR(archive_cmds, $1)= ++ _LT_TAGVAR(archive_expsym_cmds, $1)= ++ _LT_TAGVAR(compiler_needs_object, $1)=no ++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)= ++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ++ _LT_TAGVAR(hardcode_automatic, $1)=no ++ _LT_TAGVAR(hardcode_direct, $1)=no ++ _LT_TAGVAR(hardcode_direct_absolute, $1)=no ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= ++ _LT_TAGVAR(hardcode_libdir_separator, $1)= ++ _LT_TAGVAR(hardcode_minus_L, $1)=no ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported ++ _LT_TAGVAR(inherit_rpath, $1)=no ++ _LT_TAGVAR(link_all_deplibs, $1)=unknown ++ _LT_TAGVAR(module_cmds, $1)= ++ _LT_TAGVAR(module_expsym_cmds, $1)= ++ _LT_TAGVAR(old_archive_from_new_cmds, $1)= ++ _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= ++ _LT_TAGVAR(thread_safe_flag_spec, $1)= ++ _LT_TAGVAR(whole_archive_flag_spec, $1)= ++ # include_expsyms should be a list of space-separated symbols to be *always* ++ # included in the symbol list ++ _LT_TAGVAR(include_expsyms, $1)= ++ # exclude_expsyms can be an extended regexp of symbols to exclude ++ # it will be wrapped by ' (' and ')$', so one must not match beginning or ++ # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', ++ # as well as any symbol that contains 'd'. ++ _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ++ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out ++ # platforms (ab)use it in PIC code, but their linkers get confused if ++ # the symbol is explicitly referenced. Since portable code cannot ++ # rely on this symbol name, it's probably fine to never include it in ++ # preloaded symbol tables. ++ # Exclude shared library initialization/finalization symbols. ++dnl Note also adjust exclude_expsyms for C++ above. ++ extract_expsyms_cmds= ++ ++ case $host_os in ++ cygwin* | mingw* | pw32* | cegcc*) ++ # FIXME: the MSVC++ port hasn't been tested in a loooong time ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ if test yes != "$GCC"; then ++ with_gnu_ld=no ++ fi ++ ;; ++ interix*) ++ # we just hope/assume this is gcc and not c89 (= MSVC++) ++ with_gnu_ld=yes ++ ;; ++ openbsd* | bitrig*) ++ with_gnu_ld=no ++ ;; ++ esac ++ ++ _LT_TAGVAR(ld_shlibs, $1)=yes ++ ++ # On some targets, GNU ld is compatible enough with the native linker ++ # that we're better off using the native interface for both. ++ lt_use_gnu_ld_interface=no ++ if test yes = "$with_gnu_ld"; then ++ case $host_os in ++ aix*) ++ # The AIX port of GNU ld has always aspired to compatibility ++ # with the native linker. However, as the warning in the GNU ld ++ # block says, versions before 2.19.5* couldn't really create working ++ # shared libraries, regardless of the interface used. ++ case `$LD -v 2>&1` in ++ *\ \(GNU\ Binutils\)\ 2.19.5*) ;; ++ *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; ++ *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; ++ *) ++ lt_use_gnu_ld_interface=yes ++ ;; ++ esac ++ ;; ++ *) ++ lt_use_gnu_ld_interface=yes ++ ;; ++ esac ++ fi ++ ++ if test yes = "$lt_use_gnu_ld_interface"; then ++ # If archive_cmds runs LD, not CC, wlarc should be empty ++ wlarc='$wl' ++ ++ # Set some defaults for GNU ld with shared library support. These ++ # are reset later if shared libraries are not supported. Putting them ++ # here allows them to be overridden if necessary. ++ runpath_var=LD_RUN_PATH ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' ++ # ancient GNU ld didn't support --whole-archive et. al. ++ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then ++ _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' ++ else ++ _LT_TAGVAR(whole_archive_flag_spec, $1)= ++ fi ++ supports_anon_versioning=no ++ case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in ++ *GNU\ gold*) supports_anon_versioning=yes ;; ++ *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 ++ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... ++ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... ++ *\ 2.11.*) ;; # other 2.11 versions ++ *) supports_anon_versioning=yes ;; ++ esac ++ ++ # See if GNU ld supports shared libraries. ++ case $host_os in ++ aix[[3-9]]*) ++ # On AIX/PPC, the GNU linker is very broken ++ if test ia64 != "$host_cpu"; then ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ cat <<_LT_EOF 1>&2 ++ ++*** Warning: the GNU linker, at least up to release 2.19, is reported ++*** to be unable to reliably create shared libraries on AIX. ++*** Therefore, libtool is disabling shared libraries support. If you ++*** really care for shared libraries, you may want to install binutils ++*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. ++*** You will then need to restart the configuration process. ++ ++_LT_EOF ++ fi ++ ;; ++ ++ amigaos*) ++ case $host_cpu in ++ powerpc) ++ # see comment about AmigaOS4 .so support ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='' ++ ;; ++ m68k) ++ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ ;; ++ esac ++ ;; ++ ++ beos*) ++ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ # Joseph Beckenbach says some releases of gcc ++ # support --undefined. This deserves some investigation. FIXME ++ _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ ++ cygwin* | mingw* | pw32* | cegcc*) ++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, ++ # as there is no search path for DLLs. ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ _LT_TAGVAR(always_export_symbols, $1)=no ++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ++ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ++ ++ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ++ # If the export-symbols file already is a .def file, use it as ++ # is; otherwise, prepend EXPORTS... ++ _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then ++ cp $export_symbols $output_objdir/$soname.def; ++ else ++ echo EXPORTS > $output_objdir/$soname.def; ++ cat $export_symbols >> $output_objdir/$soname.def; ++ fi~ ++ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ ++ haiku*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ _LT_TAGVAR(link_all_deplibs, $1)=yes ++ ;; ++ ++ os2*) ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ shrext_cmds=.dll ++ _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ ++ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ ++ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ ++ $ECHO EXPORTS >> $output_objdir/$libname.def~ ++ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ ++ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ ++ emximp -o $lib $output_objdir/$libname.def' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ ++ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ ++ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ ++ $ECHO EXPORTS >> $output_objdir/$libname.def~ ++ prefix_cmds="$SED"~ ++ if test EXPORTS = "`$SED 1q $export_symbols`"; then ++ prefix_cmds="$prefix_cmds -e 1d"; ++ fi~ ++ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ ++ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ ++ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ ++ emximp -o $lib $output_objdir/$libname.def' ++ _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' ++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ++ ;; ++ ++ interix[[3-9]]*) ++ _LT_TAGVAR(hardcode_direct, $1)=no ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ++ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. ++ # Instead, shared libraries are loaded at an image base (0x10000000 by ++ # default) and relocated if they conflict, which is a slow very memory ++ # consuming and fragmenting process. To avoid this, we pick a random, ++ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link ++ # time. Moving up from 0x10000000 also allows more sbrk(2) space. ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ++ ;; ++ ++ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) ++ tmp_diet=no ++ if test linux-dietlibc = "$host_os"; then ++ case $cc_basename in ++ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) ++ esac ++ fi ++ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ ++ && test no = "$tmp_diet" ++ then ++ tmp_addflag=' $pic_flag' ++ tmp_sharedflag='-shared' ++ case $cc_basename,$host_cpu in ++ pgcc*) # Portland Group C compiler ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ++ tmp_addflag=' $pic_flag' ++ ;; ++ pgf77* | pgf90* | pgf95* | pgfortran*) ++ # Portland Group f77 and f90 compilers ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ++ tmp_addflag=' $pic_flag -Mnomain' ;; ++ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 ++ tmp_addflag=' -i_dynamic' ;; ++ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 ++ tmp_addflag=' -i_dynamic -nofor_main' ;; ++ ifc* | ifort*) # Intel Fortran compiler ++ tmp_addflag=' -nofor_main' ;; ++ lf95*) # Lahey Fortran 8.1 ++ _LT_TAGVAR(whole_archive_flag_spec, $1)= ++ tmp_sharedflag='--shared' ;; ++ nagfor*) # NAGFOR 5.3 ++ tmp_sharedflag='-Wl,-shared' ;; ++ xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) ++ tmp_sharedflag='-qmkshrobj' ++ tmp_addflag= ;; ++ nvcc*) # Cuda Compiler Driver 2.2 ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ++ _LT_TAGVAR(compiler_needs_object, $1)=yes ++ ;; ++ esac ++ case `$CC -V 2>&1 | sed 5q` in ++ *Sun\ C*) # Sun C 5.9 ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ++ _LT_TAGVAR(compiler_needs_object, $1)=yes ++ tmp_sharedflag='-G' ;; ++ *Sun\ F*) # Sun Fortran 8.3 ++ tmp_sharedflag='-G' ;; ++ esac ++ _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ ++ if test yes = "$supports_anon_versioning"; then ++ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ ++ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ ++ echo "local: *; };" >> $output_objdir/$libname.ver~ ++ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' ++ fi ++ ++ case $cc_basename in ++ tcc*) ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' ++ ;; ++ xlf* | bgf* | bgxlf* | mpixlf*) ++ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ++ _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' ++ if test yes = "$supports_anon_versioning"; then ++ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ ++ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ ++ echo "local: *; };" >> $output_objdir/$libname.ver~ ++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' ++ fi ++ ;; ++ esac ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then ++ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' ++ wlarc= ++ else ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ fi ++ ;; ++ ++ solaris*) ++ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ cat <<_LT_EOF 1>&2 ++ ++*** Warning: The releases 2.8.* of the GNU linker cannot reliably ++*** create shared libraries on Solaris systems. Therefore, libtool ++*** is disabling shared libraries support. We urge you to upgrade GNU ++*** binutils to release 2.9.1 or newer. Another option is to modify ++*** your PATH or compiler configuration so that the native linker is ++*** used, and then restart. ++ ++_LT_EOF ++ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ ++ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) ++ case `$LD -v 2>&1` in ++ *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ cat <<_LT_EOF 1>&2 ++ ++*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot ++*** reliably create shared libraries on SCO systems. Therefore, libtool ++*** is disabling shared libraries support. We urge you to upgrade GNU ++*** binutils to release 2.16.91.0.3 or newer. Another option is to modify ++*** your PATH or compiler configuration so that the native linker is ++*** used, and then restart. ++ ++_LT_EOF ++ ;; ++ *) ++ # For security reasons, it is highly recommended that you always ++ # use absolute paths for naming shared libraries, and exclude the ++ # DT_RUNPATH tag from executables and libraries. But doing so ++ # requires that you compile everything twice, which is a pain. ++ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ esac ++ ;; ++ ++ sunos4*) ++ _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ wlarc= ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ ++ *) ++ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ esac ++ ++ if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then ++ runpath_var= ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)= ++ _LT_TAGVAR(whole_archive_flag_spec, $1)= ++ fi ++ else ++ # PORTME fill in a description of your system's linker (not GNU ld) ++ case $host_os in ++ aix3*) ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ _LT_TAGVAR(always_export_symbols, $1)=yes ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' ++ # Note: this linker hardcodes the directories in LIBPATH if there ++ # are no directories specified by -L. ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then ++ # Neither direct hardcoding nor static linking is supported with a ++ # broken collect2. ++ _LT_TAGVAR(hardcode_direct, $1)=unsupported ++ fi ++ ;; ++ ++ aix[[4-9]]*) ++ if test ia64 = "$host_cpu"; 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 GNU nm, but means don't demangle to AIX nm. ++ # Without the "-l" option, or with the "-B" option, AIX nm treats ++ # weak defined symbols like other global defined symbols, whereas ++ # GNU nm marks them as "W". ++ # While the 'weak' keyword is ignored in the Export File, we need ++ # it in the Import File for the 'aix-soname' feature, so we have ++ # to replace the "-B" option with "-P" for AIX nm. ++ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then ++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' ++ else ++ _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | 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 ++ # have runtime linking enabled, and use it for executables. ++ # For shared libraries, we enable/disable runtime linking ++ # depending on the kind of the shared library created - ++ # when "with_aix_soname,aix_use_runtimelinking" is: ++ # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables ++ # "aix,yes" lib.so shared, rtl:yes, for executables ++ # lib.a static archive ++ # "both,no" lib.so.V(shr.o) shared, rtl:yes ++ # lib.a(lib.so.V) shared, rtl:no, for executables ++ # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables ++ # lib.a(lib.so.V) shared, rtl:no ++ # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables ++ # lib.a static archive ++ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) ++ for ld_flag in $LDFLAGS; do ++ if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then ++ aix_use_runtimelinking=yes ++ break ++ fi ++ done ++ if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then ++ # With aix-soname=svr4, we create the lib.so.V shared archives only, ++ # so we don't have lib.a shared libs to link our executables. ++ # We have to force runtime linking in this case. ++ aix_use_runtimelinking=yes ++ LDFLAGS="$LDFLAGS -Wl,-brtl" ++ fi ++ ;; ++ esac ++ ++ exp_sym_flag='-bexport' ++ no_entry_flag='-bnoentry' ++ fi ++ ++ # When large executables or shared objects are built, AIX ld can ++ # have problems creating the table of contents. If linking a library ++ # or program results in "error TOC overflow" add -mminimal-toc to ++ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not ++ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. ++ ++ _LT_TAGVAR(archive_cmds, $1)='' ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=':' ++ _LT_TAGVAR(link_all_deplibs, $1)=yes ++ _LT_TAGVAR(file_list_spec, $1)='$wl-f,' ++ case $with_aix_soname,$aix_use_runtimelinking in ++ aix,*) ;; # traditional, no import file ++ svr4,* | *,yes) # use import file ++ # The Import File defines what to hardcode. ++ _LT_TAGVAR(hardcode_direct, $1)=no ++ _LT_TAGVAR(hardcode_direct_absolute, $1)=no ++ ;; ++ esac ++ ++ if test yes = "$GCC"; then ++ case $host_os in aix4.[[012]]|aix4.[[012]].*) ++ # We only want to do this on AIX 4.2 and lower, the check ++ # below for broken collect2 doesn't work under 4.3+ ++ collect2name=`$CC -print-prog-name=collect2` ++ if test -f "$collect2name" && ++ strings "$collect2name" | $GREP resolve_lib_name >/dev/null ++ then ++ # We have reworked collect2 ++ : ++ else ++ # We have old collect2 ++ _LT_TAGVAR(hardcode_direct, $1)=unsupported ++ # It fails to find uninstalled libraries when the uninstalled ++ # path is not listed in the libpath. Setting hardcode_minus_L ++ # to unsupported forces relinking ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)= ++ fi ++ ;; ++ esac ++ shared_flag='-shared' ++ if test yes = "$aix_use_runtimelinking"; then ++ shared_flag="$shared_flag "'$wl-G' ++ fi ++ # Need to ensure runtime linking is disabled for the traditional ++ # shared library, or the linker may eventually find shared libraries ++ # /with/ Import File - we do not want to mix them. ++ shared_flag_aix='-shared' ++ shared_flag_svr4='-shared $wl-G' ++ else ++ # not using gcc ++ if test ia64 = "$host_cpu"; 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 yes = "$aix_use_runtimelinking"; then ++ shared_flag='$wl-G' ++ else ++ shared_flag='$wl-bM:SRE' ++ fi ++ shared_flag_aix='$wl-bM:SRE' ++ shared_flag_svr4='$wl-G' ++ fi ++ fi ++ ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' ++ # It seems that -bexpall does not export symbols beginning with ++ # underscore (_), so it is better to generate a list of symbols to export. ++ _LT_TAGVAR(always_export_symbols, $1)=yes ++ if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then ++ # Warning - without using the other runtime loading flags (-brtl), ++ # -berok will link without error, but may produce a broken library. ++ _LT_TAGVAR(allow_undefined_flag, $1)='-berok' ++ # Determine the default libpath from the value encoded in an ++ # empty executable. ++ _LT_SYS_MODULE_PATH_AIX([$1]) ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag ++ else ++ if test ia64 = "$host_cpu"; then ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' ++ _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" ++ _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" ++ else ++ # Determine the default libpath from the value encoded in an ++ # empty executable. ++ _LT_SYS_MODULE_PATH_AIX([$1]) ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" ++ # Warning - without using the other run time loading flags, ++ # -berok will link without error, but may produce a broken library. ++ _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' ++ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' ++ if test yes = "$with_gnu_ld"; then ++ # We only use this code for GNU lds that support --whole-archive. ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' ++ else ++ # Exported symbols can be pulled into shared objects from archives ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' ++ fi ++ _LT_TAGVAR(archive_cmds_need_lc, $1)=yes ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' ++ # -brtl affects multiple linker settings, -berok does not and is overridden later ++ compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' ++ if test svr4 != "$with_aix_soname"; then ++ # This is similar to how AIX traditionally builds its shared libraries. ++ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' ++ fi ++ if test aix != "$with_aix_soname"; then ++ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' ++ else ++ # used by -dlpreopen to get the symbols ++ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' ++ fi ++ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' ++ fi ++ fi ++ ;; ++ ++ amigaos*) ++ case $host_cpu in ++ powerpc) ++ # see comment about AmigaOS4 .so support ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='' ++ ;; ++ m68k) ++ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ ;; ++ esac ++ ;; ++ ++ bsdi[[45]]*) ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ++ ;; ++ ++ cygwin* | mingw* | pw32* | cegcc*) ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ case $cc_basename in ++ cl*) ++ # Native MSVC ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ _LT_TAGVAR(always_export_symbols, $1)=yes ++ _LT_TAGVAR(file_list_spec, $1)='@' ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=.dll ++ # FIXME: Setting linknames here is a bad hack. ++ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then ++ cp "$export_symbols" "$output_objdir/$soname.def"; ++ echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; ++ else ++ $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; ++ fi~ ++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ++ linknames=' ++ # The linker will not automatically build a static lib if we build a DLL. ++ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' ++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ++ _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' ++ # Don't use ranlib ++ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' ++ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ ++ lt_tool_outputfile="@TOOL_OUTPUT@"~ ++ case $lt_outputfile in ++ *.exe|*.EXE) ;; ++ *) ++ lt_outputfile=$lt_outputfile.exe ++ lt_tool_outputfile=$lt_tool_outputfile.exe ++ ;; ++ esac~ ++ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then ++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ++ $RM "$lt_outputfile.manifest"; ++ fi' ++ ;; ++ *) ++ # Assume MSVC wrapper ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=.dll ++ # FIXME: Setting linknames here is a bad hack. ++ _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' ++ # FIXME: Should let the user specify the lib program. ++ _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' ++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ++ ;; ++ esac ++ ;; ++ ++ darwin* | rhapsody*) ++ _LT_DARWIN_LINKER_FEATURES($1) ++ ;; ++ ++ dgux*) ++ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ ++ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor ++ # support. Future versions do this automatically, but an explicit c++rt0.o ++ # does not break anything, and helps significantly (at the cost of a little ++ # extra space). ++ freebsd2.2*) ++ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ ++ # Unfortunately, older versions of FreeBSD 2 do not have this feature. ++ freebsd2.*) ++ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ ++ # FreeBSD 3 and greater uses gcc -shared to do shared libraries. ++ freebsd* | dragonfly*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ ++ hpux9*) ++ if test yes = "$GCC"; then ++ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' ++ else ++ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' ++ fi ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ ++ # hardcode_minus_L: Not really in the search PATH, ++ # but as the default location of the library. ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ++ ;; ++ ++ hpux10*) ++ if test yes,no = "$GCC,$with_gnu_ld"; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ++ fi ++ if test no = "$with_gnu_ld"; then ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ++ # hardcode_minus_L: Not really in the search PATH, ++ # but as the default location of the library. ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ fi ++ ;; ++ ++ hpux11*) ++ if test yes,no = "$GCC,$with_gnu_ld"; then ++ case $host_cpu in ++ hppa*64*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ ia64*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ *) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ esac ++ else ++ case $host_cpu in ++ hppa*64*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ ia64*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ *) ++ m4_if($1, [], [ ++ # Older versions of the 11.00 compiler do not understand -b yet ++ # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) ++ _LT_LINKER_OPTION([if $CC understands -b], ++ _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], ++ [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], ++ [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], ++ [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ++ ;; ++ esac ++ fi ++ if test no = "$with_gnu_ld"; then ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ ++ case $host_cpu in ++ hppa*64*|ia64*) ++ _LT_TAGVAR(hardcode_direct, $1)=no ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ *) ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ++ ++ # hardcode_minus_L: Not really in the search PATH, ++ # but as the default location of the library. ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ ;; ++ esac ++ fi ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ if test yes = "$GCC"; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ++ # Try to use the -exported_symbol ld option, if it does not ++ # work, assume that -exports_file does not work either and ++ # implicitly export all symbols. ++ # This should be the same for all languages, so no per-tag cache variable. ++ AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], ++ [lt_cv_irix_exported_symbol], ++ [save_LDFLAGS=$LDFLAGS ++ LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" ++ AC_LINK_IFELSE( ++ [AC_LANG_SOURCE( ++ [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], ++ [C++], [[int foo (void) { return 0; }]], ++ [Fortran 77], [[ ++ subroutine foo ++ end]], ++ [Fortran], [[ ++ subroutine foo ++ end]])])], ++ [lt_cv_irix_exported_symbol=yes], ++ [lt_cv_irix_exported_symbol=no]) ++ LDFLAGS=$save_LDFLAGS]) ++ if test yes = "$lt_cv_irix_exported_symbol"; then ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' ++ fi ++ else ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' ++ fi ++ _LT_TAGVAR(archive_cmds_need_lc, $1)='no' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ _LT_TAGVAR(inherit_rpath, $1)=yes ++ _LT_TAGVAR(link_all_deplibs, $1)=yes ++ ;; ++ ++ linux*) ++ case $cc_basename in ++ tcc*) ++ # Fabrice Bellard et al's Tiny C Compiler ++ _LT_TAGVAR(ld_shlibs, $1)=yes ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ esac ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then ++ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out ++ else ++ _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF ++ fi ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ ++ newsos6) ++ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ ++ *nto* | *qnx*) ++ ;; ++ ++ openbsd* | bitrig*) ++ if test -f /usr/libexec/ld.so; then ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes ++ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ++ else ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' ++ fi ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ ++ os2*) ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ shrext_cmds=.dll ++ _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ ++ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ ++ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ ++ $ECHO EXPORTS >> $output_objdir/$libname.def~ ++ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ ++ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ ++ emximp -o $lib $output_objdir/$libname.def' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ ++ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ ++ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ ++ $ECHO EXPORTS >> $output_objdir/$libname.def~ ++ prefix_cmds="$SED"~ ++ if test EXPORTS = "`$SED 1q $export_symbols`"; then ++ prefix_cmds="$prefix_cmds -e 1d"; ++ fi~ ++ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ ++ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ ++ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ ++ emximp -o $lib $output_objdir/$libname.def' ++ _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' ++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ++ ;; ++ ++ osf3*) ++ if test yes = "$GCC"; then ++ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ++ else ++ _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' ++ fi ++ _LT_TAGVAR(archive_cmds_need_lc, $1)='no' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ ;; ++ ++ osf4* | osf5*) # as osf3* with the addition of -msym flag ++ if test yes = "$GCC"; then ++ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ++ else ++ _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ ++ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' ++ ++ # Both c and cxx compiler support -rpath directly ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ++ fi ++ _LT_TAGVAR(archive_cmds_need_lc, $1)='no' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ ;; ++ ++ solaris*) ++ _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' ++ if test yes = "$GCC"; then ++ wlarc='$wl' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ++ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ++ else ++ case `$CC -V 2>&1` in ++ *"Compilers 5.0"*) ++ wlarc='' ++ _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ++ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ++ ;; ++ *) ++ wlarc='$wl' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ++ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ++ ;; ++ esac ++ fi ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ case $host_os in ++ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; ++ *) ++ # The compiler driver will combine and reorder linker options, ++ # but understands '-z linker_flag'. GCC discards it without '$wl', ++ # but is careful enough not to reorder. ++ # Supported since Solaris 2.6 (maybe 2.5.1?) ++ if test yes = "$GCC"; then ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' ++ else ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ++ fi ++ ;; ++ esac ++ _LT_TAGVAR(link_all_deplibs, $1)=yes ++ ;; ++ ++ sunos4*) ++ if test sequent = "$host_vendor"; then ++ # Use $CC to link under sequent, because it throws in some extra .o ++ # files that make .init and .fini sections work. ++ _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' ++ fi ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ ++ sysv4) ++ case $host_vendor in ++ sni) ++ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ++ ;; ++ siemens) ++ ## LD is ld it makes a PLAMLIB ++ ## CC just makes a GrossModule. ++ _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' ++ _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' ++ _LT_TAGVAR(hardcode_direct, $1)=no ++ ;; ++ motorola) ++ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ++ ;; ++ esac ++ runpath_var='LD_RUN_PATH' ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ ++ sysv4.3*) ++ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ runpath_var=LD_RUN_PATH ++ hardcode_runpath_var=yes ++ _LT_TAGVAR(ld_shlibs, $1)=yes ++ fi ++ ;; ++ ++ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) ++ _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' ++ _LT_TAGVAR(archive_cmds_need_lc, $1)=no ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ runpath_var='LD_RUN_PATH' ++ ++ if test yes = "$GCC"; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ fi ++ ;; ++ ++ sysv5* | sco3.2v5* | sco5v6*) ++ # Note: We CANNOT use -z defs as we might desire, because we do not ++ # link with -lc, and that would cause any symbols used from libc to ++ # always be unresolved, which means just about no library would ++ # ever link correctly. If we're not using GNU ld we use -z text ++ # though, which does catch some bad symbols but isn't as heavy-handed ++ # as -z defs. ++ _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' ++ _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' ++ _LT_TAGVAR(archive_cmds_need_lc, $1)=no ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=':' ++ _LT_TAGVAR(link_all_deplibs, $1)=yes ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' ++ runpath_var='LD_RUN_PATH' ++ ++ if test yes = "$GCC"; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ fi ++ ;; ++ ++ uts4*) ++ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ ++ *) ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ esac ++ ++ if test sni = "$host_vendor"; then ++ case $host in ++ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' ++ ;; ++ esac ++ fi ++ fi ++]) ++AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) ++test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no ++ ++_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld ++ ++_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl ++_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl ++_LT_DECL([], [extract_expsyms_cmds], [2], ++ [The commands to extract the exported symbol list from a shared archive]) ++ ++# ++# Do we need to explicitly link libc? ++# ++case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in ++x|xyes) ++ # Assume -lc should be added ++ _LT_TAGVAR(archive_cmds_need_lc, $1)=yes ++ ++ if test yes,yes = "$GCC,$enable_shared"; then ++ case $_LT_TAGVAR(archive_cmds, $1) in ++ *'~'*) ++ # FIXME: we may have to deal with multi-command sequences. ++ ;; ++ '$CC '*) ++ # Test whether the compiler implicitly links with -lc since on some ++ # systems, -lgcc has to come before -lc. If gcc already passes -lc ++ # to ld, don't add -lc before -lgcc. ++ AC_CACHE_CHECK([whether -lc should be explicitly linked in], ++ [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), ++ [$RM conftest* ++ echo "$lt_simple_compile_test_code" > conftest.$ac_ext ++ ++ if AC_TRY_EVAL(ac_compile) 2>conftest.err; then ++ soname=conftest ++ lib=conftest ++ libobjs=conftest.$ac_objext ++ deplibs= ++ wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) ++ pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) ++ compiler_flags=-v ++ linker_flags=-v ++ verstring= ++ output_objdir=. ++ libname=conftest ++ lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) ++ _LT_TAGVAR(allow_undefined_flag, $1)= ++ if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) ++ then ++ lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no ++ else ++ lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes ++ fi ++ _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag ++ else ++ cat conftest.err 1>&5 ++ fi ++ $RM conftest* ++ ]) ++ _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ++ ;; ++ esac ++ fi ++ ;; ++esac ++ ++_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], ++ [Whether or not to add -lc for building shared libraries]) ++_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], ++ [enable_shared_with_static_runtimes], [0], ++ [Whether or not to disallow shared libs when runtime libs are static]) ++_LT_TAGDECL([], [export_dynamic_flag_spec], [1], ++ [Compiler flag to allow reflexive dlopens]) ++_LT_TAGDECL([], [whole_archive_flag_spec], [1], ++ [Compiler flag to generate shared objects directly from archives]) ++_LT_TAGDECL([], [compiler_needs_object], [1], ++ [Whether the compiler copes with passing no objects directly]) ++_LT_TAGDECL([], [old_archive_from_new_cmds], [2], ++ [Create an old-style archive from a shared archive]) ++_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], ++ [Create a temporary old-style archive to link instead of a shared archive]) ++_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) ++_LT_TAGDECL([], [archive_expsym_cmds], [2]) ++_LT_TAGDECL([], [module_cmds], [2], ++ [Commands used to build a loadable module if different from building ++ a shared archive.]) ++_LT_TAGDECL([], [module_expsym_cmds], [2]) ++_LT_TAGDECL([], [with_gnu_ld], [1], ++ [Whether we are building with GNU ld or not]) ++_LT_TAGDECL([], [allow_undefined_flag], [1], ++ [Flag that allows shared libraries with undefined symbols to be built]) ++_LT_TAGDECL([], [no_undefined_flag], [1], ++ [Flag that enforces no undefined symbols]) ++_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], ++ [Flag to hardcode $libdir into a binary during linking. ++ This must work even if $libdir does not exist]) ++_LT_TAGDECL([], [hardcode_libdir_separator], [1], ++ [Whether we need a single "-rpath" flag with a separated argument]) ++_LT_TAGDECL([], [hardcode_direct], [0], ++ [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes ++ DIR into the resulting binary]) ++_LT_TAGDECL([], [hardcode_direct_absolute], [0], ++ [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes ++ DIR into the resulting binary and the resulting library dependency is ++ "absolute", i.e impossible to change by setting $shlibpath_var if the ++ library is relocated]) ++_LT_TAGDECL([], [hardcode_minus_L], [0], ++ [Set to "yes" if using the -LDIR flag during linking hardcodes DIR ++ into the resulting binary]) ++_LT_TAGDECL([], [hardcode_shlibpath_var], [0], ++ [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR ++ into the resulting binary]) ++_LT_TAGDECL([], [hardcode_automatic], [0], ++ [Set to "yes" if building a shared library automatically hardcodes DIR ++ into the library and all subsequent libraries and executables linked ++ against it]) ++_LT_TAGDECL([], [inherit_rpath], [0], ++ [Set to yes if linker adds runtime paths of dependent libraries ++ to runtime path list]) ++_LT_TAGDECL([], [link_all_deplibs], [0], ++ [Whether libtool must link a program against all its dependency libraries]) ++_LT_TAGDECL([], [always_export_symbols], [0], ++ [Set to "yes" if exported symbols are required]) ++_LT_TAGDECL([], [export_symbols_cmds], [2], ++ [The commands to list exported symbols]) ++_LT_TAGDECL([], [exclude_expsyms], [1], ++ [Symbols that should not be listed in the preloaded symbols]) ++_LT_TAGDECL([], [include_expsyms], [1], ++ [Symbols that must always be exported]) ++_LT_TAGDECL([], [prelink_cmds], [2], ++ [Commands necessary for linking programs (against libraries) with templates]) ++_LT_TAGDECL([], [postlink_cmds], [2], ++ [Commands necessary for finishing linking programs]) ++_LT_TAGDECL([], [file_list_spec], [1], ++ [Specify filename containing input files]) ++dnl FIXME: Not yet implemented ++dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], ++dnl [Compiler flag to generate thread safe objects]) ++])# _LT_LINKER_SHLIBS ++ ++ ++# _LT_LANG_C_CONFIG([TAG]) ++# ------------------------ ++# Ensure that the configuration variables for a C compiler are suitably ++# defined. These variables are subsequently used by _LT_CONFIG to write ++# the compiler configuration to 'libtool'. ++m4_defun([_LT_LANG_C_CONFIG], ++[m4_require([_LT_DECL_EGREP])dnl ++lt_save_CC=$CC ++AC_LANG_PUSH(C) ++ ++# Source file extension for C test sources. ++ac_ext=c ++ ++# Object file extension for compiled C test sources. ++objext=o ++_LT_TAGVAR(objext, $1)=$objext ++ ++# Code to be used in simple compile tests ++lt_simple_compile_test_code="int some_variable = 0;" ++ ++# Code to be used in simple link tests ++lt_simple_link_test_code='int main(){return(0);}' ++ ++_LT_TAG_COMPILER ++# Save the default compiler, since it gets overwritten when the other ++# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. ++compiler_DEFAULT=$CC ++ ++# save warnings/boilerplate of simple test code ++_LT_COMPILER_BOILERPLATE ++_LT_LINKER_BOILERPLATE ++ ++## CAVEAT EMPTOR: ++## There is no encapsulation within the following macros, do not change ++## the running order or otherwise move them around unless you know exactly ++## what you are doing... ++if test -n "$compiler"; then ++ _LT_COMPILER_NO_RTTI($1) ++ _LT_COMPILER_PIC($1) ++ _LT_COMPILER_C_O($1) ++ _LT_COMPILER_FILE_LOCKS($1) ++ _LT_LINKER_SHLIBS($1) ++ _LT_SYS_DYNAMIC_LINKER($1) ++ _LT_LINKER_HARDCODE_LIBPATH($1) ++ LT_SYS_DLOPEN_SELF ++ _LT_CMD_STRIPLIB ++ ++ # Report what 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 no = "$can_build_shared" && 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 yes = "$enable_shared" && enable_static=no ++ if test -n "$RANLIB"; then ++ archive_cmds="$archive_cmds~\$RANLIB \$lib" ++ postinstall_cmds='$RANLIB $lib' ++ fi ++ ;; ++ ++ aix[[4-9]]*) ++ if test ia64 != "$host_cpu"; then ++ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in ++ yes,aix,yes) ;; # shared object as lib.so file only ++ yes,svr4,*) ;; # shared object as lib.so archive member only ++ yes,*) enable_static=no ;; # shared object in lib.a archive as well ++ esac ++ 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 yes = "$enable_shared" || enable_static=yes ++ AC_MSG_RESULT([$enable_static]) ++ ++ _LT_CONFIG($1) ++fi ++AC_LANG_POP ++CC=$lt_save_CC ++])# _LT_LANG_C_CONFIG ++ ++ ++# _LT_LANG_CXX_CONFIG([TAG]) ++# -------------------------- ++# Ensure that the configuration variables for a C++ compiler are suitably ++# defined. These variables are subsequently used by _LT_CONFIG to write ++# the compiler configuration to 'libtool'. ++m4_defun([_LT_LANG_CXX_CONFIG], ++[m4_require([_LT_FILEUTILS_DEFAULTS])dnl ++m4_require([_LT_DECL_EGREP])dnl ++m4_require([_LT_PATH_MANIFEST_TOOL])dnl ++if test -n "$CXX" && ( test no != "$CXX" && ++ ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || ++ (test g++ != "$CXX"))); then ++ AC_PROG_CXXCPP ++else ++ _lt_caught_CXX_error=yes ++fi ++ ++AC_LANG_PUSH(C++) ++_LT_TAGVAR(archive_cmds_need_lc, $1)=no ++_LT_TAGVAR(allow_undefined_flag, $1)= ++_LT_TAGVAR(always_export_symbols, $1)=no ++_LT_TAGVAR(archive_expsym_cmds, $1)= ++_LT_TAGVAR(compiler_needs_object, $1)=no ++_LT_TAGVAR(export_dynamic_flag_spec, $1)= ++_LT_TAGVAR(hardcode_direct, $1)=no ++_LT_TAGVAR(hardcode_direct_absolute, $1)=no ++_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= ++_LT_TAGVAR(hardcode_libdir_separator, $1)= ++_LT_TAGVAR(hardcode_minus_L, $1)=no ++_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported ++_LT_TAGVAR(hardcode_automatic, $1)=no ++_LT_TAGVAR(inherit_rpath, $1)=no ++_LT_TAGVAR(module_cmds, $1)= ++_LT_TAGVAR(module_expsym_cmds, $1)= ++_LT_TAGVAR(link_all_deplibs, $1)=unknown ++_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds ++_LT_TAGVAR(reload_flag, $1)=$reload_flag ++_LT_TAGVAR(reload_cmds, $1)=$reload_cmds ++_LT_TAGVAR(no_undefined_flag, $1)= ++_LT_TAGVAR(whole_archive_flag_spec, $1)= ++_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no ++ ++# Source file extension for C++ test sources. ++ac_ext=cpp ++ ++# Object file extension for compiled C++ test sources. ++objext=o ++_LT_TAGVAR(objext, $1)=$objext ++ ++# No sense in running all these tests if we already determined that ++# the CXX compiler isn't working. Some variables (like enable_shared) ++# are currently assumed to apply to all compilers on this platform, ++# and will be corrupted by setting them based on a non-working compiler. ++if test yes != "$_lt_caught_CXX_error"; then ++ # Code to be used in simple compile tests ++ lt_simple_compile_test_code="int some_variable = 0;" ++ ++ # Code to be used in simple link tests ++ lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' ++ ++ # ltmain only uses $CC for tagged configurations so make sure $CC is set. ++ _LT_TAG_COMPILER ++ ++ # save warnings/boilerplate of simple test code ++ _LT_COMPILER_BOILERPLATE ++ _LT_LINKER_BOILERPLATE ++ ++ # Allow CC to be a program name with arguments. ++ lt_save_CC=$CC ++ lt_save_CFLAGS=$CFLAGS ++ lt_save_LD=$LD ++ lt_save_GCC=$GCC ++ GCC=$GXX ++ lt_save_with_gnu_ld=$with_gnu_ld ++ lt_save_path_LD=$lt_cv_path_LD ++ if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then ++ lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx ++ else ++ $as_unset lt_cv_prog_gnu_ld ++ fi ++ if test -n "${lt_cv_path_LDCXX+set}"; then ++ lt_cv_path_LD=$lt_cv_path_LDCXX ++ else ++ $as_unset lt_cv_path_LD ++ fi ++ test -z "${LDCXX+set}" || LD=$LDCXX ++ CC=${CXX-"c++"} ++ CFLAGS=$CXXFLAGS ++ compiler=$CC ++ _LT_TAGVAR(compiler, $1)=$CC ++ _LT_CC_BASENAME([$compiler]) ++ ++ if test -n "$compiler"; then ++ # We don't want -fno-exception when compiling C++ code, so set the ++ # no_builtin_flag separately ++ if test yes = "$GXX"; then ++ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ++ else ++ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= ++ fi ++ ++ if test yes = "$GXX"; then ++ # Set up default GNU C++ configuration ++ ++ LT_PATH_LD ++ ++ # Check if GNU C++ uses GNU ld as the underlying linker, since the ++ # archiving commands below assume that GNU ld is being used. ++ if test yes = "$with_gnu_ld"; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' ++ ++ # If archive_cmds runs LD, not CC, wlarc should be empty ++ # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to ++ # investigate it a little bit more. (MM) ++ wlarc='$wl' ++ ++ # ancient GNU ld didn't support --whole-archive et. al. ++ if eval "`$CC -print-prog-name=ld` --help 2>&1" | ++ $GREP 'no-whole-archive' > /dev/null; then ++ _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' ++ else ++ _LT_TAGVAR(whole_archive_flag_spec, $1)= ++ fi ++ else ++ with_gnu_ld=no ++ wlarc= ++ ++ # A generic and very simple default shared library creation ++ # command for GNU C++ for the case where it uses the native ++ # linker, instead of GNU ld. If possible, this setting should ++ # overridden to take advantage of the native linker features on ++ # the platform it is being used on. ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' ++ fi ++ ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' ++ ++ else ++ GXX=no ++ with_gnu_ld=no ++ wlarc= ++ fi ++ ++ # PORTME: fill in a description of your system's C++ link characteristics ++ AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) ++ _LT_TAGVAR(ld_shlibs, $1)=yes ++ case $host_os in ++ aix3*) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ aix[[4-9]]*) ++ if test ia64 = "$host_cpu"; 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 ++ # have runtime linking enabled, and use it for executables. ++ # For shared libraries, we enable/disable runtime linking ++ # depending on the kind of the shared library created - ++ # when "with_aix_soname,aix_use_runtimelinking" is: ++ # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables ++ # "aix,yes" lib.so shared, rtl:yes, for executables ++ # lib.a static archive ++ # "both,no" lib.so.V(shr.o) shared, rtl:yes ++ # lib.a(lib.so.V) shared, rtl:no, for executables ++ # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables ++ # lib.a(lib.so.V) shared, rtl:no ++ # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables ++ # lib.a static archive ++ 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 ++ if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then ++ # With aix-soname=svr4, we create the lib.so.V shared archives only, ++ # so we don't have lib.a shared libs to link our executables. ++ # We have to force runtime linking in this case. ++ aix_use_runtimelinking=yes ++ LDFLAGS="$LDFLAGS -Wl,-brtl" ++ fi ++ ;; ++ esac ++ ++ exp_sym_flag='-bexport' ++ no_entry_flag='-bnoentry' ++ fi ++ ++ # When large executables or shared objects are built, AIX ld can ++ # have problems creating the table of contents. If linking a library ++ # or program results in "error TOC overflow" add -mminimal-toc to ++ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not ++ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. ++ ++ _LT_TAGVAR(archive_cmds, $1)='' ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=':' ++ _LT_TAGVAR(link_all_deplibs, $1)=yes ++ _LT_TAGVAR(file_list_spec, $1)='$wl-f,' ++ case $with_aix_soname,$aix_use_runtimelinking in ++ aix,*) ;; # no import file ++ svr4,* | *,yes) # use import file ++ # The Import File defines what to hardcode. ++ _LT_TAGVAR(hardcode_direct, $1)=no ++ _LT_TAGVAR(hardcode_direct_absolute, $1)=no ++ ;; ++ esac ++ ++ if test yes = "$GXX"; then ++ case $host_os in aix4.[[012]]|aix4.[[012]].*) ++ # We only want to do this on AIX 4.2 and lower, the check ++ # below for broken collect2 doesn't work under 4.3+ ++ collect2name=`$CC -print-prog-name=collect2` ++ if test -f "$collect2name" && ++ strings "$collect2name" | $GREP resolve_lib_name >/dev/null ++ then ++ # We have reworked collect2 ++ : ++ else ++ # We have old collect2 ++ _LT_TAGVAR(hardcode_direct, $1)=unsupported ++ # It fails to find uninstalled libraries when the uninstalled ++ # path is not listed in the libpath. Setting hardcode_minus_L ++ # to unsupported forces relinking ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)= ++ fi ++ esac ++ shared_flag='-shared' ++ if test yes = "$aix_use_runtimelinking"; then ++ shared_flag=$shared_flag' $wl-G' ++ fi ++ # Need to ensure runtime linking is disabled for the traditional ++ # shared library, or the linker may eventually find shared libraries ++ # /with/ Import File - we do not want to mix them. ++ shared_flag_aix='-shared' ++ shared_flag_svr4='-shared $wl-G' ++ else ++ # not using gcc ++ if test ia64 = "$host_cpu"; 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 yes = "$aix_use_runtimelinking"; then ++ shared_flag='$wl-G' ++ else ++ shared_flag='$wl-bM:SRE' ++ fi ++ shared_flag_aix='$wl-bM:SRE' ++ shared_flag_svr4='$wl-G' ++ fi ++ fi ++ ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' ++ # It seems that -bexpall does not export symbols beginning with ++ # underscore (_), so it is better to generate a list of symbols to ++ # export. ++ _LT_TAGVAR(always_export_symbols, $1)=yes ++ if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then ++ # Warning - without using the other runtime loading flags (-brtl), ++ # -berok will link without error, but may produce a broken library. ++ # The "-G" linker flag allows undefined symbols. ++ _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' ++ # Determine the default libpath from the value encoded in an empty ++ # executable. ++ _LT_SYS_MODULE_PATH_AIX([$1]) ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" ++ ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag ++ else ++ if test ia64 = "$host_cpu"; then ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' ++ _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" ++ _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" ++ else ++ # Determine the default libpath from the value encoded in an ++ # empty executable. ++ _LT_SYS_MODULE_PATH_AIX([$1]) ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" ++ # Warning - without using the other run time loading flags, ++ # -berok will link without error, but may produce a broken library. ++ _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' ++ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' ++ if test yes = "$with_gnu_ld"; then ++ # We only use this code for GNU lds that support --whole-archive. ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' ++ else ++ # Exported symbols can be pulled into shared objects from archives ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' ++ fi ++ _LT_TAGVAR(archive_cmds_need_lc, $1)=yes ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' ++ # -brtl affects multiple linker settings, -berok does not and is overridden later ++ compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' ++ if test svr4 != "$with_aix_soname"; then ++ # This is similar to how AIX traditionally builds its shared ++ # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. ++ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' ++ fi ++ if test aix != "$with_aix_soname"; then ++ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' ++ else ++ # used by -dlpreopen to get the symbols ++ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' ++ fi ++ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' ++ fi ++ fi ++ ;; ++ ++ beos*) ++ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ # Joseph Beckenbach says some releases of gcc ++ # support --undefined. This deserves some investigation. FIXME ++ _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ ++ chorus*) ++ case $cc_basename in ++ *) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ esac ++ ;; ++ ++ cygwin* | mingw* | pw32* | cegcc*) ++ case $GXX,$cc_basename in ++ ,cl* | no,cl*) ++ # Native MSVC ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ _LT_TAGVAR(always_export_symbols, $1)=yes ++ _LT_TAGVAR(file_list_spec, $1)='@' ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=.dll ++ # FIXME: Setting linknames here is a bad hack. ++ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then ++ cp "$export_symbols" "$output_objdir/$soname.def"; ++ echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; ++ else ++ $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; ++ fi~ ++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ++ linknames=' ++ # The linker will not automatically build a static lib if we build a DLL. ++ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' ++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ++ # Don't use ranlib ++ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' ++ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ ++ lt_tool_outputfile="@TOOL_OUTPUT@"~ ++ case $lt_outputfile in ++ *.exe|*.EXE) ;; ++ *) ++ lt_outputfile=$lt_outputfile.exe ++ lt_tool_outputfile=$lt_tool_outputfile.exe ++ ;; ++ esac~ ++ func_to_tool_file "$lt_outputfile"~ ++ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then ++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ++ $RM "$lt_outputfile.manifest"; ++ fi' ++ ;; ++ *) ++ # g++ ++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, ++ # as there is no search path for DLLs. ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ _LT_TAGVAR(always_export_symbols, $1)=no ++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ++ ++ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ++ # If the export-symbols file already is a .def file, use it as ++ # is; otherwise, prepend EXPORTS... ++ _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then ++ cp $export_symbols $output_objdir/$soname.def; ++ else ++ echo EXPORTS > $output_objdir/$soname.def; ++ cat $export_symbols >> $output_objdir/$soname.def; ++ fi~ ++ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ esac ++ ;; ++ darwin* | rhapsody*) ++ _LT_DARWIN_LINKER_FEATURES($1) ++ ;; ++ ++ os2*) ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ shrext_cmds=.dll ++ _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ ++ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ ++ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ ++ $ECHO EXPORTS >> $output_objdir/$libname.def~ ++ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ ++ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ ++ emximp -o $lib $output_objdir/$libname.def' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ ++ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ ++ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ ++ $ECHO EXPORTS >> $output_objdir/$libname.def~ ++ prefix_cmds="$SED"~ ++ if test EXPORTS = "`$SED 1q $export_symbols`"; then ++ prefix_cmds="$prefix_cmds -e 1d"; ++ fi~ ++ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ ++ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ ++ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ ++ emximp -o $lib $output_objdir/$libname.def' ++ _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' ++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ++ ;; ++ ++ dgux*) ++ case $cc_basename in ++ ec++*) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ ghcx*) ++ # Green Hills C++ Compiler ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ *) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ esac ++ ;; ++ ++ freebsd2.*) ++ # C++ shared libraries reported to be fairly broken before ++ # switch to ELF ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ ++ freebsd-elf*) ++ _LT_TAGVAR(archive_cmds_need_lc, $1)=no ++ ;; ++ ++ freebsd* | dragonfly*) ++ # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF ++ # conventions ++ _LT_TAGVAR(ld_shlibs, $1)=yes ++ ;; ++ ++ haiku*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ _LT_TAGVAR(link_all_deplibs, $1)=yes ++ ;; ++ ++ hpux9*) ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, ++ # but as the default ++ # location of the library. ++ ++ case $cc_basename in ++ CC*) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ aCC*) ++ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ # ++ # There doesn't appear to be a way to prevent this compiler from ++ # explicitly linking system object files so we need to strip them ++ # from the output so that they don't get included in the library ++ # dependencies. ++ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ++ ;; ++ *) ++ if test yes = "$GXX"; then ++ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' ++ else ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ esac ++ ;; ++ ++ hpux10*|hpux11*) ++ if test no = "$with_gnu_ld"; then ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ ++ case $host_cpu in ++ hppa*64*|ia64*) ++ ;; ++ *) ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ++ ;; ++ esac ++ fi ++ case $host_cpu in ++ hppa*64*|ia64*) ++ _LT_TAGVAR(hardcode_direct, $1)=no ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ *) ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, ++ # but as the default ++ # location of the library. ++ ;; ++ esac ++ ++ case $cc_basename in ++ CC*) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ aCC*) ++ case $host_cpu in ++ hppa*64*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ ;; ++ ia64*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ ;; ++ *) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ ;; ++ esac ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ # ++ # There doesn't appear to be a way to prevent this compiler from ++ # explicitly linking system object files so we need to strip them ++ # from the output so that they don't get included in the library ++ # dependencies. ++ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ++ ;; ++ *) ++ if test yes = "$GXX"; then ++ if test no = "$with_gnu_ld"; then ++ case $host_cpu in ++ hppa*64*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ ;; ++ ia64*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ ;; ++ *) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ ;; ++ esac ++ fi ++ else ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ esac ++ ;; ++ ++ interix[[3-9]]*) ++ _LT_TAGVAR(hardcode_direct, $1)=no ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ++ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. ++ # Instead, shared libraries are loaded at an image base (0x10000000 by ++ # default) and relocated if they conflict, which is a slow very memory ++ # consuming and fragmenting process. To avoid this, we pick a random, ++ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link ++ # time. Moving up from 0x10000000 also allows more sbrk(2) space. ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ++ ;; ++ irix5* | irix6*) ++ case $cc_basename in ++ CC*) ++ # SGI C++ ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' ++ ++ # Archives containing C++ object files must be created using ++ # "CC -ar", where "CC" is the IRIX C++ compiler. This is ++ # necessary to make sure instantiated templates are included ++ # in the archive. ++ _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ++ ;; ++ *) ++ if test yes = "$GXX"; then ++ if test no = "$with_gnu_ld"; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ++ else ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' ++ fi ++ fi ++ _LT_TAGVAR(link_all_deplibs, $1)=yes ++ ;; ++ esac ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ _LT_TAGVAR(inherit_rpath, $1)=yes ++ ;; ++ ++ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) ++ case $cc_basename in ++ KCC*) ++ # Kuck and Associates, Inc. (KAI) C++ Compiler ++ ++ # KCC will only create a shared library if the output file ++ # ends with ".so" (or ".sl" for HP-UX), so rename the library ++ # to its proper name (with version) after linking. ++ _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ # ++ # There doesn't appear to be a way to prevent this compiler from ++ # explicitly linking system object files so we need to strip them ++ # from the output so that they don't get included in the library ++ # dependencies. ++ output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ++ ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' ++ ++ # Archives containing C++ object files must be created using ++ # "CC -Bstatic", where "CC" is the KAI C++ compiler. ++ _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ++ ;; ++ icpc* | ecpc* ) ++ # Intel C++ ++ with_gnu_ld=yes ++ # version 8.0 and above of icpc choke on multiply defined symbols ++ # if we add $predep_objects and $postdep_objects, however 7.1 and ++ # earlier do not add the objects themselves. ++ case `$CC -V 2>&1` in ++ *"Version 7."*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ ;; ++ *) # Version 8.0 or newer ++ tmp_idyn= ++ case $host_cpu in ++ ia64*) tmp_idyn=' -i_dynamic';; ++ esac ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ ;; ++ esac ++ _LT_TAGVAR(archive_cmds_need_lc, $1)=no ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' ++ ;; ++ pgCC* | pgcpp*) ++ # Portland Group C++ compiler ++ case `$CC -V` in ++ *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) ++ _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ ++ rm -rf $tpldir~ ++ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' ++ _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ ++ rm -rf $tpldir~ ++ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ ++ $RANLIB $oldlib' ++ _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ ++ rm -rf $tpldir~ ++ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ ++ rm -rf $tpldir~ ++ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ ;; ++ *) # Version 6 and above use weak symbols ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ ;; ++ esac ++ ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ++ ;; ++ cxx*) ++ # Compaq C++ ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' ++ ++ runpath_var=LD_RUN_PATH ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ # ++ # There doesn't appear to be a way to prevent this compiler from ++ # explicitly linking system object files so we need to strip them ++ # from the output so that they don't get included in the library ++ # dependencies. ++ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ++ ;; ++ xl* | mpixl* | bgxl*) ++ # IBM XL 8.0 on PPC, with GNU ld ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' ++ if test yes = "$supports_anon_versioning"; then ++ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ ++ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ ++ echo "local: *; };" >> $output_objdir/$libname.ver~ ++ $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' ++ fi ++ ;; ++ *) ++ case `$CC -V 2>&1 | sed 5q` in ++ *Sun\ C*) ++ # Sun C++ 5.9 ++ _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ++ _LT_TAGVAR(compiler_needs_object, $1)=yes ++ ++ # Not sure whether something based on ++ # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 ++ # would be better. ++ output_verbose_link_cmd='func_echo_all' ++ ++ # Archives containing C++ object files must be created using ++ # "CC -xar", where "CC" is the Sun C++ compiler. This is ++ # necessary to make sure instantiated templates are included ++ # in the archive. ++ _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ++ ;; ++ esac ++ ;; ++ esac ++ ;; ++ ++ lynxos*) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ ++ m88k*) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ ++ mvs*) ++ case $cc_basename in ++ cxx*) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ *) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ esac ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then ++ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' ++ wlarc= ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ fi ++ # Workaround some broken pre-1.5 toolchains ++ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ++ ;; ++ ++ *nto* | *qnx*) ++ _LT_TAGVAR(ld_shlibs, $1)=yes ++ ;; ++ ++ openbsd* | bitrig*) ++ if test -f /usr/libexec/ld.so; then ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ++ _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' ++ fi ++ output_verbose_link_cmd=func_echo_all ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ ++ osf3* | osf4* | osf5*) ++ case $cc_basename in ++ KCC*) ++ # Kuck and Associates, Inc. (KAI) C++ Compiler ++ ++ # KCC will only create a shared library if the output file ++ # ends with ".so" (or ".sl" for HP-UX), so rename the library ++ # to its proper name (with version) after linking. ++ _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' ++ ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ ++ # Archives containing C++ object files must be created using ++ # the KAI C++ compiler. ++ case $host in ++ osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; ++ *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; ++ esac ++ ;; ++ RCC*) ++ # Rational C++ 2.4.1 ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ cxx*) ++ case $host in ++ osf3*) ++ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ++ ;; ++ *) ++ _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ ++ echo "-hidden">> $lib.exp~ ++ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ ++ $RM $lib.exp' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ++ ;; ++ esac ++ ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ # ++ # There doesn't appear to be a way to prevent this compiler from ++ # explicitly linking system object files so we need to strip them ++ # from the output so that they don't get included in the library ++ # dependencies. ++ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ++ ;; ++ *) ++ if test yes,no = "$GXX,$with_gnu_ld"; then ++ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' ++ case $host in ++ osf3*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ++ ;; ++ *) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ++ ;; ++ esac ++ ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' ++ ++ else ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ esac ++ ;; ++ ++ psos*) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ ++ sunos4*) ++ case $cc_basename in ++ CC*) ++ # Sun C++ 4.x ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ lcc*) ++ # Lucid ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ *) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ esac ++ ;; ++ ++ solaris*) ++ case $cc_basename in ++ CC* | sunCC*) ++ # Sun C++ 4.2, 5.x and Centerline C++ ++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes ++ _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ++ $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' ++ ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ case $host_os in ++ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; ++ *) ++ # The compiler driver will combine and reorder linker options, ++ # but understands '-z linker_flag'. ++ # Supported since Solaris 2.6 (maybe 2.5.1?) ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ++ ;; ++ esac ++ _LT_TAGVAR(link_all_deplibs, $1)=yes ++ ++ output_verbose_link_cmd='func_echo_all' ++ ++ # Archives containing C++ object files must be created using ++ # "CC -xar", where "CC" is the Sun C++ compiler. This is ++ # necessary to make sure instantiated templates are included ++ # in the archive. ++ _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ++ ;; ++ gcx*) ++ # Green Hills C++ Compiler ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' ++ ++ # The C++ compiler must be used to create the archive. ++ _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ++ ;; ++ *) ++ # GNU C++ compiler with Solaris linker ++ if test yes,no = "$GXX,$with_gnu_ld"; then ++ _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' ++ if $CC --version | $GREP -v '^2\.7' > /dev/null; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ++ $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' ++ ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' ++ else ++ # g++ 2.7 appears to require '-G' NOT '-shared' on this ++ # platform. ++ _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ++ $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' ++ ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' ++ fi ++ ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' ++ case $host_os in ++ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; ++ *) ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' ++ ;; ++ esac ++ fi ++ ;; ++ esac ++ ;; ++ ++ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) ++ _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' ++ _LT_TAGVAR(archive_cmds_need_lc, $1)=no ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ runpath_var='LD_RUN_PATH' ++ ++ case $cc_basename in ++ CC*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ *) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ esac ++ ;; ++ ++ sysv5* | sco3.2v5* | sco5v6*) ++ # Note: We CANNOT use -z defs as we might desire, because we do not ++ # link with -lc, and that would cause any symbols used from libc to ++ # always be unresolved, which means just about no library would ++ # ever link correctly. If we're not using GNU ld we use -z text ++ # though, which does catch some bad symbols but isn't as heavy-handed ++ # as -z defs. ++ _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' ++ _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' ++ _LT_TAGVAR(archive_cmds_need_lc, $1)=no ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=':' ++ _LT_TAGVAR(link_all_deplibs, $1)=yes ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' ++ runpath_var='LD_RUN_PATH' ++ ++ case $cc_basename in ++ CC*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ ++ '"$_LT_TAGVAR(old_archive_cmds, $1)" ++ _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ ++ '"$_LT_TAGVAR(reload_cmds, $1)" ++ ;; ++ *) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ esac ++ ;; ++ ++ tandem*) ++ case $cc_basename in ++ NCC*) ++ # NonStop-UX NCC 3.20 ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ *) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ esac ++ ;; ++ ++ vxworks*) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ ++ *) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ esac ++ ++ AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) ++ test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no ++ ++ _LT_TAGVAR(GCC, $1)=$GXX ++ _LT_TAGVAR(LD, $1)=$LD ++ ++ ## CAVEAT EMPTOR: ++ ## There is no encapsulation within the following macros, do not change ++ ## the running order or otherwise move them around unless you know exactly ++ ## what you are doing... ++ _LT_SYS_HIDDEN_LIBDEPS($1) ++ _LT_COMPILER_PIC($1) ++ _LT_COMPILER_C_O($1) ++ _LT_COMPILER_FILE_LOCKS($1) ++ _LT_LINKER_SHLIBS($1) ++ _LT_SYS_DYNAMIC_LINKER($1) ++ _LT_LINKER_HARDCODE_LIBPATH($1) ++ ++ _LT_CONFIG($1) ++ fi # test -n "$compiler" ++ ++ CC=$lt_save_CC ++ CFLAGS=$lt_save_CFLAGS ++ LDCXX=$LD ++ LD=$lt_save_LD ++ GCC=$lt_save_GCC ++ with_gnu_ld=$lt_save_with_gnu_ld ++ lt_cv_path_LDCXX=$lt_cv_path_LD ++ lt_cv_path_LD=$lt_save_path_LD ++ lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld ++ lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld ++fi # test yes != "$_lt_caught_CXX_error" ++ ++AC_LANG_POP ++])# _LT_LANG_CXX_CONFIG ++ ++ ++# _LT_FUNC_STRIPNAME_CNF ++# ---------------------- ++# func_stripname_cnf prefix suffix name ++# strip PREFIX and SUFFIX off of NAME. ++# PREFIX and SUFFIX must not contain globbing or regex special ++# characters, hashes, percent signs, but SUFFIX may contain a leading ++# dot (in which case that matches only a dot). ++# ++# This function is identical to the (non-XSI) version of func_stripname, ++# except this one can be used by m4 code that may be executed by configure, ++# rather than the libtool script. ++m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl ++AC_REQUIRE([_LT_DECL_SED]) ++AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) ++func_stripname_cnf () ++{ ++ case @S|@2 in ++ .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; ++ *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; ++ esac ++} # func_stripname_cnf ++])# _LT_FUNC_STRIPNAME_CNF ++ ++ ++# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) ++# --------------------------------- ++# Figure out "hidden" library dependencies from verbose ++# compiler output when linking a shared library. ++# Parse the compiler output and extract the necessary ++# objects, libraries and library flags. ++m4_defun([_LT_SYS_HIDDEN_LIBDEPS], ++[m4_require([_LT_FILEUTILS_DEFAULTS])dnl ++AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl ++# Dependencies to place before and after the object being linked: ++_LT_TAGVAR(predep_objects, $1)= ++_LT_TAGVAR(postdep_objects, $1)= ++_LT_TAGVAR(predeps, $1)= ++_LT_TAGVAR(postdeps, $1)= ++_LT_TAGVAR(compiler_lib_search_path, $1)= ++ ++dnl we can't use the lt_simple_compile_test_code here, ++dnl because it contains code intended for an executable, ++dnl not a library. It's possible we should let each ++dnl tag define a new lt_????_link_test_code variable, ++dnl but it's only used here... ++m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF ++int a; ++void foo (void) { a = 0; } ++_LT_EOF ++], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF ++class Foo ++{ ++public: ++ Foo (void) { a = 0; } ++private: ++ int a; ++}; ++_LT_EOF ++], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF ++ subroutine foo ++ implicit none ++ integer*4 a ++ a=0 ++ return ++ end ++_LT_EOF ++], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF ++ subroutine foo ++ implicit none ++ integer a ++ a=0 ++ return ++ end ++_LT_EOF ++], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF ++public class foo { ++ private int a; ++ public void bar (void) { ++ a = 0; ++ } ++}; ++_LT_EOF ++], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF ++package foo ++func foo() { ++} ++_LT_EOF ++]) ++ ++_lt_libdeps_save_CFLAGS=$CFLAGS ++case "$CC $CFLAGS " in #( ++*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; ++*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; ++*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; ++esac ++ ++dnl Parse the compiler output and extract the necessary ++dnl objects, libraries and library flags. ++if AC_TRY_EVAL(ac_compile); then ++ # Parse the compiler output and extract the necessary ++ # objects, libraries and library flags. ++ ++ # Sentinel used to keep track of whether or not we are before ++ # the conftest object file. ++ pre_test_object_deps_done=no ++ ++ for p in `eval "$output_verbose_link_cmd"`; do ++ case $prev$p in ++ ++ -L* | -R* | -l*) ++ # Some compilers place space between "-{L,R}" and the path. ++ # Remove the space. ++ if test x-L = "$p" || ++ test x-R = "$p"; then ++ prev=$p ++ continue ++ fi ++ ++ # Expand the sysroot to ease extracting the directories later. ++ if test -z "$prev"; then ++ case $p in ++ -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; ++ -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; ++ -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; ++ esac ++ fi ++ case $p in ++ =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; ++ esac ++ if test no = "$pre_test_object_deps_done"; then ++ case $prev in ++ -L | -R) ++ # Internal compiler library paths should come after those ++ # provided the user. The postdeps already come after the ++ # user supplied libs so there is no need to process them. ++ if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then ++ _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p ++ else ++ _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" ++ fi ++ ;; ++ # The "-l" case would never come before the object being ++ # linked, so don't bother handling this case. ++ esac ++ else ++ if test -z "$_LT_TAGVAR(postdeps, $1)"; then ++ _LT_TAGVAR(postdeps, $1)=$prev$p ++ else ++ _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" ++ fi ++ fi ++ prev= ++ ;; ++ ++ *.lto.$objext) ;; # Ignore GCC LTO objects ++ *.$objext) ++ # This assumes that the test object file only shows up ++ # once in the compiler output. ++ if test "$p" = "conftest.$objext"; then ++ pre_test_object_deps_done=yes ++ continue ++ fi ++ ++ if test no = "$pre_test_object_deps_done"; then ++ if test -z "$_LT_TAGVAR(predep_objects, $1)"; then ++ _LT_TAGVAR(predep_objects, $1)=$p ++ else ++ _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" ++ fi ++ else ++ if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then ++ _LT_TAGVAR(postdep_objects, $1)=$p ++ else ++ _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" ++ fi ++ fi ++ ;; ++ ++ *) ;; # Ignore the rest. ++ ++ esac ++ done ++ ++ # Clean up. ++ rm -f a.out a.exe ++else ++ echo "libtool.m4: error: problem compiling $1 test program" ++fi ++ ++$RM -f confest.$objext ++CFLAGS=$_lt_libdeps_save_CFLAGS ++ ++# PORTME: override above test on systems where it is broken ++m4_if([$1], [CXX], ++[case $host_os in ++interix[[3-9]]*) ++ # Interix 3.5 installs completely hosed .la files for C++, so rather than ++ # hack all around it, let's just trust "g++" to DTRT. ++ _LT_TAGVAR(predep_objects,$1)= ++ _LT_TAGVAR(postdep_objects,$1)= ++ _LT_TAGVAR(postdeps,$1)= ++ ;; ++esac ++]) ++ ++case " $_LT_TAGVAR(postdeps, $1) " in ++*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; ++esac ++ _LT_TAGVAR(compiler_lib_search_dirs, $1)= ++if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then ++ _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` ++fi ++_LT_TAGDECL([], [compiler_lib_search_dirs], [1], ++ [The directories searched by this compiler when creating a shared library]) ++_LT_TAGDECL([], [predep_objects], [1], ++ [Dependencies to place before and after the objects being linked to ++ create a shared library]) ++_LT_TAGDECL([], [postdep_objects], [1]) ++_LT_TAGDECL([], [predeps], [1]) ++_LT_TAGDECL([], [postdeps], [1]) ++_LT_TAGDECL([], [compiler_lib_search_path], [1], ++ [The library search path used internally by the compiler when linking ++ a shared library]) ++])# _LT_SYS_HIDDEN_LIBDEPS ++ ++ ++# _LT_LANG_F77_CONFIG([TAG]) ++# -------------------------- ++# Ensure that the configuration variables for a Fortran 77 compiler are ++# suitably defined. These variables are subsequently used by _LT_CONFIG ++# to write the compiler configuration to 'libtool'. ++m4_defun([_LT_LANG_F77_CONFIG], ++[AC_LANG_PUSH(Fortran 77) ++if test -z "$F77" || test no = "$F77"; then ++ _lt_disable_F77=yes ++fi ++ ++_LT_TAGVAR(archive_cmds_need_lc, $1)=no ++_LT_TAGVAR(allow_undefined_flag, $1)= ++_LT_TAGVAR(always_export_symbols, $1)=no ++_LT_TAGVAR(archive_expsym_cmds, $1)= ++_LT_TAGVAR(export_dynamic_flag_spec, $1)= ++_LT_TAGVAR(hardcode_direct, $1)=no ++_LT_TAGVAR(hardcode_direct_absolute, $1)=no ++_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= ++_LT_TAGVAR(hardcode_libdir_separator, $1)= ++_LT_TAGVAR(hardcode_minus_L, $1)=no ++_LT_TAGVAR(hardcode_automatic, $1)=no ++_LT_TAGVAR(inherit_rpath, $1)=no ++_LT_TAGVAR(module_cmds, $1)= ++_LT_TAGVAR(module_expsym_cmds, $1)= ++_LT_TAGVAR(link_all_deplibs, $1)=unknown ++_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds ++_LT_TAGVAR(reload_flag, $1)=$reload_flag ++_LT_TAGVAR(reload_cmds, $1)=$reload_cmds ++_LT_TAGVAR(no_undefined_flag, $1)= ++_LT_TAGVAR(whole_archive_flag_spec, $1)= ++_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no ++ ++# Source file extension for f77 test sources. ++ac_ext=f ++ ++# Object file extension for compiled f77 test sources. ++objext=o ++_LT_TAGVAR(objext, $1)=$objext ++ ++# No sense in running all these tests if we already determined that ++# the F77 compiler isn't working. Some variables (like enable_shared) ++# are currently assumed to apply to all compilers on this platform, ++# and will be corrupted by setting them based on a non-working compiler. ++if test yes != "$_lt_disable_F77"; then ++ # Code to be used in simple compile tests ++ lt_simple_compile_test_code="\ ++ subroutine t ++ return ++ end ++" ++ ++ # Code to be used in simple link tests ++ lt_simple_link_test_code="\ ++ program t ++ end ++" ++ ++ # ltmain only uses $CC for tagged configurations so make sure $CC is set. ++ _LT_TAG_COMPILER ++ ++ # save warnings/boilerplate of simple test code ++ _LT_COMPILER_BOILERPLATE ++ _LT_LINKER_BOILERPLATE ++ ++ # Allow CC to be a program name with arguments. ++ lt_save_CC=$CC ++ lt_save_GCC=$GCC ++ lt_save_CFLAGS=$CFLAGS ++ CC=${F77-"f77"} ++ CFLAGS=$FFLAGS ++ compiler=$CC ++ _LT_TAGVAR(compiler, $1)=$CC ++ _LT_CC_BASENAME([$compiler]) ++ GCC=$G77 ++ if test -n "$compiler"; then ++ AC_MSG_CHECKING([if libtool supports shared libraries]) ++ AC_MSG_RESULT([$can_build_shared]) ++ ++ AC_MSG_CHECKING([whether to build shared libraries]) ++ test no = "$can_build_shared" && 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 yes = "$enable_shared" && enable_static=no ++ if test -n "$RANLIB"; then ++ archive_cmds="$archive_cmds~\$RANLIB \$lib" ++ postinstall_cmds='$RANLIB $lib' ++ fi ++ ;; ++ aix[[4-9]]*) ++ if test ia64 != "$host_cpu"; then ++ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in ++ yes,aix,yes) ;; # shared object as lib.so file only ++ yes,svr4,*) ;; # shared object as lib.so archive member only ++ yes,*) enable_static=no ;; # shared object in lib.a archive as well ++ esac ++ 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 yes = "$enable_shared" || enable_static=yes ++ AC_MSG_RESULT([$enable_static]) ++ ++ _LT_TAGVAR(GCC, $1)=$G77 ++ _LT_TAGVAR(LD, $1)=$LD ++ ++ ## CAVEAT EMPTOR: ++ ## There is no encapsulation within the following macros, do not change ++ ## the running order or otherwise move them around unless you know exactly ++ ## what you are doing... ++ _LT_COMPILER_PIC($1) ++ _LT_COMPILER_C_O($1) ++ _LT_COMPILER_FILE_LOCKS($1) ++ _LT_LINKER_SHLIBS($1) ++ _LT_SYS_DYNAMIC_LINKER($1) ++ _LT_LINKER_HARDCODE_LIBPATH($1) ++ ++ _LT_CONFIG($1) ++ fi # test -n "$compiler" ++ ++ GCC=$lt_save_GCC ++ CC=$lt_save_CC ++ CFLAGS=$lt_save_CFLAGS ++fi # test yes != "$_lt_disable_F77" ++ ++AC_LANG_POP ++])# _LT_LANG_F77_CONFIG ++ ++ ++# _LT_LANG_FC_CONFIG([TAG]) ++# ------------------------- ++# Ensure that the configuration variables for a Fortran compiler are ++# suitably defined. These variables are subsequently used by _LT_CONFIG ++# to write the compiler configuration to 'libtool'. ++m4_defun([_LT_LANG_FC_CONFIG], ++[AC_LANG_PUSH(Fortran) ++ ++if test -z "$FC" || test no = "$FC"; then ++ _lt_disable_FC=yes ++fi ++ ++_LT_TAGVAR(archive_cmds_need_lc, $1)=no ++_LT_TAGVAR(allow_undefined_flag, $1)= ++_LT_TAGVAR(always_export_symbols, $1)=no ++_LT_TAGVAR(archive_expsym_cmds, $1)= ++_LT_TAGVAR(export_dynamic_flag_spec, $1)= ++_LT_TAGVAR(hardcode_direct, $1)=no ++_LT_TAGVAR(hardcode_direct_absolute, $1)=no ++_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= ++_LT_TAGVAR(hardcode_libdir_separator, $1)= ++_LT_TAGVAR(hardcode_minus_L, $1)=no ++_LT_TAGVAR(hardcode_automatic, $1)=no ++_LT_TAGVAR(inherit_rpath, $1)=no ++_LT_TAGVAR(module_cmds, $1)= ++_LT_TAGVAR(module_expsym_cmds, $1)= ++_LT_TAGVAR(link_all_deplibs, $1)=unknown ++_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds ++_LT_TAGVAR(reload_flag, $1)=$reload_flag ++_LT_TAGVAR(reload_cmds, $1)=$reload_cmds ++_LT_TAGVAR(no_undefined_flag, $1)= ++_LT_TAGVAR(whole_archive_flag_spec, $1)= ++_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no ++ ++# Source file extension for fc test sources. ++ac_ext=${ac_fc_srcext-f} ++ ++# Object file extension for compiled fc test sources. ++objext=o ++_LT_TAGVAR(objext, $1)=$objext ++ ++# No sense in running all these tests if we already determined that ++# the FC compiler isn't working. Some variables (like enable_shared) ++# are currently assumed to apply to all compilers on this platform, ++# and will be corrupted by setting them based on a non-working compiler. ++if test yes != "$_lt_disable_FC"; then ++ # Code to be used in simple compile tests ++ lt_simple_compile_test_code="\ ++ subroutine t ++ return ++ end ++" ++ ++ # Code to be used in simple link tests ++ lt_simple_link_test_code="\ ++ program t ++ end ++" ++ ++ # ltmain only uses $CC for tagged configurations so make sure $CC is set. ++ _LT_TAG_COMPILER ++ ++ # save warnings/boilerplate of simple test code ++ _LT_COMPILER_BOILERPLATE ++ _LT_LINKER_BOILERPLATE ++ ++ # Allow CC to be a program name with arguments. ++ lt_save_CC=$CC ++ lt_save_GCC=$GCC ++ lt_save_CFLAGS=$CFLAGS ++ CC=${FC-"f95"} ++ CFLAGS=$FCFLAGS ++ compiler=$CC ++ GCC=$ac_cv_fc_compiler_gnu ++ ++ _LT_TAGVAR(compiler, $1)=$CC ++ _LT_CC_BASENAME([$compiler]) ++ ++ if test -n "$compiler"; then ++ AC_MSG_CHECKING([if libtool supports shared libraries]) ++ AC_MSG_RESULT([$can_build_shared]) ++ ++ AC_MSG_CHECKING([whether to build shared libraries]) ++ test no = "$can_build_shared" && 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 yes = "$enable_shared" && enable_static=no ++ if test -n "$RANLIB"; then ++ archive_cmds="$archive_cmds~\$RANLIB \$lib" ++ postinstall_cmds='$RANLIB $lib' ++ fi ++ ;; ++ aix[[4-9]]*) ++ if test ia64 != "$host_cpu"; then ++ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in ++ yes,aix,yes) ;; # shared object as lib.so file only ++ yes,svr4,*) ;; # shared object as lib.so archive member only ++ yes,*) enable_static=no ;; # shared object in lib.a archive as well ++ esac ++ 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 yes = "$enable_shared" || enable_static=yes ++ AC_MSG_RESULT([$enable_static]) ++ ++ _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu ++ _LT_TAGVAR(LD, $1)=$LD ++ ++ ## CAVEAT EMPTOR: ++ ## There is no encapsulation within the following macros, do not change ++ ## the running order or otherwise move them around unless you know exactly ++ ## what you are doing... ++ _LT_SYS_HIDDEN_LIBDEPS($1) ++ _LT_COMPILER_PIC($1) ++ _LT_COMPILER_C_O($1) ++ _LT_COMPILER_FILE_LOCKS($1) ++ _LT_LINKER_SHLIBS($1) ++ _LT_SYS_DYNAMIC_LINKER($1) ++ _LT_LINKER_HARDCODE_LIBPATH($1) ++ ++ _LT_CONFIG($1) ++ fi # test -n "$compiler" ++ ++ GCC=$lt_save_GCC ++ CC=$lt_save_CC ++ CFLAGS=$lt_save_CFLAGS ++fi # test yes != "$_lt_disable_FC" ++ ++AC_LANG_POP ++])# _LT_LANG_FC_CONFIG ++ ++ ++# _LT_LANG_GCJ_CONFIG([TAG]) ++# -------------------------- ++# Ensure that the configuration variables for the GNU Java Compiler compiler ++# are suitably defined. These variables are subsequently used by _LT_CONFIG ++# to write the compiler configuration to 'libtool'. ++m4_defun([_LT_LANG_GCJ_CONFIG], ++[AC_REQUIRE([LT_PROG_GCJ])dnl ++AC_LANG_SAVE ++ ++# Source file extension for Java test sources. ++ac_ext=java ++ ++# Object file extension for compiled Java test sources. ++objext=o ++_LT_TAGVAR(objext, $1)=$objext ++ ++# Code to be used in simple compile tests ++lt_simple_compile_test_code="class foo {}" ++ ++# Code to be used in simple link tests ++lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' ++ ++# ltmain only uses $CC for tagged configurations so make sure $CC is set. ++_LT_TAG_COMPILER ++ ++# save warnings/boilerplate of simple test code ++_LT_COMPILER_BOILERPLATE ++_LT_LINKER_BOILERPLATE ++ ++# Allow CC to be a program name with arguments. ++lt_save_CC=$CC ++lt_save_CFLAGS=$CFLAGS ++lt_save_GCC=$GCC ++GCC=yes ++CC=${GCJ-"gcj"} ++CFLAGS=$GCJFLAGS ++compiler=$CC ++_LT_TAGVAR(compiler, $1)=$CC ++_LT_TAGVAR(LD, $1)=$LD ++_LT_CC_BASENAME([$compiler]) ++ ++# GCJ did not exist at the time GCC didn't implicitly link libc in. ++_LT_TAGVAR(archive_cmds_need_lc, $1)=no ++ ++_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds ++_LT_TAGVAR(reload_flag, $1)=$reload_flag ++_LT_TAGVAR(reload_cmds, $1)=$reload_cmds ++ ++## CAVEAT EMPTOR: ++## There is no encapsulation within the following macros, do not change ++## the running order or otherwise move them around unless you know exactly ++## what you are doing... ++if test -n "$compiler"; then ++ _LT_COMPILER_NO_RTTI($1) ++ _LT_COMPILER_PIC($1) ++ _LT_COMPILER_C_O($1) ++ _LT_COMPILER_FILE_LOCKS($1) ++ _LT_LINKER_SHLIBS($1) ++ _LT_LINKER_HARDCODE_LIBPATH($1) ++ ++ _LT_CONFIG($1) ++fi ++ ++AC_LANG_RESTORE ++ ++GCC=$lt_save_GCC ++CC=$lt_save_CC ++CFLAGS=$lt_save_CFLAGS ++])# _LT_LANG_GCJ_CONFIG ++ ++ ++# _LT_LANG_GO_CONFIG([TAG]) ++# -------------------------- ++# Ensure that the configuration variables for the GNU Go compiler ++# are suitably defined. These variables are subsequently used by _LT_CONFIG ++# to write the compiler configuration to 'libtool'. ++m4_defun([_LT_LANG_GO_CONFIG], ++[AC_REQUIRE([LT_PROG_GO])dnl ++AC_LANG_SAVE ++ ++# Source file extension for Go test sources. ++ac_ext=go ++ ++# Object file extension for compiled Go test sources. ++objext=o ++_LT_TAGVAR(objext, $1)=$objext ++ ++# Code to be used in simple compile tests ++lt_simple_compile_test_code="package main; func main() { }" ++ ++# Code to be used in simple link tests ++lt_simple_link_test_code='package main; func main() { }' ++ ++# ltmain only uses $CC for tagged configurations so make sure $CC is set. ++_LT_TAG_COMPILER ++ ++# save warnings/boilerplate of simple test code ++_LT_COMPILER_BOILERPLATE ++_LT_LINKER_BOILERPLATE ++ ++# Allow CC to be a program name with arguments. ++lt_save_CC=$CC ++lt_save_CFLAGS=$CFLAGS ++lt_save_GCC=$GCC ++GCC=yes ++CC=${GOC-"gccgo"} ++CFLAGS=$GOFLAGS ++compiler=$CC ++_LT_TAGVAR(compiler, $1)=$CC ++_LT_TAGVAR(LD, $1)=$LD ++_LT_CC_BASENAME([$compiler]) ++ ++# Go did not exist at the time GCC didn't implicitly link libc in. ++_LT_TAGVAR(archive_cmds_need_lc, $1)=no ++ ++_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds ++_LT_TAGVAR(reload_flag, $1)=$reload_flag ++_LT_TAGVAR(reload_cmds, $1)=$reload_cmds ++ ++## CAVEAT EMPTOR: ++## There is no encapsulation within the following macros, do not change ++## the running order or otherwise move them around unless you know exactly ++## what you are doing... ++if test -n "$compiler"; then ++ _LT_COMPILER_NO_RTTI($1) ++ _LT_COMPILER_PIC($1) ++ _LT_COMPILER_C_O($1) ++ _LT_COMPILER_FILE_LOCKS($1) ++ _LT_LINKER_SHLIBS($1) ++ _LT_LINKER_HARDCODE_LIBPATH($1) ++ ++ _LT_CONFIG($1) ++fi ++ ++AC_LANG_RESTORE ++ ++GCC=$lt_save_GCC ++CC=$lt_save_CC ++CFLAGS=$lt_save_CFLAGS ++])# _LT_LANG_GO_CONFIG ++ ++ ++# _LT_LANG_RC_CONFIG([TAG]) ++# ------------------------- ++# Ensure that the configuration variables for the Windows resource compiler ++# are suitably defined. These variables are subsequently used by _LT_CONFIG ++# to write the compiler configuration to 'libtool'. ++m4_defun([_LT_LANG_RC_CONFIG], ++[AC_REQUIRE([LT_PROG_RC])dnl ++AC_LANG_SAVE ++ ++# Source file extension for RC test sources. ++ac_ext=rc ++ ++# Object file extension for compiled RC test sources. ++objext=o ++_LT_TAGVAR(objext, $1)=$objext ++ ++# Code to be used in simple compile tests ++lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' ++ ++# Code to be used in simple link tests ++lt_simple_link_test_code=$lt_simple_compile_test_code ++ ++# ltmain only uses $CC for tagged configurations so make sure $CC is set. ++_LT_TAG_COMPILER ++ ++# save warnings/boilerplate of simple test code ++_LT_COMPILER_BOILERPLATE ++_LT_LINKER_BOILERPLATE ++ ++# Allow CC to be a program name with arguments. ++lt_save_CC=$CC ++lt_save_CFLAGS=$CFLAGS ++lt_save_GCC=$GCC ++GCC= ++CC=${RC-"windres"} ++CFLAGS= ++compiler=$CC ++_LT_TAGVAR(compiler, $1)=$CC ++_LT_CC_BASENAME([$compiler]) ++_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes ++ ++if test -n "$compiler"; then ++ : ++ _LT_CONFIG($1) ++fi ++ ++GCC=$lt_save_GCC ++AC_LANG_RESTORE ++CC=$lt_save_CC ++CFLAGS=$lt_save_CFLAGS ++])# _LT_LANG_RC_CONFIG ++ ++ ++# LT_PROG_GCJ ++# ----------- ++AC_DEFUN([LT_PROG_GCJ], ++[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], ++ [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], ++ [AC_CHECK_TOOL(GCJ, gcj,) ++ test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" ++ AC_SUBST(GCJFLAGS)])])[]dnl ++]) ++ ++# Old name: ++AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([LT_AC_PROG_GCJ], []) ++ ++ ++# LT_PROG_GO ++# ---------- ++AC_DEFUN([LT_PROG_GO], ++[AC_CHECK_TOOL(GOC, gccgo,) ++]) ++ ++ ++# LT_PROG_RC ++# ---------- ++AC_DEFUN([LT_PROG_RC], ++[AC_CHECK_TOOL(RC, windres,) ++]) ++ ++# Old name: ++AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([LT_AC_PROG_RC], []) ++ ++ ++# _LT_DECL_EGREP ++# -------------- ++# If we don't have a new enough Autoconf to choose the best grep ++# available, choose the one first in the user's PATH. ++m4_defun([_LT_DECL_EGREP], ++[AC_REQUIRE([AC_PROG_EGREP])dnl ++AC_REQUIRE([AC_PROG_FGREP])dnl ++test -z "$GREP" && GREP=grep ++_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) ++_LT_DECL([], [EGREP], [1], [An ERE matcher]) ++_LT_DECL([], [FGREP], [1], [A literal string matcher]) ++dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too ++AC_SUBST([GREP]) ++]) ++ ++ ++# _LT_DECL_OBJDUMP ++# -------------- ++# If we don't have a new enough Autoconf to choose the best objdump ++# available, choose the one first in the user's PATH. ++m4_defun([_LT_DECL_OBJDUMP], ++[AC_CHECK_TOOL(OBJDUMP, objdump, false) ++test -z "$OBJDUMP" && OBJDUMP=objdump ++_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) ++AC_SUBST([OBJDUMP]) ++]) ++ ++# _LT_DECL_DLLTOOL ++# ---------------- ++# Ensure DLLTOOL variable is set. ++m4_defun([_LT_DECL_DLLTOOL], ++[AC_CHECK_TOOL(DLLTOOL, dlltool, false) ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) ++AC_SUBST([DLLTOOL]) ++]) ++ ++# _LT_DECL_SED ++# ------------ ++# Check for a fully-functional sed program, that truncates ++# as few characters as possible. Prefer GNU sed if found. ++m4_defun([_LT_DECL_SED], ++[AC_PROG_SED ++test -z "$SED" && SED=sed ++Xsed="$SED -e 1s/^X//" ++_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) ++_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], ++ [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ++])# _LT_DECL_SED ++ ++m4_ifndef([AC_PROG_SED], [ ++############################################################ ++# NOTE: This macro has been submitted for inclusion into # ++# GNU Autoconf as AC_PROG_SED. When it is available in # ++# a released version of Autoconf we should remove this # ++# macro and use it instead. # ++############################################################ ++ ++m4_defun([AC_PROG_SED], ++[AC_MSG_CHECKING([for a sed that does not truncate output]) ++AC_CACHE_VAL(lt_cv_path_SED, ++[# Loop through the user's path and test for sed and gsed. ++# Then use that list of sed's as ones to test for truncation. ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for lt_ac_prog in sed gsed; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then ++ lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" ++ fi ++ done ++ done ++done ++IFS=$as_save_IFS ++lt_ac_max=0 ++lt_ac_count=0 ++# Add /usr/xpg4/bin/sed as it is typically found on Solaris ++# along with /bin/sed that truncates output. ++for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do ++ test ! -f "$lt_ac_sed" && continue ++ cat /dev/null > conftest.in ++ lt_ac_count=0 ++ echo $ECHO_N "0123456789$ECHO_C" >conftest.in ++ # Check for GNU sed and select it if it is found. ++ if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then ++ lt_cv_path_SED=$lt_ac_sed ++ break ++ fi ++ while true; do ++ cat conftest.in conftest.in >conftest.tmp ++ mv conftest.tmp conftest.in ++ cp conftest.in conftest.nl ++ echo >>conftest.nl ++ $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break ++ cmp -s conftest.out conftest.nl || break ++ # 10000 chars as input seems more than enough ++ test 10 -lt "$lt_ac_count" && break ++ lt_ac_count=`expr $lt_ac_count + 1` ++ if test "$lt_ac_count" -gt "$lt_ac_max"; then ++ lt_ac_max=$lt_ac_count ++ lt_cv_path_SED=$lt_ac_sed ++ fi ++ done ++done ++]) ++SED=$lt_cv_path_SED ++AC_SUBST([SED]) ++AC_MSG_RESULT([$SED]) ++])#AC_PROG_SED ++])#m4_ifndef ++ ++# Old name: ++AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([LT_AC_PROG_SED], []) ++ ++ ++# _LT_CHECK_SHELL_FEATURES ++# ------------------------ ++# Find out whether the shell is Bourne or XSI compatible, ++# or has some other useful features. ++m4_defun([_LT_CHECK_SHELL_FEATURES], ++[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then ++ lt_unset=unset ++else ++ lt_unset=false ++fi ++_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl ++ ++# test EBCDIC or ASCII ++case `echo X|tr X '\101'` in ++ A) # ASCII based system ++ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr ++ lt_SP2NL='tr \040 \012' ++ lt_NL2SP='tr \015\012 \040\040' ++ ;; ++ *) # EBCDIC based system ++ lt_SP2NL='tr \100 \n' ++ lt_NL2SP='tr \r\n \100\100' ++ ;; ++esac ++_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl ++_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ++])# _LT_CHECK_SHELL_FEATURES ++ ++ ++# _LT_PATH_CONVERSION_FUNCTIONS ++# ----------------------------- ++# Determine what file name conversion functions should be used by ++# func_to_host_file (and, implicitly, by func_to_host_path). These are needed ++# for certain cross-compile configurations and native mingw. ++m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], ++[AC_REQUIRE([AC_CANONICAL_HOST])dnl ++AC_REQUIRE([AC_CANONICAL_BUILD])dnl ++AC_MSG_CHECKING([how to convert $build file names to $host format]) ++AC_CACHE_VAL(lt_cv_to_host_file_cmd, ++[case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ++ ;; ++ esac ++ ;; ++ *-*-cygwin* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ++ ;; ++ esac ++ ;; ++ * ) # unhandled hosts (and "normal" native builds) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++esac ++]) ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) ++_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], ++ [0], [convert $build file names to $host format])dnl ++ ++AC_MSG_CHECKING([how to convert $build file names to toolchain format]) ++AC_CACHE_VAL(lt_cv_to_tool_file_cmd, ++[#assume ordinary cross tools, or native build. ++lt_cv_to_tool_file_cmd=func_convert_file_noop ++case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ esac ++ ;; ++esac ++]) ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) ++_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], ++ [0], [convert $build files to toolchain format])dnl ++])# _LT_PATH_CONVERSION_FUNCTIONS +diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4 +new file mode 100644 +index 0000000..94b0829 +--- /dev/null ++++ b/m4/ltoptions.m4 +@@ -0,0 +1,437 @@ ++# Helper functions for option handling. -*- Autoconf -*- ++# ++# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software ++# Foundation, Inc. ++# Written by Gary V. Vaughan, 2004 ++# ++# This file is free software; the Free Software Foundation gives ++# unlimited permission to copy and/or distribute it, with or without ++# modifications, as long as this notice is preserved. ++ ++# serial 8 ltoptions.m4 ++ ++# This is to help aclocal find these macros, as it can't see m4_define. ++AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) ++ ++ ++# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) ++# ------------------------------------------ ++m4_define([_LT_MANGLE_OPTION], ++[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) ++ ++ ++# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) ++# --------------------------------------- ++# Set option OPTION-NAME for macro MACRO-NAME, and if there is a ++# matching handler defined, dispatch to it. Other OPTION-NAMEs are ++# saved as a flag. ++m4_define([_LT_SET_OPTION], ++[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl ++m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), ++ _LT_MANGLE_DEFUN([$1], [$2]), ++ [m4_warning([Unknown $1 option '$2'])])[]dnl ++]) ++ ++ ++# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) ++# ------------------------------------------------------------ ++# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. ++m4_define([_LT_IF_OPTION], ++[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) ++ ++ ++# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) ++# ------------------------------------------------------- ++# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME ++# are set. ++m4_define([_LT_UNLESS_OPTIONS], ++[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), ++ [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), ++ [m4_define([$0_found])])])[]dnl ++m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ++])[]dnl ++]) ++ ++ ++# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) ++# ---------------------------------------- ++# OPTION-LIST is a space-separated list of Libtool options associated ++# with MACRO-NAME. If any OPTION has a matching handler declared with ++# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about ++# the unknown option and exit. ++m4_defun([_LT_SET_OPTIONS], ++[# Set options ++m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), ++ [_LT_SET_OPTION([$1], _LT_Option)]) ++ ++m4_if([$1],[LT_INIT],[ ++ dnl ++ dnl Simply set some default values (i.e off) if boolean options were not ++ dnl specified: ++ _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ++ ]) ++ _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ++ ]) ++ dnl ++ dnl If no reference was made to various pairs of opposing options, then ++ dnl we run the default mode handler for the pair. For example, if neither ++ dnl 'shared' nor 'disable-shared' was passed, we enable building of shared ++ dnl archives by default: ++ _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) ++ _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) ++ _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) ++ _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], ++ [_LT_ENABLE_FAST_INSTALL]) ++ _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], ++ [_LT_WITH_AIX_SONAME([aix])]) ++ ]) ++])# _LT_SET_OPTIONS ++ ++ ++## --------------------------------- ## ++## Macros to handle LT_INIT options. ## ++## --------------------------------- ## ++ ++# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) ++# ----------------------------------------- ++m4_define([_LT_MANGLE_DEFUN], ++[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) ++ ++ ++# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) ++# ----------------------------------------------- ++m4_define([LT_OPTION_DEFINE], ++[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ++])# LT_OPTION_DEFINE ++ ++ ++# dlopen ++# ------ ++LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ++]) ++ ++AU_DEFUN([AC_LIBTOOL_DLOPEN], ++[_LT_SET_OPTION([LT_INIT], [dlopen]) ++AC_DIAGNOSE([obsolete], ++[$0: Remove this warning and the call to _LT_SET_OPTION when you ++put the 'dlopen' option into LT_INIT's first parameter.]) ++]) ++ ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) ++ ++ ++# win32-dll ++# --------- ++# Declare package support for building win32 dll's. ++LT_OPTION_DEFINE([LT_INIT], [win32-dll], ++[enable_win32_dll=yes ++ ++case $host in ++*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) ++ AC_CHECK_TOOL(AS, as, false) ++ AC_CHECK_TOOL(DLLTOOL, dlltool, false) ++ AC_CHECK_TOOL(OBJDUMP, objdump, false) ++ ;; ++esac ++ ++test -z "$AS" && AS=as ++_LT_DECL([], [AS], [1], [Assembler program])dnl ++ ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl ++ ++test -z "$OBJDUMP" && OBJDUMP=objdump ++_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ++])# win32-dll ++ ++AU_DEFUN([AC_LIBTOOL_WIN32_DLL], ++[AC_REQUIRE([AC_CANONICAL_HOST])dnl ++_LT_SET_OPTION([LT_INIT], [win32-dll]) ++AC_DIAGNOSE([obsolete], ++[$0: Remove this warning and the call to _LT_SET_OPTION when you ++put the 'win32-dll' option into LT_INIT's first parameter.]) ++]) ++ ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) ++ ++ ++# _LT_ENABLE_SHARED([DEFAULT]) ++# ---------------------------- ++# implement the --enable-shared flag, and supports the 'shared' and ++# 'disable-shared' LT_INIT options. ++# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. ++m4_define([_LT_ENABLE_SHARED], ++[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl ++AC_ARG_ENABLE([shared], ++ [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], ++ [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], ++ [p=${PACKAGE-default} ++ case $enableval in ++ yes) enable_shared=yes ;; ++ no) enable_shared=no ;; ++ *) ++ enable_shared=no ++ # Look at the argument we got. We use all the common list separators. ++ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, ++ for pkg in $enableval; do ++ IFS=$lt_save_ifs ++ if test "X$pkg" = "X$p"; then ++ enable_shared=yes ++ fi ++ done ++ IFS=$lt_save_ifs ++ ;; ++ esac], ++ [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) ++ ++ _LT_DECL([build_libtool_libs], [enable_shared], [0], ++ [Whether or not to build shared libraries]) ++])# _LT_ENABLE_SHARED ++ ++LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) ++LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) ++ ++# Old names: ++AC_DEFUN([AC_ENABLE_SHARED], ++[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ++]) ++ ++AC_DEFUN([AC_DISABLE_SHARED], ++[_LT_SET_OPTION([LT_INIT], [disable-shared]) ++]) ++ ++AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) ++AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) ++ ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AM_ENABLE_SHARED], []) ++dnl AC_DEFUN([AM_DISABLE_SHARED], []) ++ ++ ++ ++# _LT_ENABLE_STATIC([DEFAULT]) ++# ---------------------------- ++# implement the --enable-static flag, and support the 'static' and ++# 'disable-static' LT_INIT options. ++# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. ++m4_define([_LT_ENABLE_STATIC], ++[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl ++AC_ARG_ENABLE([static], ++ [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], ++ [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], ++ [p=${PACKAGE-default} ++ case $enableval in ++ yes) enable_static=yes ;; ++ no) enable_static=no ;; ++ *) ++ enable_static=no ++ # Look at the argument we got. We use all the common list separators. ++ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, ++ for pkg in $enableval; do ++ IFS=$lt_save_ifs ++ if test "X$pkg" = "X$p"; then ++ enable_static=yes ++ fi ++ done ++ IFS=$lt_save_ifs ++ ;; ++ esac], ++ [enable_static=]_LT_ENABLE_STATIC_DEFAULT) ++ ++ _LT_DECL([build_old_libs], [enable_static], [0], ++ [Whether or not to build static libraries]) ++])# _LT_ENABLE_STATIC ++ ++LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) ++LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) ++ ++# Old names: ++AC_DEFUN([AC_ENABLE_STATIC], ++[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ++]) ++ ++AC_DEFUN([AC_DISABLE_STATIC], ++[_LT_SET_OPTION([LT_INIT], [disable-static]) ++]) ++ ++AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) ++AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) ++ ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AM_ENABLE_STATIC], []) ++dnl AC_DEFUN([AM_DISABLE_STATIC], []) ++ ++ ++ ++# _LT_ENABLE_FAST_INSTALL([DEFAULT]) ++# ---------------------------------- ++# implement the --enable-fast-install flag, and support the 'fast-install' ++# and 'disable-fast-install' LT_INIT options. ++# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. ++m4_define([_LT_ENABLE_FAST_INSTALL], ++[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl ++AC_ARG_ENABLE([fast-install], ++ [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], ++ [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], ++ [p=${PACKAGE-default} ++ case $enableval in ++ yes) enable_fast_install=yes ;; ++ no) enable_fast_install=no ;; ++ *) ++ enable_fast_install=no ++ # Look at the argument we got. We use all the common list separators. ++ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, ++ for pkg in $enableval; do ++ IFS=$lt_save_ifs ++ if test "X$pkg" = "X$p"; then ++ enable_fast_install=yes ++ fi ++ done ++ IFS=$lt_save_ifs ++ ;; ++ esac], ++ [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) ++ ++_LT_DECL([fast_install], [enable_fast_install], [0], ++ [Whether or not to optimize for fast installation])dnl ++])# _LT_ENABLE_FAST_INSTALL ++ ++LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) ++LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) ++ ++# Old names: ++AU_DEFUN([AC_ENABLE_FAST_INSTALL], ++[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) ++AC_DIAGNOSE([obsolete], ++[$0: Remove this warning and the call to _LT_SET_OPTION when you put ++the 'fast-install' option into LT_INIT's first parameter.]) ++]) ++ ++AU_DEFUN([AC_DISABLE_FAST_INSTALL], ++[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) ++AC_DIAGNOSE([obsolete], ++[$0: Remove this warning and the call to _LT_SET_OPTION when you put ++the 'disable-fast-install' option into LT_INIT's first parameter.]) ++]) ++ ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) ++dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) ++ ++ ++# _LT_WITH_AIX_SONAME([DEFAULT]) ++# ---------------------------------- ++# implement the --with-aix-soname flag, and support the `aix-soname=aix' ++# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT ++# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. ++m4_define([_LT_WITH_AIX_SONAME], ++[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl ++shared_archive_member_spec= ++case $host,$enable_shared in ++power*-*-aix[[5-9]]*,yes) ++ AC_MSG_CHECKING([which variant of shared library versioning to provide]) ++ AC_ARG_WITH([aix-soname], ++ [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], ++ [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], ++ [case $withval in ++ aix|svr4|both) ++ ;; ++ *) ++ AC_MSG_ERROR([Unknown argument to --with-aix-soname]) ++ ;; ++ esac ++ lt_cv_with_aix_soname=$with_aix_soname], ++ [AC_CACHE_VAL([lt_cv_with_aix_soname], ++ [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) ++ with_aix_soname=$lt_cv_with_aix_soname]) ++ AC_MSG_RESULT([$with_aix_soname]) ++ if test aix != "$with_aix_soname"; then ++ # For the AIX way of multilib, we name the shared archive member ++ # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', ++ # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. ++ # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, ++ # the AIX toolchain works better with OBJECT_MODE set (default 32). ++ if test 64 = "${OBJECT_MODE-32}"; then ++ shared_archive_member_spec=shr_64 ++ else ++ shared_archive_member_spec=shr ++ fi ++ fi ++ ;; ++*) ++ with_aix_soname=aix ++ ;; ++esac ++ ++_LT_DECL([], [shared_archive_member_spec], [0], ++ [Shared archive member basename, for filename based shared library versioning on AIX])dnl ++])# _LT_WITH_AIX_SONAME ++ ++LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) ++LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) ++LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) ++ ++ ++# _LT_WITH_PIC([MODE]) ++# -------------------- ++# implement the --with-pic flag, and support the 'pic-only' and 'no-pic' ++# LT_INIT options. ++# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. ++m4_define([_LT_WITH_PIC], ++[AC_ARG_WITH([pic], ++ [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], ++ [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], ++ [lt_p=${PACKAGE-default} ++ case $withval in ++ yes|no) pic_mode=$withval ;; ++ *) ++ pic_mode=default ++ # Look at the argument we got. We use all the common list separators. ++ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, ++ for lt_pkg in $withval; do ++ IFS=$lt_save_ifs ++ if test "X$lt_pkg" = "X$lt_p"; then ++ pic_mode=yes ++ fi ++ done ++ IFS=$lt_save_ifs ++ ;; ++ esac], ++ [pic_mode=m4_default([$1], [default])]) ++ ++_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ++])# _LT_WITH_PIC ++ ++LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) ++LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) ++ ++# Old name: ++AU_DEFUN([AC_LIBTOOL_PICMODE], ++[_LT_SET_OPTION([LT_INIT], [pic-only]) ++AC_DIAGNOSE([obsolete], ++[$0: Remove this warning and the call to _LT_SET_OPTION when you ++put the 'pic-only' option into LT_INIT's first parameter.]) ++]) ++ ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ++ ++## ----------------- ## ++## LTDL_INIT Options ## ++## ----------------- ## ++ ++m4_define([_LTDL_MODE], []) ++LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], ++ [m4_define([_LTDL_MODE], [nonrecursive])]) ++LT_OPTION_DEFINE([LTDL_INIT], [recursive], ++ [m4_define([_LTDL_MODE], [recursive])]) ++LT_OPTION_DEFINE([LTDL_INIT], [subproject], ++ [m4_define([_LTDL_MODE], [subproject])]) ++ ++m4_define([_LTDL_TYPE], []) ++LT_OPTION_DEFINE([LTDL_INIT], [installable], ++ [m4_define([_LTDL_TYPE], [installable])]) ++LT_OPTION_DEFINE([LTDL_INIT], [convenience], ++ [m4_define([_LTDL_TYPE], [convenience])]) +diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4 +new file mode 100644 +index 0000000..48bc934 +--- /dev/null ++++ b/m4/ltsugar.m4 +@@ -0,0 +1,124 @@ ++# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- ++# ++# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software ++# Foundation, Inc. ++# Written by Gary V. Vaughan, 2004 ++# ++# This file is free software; the Free Software Foundation gives ++# unlimited permission to copy and/or distribute it, with or without ++# modifications, as long as this notice is preserved. ++ ++# serial 6 ltsugar.m4 ++ ++# This is to help aclocal find these macros, as it can't see m4_define. ++AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) ++ ++ ++# lt_join(SEP, ARG1, [ARG2...]) ++# ----------------------------- ++# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their ++# associated separator. ++# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier ++# versions in m4sugar had bugs. ++m4_define([lt_join], ++[m4_if([$#], [1], [], ++ [$#], [2], [[$2]], ++ [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) ++m4_define([_lt_join], ++[m4_if([$#$2], [2], [], ++ [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) ++ ++ ++# lt_car(LIST) ++# lt_cdr(LIST) ++# ------------ ++# Manipulate m4 lists. ++# These macros are necessary as long as will still need to support ++# Autoconf-2.59, which quotes differently. ++m4_define([lt_car], [[$1]]) ++m4_define([lt_cdr], ++[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], ++ [$#], 1, [], ++ [m4_dquote(m4_shift($@))])]) ++m4_define([lt_unquote], $1) ++ ++ ++# lt_append(MACRO-NAME, STRING, [SEPARATOR]) ++# ------------------------------------------ ++# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. ++# Note that neither SEPARATOR nor STRING are expanded; they are appended ++# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). ++# No SEPARATOR is output if MACRO-NAME was previously undefined (different ++# than defined and empty). ++# ++# This macro is needed until we can rely on Autoconf 2.62, since earlier ++# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. ++m4_define([lt_append], ++[m4_define([$1], ++ m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) ++ ++ ++ ++# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) ++# ---------------------------------------------------------- ++# Produce a SEP delimited list of all paired combinations of elements of ++# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list ++# has the form PREFIXmINFIXSUFFIXn. ++# Needed until we can rely on m4_combine added in Autoconf 2.62. ++m4_define([lt_combine], ++[m4_if(m4_eval([$# > 3]), [1], ++ [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl ++[[m4_foreach([_Lt_prefix], [$2], ++ [m4_foreach([_Lt_suffix], ++ ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, ++ [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) ++ ++ ++# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) ++# ----------------------------------------------------------------------- ++# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited ++# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. ++m4_define([lt_if_append_uniq], ++[m4_ifdef([$1], ++ [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], ++ [lt_append([$1], [$2], [$3])$4], ++ [$5])], ++ [lt_append([$1], [$2], [$3])$4])]) ++ ++ ++# lt_dict_add(DICT, KEY, VALUE) ++# ----------------------------- ++m4_define([lt_dict_add], ++[m4_define([$1($2)], [$3])]) ++ ++ ++# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) ++# -------------------------------------------- ++m4_define([lt_dict_add_subkey], ++[m4_define([$1($2:$3)], [$4])]) ++ ++ ++# lt_dict_fetch(DICT, KEY, [SUBKEY]) ++# ---------------------------------- ++m4_define([lt_dict_fetch], ++[m4_ifval([$3], ++ m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), ++ m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) ++ ++ ++# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) ++# ----------------------------------------------------------------- ++m4_define([lt_if_dict_fetch], ++[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], ++ [$5], ++ [$6])]) ++ ++ ++# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) ++# -------------------------------------------------------------- ++m4_define([lt_dict_filter], ++[m4_if([$5], [], [], ++ [lt_join(m4_quote(m4_default([$4], [[, ]])), ++ lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), ++ [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ++]) +diff --git a/m4/ltversion.m4 b/m4/ltversion.m4 +new file mode 100644 +index 0000000..fa04b52 +--- /dev/null ++++ b/m4/ltversion.m4 +@@ -0,0 +1,23 @@ ++# ltversion.m4 -- version numbers -*- Autoconf -*- ++# ++# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. ++# Written by Scott James Remnant, 2004 ++# ++# This file is free software; the Free Software Foundation gives ++# unlimited permission to copy and/or distribute it, with or without ++# modifications, as long as this notice is preserved. ++ ++# @configure_input@ ++ ++# serial 4179 ltversion.m4 ++# This file is part of GNU Libtool ++ ++m4_define([LT_PACKAGE_VERSION], [2.4.6]) ++m4_define([LT_PACKAGE_REVISION], [2.4.6]) ++ ++AC_DEFUN([LTVERSION_VERSION], ++[macro_version='2.4.6' ++macro_revision='2.4.6' ++_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) ++_LT_DECL(, macro_revision, 0) ++]) +diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4 +new file mode 100644 +index 0000000..c6b26f8 +--- /dev/null ++++ b/m4/lt~obsolete.m4 +@@ -0,0 +1,99 @@ ++# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- ++# ++# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software ++# Foundation, Inc. ++# Written by Scott James Remnant, 2004. ++# ++# This file is free software; the Free Software Foundation gives ++# unlimited permission to copy and/or distribute it, with or without ++# modifications, as long as this notice is preserved. ++ ++# serial 5 lt~obsolete.m4 ++ ++# These exist entirely to fool aclocal when bootstrapping libtool. ++# ++# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), ++# which have later been changed to m4_define as they aren't part of the ++# exported API, or moved to Autoconf or Automake where they belong. ++# ++# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN ++# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us ++# using a macro with the same name in our local m4/libtool.m4 it'll ++# pull the old libtool.m4 in (it doesn't see our shiny new m4_define ++# and doesn't know about Autoconf macros at all.) ++# ++# So we provide this file, which has a silly filename so it's always ++# included after everything else. This provides aclocal with the ++# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything ++# because those macros already exist, or will be overwritten later. ++# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. ++# ++# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. ++# Yes, that means every name once taken will need to remain here until ++# we give up compatibility with versions before 1.7, at which point ++# we need to keep only those names which we still refer to. ++ ++# This is to help aclocal find these macros, as it can't see m4_define. ++AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) ++ ++m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) ++m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) ++m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) ++m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) ++m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) ++m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) ++m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) ++m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) ++m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) ++m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) ++m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) ++m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) ++m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) ++m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) ++m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) ++m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) ++m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) ++m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) ++m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) ++m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) ++m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) ++m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) ++m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) ++m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) ++m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) ++m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) ++m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) ++m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) ++m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) ++m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) ++m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) ++m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) ++m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) ++m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) ++m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) ++m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) ++m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) ++m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) ++m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) ++m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) ++m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) ++m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) ++m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) ++m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) ++m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) ++m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) ++m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) ++m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) ++m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) ++m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) ++m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) ++m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) ++m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) ++m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) ++m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) ++m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) ++m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) ++m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) ++m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) ++m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) ++m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) +diff --git a/man/Makefile.in b/man/Makefile.in +new file mode 100644 +index 0000000..9e1a6bb +--- /dev/null ++++ b/man/Makefile.in +@@ -0,0 +1,862 @@ ++# Makefile.in generated by automake 1.15 from Makefile.am. ++# @configure_input@ ++ ++# Copyright (C) 1994-2014 Free Software Foundation, Inc. ++ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++@SET_MAKE@ ++VPATH = @srcdir@ ++am__is_gnu_make = { \ ++ if test -z '$(MAKELEVEL)'; then \ ++ false; \ ++ elif test -n '$(MAKE_HOST)'; then \ ++ true; \ ++ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ ++ true; \ ++ else \ ++ false; \ ++ fi; \ ++} ++am__make_running_with_option = \ ++ case $${target_option-} in \ ++ ?) ;; \ ++ *) echo "am__make_running_with_option: internal error: invalid" \ ++ "target option '$${target_option-}' specified" >&2; \ ++ exit 1;; \ ++ esac; \ ++ has_opt=no; \ ++ sane_makeflags=$$MAKEFLAGS; \ ++ if $(am__is_gnu_make); then \ ++ sane_makeflags=$$MFLAGS; \ ++ else \ ++ case $$MAKEFLAGS in \ ++ *\\[\ \ ]*) \ ++ bs=\\; \ ++ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ ++ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ ++ esac; \ ++ fi; \ ++ skip_next=no; \ ++ strip_trailopt () \ ++ { \ ++ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ ++ }; \ ++ for flg in $$sane_makeflags; do \ ++ test $$skip_next = yes && { skip_next=no; continue; }; \ ++ case $$flg in \ ++ *=*|--*) continue;; \ ++ -*I) strip_trailopt 'I'; skip_next=yes;; \ ++ -*I?*) strip_trailopt 'I';; \ ++ -*O) strip_trailopt 'O'; skip_next=yes;; \ ++ -*O?*) strip_trailopt 'O';; \ ++ -*l) strip_trailopt 'l'; skip_next=yes;; \ ++ -*l?*) strip_trailopt 'l';; \ ++ -[dEDm]) skip_next=yes;; \ ++ -[JT]) skip_next=yes;; \ ++ esac; \ ++ case $$flg in \ ++ *$$target_option*) has_opt=yes; break;; \ ++ esac; \ ++ done; \ ++ test $$has_opt = yes ++am__make_dryrun = (target_option=n; $(am__make_running_with_option)) ++am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkglibexecdir = $(libexecdir)/@PACKAGE@ ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = @build@ ++host_triplet = @host@ ++subdir = man ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ ++ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ ++ $(top_srcdir)/m4/glibc2.m4 $(top_srcdir)/m4/glibc21.m4 \ ++ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \ ++ $(top_srcdir)/m4/intl.m4 $(top_srcdir)/m4/intlmacosx.m4 \ ++ $(top_srcdir)/m4/intmax.m4 $(top_srcdir)/m4/inttypes-pri.m4 \ ++ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ ++ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ ++ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ ++ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ ++ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ++ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ ++ $(top_srcdir)/m4/printf-posix.m4 $(top_srcdir)/m4/progtest.m4 \ ++ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/stdint_h.m4 \ ++ $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/m4/uintmax_t.m4 \ ++ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ ++ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ++ $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) ++mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = ++AM_V_P = $(am__v_P_@AM_V@) ++am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) ++am__v_P_0 = false ++am__v_P_1 = : ++AM_V_GEN = $(am__v_GEN_@AM_V@) ++am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) ++am__v_GEN_0 = @echo " GEN " $@; ++am__v_GEN_1 = ++AM_V_at = $(am__v_at_@AM_V@) ++am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) ++am__v_at_0 = @ ++am__v_at_1 = ++SOURCES = ++DIST_SOURCES = ++RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ++ ctags-recursive dvi-recursive html-recursive info-recursive \ ++ install-data-recursive install-dvi-recursive \ ++ install-exec-recursive install-html-recursive \ ++ install-info-recursive install-pdf-recursive \ ++ install-ps-recursive install-recursive installcheck-recursive \ ++ installdirs-recursive pdf-recursive ps-recursive \ ++ tags-recursive uninstall-recursive ++am__can_run_installinfo = \ ++ case $$AM_UPDATE_INFO_DIR in \ ++ n|no|NO) false;; \ ++ *) (install-info --version) >/dev/null 2>&1;; \ ++ esac ++am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; ++am__vpath_adj = case $$p in \ ++ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ ++ *) f=$$p;; \ ++ esac; ++am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; ++am__install_max = 40 ++am__nobase_strip_setup = \ ++ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` ++am__nobase_strip = \ ++ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" ++am__nobase_list = $(am__nobase_strip_setup); \ ++ for p in $$list; do echo "$$p $$p"; done | \ ++ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ ++ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ ++ if (++n[$$2] == $(am__install_max)) \ ++ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ ++ END { for (dir in files) print dir, files[dir] }' ++am__base_list = \ ++ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ ++ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' ++am__uninstall_files_from_dir = { \ ++ test -z "$$files" \ ++ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ ++ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ ++ $(am__cd) "$$dir" && rm -f $$files; }; \ ++ } ++man1dir = $(mandir)/man1 ++am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man3dir)" \ ++ "$(DESTDIR)$(man5dir)" ++man3dir = $(mandir)/man3 ++man5dir = $(mandir)/man5 ++NROFF = nroff ++MANS = $(man_MANS) ++RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ ++ distclean-recursive maintainer-clean-recursive ++am__recursive_targets = \ ++ $(RECURSIVE_TARGETS) \ ++ $(RECURSIVE_CLEAN_TARGETS) \ ++ $(am__extra_recursive_targets) ++AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ ++ distdir ++am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) ++# Read a list of newline-separated strings from the standard input, ++# and print each of them once, without duplicates. Input order is ++# *not* preserved. ++am__uniquify_input = $(AWK) '\ ++ BEGIN { nonempty = 0; } \ ++ { items[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in items) print i; }; } \ ++' ++# Make sure the list of sources is unique. This is necessary because, ++# e.g., the same source file might be shared among _SOURCES variables ++# for different programs/libraries. ++am__define_uniq_tagged_files = \ ++ list='$(am__tagged_files)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | $(am__uniquify_input)` ++ETAGS = etags ++CTAGS = ctags ++DIST_SUBDIRS = $(SUBDIRS) ++am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/mkinstalldirs ++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ++am__relativize = \ ++ dir0=`pwd`; \ ++ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ ++ sed_rest='s,^[^/]*/*,,'; \ ++ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ ++ sed_butlast='s,/*[^/]*$$,,'; \ ++ while test -n "$$dir1"; do \ ++ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ ++ if test "$$first" != "."; then \ ++ if test "$$first" = ".."; then \ ++ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ ++ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ ++ else \ ++ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ ++ if test "$$first2" = "$$first"; then \ ++ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ ++ else \ ++ dir2="../$$dir2"; \ ++ fi; \ ++ dir0="$$dir0"/"$$first"; \ ++ fi; \ ++ fi; \ ++ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ ++ done; \ ++ reldir="$$dir2" ++ACLOCAL = @ACLOCAL@ ++ALLOCA = @ALLOCA@ ++AMTAR = @AMTAR@ ++AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ ++AR = @AR@ ++AS = @AS@ ++AUTOCONF = @AUTOCONF@ ++AUTOHEADER = @AUTOHEADER@ ++AUTOMAKE = @AUTOMAKE@ ++AWK = @AWK@ ++BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ ++CATOBJEXT = @CATOBJEXT@ ++CC = @CC@ ++CCDEPMODE = @CCDEPMODE@ ++CFLAGS = @CFLAGS@ ++CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ ++CPP = @CPP@ ++CPPFLAGS = @CPPFLAGS@ ++CURSESLIB = @CURSESLIB@ ++CXX = @CXX@ ++CXXCPP = @CXXCPP@ ++CXXDEPMODE = @CXXDEPMODE@ ++CXXFLAGS = @CXXFLAGS@ ++CYGPATH_W = @CYGPATH_W@ ++DATADIRNAME = @DATADIRNAME@ ++DEFS = @DEFS@ ++DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ ++DSYMUTIL = @DSYMUTIL@ ++DUMPBIN = @DUMPBIN@ ++ECHO_C = @ECHO_C@ ++ECHO_N = @ECHO_N@ ++ECHO_T = @ECHO_T@ ++EGREP = @EGREP@ ++EXEEXT = @EXEEXT@ ++FGREP = @FGREP@ ++GENCAT = @GENCAT@ ++GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ ++GLIBC2 = @GLIBC2@ ++GLIBC21 = @GLIBC21@ ++GMSGFMT = @GMSGFMT@ ++GMSGFMT_015 = @GMSGFMT_015@ ++GREP = @GREP@ ++HAVE_ASPRINTF = @HAVE_ASPRINTF@ ++HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ ++HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ ++HAVE_SNPRINTF = @HAVE_SNPRINTF@ ++HAVE_VISIBILITY = @HAVE_VISIBILITY@ ++HAVE_WPRINTF = @HAVE_WPRINTF@ ++HUNSPELL_VERSION_MAJOR = @HUNSPELL_VERSION_MAJOR@ ++HUNSPELL_VERSION_MINOR = @HUNSPELL_VERSION_MINOR@ ++INSTALL = @INSTALL@ ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ++INSTOBJEXT = @INSTOBJEXT@ ++INTLBISON = @INTLBISON@ ++INTLLIBS = @INTLLIBS@ ++INTLOBJS = @INTLOBJS@ ++INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ ++INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ ++INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ++LD = @LD@ ++LDFLAGS = @LDFLAGS@ ++LIBICONV = @LIBICONV@ ++LIBINTL = @LIBINTL@ ++LIBMULTITHREAD = @LIBMULTITHREAD@ ++LIBOBJS = @LIBOBJS@ ++LIBPTH = @LIBPTH@ ++LIBPTH_PREFIX = @LIBPTH_PREFIX@ ++LIBS = @LIBS@ ++LIBTHREAD = @LIBTHREAD@ ++LIBTOOL = @LIBTOOL@ ++LIPO = @LIPO@ ++LN_S = @LN_S@ ++LTLIBC = @LTLIBC@ ++LTLIBICONV = @LTLIBICONV@ ++LTLIBINTL = @LTLIBINTL@ ++LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ ++LTLIBOBJS = @LTLIBOBJS@ ++LTLIBPTH = @LTLIBPTH@ ++LTLIBTHREAD = @LTLIBTHREAD@ ++LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ ++MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ ++MKDIR_P = @MKDIR_P@ ++MSGFMT = @MSGFMT@ ++MSGFMT_015 = @MSGFMT_015@ ++MSGMERGE = @MSGMERGE@ ++NM = @NM@ ++NMEDIT = @NMEDIT@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++OTOOL = @OTOOL@ ++OTOOL64 = @OTOOL64@ ++PACKAGE = @PACKAGE@ ++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ ++PACKAGE_NAME = @PACKAGE_NAME@ ++PACKAGE_STRING = @PACKAGE_STRING@ ++PACKAGE_TARNAME = @PACKAGE_TARNAME@ ++PACKAGE_URL = @PACKAGE_URL@ ++PACKAGE_VERSION = @PACKAGE_VERSION@ ++PATH_SEPARATOR = @PATH_SEPARATOR@ ++POSUB = @POSUB@ ++PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ ++RANLIB = @RANLIB@ ++READLINELIB = @READLINELIB@ ++SED = @SED@ ++SET_MAKE = @SET_MAKE@ ++SHELL = @SHELL@ ++STRIP = @STRIP@ ++USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ ++USE_NLS = @USE_NLS@ ++VERSION = @VERSION@ ++WINDRES = @WINDRES@ ++WOE32 = @WOE32@ ++WOE32DLL = @WOE32DLL@ ++XFAILED = @XFAILED@ ++XGETTEXT = @XGETTEXT@ ++XGETTEXT_015 = @XGETTEXT_015@ ++XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ++abs_builddir = @abs_builddir@ ++abs_srcdir = @abs_srcdir@ ++abs_top_builddir = @abs_top_builddir@ ++abs_top_srcdir = @abs_top_srcdir@ ++ac_ct_AR = @ac_ct_AR@ ++ac_ct_CC = @ac_ct_CC@ ++ac_ct_CXX = @ac_ct_CXX@ ++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ++am__include = @am__include@ ++am__leading_dot = @am__leading_dot@ ++am__quote = @am__quote@ ++am__tar = @am__tar@ ++am__untar = @am__untar@ ++bindir = @bindir@ ++build = @build@ ++build_alias = @build_alias@ ++build_cpu = @build_cpu@ ++build_os = @build_os@ ++build_vendor = @build_vendor@ ++builddir = @builddir@ ++datadir = @datadir@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++dvidir = @dvidir@ ++exec_prefix = @exec_prefix@ ++host = @host@ ++host_alias = @host_alias@ ++host_cpu = @host_cpu@ ++host_os = @host_os@ ++host_vendor = @host_vendor@ ++htmldir = @htmldir@ ++includedir = @includedir@ ++infodir = @infodir@ ++install_sh = @install_sh@ ++libdir = @libdir@ ++libexecdir = @libexecdir@ ++localedir = @localedir@ ++localstatedir = @localstatedir@ ++mandir = @mandir@ ++mkdir_p = @mkdir_p@ ++oldincludedir = @oldincludedir@ ++pdfdir = @pdfdir@ ++prefix = @prefix@ ++program_transform_name = @program_transform_name@ ++psdir = @psdir@ ++sbindir = @sbindir@ ++sharedstatedir = @sharedstatedir@ ++srcdir = @srcdir@ ++sysconfdir = @sysconfdir@ ++target_alias = @target_alias@ ++top_build_prefix = @top_build_prefix@ ++top_builddir = @top_builddir@ ++top_srcdir = @top_srcdir@ ++man_MANS = hunspell.1 hunspell.3 hunspell.5 hzip.1 hunzip.1 ++EXTRA_DIST = $(man_MANS) ++SUBDIRS = hu ++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 ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu man/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnu man/Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++install-man1: $(man_MANS) ++ @$(NORMAL_INSTALL) ++ @list1=''; \ ++ list2='$(man_MANS)'; \ ++ test -n "$(man1dir)" \ ++ && test -n "`echo $$list1$$list2`" \ ++ || exit 0; \ ++ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ ++ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ ++ { for i in $$list1; do echo "$$i"; done; \ ++ if test -n "$$list2"; then \ ++ for i in $$list2; do echo "$$i"; done \ ++ | sed -n '/\.1[a-z]*$$/p'; \ ++ fi; \ ++ } | while read p; do \ ++ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ ++ echo "$$d$$p"; echo "$$p"; \ ++ done | \ ++ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ ++ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ ++ sed 'N;N;s,\n, ,g' | { \ ++ list=; while read file base inst; do \ ++ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ ++ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ ++ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ ++ fi; \ ++ done; \ ++ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ ++ while read files; do \ ++ test -z "$$files" || { \ ++ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ ++ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ ++ done; } ++ ++uninstall-man1: ++ @$(NORMAL_UNINSTALL) ++ @list=''; test -n "$(man1dir)" || exit 0; \ ++ files=`{ for i in $$list; do echo "$$i"; done; \ ++ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ ++ sed -n '/\.1[a-z]*$$/p'; \ ++ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ ++ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ ++ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) ++install-man3: $(man_MANS) ++ @$(NORMAL_INSTALL) ++ @list1=''; \ ++ list2='$(man_MANS)'; \ ++ test -n "$(man3dir)" \ ++ && test -n "`echo $$list1$$list2`" \ ++ || exit 0; \ ++ echo " $(MKDIR_P) '$(DESTDIR)$(man3dir)'"; \ ++ $(MKDIR_P) "$(DESTDIR)$(man3dir)" || exit 1; \ ++ { for i in $$list1; do echo "$$i"; done; \ ++ if test -n "$$list2"; then \ ++ for i in $$list2; do echo "$$i"; done \ ++ | sed -n '/\.3[a-z]*$$/p'; \ ++ fi; \ ++ } | while read p; do \ ++ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ ++ echo "$$d$$p"; echo "$$p"; \ ++ done | \ ++ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \ ++ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ ++ sed 'N;N;s,\n, ,g' | { \ ++ list=; while read file base inst; do \ ++ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ ++ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man3dir)/$$inst'"; \ ++ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man3dir)/$$inst" || exit $$?; \ ++ fi; \ ++ done; \ ++ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ ++ while read files; do \ ++ test -z "$$files" || { \ ++ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man3dir)'"; \ ++ $(INSTALL_DATA) $$files "$(DESTDIR)$(man3dir)" || exit $$?; }; \ ++ done; } ++ ++uninstall-man3: ++ @$(NORMAL_UNINSTALL) ++ @list=''; test -n "$(man3dir)" || exit 0; \ ++ files=`{ for i in $$list; do echo "$$i"; done; \ ++ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ ++ sed -n '/\.3[a-z]*$$/p'; \ ++ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \ ++ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ ++ dir='$(DESTDIR)$(man3dir)'; $(am__uninstall_files_from_dir) ++install-man5: $(man_MANS) ++ @$(NORMAL_INSTALL) ++ @list1=''; \ ++ list2='$(man_MANS)'; \ ++ test -n "$(man5dir)" \ ++ && test -n "`echo $$list1$$list2`" \ ++ || exit 0; \ ++ echo " $(MKDIR_P) '$(DESTDIR)$(man5dir)'"; \ ++ $(MKDIR_P) "$(DESTDIR)$(man5dir)" || exit 1; \ ++ { for i in $$list1; do echo "$$i"; done; \ ++ if test -n "$$list2"; then \ ++ for i in $$list2; do echo "$$i"; done \ ++ | sed -n '/\.5[a-z]*$$/p'; \ ++ fi; \ ++ } | while read p; do \ ++ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ ++ echo "$$d$$p"; echo "$$p"; \ ++ done | \ ++ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ ++ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ ++ sed 'N;N;s,\n, ,g' | { \ ++ list=; while read file base inst; do \ ++ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ ++ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \ ++ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \ ++ fi; \ ++ done; \ ++ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ ++ while read files; do \ ++ test -z "$$files" || { \ ++ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \ ++ $(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \ ++ done; } ++ ++uninstall-man5: ++ @$(NORMAL_UNINSTALL) ++ @list=''; test -n "$(man5dir)" || exit 0; \ ++ files=`{ for i in $$list; do echo "$$i"; done; \ ++ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ ++ sed -n '/\.5[a-z]*$$/p'; \ ++ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ ++ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ ++ dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir) ++ ++# This directory's subdirectories are mostly independent; you can cd ++# into them and run 'make' without going through this Makefile. ++# To change the values of 'make' variables: instead of editing Makefiles, ++# (1) if the variable is set in 'config.status', edit 'config.status' ++# (which will cause the Makefiles to be regenerated when you run 'make'); ++# (2) otherwise, pass the desired values on the 'make' command line. ++$(am__recursive_targets): ++ @fail=; \ ++ if $(am__make_keepgoing); then \ ++ failcom='fail=yes'; \ ++ else \ ++ failcom='exit 1'; \ ++ fi; \ ++ dot_seen=no; \ ++ target=`echo $@ | sed s/-recursive//`; \ ++ case "$@" in \ ++ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ ++ *) list='$(SUBDIRS)' ;; \ ++ esac; \ ++ for subdir in $$list; do \ ++ echo "Making $$target in $$subdir"; \ ++ if test "$$subdir" = "."; then \ ++ dot_seen=yes; \ ++ local_target="$$target-am"; \ ++ else \ ++ local_target="$$target"; \ ++ fi; \ ++ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ ++ || eval $$failcom; \ ++ done; \ ++ if test "$$dot_seen" = "no"; then \ ++ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ ++ fi; test -z "$$fail" ++ ++ID: $(am__tagged_files) ++ $(am__define_uniq_tagged_files); mkid -fID $$unique ++tags: tags-recursive ++TAGS: tags ++ ++tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ set x; \ ++ here=`pwd`; \ ++ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ ++ include_option=--etags-include; \ ++ empty_fix=.; \ ++ else \ ++ include_option=--include; \ ++ empty_fix=; \ ++ fi; \ ++ list='$(SUBDIRS)'; for subdir in $$list; do \ ++ if test "$$subdir" = .; then :; else \ ++ test ! -f $$subdir/TAGS || \ ++ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ ++ fi; \ ++ done; \ ++ $(am__define_uniq_tagged_files); \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ ++ test -n "$$unique" || unique=$$empty_fix; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ ++ fi ++ctags: ctags-recursive ++ ++CTAGS: ctags ++ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ $(am__define_uniq_tagged_files); \ ++ test -z "$(CTAGS_ARGS)$$unique" \ ++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ ++ $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" ++cscopelist: cscopelist-recursive ++ ++cscopelist-am: $(am__tagged_files) ++ list='$(am__tagged_files)'; \ ++ case "$(srcdir)" in \ ++ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ ++ *) sdir=$(subdir)/$(srcdir) ;; \ ++ esac; \ ++ for i in $$list; do \ ++ if test -f "$$i"; then \ ++ echo "$(subdir)/$$i"; \ ++ else \ ++ echo "$$sdir/$$i"; \ ++ fi; \ ++ done >> $(top_builddir)/cscope.files ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags ++ ++distdir: $(DISTFILES) ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ ++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ ++ if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ ++ else \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ ++ || exit 1; \ ++ fi; \ ++ done ++ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ ++ if test "$$subdir" = .; then :; else \ ++ $(am__make_dryrun) \ ++ || test -d "$(distdir)/$$subdir" \ ++ || $(MKDIR_P) "$(distdir)/$$subdir" \ ++ || exit 1; \ ++ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ ++ $(am__relativize); \ ++ new_distdir=$$reldir; \ ++ dir1=$$subdir; dir2="$(top_distdir)"; \ ++ $(am__relativize); \ ++ new_top_distdir=$$reldir; \ ++ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ ++ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ++ ($(am__cd) $$subdir && \ ++ $(MAKE) $(AM_MAKEFLAGS) \ ++ top_distdir="$$new_top_distdir" \ ++ distdir="$$new_distdir" \ ++ am__remove_distdir=: \ ++ am__skip_length_check=: \ ++ am__skip_mode_fix=: \ ++ distdir) \ ++ || exit 1; \ ++ fi; \ ++ done ++check-am: all-am ++check: check-recursive ++all-am: Makefile $(MANS) ++installdirs: installdirs-recursive ++installdirs-am: ++ for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(man5dir)"; do \ ++ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ ++ done ++install: install-recursive ++install-exec: install-exec-recursive ++install-data: install-data-recursive ++uninstall: uninstall-recursive ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-recursive ++install-strip: ++ if test -z '$(STRIP)'; then \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ install; \ ++ else \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ ++ fi ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-recursive ++ ++clean-am: clean-generic clean-libtool mostlyclean-am ++ ++distclean: distclean-recursive ++ -rm -f Makefile ++distclean-am: clean-am distclean-generic distclean-tags ++ ++dvi: dvi-recursive ++ ++dvi-am: ++ ++html: html-recursive ++ ++html-am: ++ ++info: info-recursive ++ ++info-am: ++ ++install-data-am: install-man ++ ++install-dvi: install-dvi-recursive ++ ++install-dvi-am: ++ ++install-exec-am: ++ ++install-html: install-html-recursive ++ ++install-html-am: ++ ++install-info: install-info-recursive ++ ++install-info-am: ++ ++install-man: install-man1 install-man3 install-man5 ++ ++install-pdf: install-pdf-recursive ++ ++install-pdf-am: ++ ++install-ps: install-ps-recursive ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-recursive ++ -rm -f 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-man ++ ++uninstall-man: uninstall-man1 uninstall-man3 uninstall-man5 ++ ++.MAKE: $(am__recursive_targets) install-am install-strip ++ ++.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ ++ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ++ ctags-am 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-man1 install-man3 install-man5 install-pdf \ ++ install-pdf-am install-ps install-ps-am install-strip \ ++ installcheck installcheck-am installdirs installdirs-am \ ++ maintainer-clean maintainer-clean-generic mostlyclean \ ++ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ ++ tags tags-am uninstall uninstall-am uninstall-man \ ++ uninstall-man1 uninstall-man3 uninstall-man5 ++ ++.PRECIOUS: Makefile ++ ++ ++# 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/man/hu/Makefile.in b/man/hu/Makefile.in +new file mode 100644 +index 0000000..674c1d5 +--- /dev/null ++++ b/man/hu/Makefile.in +@@ -0,0 +1,638 @@ ++# Makefile.in generated by automake 1.15 from Makefile.am. ++# @configure_input@ ++ ++# Copyright (C) 1994-2014 Free Software Foundation, Inc. ++ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++@SET_MAKE@ ++VPATH = @srcdir@ ++am__is_gnu_make = { \ ++ if test -z '$(MAKELEVEL)'; then \ ++ false; \ ++ elif test -n '$(MAKE_HOST)'; then \ ++ true; \ ++ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ ++ true; \ ++ else \ ++ false; \ ++ fi; \ ++} ++am__make_running_with_option = \ ++ case $${target_option-} in \ ++ ?) ;; \ ++ *) echo "am__make_running_with_option: internal error: invalid" \ ++ "target option '$${target_option-}' specified" >&2; \ ++ exit 1;; \ ++ esac; \ ++ has_opt=no; \ ++ sane_makeflags=$$MAKEFLAGS; \ ++ if $(am__is_gnu_make); then \ ++ sane_makeflags=$$MFLAGS; \ ++ else \ ++ case $$MAKEFLAGS in \ ++ *\\[\ \ ]*) \ ++ bs=\\; \ ++ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ ++ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ ++ esac; \ ++ fi; \ ++ skip_next=no; \ ++ strip_trailopt () \ ++ { \ ++ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ ++ }; \ ++ for flg in $$sane_makeflags; do \ ++ test $$skip_next = yes && { skip_next=no; continue; }; \ ++ case $$flg in \ ++ *=*|--*) continue;; \ ++ -*I) strip_trailopt 'I'; skip_next=yes;; \ ++ -*I?*) strip_trailopt 'I';; \ ++ -*O) strip_trailopt 'O'; skip_next=yes;; \ ++ -*O?*) strip_trailopt 'O';; \ ++ -*l) strip_trailopt 'l'; skip_next=yes;; \ ++ -*l?*) strip_trailopt 'l';; \ ++ -[dEDm]) skip_next=yes;; \ ++ -[JT]) skip_next=yes;; \ ++ esac; \ ++ case $$flg in \ ++ *$$target_option*) has_opt=yes; break;; \ ++ esac; \ ++ done; \ ++ test $$has_opt = yes ++am__make_dryrun = (target_option=n; $(am__make_running_with_option)) ++am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkglibexecdir = $(libexecdir)/@PACKAGE@ ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = @build@ ++host_triplet = @host@ ++subdir = man/hu ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ ++ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ ++ $(top_srcdir)/m4/glibc2.m4 $(top_srcdir)/m4/glibc21.m4 \ ++ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \ ++ $(top_srcdir)/m4/intl.m4 $(top_srcdir)/m4/intlmacosx.m4 \ ++ $(top_srcdir)/m4/intmax.m4 $(top_srcdir)/m4/inttypes-pri.m4 \ ++ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ ++ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ ++ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ ++ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ ++ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ++ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ ++ $(top_srcdir)/m4/printf-posix.m4 $(top_srcdir)/m4/progtest.m4 \ ++ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/stdint_h.m4 \ ++ $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/m4/uintmax_t.m4 \ ++ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ ++ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ++ $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) ++mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = ++AM_V_P = $(am__v_P_@AM_V@) ++am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) ++am__v_P_0 = false ++am__v_P_1 = : ++AM_V_GEN = $(am__v_GEN_@AM_V@) ++am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) ++am__v_GEN_0 = @echo " GEN " $@; ++am__v_GEN_1 = ++AM_V_at = $(am__v_at_@AM_V@) ++am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) ++am__v_at_0 = @ ++am__v_at_1 = ++SOURCES = ++DIST_SOURCES = ++am__can_run_installinfo = \ ++ case $$AM_UPDATE_INFO_DIR in \ ++ n|no|NO) false;; \ ++ *) (install-info --version) >/dev/null 2>&1;; \ ++ esac ++am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; ++am__vpath_adj = case $$p in \ ++ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ ++ *) f=$$p;; \ ++ esac; ++am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; ++am__install_max = 40 ++am__nobase_strip_setup = \ ++ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` ++am__nobase_strip = \ ++ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" ++am__nobase_list = $(am__nobase_strip_setup); \ ++ for p in $$list; do echo "$$p $$p"; done | \ ++ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ ++ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ ++ if (++n[$$2] == $(am__install_max)) \ ++ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ ++ END { for (dir in files) print dir, files[dir] }' ++am__base_list = \ ++ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ ++ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' ++am__uninstall_files_from_dir = { \ ++ test -z "$$files" \ ++ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ ++ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ ++ $(am__cd) "$$dir" && rm -f $$files; }; \ ++ } ++am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" ++man5dir = $(mandir)/man5 ++NROFF = nroff ++MANS = $(man_MANS) ++am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) ++am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/mkinstalldirs ++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ++ACLOCAL = @ACLOCAL@ ++ALLOCA = @ALLOCA@ ++AMTAR = @AMTAR@ ++AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ ++AR = @AR@ ++AS = @AS@ ++AUTOCONF = @AUTOCONF@ ++AUTOHEADER = @AUTOHEADER@ ++AUTOMAKE = @AUTOMAKE@ ++AWK = @AWK@ ++BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ ++CATOBJEXT = @CATOBJEXT@ ++CC = @CC@ ++CCDEPMODE = @CCDEPMODE@ ++CFLAGS = @CFLAGS@ ++CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ ++CPP = @CPP@ ++CPPFLAGS = @CPPFLAGS@ ++CURSESLIB = @CURSESLIB@ ++CXX = @CXX@ ++CXXCPP = @CXXCPP@ ++CXXDEPMODE = @CXXDEPMODE@ ++CXXFLAGS = @CXXFLAGS@ ++CYGPATH_W = @CYGPATH_W@ ++DATADIRNAME = @DATADIRNAME@ ++DEFS = @DEFS@ ++DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ ++DSYMUTIL = @DSYMUTIL@ ++DUMPBIN = @DUMPBIN@ ++ECHO_C = @ECHO_C@ ++ECHO_N = @ECHO_N@ ++ECHO_T = @ECHO_T@ ++EGREP = @EGREP@ ++EXEEXT = @EXEEXT@ ++FGREP = @FGREP@ ++GENCAT = @GENCAT@ ++GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ ++GLIBC2 = @GLIBC2@ ++GLIBC21 = @GLIBC21@ ++GMSGFMT = @GMSGFMT@ ++GMSGFMT_015 = @GMSGFMT_015@ ++GREP = @GREP@ ++HAVE_ASPRINTF = @HAVE_ASPRINTF@ ++HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ ++HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ ++HAVE_SNPRINTF = @HAVE_SNPRINTF@ ++HAVE_VISIBILITY = @HAVE_VISIBILITY@ ++HAVE_WPRINTF = @HAVE_WPRINTF@ ++HUNSPELL_VERSION_MAJOR = @HUNSPELL_VERSION_MAJOR@ ++HUNSPELL_VERSION_MINOR = @HUNSPELL_VERSION_MINOR@ ++INSTALL = @INSTALL@ ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ++INSTOBJEXT = @INSTOBJEXT@ ++INTLBISON = @INTLBISON@ ++INTLLIBS = @INTLLIBS@ ++INTLOBJS = @INTLOBJS@ ++INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ ++INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ ++INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ++LD = @LD@ ++LDFLAGS = @LDFLAGS@ ++LIBICONV = @LIBICONV@ ++LIBINTL = @LIBINTL@ ++LIBMULTITHREAD = @LIBMULTITHREAD@ ++LIBOBJS = @LIBOBJS@ ++LIBPTH = @LIBPTH@ ++LIBPTH_PREFIX = @LIBPTH_PREFIX@ ++LIBS = @LIBS@ ++LIBTHREAD = @LIBTHREAD@ ++LIBTOOL = @LIBTOOL@ ++LIPO = @LIPO@ ++LN_S = @LN_S@ ++LTLIBC = @LTLIBC@ ++LTLIBICONV = @LTLIBICONV@ ++LTLIBINTL = @LTLIBINTL@ ++LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ ++LTLIBOBJS = @LTLIBOBJS@ ++LTLIBPTH = @LTLIBPTH@ ++LTLIBTHREAD = @LTLIBTHREAD@ ++LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ ++MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ ++MKDIR_P = @MKDIR_P@ ++MSGFMT = @MSGFMT@ ++MSGFMT_015 = @MSGFMT_015@ ++MSGMERGE = @MSGMERGE@ ++NM = @NM@ ++NMEDIT = @NMEDIT@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++OTOOL = @OTOOL@ ++OTOOL64 = @OTOOL64@ ++PACKAGE = @PACKAGE@ ++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ ++PACKAGE_NAME = @PACKAGE_NAME@ ++PACKAGE_STRING = @PACKAGE_STRING@ ++PACKAGE_TARNAME = @PACKAGE_TARNAME@ ++PACKAGE_URL = @PACKAGE_URL@ ++PACKAGE_VERSION = @PACKAGE_VERSION@ ++PATH_SEPARATOR = @PATH_SEPARATOR@ ++POSUB = @POSUB@ ++PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ ++RANLIB = @RANLIB@ ++READLINELIB = @READLINELIB@ ++SED = @SED@ ++SET_MAKE = @SET_MAKE@ ++SHELL = @SHELL@ ++STRIP = @STRIP@ ++USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ ++USE_NLS = @USE_NLS@ ++VERSION = @VERSION@ ++WINDRES = @WINDRES@ ++WOE32 = @WOE32@ ++WOE32DLL = @WOE32DLL@ ++XFAILED = @XFAILED@ ++XGETTEXT = @XGETTEXT@ ++XGETTEXT_015 = @XGETTEXT_015@ ++XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ++abs_builddir = @abs_builddir@ ++abs_srcdir = @abs_srcdir@ ++abs_top_builddir = @abs_top_builddir@ ++abs_top_srcdir = @abs_top_srcdir@ ++ac_ct_AR = @ac_ct_AR@ ++ac_ct_CC = @ac_ct_CC@ ++ac_ct_CXX = @ac_ct_CXX@ ++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ++am__include = @am__include@ ++am__leading_dot = @am__leading_dot@ ++am__quote = @am__quote@ ++am__tar = @am__tar@ ++am__untar = @am__untar@ ++bindir = @bindir@ ++build = @build@ ++build_alias = @build_alias@ ++build_cpu = @build_cpu@ ++build_os = @build_os@ ++build_vendor = @build_vendor@ ++builddir = @builddir@ ++datadir = @datadir@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++dvidir = @dvidir@ ++exec_prefix = @exec_prefix@ ++host = @host@ ++host_alias = @host_alias@ ++host_cpu = @host_cpu@ ++host_os = @host_os@ ++host_vendor = @host_vendor@ ++htmldir = @htmldir@ ++includedir = @includedir@ ++infodir = @infodir@ ++install_sh = @install_sh@ ++libdir = @libdir@ ++libexecdir = @libexecdir@ ++localedir = @localedir@ ++localstatedir = @localstatedir@ ++mandir = @mandir@ ++mkdir_p = @mkdir_p@ ++oldincludedir = @oldincludedir@ ++pdfdir = @pdfdir@ ++prefix = @prefix@ ++program_transform_name = @program_transform_name@ ++psdir = @psdir@ ++sbindir = @sbindir@ ++sharedstatedir = @sharedstatedir@ ++srcdir = @srcdir@ ++sysconfdir = @sysconfdir@ ++target_alias = @target_alias@ ++top_build_prefix = @top_build_prefix@ ++top_builddir = @top_builddir@ ++top_srcdir = @top_srcdir@ ++ ++#mandir = $(DESTDIR)/share ++man1dir = $(mandir)/hu/man1 ++man4dir = $(mandir)/hu/man4 ++man_MANS = hunspell.1 hunspell.5 ++EXTRA_DIST = $(man_MANS) ++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 ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu man/hu/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnu man/hu/Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++install-man1: $(man_MANS) ++ @$(NORMAL_INSTALL) ++ @list1=''; \ ++ list2='$(man_MANS)'; \ ++ test -n "$(man1dir)" \ ++ && test -n "`echo $$list1$$list2`" \ ++ || exit 0; \ ++ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ ++ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ ++ { for i in $$list1; do echo "$$i"; done; \ ++ if test -n "$$list2"; then \ ++ for i in $$list2; do echo "$$i"; done \ ++ | sed -n '/\.1[a-z]*$$/p'; \ ++ fi; \ ++ } | while read p; do \ ++ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ ++ echo "$$d$$p"; echo "$$p"; \ ++ done | \ ++ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ ++ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ ++ sed 'N;N;s,\n, ,g' | { \ ++ list=; while read file base inst; do \ ++ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ ++ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ ++ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ ++ fi; \ ++ done; \ ++ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ ++ while read files; do \ ++ test -z "$$files" || { \ ++ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ ++ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ ++ done; } ++ ++uninstall-man1: ++ @$(NORMAL_UNINSTALL) ++ @list=''; test -n "$(man1dir)" || exit 0; \ ++ files=`{ for i in $$list; do echo "$$i"; done; \ ++ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ ++ sed -n '/\.1[a-z]*$$/p'; \ ++ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ ++ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ ++ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) ++install-man5: $(man_MANS) ++ @$(NORMAL_INSTALL) ++ @list1=''; \ ++ list2='$(man_MANS)'; \ ++ test -n "$(man5dir)" \ ++ && test -n "`echo $$list1$$list2`" \ ++ || exit 0; \ ++ echo " $(MKDIR_P) '$(DESTDIR)$(man5dir)'"; \ ++ $(MKDIR_P) "$(DESTDIR)$(man5dir)" || exit 1; \ ++ { for i in $$list1; do echo "$$i"; done; \ ++ if test -n "$$list2"; then \ ++ for i in $$list2; do echo "$$i"; done \ ++ | sed -n '/\.5[a-z]*$$/p'; \ ++ fi; \ ++ } | while read p; do \ ++ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ ++ echo "$$d$$p"; echo "$$p"; \ ++ done | \ ++ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ ++ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ ++ sed 'N;N;s,\n, ,g' | { \ ++ list=; while read file base inst; do \ ++ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ ++ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \ ++ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \ ++ fi; \ ++ done; \ ++ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ ++ while read files; do \ ++ test -z "$$files" || { \ ++ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \ ++ $(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \ ++ done; } ++ ++uninstall-man5: ++ @$(NORMAL_UNINSTALL) ++ @list=''; test -n "$(man5dir)" || exit 0; \ ++ files=`{ for i in $$list; do echo "$$i"; done; \ ++ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ ++ sed -n '/\.5[a-z]*$$/p'; \ ++ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ ++ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ ++ dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir) ++tags TAGS: ++ ++ctags CTAGS: ++ ++cscope cscopelist: ++ ++ ++distdir: $(DISTFILES) ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ ++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ ++ if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ ++ else \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ ++ || exit 1; \ ++ fi; \ ++ done ++check-am: all-am ++check: check-am ++all-am: Makefile $(MANS) ++installdirs: ++ for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)"; do \ ++ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ ++ done ++install: install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ if test -z '$(STRIP)'; then \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ install; \ ++ else \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ ++ fi ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-am ++ ++clean-am: clean-generic clean-libtool mostlyclean-am ++ ++distclean: distclean-am ++ -rm -f Makefile ++distclean-am: clean-am distclean-generic ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++html: html-am ++ ++html-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: install-man ++ ++install-dvi: install-dvi-am ++ ++install-dvi-am: ++ ++install-exec-am: ++ ++install-html: install-html-am ++ ++install-html-am: ++ ++install-info: install-info-am ++ ++install-info-am: ++ ++install-man: install-man1 install-man5 ++ ++install-pdf: install-pdf-am ++ ++install-pdf-am: ++ ++install-ps: install-ps-am ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-am ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-generic mostlyclean-libtool ++ ++pdf: pdf-am ++ ++pdf-am: ++ ++ps: ps-am ++ ++ps-am: ++ ++uninstall-am: uninstall-man ++ ++uninstall-man: uninstall-man1 uninstall-man5 ++ ++.MAKE: install-am install-strip ++ ++.PHONY: all all-am check check-am clean clean-generic clean-libtool \ ++ cscopelist-am ctags-am distclean distclean-generic \ ++ distclean-libtool 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-man1 install-man5 install-pdf install-pdf-am \ ++ install-ps install-ps-am install-strip installcheck \ ++ installcheck-am installdirs maintainer-clean \ ++ maintainer-clean-generic mostlyclean mostlyclean-generic \ ++ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ ++ uninstall-am uninstall-man uninstall-man1 uninstall-man5 ++ ++.PRECIOUS: Makefile ++ ++ ++# 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/missing b/missing +new file mode 100755 +index 0000000..f62bbae +--- /dev/null ++++ b/missing +@@ -0,0 +1,215 @@ ++#! /bin/sh ++# Common wrapper for a few potentially missing GNU programs. ++ ++scriptversion=2013-10-28.13; # UTC ++ ++# Copyright (C) 1996-2014 Free Software Foundation, Inc. ++# Originally written by Fran,cois Pinard , 1996. ++ ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2, or (at your option) ++# any later version. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++ ++# You should have received a copy of the GNU General Public License ++# along with this program. If not, see . ++ ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that program. ++ ++if test $# -eq 0; then ++ echo 1>&2 "Try '$0 --help' for more information" ++ exit 1 ++fi ++ ++case $1 in ++ ++ --is-lightweight) ++ # Used by our autoconf macros to check whether the available missing ++ # script is modern enough. ++ exit 0 ++ ;; ++ ++ --run) ++ # Back-compat with the calling convention used by older automake. ++ shift ++ ;; ++ ++ -h|--h|--he|--hel|--help) ++ echo "\ ++$0 [OPTION]... PROGRAM [ARGUMENT]... ++ ++Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due ++to PROGRAM being missing or too old. ++ ++Options: ++ -h, --help display this help and exit ++ -v, --version output version information and exit ++ ++Supported PROGRAM values: ++ aclocal autoconf autoheader autom4te automake makeinfo ++ bison yacc flex lex help2man ++ ++Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and ++'g' are ignored when checking the name. ++ ++Send bug reports to ." ++ exit $? ++ ;; ++ ++ -v|--v|--ve|--ver|--vers|--versi|--versio|--version) ++ echo "missing $scriptversion (GNU Automake)" ++ exit $? ++ ;; ++ ++ -*) ++ echo 1>&2 "$0: unknown '$1' option" ++ echo 1>&2 "Try '$0 --help' for more information" ++ exit 1 ++ ;; ++ ++esac ++ ++# Run the given program, remember its exit status. ++"$@"; st=$? ++ ++# If it succeeded, we are done. ++test $st -eq 0 && exit 0 ++ ++# Also exit now if we it failed (or wasn't found), and '--version' was ++# passed; such an option is passed most likely to detect whether the ++# program is present and works. ++case $2 in --version|--help) exit $st;; esac ++ ++# Exit code 63 means version mismatch. This often happens when the user ++# tries to use an ancient version of a tool on a file that requires a ++# minimum version. ++if test $st -eq 63; then ++ msg="probably too old" ++elif test $st -eq 127; then ++ # Program was missing. ++ msg="missing on your system" ++else ++ # Program was found and executed, but failed. Give up. ++ exit $st ++fi ++ ++perl_URL=http://www.perl.org/ ++flex_URL=http://flex.sourceforge.net/ ++gnu_software_URL=http://www.gnu.org/software ++ ++program_details () ++{ ++ case $1 in ++ aclocal|automake) ++ echo "The '$1' program is part of the GNU Automake package:" ++ echo "<$gnu_software_URL/automake>" ++ echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" ++ echo "<$gnu_software_URL/autoconf>" ++ echo "<$gnu_software_URL/m4/>" ++ echo "<$perl_URL>" ++ ;; ++ autoconf|autom4te|autoheader) ++ echo "The '$1' program is part of the GNU Autoconf package:" ++ echo "<$gnu_software_URL/autoconf/>" ++ echo "It also requires GNU m4 and Perl in order to run:" ++ echo "<$gnu_software_URL/m4/>" ++ echo "<$perl_URL>" ++ ;; ++ esac ++} ++ ++give_advice () ++{ ++ # Normalize program name to check for. ++ normalized_program=`echo "$1" | sed ' ++ s/^gnu-//; t ++ s/^gnu//; t ++ s/^g//; t'` ++ ++ printf '%s\n' "'$1' is $msg." ++ ++ configure_deps="'configure.ac' or m4 files included by 'configure.ac'" ++ case $normalized_program in ++ autoconf*) ++ echo "You should only need it if you modified 'configure.ac'," ++ echo "or m4 files included by it." ++ program_details 'autoconf' ++ ;; ++ autoheader*) ++ echo "You should only need it if you modified 'acconfig.h' or" ++ echo "$configure_deps." ++ program_details 'autoheader' ++ ;; ++ automake*) ++ echo "You should only need it if you modified 'Makefile.am' or" ++ echo "$configure_deps." ++ program_details 'automake' ++ ;; ++ aclocal*) ++ echo "You should only need it if you modified 'acinclude.m4' or" ++ echo "$configure_deps." ++ program_details 'aclocal' ++ ;; ++ autom4te*) ++ echo "You might have modified some maintainer files that require" ++ echo "the 'autom4te' program to be rebuilt." ++ program_details 'autom4te' ++ ;; ++ bison*|yacc*) ++ echo "You should only need it if you modified a '.y' file." ++ echo "You may want to install the GNU Bison package:" ++ echo "<$gnu_software_URL/bison/>" ++ ;; ++ lex*|flex*) ++ echo "You should only need it if you modified a '.l' file." ++ echo "You may want to install the Fast Lexical Analyzer package:" ++ echo "<$flex_URL>" ++ ;; ++ help2man*) ++ echo "You should only need it if you modified a dependency" \ ++ "of a man page." ++ echo "You may want to install the GNU Help2man package:" ++ echo "<$gnu_software_URL/help2man/>" ++ ;; ++ makeinfo*) ++ echo "You should only need it if you modified a '.texi' file, or" ++ echo "any other file indirectly affecting the aspect of the manual." ++ echo "You might want to install the Texinfo package:" ++ echo "<$gnu_software_URL/texinfo/>" ++ echo "The spurious makeinfo call might also be the consequence of" ++ echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" ++ echo "want to install GNU make:" ++ echo "<$gnu_software_URL/make/>" ++ ;; ++ *) ++ echo "You might have modified some files without having the proper" ++ echo "tools for further handling them. Check the 'README' file, it" ++ echo "often tells you about the needed prerequisites for installing" ++ echo "this package. You may also peek at any GNU archive site, in" ++ echo "case some other package contains this missing '$1' program." ++ ;; ++ esac ++} ++ ++give_advice "$1" | sed -e '1s/^/WARNING: /' \ ++ -e '2,$s/^/ /' >&2 ++ ++# Propagate the correct exit status (expected to be 127 for a program ++# not found, 63 for a program that failed due to version mismatch). ++exit $st ++ ++# Local variables: ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "scriptversion=" ++# time-stamp-format: "%:y-%02m-%02d.%02H" ++# time-stamp-time-zone: "UTC" ++# time-stamp-end: "; # UTC" ++# End: +diff --git a/mkinstalldirs b/mkinstalldirs +new file mode 100755 +index 0000000..55d537f +--- /dev/null ++++ b/mkinstalldirs +@@ -0,0 +1,162 @@ ++#! /bin/sh ++# mkinstalldirs --- make directory hierarchy ++ ++scriptversion=2009-04-28.21; # UTC ++ ++# Original author: Noah Friedman ++# Created: 1993-05-16 ++# Public domain. ++# ++# This file is maintained in Automake, please report ++# bugs to or send patches to ++# . ++ ++nl=' ++' ++IFS=" "" $nl" ++errstatus=0 ++dirmode= ++ ++usage="\ ++Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... ++ ++Create each directory DIR (with mode MODE, if specified), including all ++leading file name components. ++ ++Report bugs to ." ++ ++# process command line arguments ++while test $# -gt 0 ; do ++ case $1 in ++ -h | --help | --h*) # -h for help ++ echo "$usage" ++ exit $? ++ ;; ++ -m) # -m PERM arg ++ shift ++ test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } ++ dirmode=$1 ++ shift ++ ;; ++ --version) ++ echo "$0 $scriptversion" ++ exit $? ++ ;; ++ --) # stop option processing ++ shift ++ break ++ ;; ++ -*) # unknown option ++ echo "$usage" 1>&2 ++ exit 1 ++ ;; ++ *) # first non-opt arg ++ break ++ ;; ++ esac ++done ++ ++for file ++do ++ if test -d "$file"; then ++ shift ++ else ++ break ++ fi ++done ++ ++case $# in ++ 0) exit 0 ;; ++esac ++ ++# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and ++# mkdir -p a/c at the same time, both will detect that a is missing, ++# one will create a, then the other will try to create a and die with ++# a "File exists" error. This is a problem when calling mkinstalldirs ++# from a parallel make. We use --version in the probe to restrict ++# ourselves to GNU mkdir, which is thread-safe. ++case $dirmode in ++ '') ++ if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then ++ echo "mkdir -p -- $*" ++ exec mkdir -p -- "$@" ++ else ++ # On NextStep and OpenStep, the 'mkdir' command does not ++ # recognize any option. It will interpret all options as ++ # directories to create, and then abort because '.' already ++ # exists. ++ test -d ./-p && rmdir ./-p ++ test -d ./--version && rmdir ./--version ++ fi ++ ;; ++ *) ++ if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && ++ test ! -d ./--version; then ++ echo "mkdir -m $dirmode -p -- $*" ++ exec mkdir -m "$dirmode" -p -- "$@" ++ else ++ # Clean up after NextStep and OpenStep mkdir. ++ for d in ./-m ./-p ./--version "./$dirmode"; ++ do ++ test -d $d && rmdir $d ++ done ++ fi ++ ;; ++esac ++ ++for file ++do ++ case $file in ++ /*) pathcomp=/ ;; ++ *) pathcomp= ;; ++ esac ++ oIFS=$IFS ++ IFS=/ ++ set fnord $file ++ shift ++ IFS=$oIFS ++ ++ for d ++ do ++ test "x$d" = x && continue ++ ++ pathcomp=$pathcomp$d ++ case $pathcomp in ++ -*) pathcomp=./$pathcomp ;; ++ esac ++ ++ if test ! -d "$pathcomp"; then ++ echo "mkdir $pathcomp" ++ ++ mkdir "$pathcomp" || lasterr=$? ++ ++ if test ! -d "$pathcomp"; then ++ errstatus=$lasterr ++ else ++ if test ! -z "$dirmode"; then ++ echo "chmod $dirmode $pathcomp" ++ lasterr= ++ chmod "$dirmode" "$pathcomp" || lasterr=$? ++ ++ if test ! -z "$lasterr"; then ++ errstatus=$lasterr ++ fi ++ fi ++ fi ++ fi ++ ++ pathcomp=$pathcomp/ ++ done ++done ++ ++exit $errstatus ++ ++# Local Variables: ++# mode: shell-script ++# sh-indentation: 2 ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "scriptversion=" ++# time-stamp-format: "%:y-%02m-%02d.%02H" ++# time-stamp-time-zone: "UTC" ++# time-stamp-end: "; # UTC" ++# End: +diff --git a/src/Makefile.in b/src/Makefile.in +new file mode 100644 +index 0000000..87416f6 +--- /dev/null ++++ b/src/Makefile.in +@@ -0,0 +1,690 @@ ++# Makefile.in generated by automake 1.15 from Makefile.am. ++# @configure_input@ ++ ++# Copyright (C) 1994-2014 Free Software Foundation, Inc. ++ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++@SET_MAKE@ ++VPATH = @srcdir@ ++am__is_gnu_make = { \ ++ if test -z '$(MAKELEVEL)'; then \ ++ false; \ ++ elif test -n '$(MAKE_HOST)'; then \ ++ true; \ ++ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ ++ true; \ ++ else \ ++ false; \ ++ fi; \ ++} ++am__make_running_with_option = \ ++ case $${target_option-} in \ ++ ?) ;; \ ++ *) echo "am__make_running_with_option: internal error: invalid" \ ++ "target option '$${target_option-}' specified" >&2; \ ++ exit 1;; \ ++ esac; \ ++ has_opt=no; \ ++ sane_makeflags=$$MAKEFLAGS; \ ++ if $(am__is_gnu_make); then \ ++ sane_makeflags=$$MFLAGS; \ ++ else \ ++ case $$MAKEFLAGS in \ ++ *\\[\ \ ]*) \ ++ bs=\\; \ ++ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ ++ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ ++ esac; \ ++ fi; \ ++ skip_next=no; \ ++ strip_trailopt () \ ++ { \ ++ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ ++ }; \ ++ for flg in $$sane_makeflags; do \ ++ test $$skip_next = yes && { skip_next=no; continue; }; \ ++ case $$flg in \ ++ *=*|--*) continue;; \ ++ -*I) strip_trailopt 'I'; skip_next=yes;; \ ++ -*I?*) strip_trailopt 'I';; \ ++ -*O) strip_trailopt 'O'; skip_next=yes;; \ ++ -*O?*) strip_trailopt 'O';; \ ++ -*l) strip_trailopt 'l'; skip_next=yes;; \ ++ -*l?*) strip_trailopt 'l';; \ ++ -[dEDm]) skip_next=yes;; \ ++ -[JT]) skip_next=yes;; \ ++ esac; \ ++ case $$flg in \ ++ *$$target_option*) has_opt=yes; break;; \ ++ esac; \ ++ done; \ ++ test $$has_opt = yes ++am__make_dryrun = (target_option=n; $(am__make_running_with_option)) ++am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkglibexecdir = $(libexecdir)/@PACKAGE@ ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = @build@ ++host_triplet = @host@ ++subdir = src ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ ++ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ ++ $(top_srcdir)/m4/glibc2.m4 $(top_srcdir)/m4/glibc21.m4 \ ++ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \ ++ $(top_srcdir)/m4/intl.m4 $(top_srcdir)/m4/intlmacosx.m4 \ ++ $(top_srcdir)/m4/intmax.m4 $(top_srcdir)/m4/inttypes-pri.m4 \ ++ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ ++ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ ++ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ ++ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ ++ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ++ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ ++ $(top_srcdir)/m4/printf-posix.m4 $(top_srcdir)/m4/progtest.m4 \ ++ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/stdint_h.m4 \ ++ $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/m4/uintmax_t.m4 \ ++ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ ++ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ++ $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) ++mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = ++AM_V_P = $(am__v_P_@AM_V@) ++am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) ++am__v_P_0 = false ++am__v_P_1 = : ++AM_V_GEN = $(am__v_GEN_@AM_V@) ++am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) ++am__v_GEN_0 = @echo " GEN " $@; ++am__v_GEN_1 = ++AM_V_at = $(am__v_at_@AM_V@) ++am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) ++am__v_at_0 = @ ++am__v_at_1 = ++SOURCES = ++DIST_SOURCES = ++RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ++ ctags-recursive dvi-recursive html-recursive info-recursive \ ++ install-data-recursive install-dvi-recursive \ ++ install-exec-recursive install-html-recursive \ ++ install-info-recursive install-pdf-recursive \ ++ install-ps-recursive install-recursive installcheck-recursive \ ++ installdirs-recursive pdf-recursive ps-recursive \ ++ tags-recursive uninstall-recursive ++am__can_run_installinfo = \ ++ case $$AM_UPDATE_INFO_DIR in \ ++ n|no|NO) false;; \ ++ *) (install-info --version) >/dev/null 2>&1;; \ ++ esac ++RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ ++ distclean-recursive maintainer-clean-recursive ++am__recursive_targets = \ ++ $(RECURSIVE_TARGETS) \ ++ $(RECURSIVE_CLEAN_TARGETS) \ ++ $(am__extra_recursive_targets) ++AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ ++ distdir ++am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) ++# Read a list of newline-separated strings from the standard input, ++# and print each of them once, without duplicates. Input order is ++# *not* preserved. ++am__uniquify_input = $(AWK) '\ ++ BEGIN { nonempty = 0; } \ ++ { items[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in items) print i; }; } \ ++' ++# Make sure the list of sources is unique. This is necessary because, ++# e.g., the same source file might be shared among _SOURCES variables ++# for different programs/libraries. ++am__define_uniq_tagged_files = \ ++ list='$(am__tagged_files)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | $(am__uniquify_input)` ++ETAGS = etags ++CTAGS = ctags ++DIST_SUBDIRS = $(SUBDIRS) ++am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/mkinstalldirs ++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ++am__relativize = \ ++ dir0=`pwd`; \ ++ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ ++ sed_rest='s,^[^/]*/*,,'; \ ++ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ ++ sed_butlast='s,/*[^/]*$$,,'; \ ++ while test -n "$$dir1"; do \ ++ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ ++ if test "$$first" != "."; then \ ++ if test "$$first" = ".."; then \ ++ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ ++ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ ++ else \ ++ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ ++ if test "$$first2" = "$$first"; then \ ++ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ ++ else \ ++ dir2="../$$dir2"; \ ++ fi; \ ++ dir0="$$dir0"/"$$first"; \ ++ fi; \ ++ fi; \ ++ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ ++ done; \ ++ reldir="$$dir2" ++ACLOCAL = @ACLOCAL@ ++ALLOCA = @ALLOCA@ ++AMTAR = @AMTAR@ ++AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ ++AR = @AR@ ++AS = @AS@ ++AUTOCONF = @AUTOCONF@ ++AUTOHEADER = @AUTOHEADER@ ++AUTOMAKE = @AUTOMAKE@ ++AWK = @AWK@ ++BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ ++CATOBJEXT = @CATOBJEXT@ ++CC = @CC@ ++CCDEPMODE = @CCDEPMODE@ ++CFLAGS = @CFLAGS@ ++CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ ++CPP = @CPP@ ++CPPFLAGS = @CPPFLAGS@ ++CURSESLIB = @CURSESLIB@ ++CXX = @CXX@ ++CXXCPP = @CXXCPP@ ++CXXDEPMODE = @CXXDEPMODE@ ++CXXFLAGS = @CXXFLAGS@ ++CYGPATH_W = @CYGPATH_W@ ++DATADIRNAME = @DATADIRNAME@ ++DEFS = @DEFS@ ++DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ ++DSYMUTIL = @DSYMUTIL@ ++DUMPBIN = @DUMPBIN@ ++ECHO_C = @ECHO_C@ ++ECHO_N = @ECHO_N@ ++ECHO_T = @ECHO_T@ ++EGREP = @EGREP@ ++EXEEXT = @EXEEXT@ ++FGREP = @FGREP@ ++GENCAT = @GENCAT@ ++GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ ++GLIBC2 = @GLIBC2@ ++GLIBC21 = @GLIBC21@ ++GMSGFMT = @GMSGFMT@ ++GMSGFMT_015 = @GMSGFMT_015@ ++GREP = @GREP@ ++HAVE_ASPRINTF = @HAVE_ASPRINTF@ ++HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ ++HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ ++HAVE_SNPRINTF = @HAVE_SNPRINTF@ ++HAVE_VISIBILITY = @HAVE_VISIBILITY@ ++HAVE_WPRINTF = @HAVE_WPRINTF@ ++HUNSPELL_VERSION_MAJOR = @HUNSPELL_VERSION_MAJOR@ ++HUNSPELL_VERSION_MINOR = @HUNSPELL_VERSION_MINOR@ ++INSTALL = @INSTALL@ ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ++INSTOBJEXT = @INSTOBJEXT@ ++INTLBISON = @INTLBISON@ ++INTLLIBS = @INTLLIBS@ ++INTLOBJS = @INTLOBJS@ ++INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ ++INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ ++INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ++LD = @LD@ ++LDFLAGS = @LDFLAGS@ ++LIBICONV = @LIBICONV@ ++LIBINTL = @LIBINTL@ ++LIBMULTITHREAD = @LIBMULTITHREAD@ ++LIBOBJS = @LIBOBJS@ ++LIBPTH = @LIBPTH@ ++LIBPTH_PREFIX = @LIBPTH_PREFIX@ ++LIBS = @LIBS@ ++LIBTHREAD = @LIBTHREAD@ ++LIBTOOL = @LIBTOOL@ ++LIPO = @LIPO@ ++LN_S = @LN_S@ ++LTLIBC = @LTLIBC@ ++LTLIBICONV = @LTLIBICONV@ ++LTLIBINTL = @LTLIBINTL@ ++LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ ++LTLIBOBJS = @LTLIBOBJS@ ++LTLIBPTH = @LTLIBPTH@ ++LTLIBTHREAD = @LTLIBTHREAD@ ++LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ ++MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ ++MKDIR_P = @MKDIR_P@ ++MSGFMT = @MSGFMT@ ++MSGFMT_015 = @MSGFMT_015@ ++MSGMERGE = @MSGMERGE@ ++NM = @NM@ ++NMEDIT = @NMEDIT@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++OTOOL = @OTOOL@ ++OTOOL64 = @OTOOL64@ ++PACKAGE = @PACKAGE@ ++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ ++PACKAGE_NAME = @PACKAGE_NAME@ ++PACKAGE_STRING = @PACKAGE_STRING@ ++PACKAGE_TARNAME = @PACKAGE_TARNAME@ ++PACKAGE_URL = @PACKAGE_URL@ ++PACKAGE_VERSION = @PACKAGE_VERSION@ ++PATH_SEPARATOR = @PATH_SEPARATOR@ ++POSUB = @POSUB@ ++PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ ++RANLIB = @RANLIB@ ++READLINELIB = @READLINELIB@ ++SED = @SED@ ++SET_MAKE = @SET_MAKE@ ++SHELL = @SHELL@ ++STRIP = @STRIP@ ++USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ ++USE_NLS = @USE_NLS@ ++VERSION = @VERSION@ ++WINDRES = @WINDRES@ ++WOE32 = @WOE32@ ++WOE32DLL = @WOE32DLL@ ++XFAILED = @XFAILED@ ++XGETTEXT = @XGETTEXT@ ++XGETTEXT_015 = @XGETTEXT_015@ ++XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ++abs_builddir = @abs_builddir@ ++abs_srcdir = @abs_srcdir@ ++abs_top_builddir = @abs_top_builddir@ ++abs_top_srcdir = @abs_top_srcdir@ ++ac_ct_AR = @ac_ct_AR@ ++ac_ct_CC = @ac_ct_CC@ ++ac_ct_CXX = @ac_ct_CXX@ ++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ++am__include = @am__include@ ++am__leading_dot = @am__leading_dot@ ++am__quote = @am__quote@ ++am__tar = @am__tar@ ++am__untar = @am__untar@ ++bindir = @bindir@ ++build = @build@ ++build_alias = @build_alias@ ++build_cpu = @build_cpu@ ++build_os = @build_os@ ++build_vendor = @build_vendor@ ++builddir = @builddir@ ++datadir = @datadir@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++dvidir = @dvidir@ ++exec_prefix = @exec_prefix@ ++host = @host@ ++host_alias = @host_alias@ ++host_cpu = @host_cpu@ ++host_os = @host_os@ ++host_vendor = @host_vendor@ ++htmldir = @htmldir@ ++includedir = @includedir@ ++infodir = @infodir@ ++install_sh = @install_sh@ ++libdir = @libdir@ ++libexecdir = @libexecdir@ ++localedir = @localedir@ ++localstatedir = @localstatedir@ ++mandir = @mandir@ ++mkdir_p = @mkdir_p@ ++oldincludedir = @oldincludedir@ ++pdfdir = @pdfdir@ ++prefix = @prefix@ ++program_transform_name = @program_transform_name@ ++psdir = @psdir@ ++sbindir = @sbindir@ ++sharedstatedir = @sharedstatedir@ ++srcdir = @srcdir@ ++sysconfdir = @sysconfdir@ ++target_alias = @target_alias@ ++top_build_prefix = @top_build_prefix@ ++top_builddir = @top_builddir@ ++top_srcdir = @top_srcdir@ ++SUBDIRS = hunspell parsers tools ++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 ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnu src/Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++ ++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. ++$(am__recursive_targets): ++ @fail=; \ ++ if $(am__make_keepgoing); then \ ++ failcom='fail=yes'; \ ++ else \ ++ failcom='exit 1'; \ ++ fi; \ ++ dot_seen=no; \ ++ target=`echo $@ | sed s/-recursive//`; \ ++ case "$@" in \ ++ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ ++ *) list='$(SUBDIRS)' ;; \ ++ esac; \ ++ for subdir in $$list; do \ ++ echo "Making $$target in $$subdir"; \ ++ if test "$$subdir" = "."; then \ ++ dot_seen=yes; \ ++ local_target="$$target-am"; \ ++ else \ ++ local_target="$$target"; \ ++ fi; \ ++ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ ++ || eval $$failcom; \ ++ done; \ ++ if test "$$dot_seen" = "no"; then \ ++ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ ++ fi; test -z "$$fail" ++ ++ID: $(am__tagged_files) ++ $(am__define_uniq_tagged_files); mkid -fID $$unique ++tags: tags-recursive ++TAGS: tags ++ ++tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ set x; \ ++ here=`pwd`; \ ++ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ ++ include_option=--etags-include; \ ++ empty_fix=.; \ ++ else \ ++ include_option=--include; \ ++ empty_fix=; \ ++ fi; \ ++ list='$(SUBDIRS)'; for subdir in $$list; do \ ++ if test "$$subdir" = .; then :; else \ ++ test ! -f $$subdir/TAGS || \ ++ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ ++ fi; \ ++ done; \ ++ $(am__define_uniq_tagged_files); \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ ++ test -n "$$unique" || unique=$$empty_fix; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ ++ fi ++ctags: ctags-recursive ++ ++CTAGS: ctags ++ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ $(am__define_uniq_tagged_files); \ ++ test -z "$(CTAGS_ARGS)$$unique" \ ++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ ++ $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" ++cscopelist: cscopelist-recursive ++ ++cscopelist-am: $(am__tagged_files) ++ list='$(am__tagged_files)'; \ ++ case "$(srcdir)" in \ ++ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ ++ *) sdir=$(subdir)/$(srcdir) ;; \ ++ esac; \ ++ for i in $$list; do \ ++ if test -f "$$i"; then \ ++ echo "$(subdir)/$$i"; \ ++ else \ ++ echo "$$sdir/$$i"; \ ++ fi; \ ++ done >> $(top_builddir)/cscope.files ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags ++ ++distdir: $(DISTFILES) ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ ++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ ++ if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ ++ else \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ ++ || exit 1; \ ++ fi; \ ++ done ++ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ ++ if test "$$subdir" = .; then :; else \ ++ $(am__make_dryrun) \ ++ || test -d "$(distdir)/$$subdir" \ ++ || $(MKDIR_P) "$(distdir)/$$subdir" \ ++ || exit 1; \ ++ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ ++ $(am__relativize); \ ++ new_distdir=$$reldir; \ ++ dir1=$$subdir; dir2="$(top_distdir)"; \ ++ $(am__relativize); \ ++ new_top_distdir=$$reldir; \ ++ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ ++ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ++ ($(am__cd) $$subdir && \ ++ $(MAKE) $(AM_MAKEFLAGS) \ ++ top_distdir="$$new_top_distdir" \ ++ distdir="$$new_distdir" \ ++ am__remove_distdir=: \ ++ am__skip_length_check=: \ ++ am__skip_mode_fix=: \ ++ distdir) \ ++ || exit 1; \ ++ fi; \ ++ done ++check-am: all-am ++check: check-recursive ++all-am: Makefile ++installdirs: installdirs-recursive ++installdirs-am: ++install: install-recursive ++install-exec: install-exec-recursive ++install-data: install-data-recursive ++uninstall: uninstall-recursive ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-recursive ++install-strip: ++ if test -z '$(STRIP)'; then \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ install; \ ++ else \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ ++ fi ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-recursive ++ ++clean-am: clean-generic clean-libtool mostlyclean-am ++ ++distclean: distclean-recursive ++ -rm -f Makefile ++distclean-am: clean-am distclean-generic distclean-tags ++ ++dvi: dvi-recursive ++ ++dvi-am: ++ ++html: html-recursive ++ ++html-am: ++ ++info: info-recursive ++ ++info-am: ++ ++install-data-am: ++ ++install-dvi: install-dvi-recursive ++ ++install-dvi-am: ++ ++install-exec-am: ++ ++install-html: install-html-recursive ++ ++install-html-am: ++ ++install-info: install-info-recursive ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-recursive ++ ++install-pdf-am: ++ ++install-ps: install-ps-recursive ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-recursive ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-recursive ++ ++mostlyclean-am: mostlyclean-generic mostlyclean-libtool ++ ++pdf: pdf-recursive ++ ++pdf-am: ++ ++ps: ps-recursive ++ ++ps-am: ++ ++uninstall-am: ++ ++.MAKE: $(am__recursive_targets) install-am install-strip ++ ++.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ ++ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ++ ctags-am 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-am uninstall uninstall-am ++ ++.PRECIOUS: Makefile ++ ++ ++# Tell versions [3.59,3.63) of GNU make to not export all variables. ++# Otherwise a system limit (for SysV at least) may be exceeded. ++.NOEXPORT: +diff --git a/src/hunspell/Makefile.in b/src/hunspell/Makefile.in +new file mode 100644 +index 0000000..5be0f59 +--- /dev/null ++++ b/src/hunspell/Makefile.in +@@ -0,0 +1,791 @@ ++# Makefile.in generated by automake 1.15 from Makefile.am. ++# @configure_input@ ++ ++# Copyright (C) 1994-2014 Free Software Foundation, Inc. ++ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++@SET_MAKE@ ++ ++ ++VPATH = @srcdir@ ++am__is_gnu_make = { \ ++ if test -z '$(MAKELEVEL)'; then \ ++ false; \ ++ elif test -n '$(MAKE_HOST)'; then \ ++ true; \ ++ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ ++ true; \ ++ else \ ++ false; \ ++ fi; \ ++} ++am__make_running_with_option = \ ++ case $${target_option-} in \ ++ ?) ;; \ ++ *) echo "am__make_running_with_option: internal error: invalid" \ ++ "target option '$${target_option-}' specified" >&2; \ ++ exit 1;; \ ++ esac; \ ++ has_opt=no; \ ++ sane_makeflags=$$MAKEFLAGS; \ ++ if $(am__is_gnu_make); then \ ++ sane_makeflags=$$MFLAGS; \ ++ else \ ++ case $$MAKEFLAGS in \ ++ *\\[\ \ ]*) \ ++ bs=\\; \ ++ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ ++ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ ++ esac; \ ++ fi; \ ++ skip_next=no; \ ++ strip_trailopt () \ ++ { \ ++ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ ++ }; \ ++ for flg in $$sane_makeflags; do \ ++ test $$skip_next = yes && { skip_next=no; continue; }; \ ++ case $$flg in \ ++ *=*|--*) continue;; \ ++ -*I) strip_trailopt 'I'; skip_next=yes;; \ ++ -*I?*) strip_trailopt 'I';; \ ++ -*O) strip_trailopt 'O'; skip_next=yes;; \ ++ -*O?*) strip_trailopt 'O';; \ ++ -*l) strip_trailopt 'l'; skip_next=yes;; \ ++ -*l?*) strip_trailopt 'l';; \ ++ -[dEDm]) skip_next=yes;; \ ++ -[JT]) skip_next=yes;; \ ++ esac; \ ++ case $$flg in \ ++ *$$target_option*) has_opt=yes; break;; \ ++ esac; \ ++ done; \ ++ test $$has_opt = yes ++am__make_dryrun = (target_option=n; $(am__make_running_with_option)) ++am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkglibexecdir = $(libexecdir)/@PACKAGE@ ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = @build@ ++host_triplet = @host@ ++subdir = src/hunspell ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ ++ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ ++ $(top_srcdir)/m4/glibc2.m4 $(top_srcdir)/m4/glibc21.m4 \ ++ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \ ++ $(top_srcdir)/m4/intl.m4 $(top_srcdir)/m4/intlmacosx.m4 \ ++ $(top_srcdir)/m4/intmax.m4 $(top_srcdir)/m4/inttypes-pri.m4 \ ++ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ ++ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ ++ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ ++ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ ++ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ++ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ ++ $(top_srcdir)/m4/printf-posix.m4 $(top_srcdir)/m4/progtest.m4 \ ++ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/stdint_h.m4 \ ++ $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/m4/uintmax_t.m4 \ ++ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ ++ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ++ $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++DIST_COMMON = $(srcdir)/Makefile.am $(libhunspell_1_6_include_HEADERS) \ ++ $(am__DIST_COMMON) ++mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = hunvisapi.h ++CONFIG_CLEAN_VPATH_FILES = ++am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; ++am__vpath_adj = case $$p in \ ++ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ ++ *) f=$$p;; \ ++ esac; ++am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; ++am__install_max = 40 ++am__nobase_strip_setup = \ ++ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` ++am__nobase_strip = \ ++ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" ++am__nobase_list = $(am__nobase_strip_setup); \ ++ for p in $$list; do echo "$$p $$p"; done | \ ++ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ ++ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ ++ if (++n[$$2] == $(am__install_max)) \ ++ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ ++ END { for (dir in files) print dir, files[dir] }' ++am__base_list = \ ++ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ ++ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' ++am__uninstall_files_from_dir = { \ ++ test -z "$$files" \ ++ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ ++ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ ++ $(am__cd) "$$dir" && rm -f $$files; }; \ ++ } ++am__installdirs = "$(DESTDIR)$(libdir)" \ ++ "$(DESTDIR)$(libhunspell_1_6_includedir)" ++LTLIBRARIES = $(lib_LTLIBRARIES) ++libhunspell_1_6_la_LIBADD = ++am_libhunspell_1_6_la_OBJECTS = affentry.lo affixmgr.lo csutil.lo \ ++ hashmgr.lo hunspell.lo suggestmgr.lo phonet.lo filemgr.lo \ ++ hunzip.lo replist.lo ++libhunspell_1_6_la_OBJECTS = $(am_libhunspell_1_6_la_OBJECTS) ++AM_V_lt = $(am__v_lt_@AM_V@) ++am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) ++am__v_lt_0 = --silent ++am__v_lt_1 = ++libhunspell_1_6_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ ++ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ ++ $(AM_CXXFLAGS) $(CXXFLAGS) $(libhunspell_1_6_la_LDFLAGS) \ ++ $(LDFLAGS) -o $@ ++AM_V_P = $(am__v_P_@AM_V@) ++am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) ++am__v_P_0 = false ++am__v_P_1 = : ++AM_V_GEN = $(am__v_GEN_@AM_V@) ++am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) ++am__v_GEN_0 = @echo " GEN " $@; ++am__v_GEN_1 = ++AM_V_at = $(am__v_at_@AM_V@) ++am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) ++am__v_at_0 = @ ++am__v_at_1 = ++DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) ++depcomp = $(SHELL) $(top_srcdir)/depcomp ++am__depfiles_maybe = depfiles ++am__mv = mv -f ++CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ ++ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) ++LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ ++ $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ ++ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ ++ $(AM_CXXFLAGS) $(CXXFLAGS) ++AM_V_CXX = $(am__v_CXX_@AM_V@) ++am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) ++am__v_CXX_0 = @echo " CXX " $@; ++am__v_CXX_1 = ++CXXLD = $(CXX) ++CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ ++ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ ++ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ ++AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) ++am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) ++am__v_CXXLD_0 = @echo " CXXLD " $@; ++am__v_CXXLD_1 = ++COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ ++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ ++ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ ++ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ ++ $(AM_CFLAGS) $(CFLAGS) ++AM_V_CC = $(am__v_CC_@AM_V@) ++am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) ++am__v_CC_0 = @echo " CC " $@; ++am__v_CC_1 = ++CCLD = $(CC) ++LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ ++ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ ++ $(AM_LDFLAGS) $(LDFLAGS) -o $@ ++AM_V_CCLD = $(am__v_CCLD_@AM_V@) ++am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) ++am__v_CCLD_0 = @echo " CCLD " $@; ++am__v_CCLD_1 = ++SOURCES = $(libhunspell_1_6_la_SOURCES) ++DIST_SOURCES = $(libhunspell_1_6_la_SOURCES) ++am__can_run_installinfo = \ ++ case $$AM_UPDATE_INFO_DIR in \ ++ n|no|NO) false;; \ ++ *) (install-info --version) >/dev/null 2>&1;; \ ++ esac ++HEADERS = $(libhunspell_1_6_include_HEADERS) ++am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) ++# Read a list of newline-separated strings from the standard input, ++# and print each of them once, without duplicates. Input order is ++# *not* preserved. ++am__uniquify_input = $(AWK) '\ ++ BEGIN { nonempty = 0; } \ ++ { items[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in items) print i; }; } \ ++' ++# Make sure the list of sources is unique. This is necessary because, ++# e.g., the same source file might be shared among _SOURCES variables ++# for different programs/libraries. ++am__define_uniq_tagged_files = \ ++ list='$(am__tagged_files)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | $(am__uniquify_input)` ++ETAGS = etags ++CTAGS = ctags ++am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/hunvisapi.h.in \ ++ $(top_srcdir)/depcomp $(top_srcdir)/mkinstalldirs ++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ++ACLOCAL = @ACLOCAL@ ++ALLOCA = @ALLOCA@ ++AMTAR = @AMTAR@ ++AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ ++AR = @AR@ ++AS = @AS@ ++AUTOCONF = @AUTOCONF@ ++AUTOHEADER = @AUTOHEADER@ ++AUTOMAKE = @AUTOMAKE@ ++AWK = @AWK@ ++BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ ++CATOBJEXT = @CATOBJEXT@ ++CC = @CC@ ++CCDEPMODE = @CCDEPMODE@ ++CFLAGS = @CFLAGS@ ++CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ ++CPP = @CPP@ ++CPPFLAGS = @CPPFLAGS@ ++CURSESLIB = @CURSESLIB@ ++CXX = @CXX@ ++CXXCPP = @CXXCPP@ ++CXXDEPMODE = @CXXDEPMODE@ ++CXXFLAGS = @CXXFLAGS@ ++CYGPATH_W = @CYGPATH_W@ ++DATADIRNAME = @DATADIRNAME@ ++DEFS = @DEFS@ ++DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ ++DSYMUTIL = @DSYMUTIL@ ++DUMPBIN = @DUMPBIN@ ++ECHO_C = @ECHO_C@ ++ECHO_N = @ECHO_N@ ++ECHO_T = @ECHO_T@ ++EGREP = @EGREP@ ++EXEEXT = @EXEEXT@ ++FGREP = @FGREP@ ++GENCAT = @GENCAT@ ++GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ ++GLIBC2 = @GLIBC2@ ++GLIBC21 = @GLIBC21@ ++GMSGFMT = @GMSGFMT@ ++GMSGFMT_015 = @GMSGFMT_015@ ++GREP = @GREP@ ++HAVE_ASPRINTF = @HAVE_ASPRINTF@ ++HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ ++HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ ++HAVE_SNPRINTF = @HAVE_SNPRINTF@ ++HAVE_VISIBILITY = @HAVE_VISIBILITY@ ++HAVE_WPRINTF = @HAVE_WPRINTF@ ++HUNSPELL_VERSION_MAJOR = @HUNSPELL_VERSION_MAJOR@ ++HUNSPELL_VERSION_MINOR = @HUNSPELL_VERSION_MINOR@ ++INSTALL = @INSTALL@ ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ++INSTOBJEXT = @INSTOBJEXT@ ++INTLBISON = @INTLBISON@ ++INTLLIBS = @INTLLIBS@ ++INTLOBJS = @INTLOBJS@ ++INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ ++INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ ++INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ++LD = @LD@ ++LDFLAGS = @LDFLAGS@ ++LIBICONV = @LIBICONV@ ++LIBINTL = @LIBINTL@ ++LIBMULTITHREAD = @LIBMULTITHREAD@ ++LIBOBJS = @LIBOBJS@ ++LIBPTH = @LIBPTH@ ++LIBPTH_PREFIX = @LIBPTH_PREFIX@ ++LIBS = @LIBS@ ++LIBTHREAD = @LIBTHREAD@ ++LIBTOOL = @LIBTOOL@ ++LIPO = @LIPO@ ++LN_S = @LN_S@ ++LTLIBC = @LTLIBC@ ++LTLIBICONV = @LTLIBICONV@ ++LTLIBINTL = @LTLIBINTL@ ++LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ ++LTLIBOBJS = @LTLIBOBJS@ ++LTLIBPTH = @LTLIBPTH@ ++LTLIBTHREAD = @LTLIBTHREAD@ ++LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ ++MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ ++MKDIR_P = @MKDIR_P@ ++MSGFMT = @MSGFMT@ ++MSGFMT_015 = @MSGFMT_015@ ++MSGMERGE = @MSGMERGE@ ++NM = @NM@ ++NMEDIT = @NMEDIT@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++OTOOL = @OTOOL@ ++OTOOL64 = @OTOOL64@ ++PACKAGE = @PACKAGE@ ++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ ++PACKAGE_NAME = @PACKAGE_NAME@ ++PACKAGE_STRING = @PACKAGE_STRING@ ++PACKAGE_TARNAME = @PACKAGE_TARNAME@ ++PACKAGE_URL = @PACKAGE_URL@ ++PACKAGE_VERSION = @PACKAGE_VERSION@ ++PATH_SEPARATOR = @PATH_SEPARATOR@ ++POSUB = @POSUB@ ++PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ ++RANLIB = @RANLIB@ ++READLINELIB = @READLINELIB@ ++SED = @SED@ ++SET_MAKE = @SET_MAKE@ ++SHELL = @SHELL@ ++STRIP = @STRIP@ ++USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ ++USE_NLS = @USE_NLS@ ++VERSION = @VERSION@ ++WINDRES = @WINDRES@ ++WOE32 = @WOE32@ ++WOE32DLL = @WOE32DLL@ ++XFAILED = @XFAILED@ ++XGETTEXT = @XGETTEXT@ ++XGETTEXT_015 = @XGETTEXT_015@ ++XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ++abs_builddir = @abs_builddir@ ++abs_srcdir = @abs_srcdir@ ++abs_top_builddir = @abs_top_builddir@ ++abs_top_srcdir = @abs_top_srcdir@ ++ac_ct_AR = @ac_ct_AR@ ++ac_ct_CC = @ac_ct_CC@ ++ac_ct_CXX = @ac_ct_CXX@ ++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ++am__include = @am__include@ ++am__leading_dot = @am__leading_dot@ ++am__quote = @am__quote@ ++am__tar = @am__tar@ ++am__untar = @am__untar@ ++bindir = @bindir@ ++build = @build@ ++build_alias = @build_alias@ ++build_cpu = @build_cpu@ ++build_os = @build_os@ ++build_vendor = @build_vendor@ ++builddir = @builddir@ ++datadir = @datadir@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++dvidir = @dvidir@ ++exec_prefix = @exec_prefix@ ++host = @host@ ++host_alias = @host_alias@ ++host_cpu = @host_cpu@ ++host_os = @host_os@ ++host_vendor = @host_vendor@ ++htmldir = @htmldir@ ++includedir = @includedir@ ++infodir = @infodir@ ++install_sh = @install_sh@ ++libdir = @libdir@ ++libexecdir = @libexecdir@ ++localedir = @localedir@ ++localstatedir = @localstatedir@ ++mandir = @mandir@ ++mkdir_p = @mkdir_p@ ++oldincludedir = @oldincludedir@ ++pdfdir = @pdfdir@ ++prefix = @prefix@ ++program_transform_name = @program_transform_name@ ++psdir = @psdir@ ++sbindir = @sbindir@ ++sharedstatedir = @sharedstatedir@ ++srcdir = @srcdir@ ++sysconfdir = @sysconfdir@ ++target_alias = @target_alias@ ++top_build_prefix = @top_build_prefix@ ++top_builddir = @top_builddir@ ++top_srcdir = @top_srcdir@ ++lib_LTLIBRARIES = libhunspell-1.6.la ++libhunspell_1_6_includedir = $(includedir)/hunspell ++libhunspell_1_6_la_SOURCES = affentry.cxx affixmgr.cxx csutil.cxx \ ++ hashmgr.cxx hunspell.cxx suggestmgr.cxx \ ++ phonet.cxx filemgr.cxx hunzip.cxx replist.cxx \ ++ affentry.hxx htypes.hxx affixmgr.hxx \ ++ csutil.hxx atypes.hxx suggestmgr.hxx \ ++ baseaffix.hxx hashmgr.hxx langnum.hxx \ ++ phonet.hxx filemgr.hxx hunzip.hxx replist.hxx ++ ++libhunspell_1_6_include_HEADERS = hunspell.hxx hunspell.h hunvisapi.h \ ++ w_char.hxx atypes.hxx csutil.hxx htypes.hxx ++ ++libhunspell_1_6_la_DEPENDENCIES = utf_info.cxx ++libhunspell_1_6_la_LDFLAGS = -no-undefined ++AM_CXXFLAGS = $(CFLAG_VISIBILITY) -DBUILDING_LIBHUNSPELL ++EXTRA_DIST = utf_info.cxx ++all: all-am ++ ++.SUFFIXES: ++.SUFFIXES: .cxx .lo .o .obj ++$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) ++ @for dep in $?; do \ ++ case '$(am__configure_deps)' in \ ++ *$$dep*) \ ++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/hunspell/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnu src/hunspell/Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++hunvisapi.h: $(top_builddir)/config.status $(srcdir)/hunvisapi.h.in ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ ++ ++install-libLTLIBRARIES: $(lib_LTLIBRARIES) ++ @$(NORMAL_INSTALL) ++ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ ++ list2=; for p in $$list; do \ ++ if test -f $$p; then \ ++ list2="$$list2 $$p"; \ ++ else :; fi; \ ++ done; \ ++ test -z "$$list2" || { \ ++ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ ++ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ ++ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ ++ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ ++ } ++ ++uninstall-libLTLIBRARIES: ++ @$(NORMAL_UNINSTALL) ++ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ ++ for p in $$list; do \ ++ $(am__strip_dir) \ ++ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ ++ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ ++ done ++ ++clean-libLTLIBRARIES: ++ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) ++ @list='$(lib_LTLIBRARIES)'; \ ++ locs=`for p in $$list; do echo $$p; done | \ ++ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ ++ sort -u`; \ ++ test -z "$$locs" || { \ ++ echo rm -f $${locs}; \ ++ rm -f $${locs}; \ ++ } ++ ++libhunspell-1.6.la: $(libhunspell_1_6_la_OBJECTS) $(libhunspell_1_6_la_DEPENDENCIES) $(EXTRA_libhunspell_1_6_la_DEPENDENCIES) ++ $(AM_V_CXXLD)$(libhunspell_1_6_la_LINK) -rpath $(libdir) $(libhunspell_1_6_la_OBJECTS) $(libhunspell_1_6_la_LIBADD) $(LIBS) ++ ++mostlyclean-compile: ++ -rm -f *.$(OBJEXT) ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/affentry.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/affixmgr.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/csutil.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filemgr.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hashmgr.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hunspell.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hunzip.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/phonet.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/replist.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/suggestmgr.Plo@am__quote@ ++ ++.cxx.o: ++@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< ++@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< ++ ++.cxx.obj: ++@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` ++@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` ++ ++.cxx.lo: ++@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< ++@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo ++@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++install-libhunspell_1_6_includeHEADERS: $(libhunspell_1_6_include_HEADERS) ++ @$(NORMAL_INSTALL) ++ @list='$(libhunspell_1_6_include_HEADERS)'; test -n "$(libhunspell_1_6_includedir)" || list=; \ ++ if test -n "$$list"; then \ ++ echo " $(MKDIR_P) '$(DESTDIR)$(libhunspell_1_6_includedir)'"; \ ++ $(MKDIR_P) "$(DESTDIR)$(libhunspell_1_6_includedir)" || exit 1; \ ++ fi; \ ++ for p in $$list; do \ ++ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ ++ echo "$$d$$p"; \ ++ done | $(am__base_list) | \ ++ while read files; do \ ++ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libhunspell_1_6_includedir)'"; \ ++ $(INSTALL_HEADER) $$files "$(DESTDIR)$(libhunspell_1_6_includedir)" || exit $$?; \ ++ done ++ ++uninstall-libhunspell_1_6_includeHEADERS: ++ @$(NORMAL_UNINSTALL) ++ @list='$(libhunspell_1_6_include_HEADERS)'; test -n "$(libhunspell_1_6_includedir)" || list=; \ ++ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ ++ dir='$(DESTDIR)$(libhunspell_1_6_includedir)'; $(am__uninstall_files_from_dir) ++ ++ID: $(am__tagged_files) ++ $(am__define_uniq_tagged_files); mkid -fID $$unique ++tags: tags-am ++TAGS: tags ++ ++tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ set x; \ ++ here=`pwd`; \ ++ $(am__define_uniq_tagged_files); \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ ++ test -n "$$unique" || unique=$$empty_fix; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ ++ fi ++ctags: ctags-am ++ ++CTAGS: ctags ++ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ $(am__define_uniq_tagged_files); \ ++ test -z "$(CTAGS_ARGS)$$unique" \ ++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ ++ $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" ++cscopelist: cscopelist-am ++ ++cscopelist-am: $(am__tagged_files) ++ list='$(am__tagged_files)'; \ ++ case "$(srcdir)" in \ ++ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ ++ *) sdir=$(subdir)/$(srcdir) ;; \ ++ esac; \ ++ for i in $$list; do \ ++ if test -f "$$i"; then \ ++ echo "$(subdir)/$$i"; \ ++ else \ ++ echo "$$sdir/$$i"; \ ++ fi; \ ++ done >> $(top_builddir)/cscope.files ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags ++ ++distdir: $(DISTFILES) ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ ++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ ++ if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ ++ else \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ ++ || exit 1; \ ++ fi; \ ++ done ++check-am: all-am ++check: check-am ++all-am: Makefile $(LTLIBRARIES) $(HEADERS) ++installdirs: ++ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(libhunspell_1_6_includedir)"; do \ ++ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ ++ done ++install: install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ if test -z '$(STRIP)'; then \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ install; \ ++ else \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ ++ fi ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-am ++ ++clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ ++ mostlyclean-am ++ ++distclean: distclean-am ++ -rm -rf ./$(DEPDIR) ++ -rm -f Makefile ++distclean-am: clean-am distclean-compile distclean-generic \ ++ distclean-tags ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++html: html-am ++ ++html-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: install-libhunspell_1_6_includeHEADERS ++ ++install-dvi: install-dvi-am ++ ++install-dvi-am: ++ ++install-exec-am: install-libLTLIBRARIES ++ ++install-html: install-html-am ++ ++install-html-am: ++ ++install-info: install-info-am ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-am ++ ++install-pdf-am: ++ ++install-ps: install-ps-am ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-am ++ -rm -rf ./$(DEPDIR) ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool ++ ++pdf: pdf-am ++ ++pdf-am: ++ ++ps: ps-am ++ ++ps-am: ++ ++uninstall-am: uninstall-libLTLIBRARIES \ ++ uninstall-libhunspell_1_6_includeHEADERS ++ ++.MAKE: install-am install-strip ++ ++.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ ++ clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ ++ ctags-am distclean distclean-compile distclean-generic \ ++ distclean-libtool distclean-tags distdir dvi dvi-am html \ ++ html-am info info-am install install-am install-data \ ++ install-data-am install-dvi install-dvi-am install-exec \ ++ install-exec-am install-html install-html-am install-info \ ++ install-info-am install-libLTLIBRARIES \ ++ install-libhunspell_1_6_includeHEADERS install-man install-pdf \ ++ install-pdf-am install-ps install-ps-am install-strip \ ++ installcheck installcheck-am installdirs maintainer-clean \ ++ maintainer-clean-generic mostlyclean mostlyclean-compile \ ++ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ ++ tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES \ ++ uninstall-libhunspell_1_6_includeHEADERS ++ ++.PRECIOUS: Makefile ++ ++ ++# Tell versions [3.59,3.63) of GNU make to not export all variables. ++# Otherwise a system limit (for SysV at least) may be exceeded. ++.NOEXPORT: +diff --git a/src/parsers/Makefile.in b/src/parsers/Makefile.in +new file mode 100644 +index 0000000..b4553e6 +--- /dev/null ++++ b/src/parsers/Makefile.in +@@ -0,0 +1,721 @@ ++# Makefile.in generated by automake 1.15 from Makefile.am. ++# @configure_input@ ++ ++# Copyright (C) 1994-2014 Free Software Foundation, Inc. ++ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++@SET_MAKE@ ++ ++ ++VPATH = @srcdir@ ++am__is_gnu_make = { \ ++ if test -z '$(MAKELEVEL)'; then \ ++ false; \ ++ elif test -n '$(MAKE_HOST)'; then \ ++ true; \ ++ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ ++ true; \ ++ else \ ++ false; \ ++ fi; \ ++} ++am__make_running_with_option = \ ++ case $${target_option-} in \ ++ ?) ;; \ ++ *) echo "am__make_running_with_option: internal error: invalid" \ ++ "target option '$${target_option-}' specified" >&2; \ ++ exit 1;; \ ++ esac; \ ++ has_opt=no; \ ++ sane_makeflags=$$MAKEFLAGS; \ ++ if $(am__is_gnu_make); then \ ++ sane_makeflags=$$MFLAGS; \ ++ else \ ++ case $$MAKEFLAGS in \ ++ *\\[\ \ ]*) \ ++ bs=\\; \ ++ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ ++ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ ++ esac; \ ++ fi; \ ++ skip_next=no; \ ++ strip_trailopt () \ ++ { \ ++ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ ++ }; \ ++ for flg in $$sane_makeflags; do \ ++ test $$skip_next = yes && { skip_next=no; continue; }; \ ++ case $$flg in \ ++ *=*|--*) continue;; \ ++ -*I) strip_trailopt 'I'; skip_next=yes;; \ ++ -*I?*) strip_trailopt 'I';; \ ++ -*O) strip_trailopt 'O'; skip_next=yes;; \ ++ -*O?*) strip_trailopt 'O';; \ ++ -*l) strip_trailopt 'l'; skip_next=yes;; \ ++ -*l?*) strip_trailopt 'l';; \ ++ -[dEDm]) skip_next=yes;; \ ++ -[JT]) skip_next=yes;; \ ++ esac; \ ++ case $$flg in \ ++ *$$target_option*) has_opt=yes; break;; \ ++ esac; \ ++ done; \ ++ test $$has_opt = yes ++am__make_dryrun = (target_option=n; $(am__make_running_with_option)) ++am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkglibexecdir = $(libexecdir)/@PACKAGE@ ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = @build@ ++host_triplet = @host@ ++noinst_PROGRAMS = testparser$(EXEEXT) ++subdir = src/parsers ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ ++ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ ++ $(top_srcdir)/m4/glibc2.m4 $(top_srcdir)/m4/glibc21.m4 \ ++ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \ ++ $(top_srcdir)/m4/intl.m4 $(top_srcdir)/m4/intlmacosx.m4 \ ++ $(top_srcdir)/m4/intmax.m4 $(top_srcdir)/m4/inttypes-pri.m4 \ ++ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ ++ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ ++ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ ++ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ ++ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ++ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ ++ $(top_srcdir)/m4/printf-posix.m4 $(top_srcdir)/m4/progtest.m4 \ ++ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/stdint_h.m4 \ ++ $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/m4/uintmax_t.m4 \ ++ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ ++ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ++ $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) ++mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = ++LIBRARIES = $(noinst_LIBRARIES) ++ARFLAGS = cru ++AM_V_AR = $(am__v_AR_@AM_V@) ++am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) ++am__v_AR_0 = @echo " AR " $@; ++am__v_AR_1 = ++libparsers_a_AR = $(AR) $(ARFLAGS) ++libparsers_a_LIBADD = ++am_libparsers_a_OBJECTS = firstparser.$(OBJEXT) xmlparser.$(OBJEXT) \ ++ latexparser.$(OBJEXT) manparser.$(OBJEXT) textparser.$(OBJEXT) \ ++ htmlparser.$(OBJEXT) odfparser.$(OBJEXT) ++libparsers_a_OBJECTS = $(am_libparsers_a_OBJECTS) ++PROGRAMS = $(noinst_PROGRAMS) ++am_testparser_OBJECTS = firstparser.$(OBJEXT) xmlparser.$(OBJEXT) \ ++ latexparser.$(OBJEXT) manparser.$(OBJEXT) testparser.$(OBJEXT) \ ++ textparser.$(OBJEXT) htmlparser.$(OBJEXT) odfparser.$(OBJEXT) ++testparser_OBJECTS = $(am_testparser_OBJECTS) ++testparser_LDADD = $(LDADD) ++testparser_DEPENDENCIES = ../hunspell/libhunspell-1.6.la ++AM_V_lt = $(am__v_lt_@AM_V@) ++am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) ++am__v_lt_0 = --silent ++am__v_lt_1 = ++AM_V_P = $(am__v_P_@AM_V@) ++am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) ++am__v_P_0 = false ++am__v_P_1 = : ++AM_V_GEN = $(am__v_GEN_@AM_V@) ++am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) ++am__v_GEN_0 = @echo " GEN " $@; ++am__v_GEN_1 = ++AM_V_at = $(am__v_at_@AM_V@) ++am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) ++am__v_at_0 = @ ++am__v_at_1 = ++DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) ++depcomp = $(SHELL) $(top_srcdir)/depcomp ++am__depfiles_maybe = depfiles ++am__mv = mv -f ++CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ ++ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) ++LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ ++ $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ ++ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ ++ $(AM_CXXFLAGS) $(CXXFLAGS) ++AM_V_CXX = $(am__v_CXX_@AM_V@) ++am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) ++am__v_CXX_0 = @echo " CXX " $@; ++am__v_CXX_1 = ++CXXLD = $(CXX) ++CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ ++ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ ++ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ ++AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) ++am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) ++am__v_CXXLD_0 = @echo " CXXLD " $@; ++am__v_CXXLD_1 = ++COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ ++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ ++ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ ++ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ ++ $(AM_CFLAGS) $(CFLAGS) ++AM_V_CC = $(am__v_CC_@AM_V@) ++am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) ++am__v_CC_0 = @echo " CC " $@; ++am__v_CC_1 = ++CCLD = $(CC) ++LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ ++ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ ++ $(AM_LDFLAGS) $(LDFLAGS) -o $@ ++AM_V_CCLD = $(am__v_CCLD_@AM_V@) ++am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) ++am__v_CCLD_0 = @echo " CCLD " $@; ++am__v_CCLD_1 = ++SOURCES = $(libparsers_a_SOURCES) $(testparser_SOURCES) ++DIST_SOURCES = $(libparsers_a_SOURCES) $(testparser_SOURCES) ++am__can_run_installinfo = \ ++ case $$AM_UPDATE_INFO_DIR in \ ++ n|no|NO) false;; \ ++ *) (install-info --version) >/dev/null 2>&1;; \ ++ esac ++am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) ++# Read a list of newline-separated strings from the standard input, ++# and print each of them once, without duplicates. Input order is ++# *not* preserved. ++am__uniquify_input = $(AWK) '\ ++ BEGIN { nonempty = 0; } \ ++ { items[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in items) print i; }; } \ ++' ++# Make sure the list of sources is unique. This is necessary because, ++# e.g., the same source file might be shared among _SOURCES variables ++# for different programs/libraries. ++am__define_uniq_tagged_files = \ ++ list='$(am__tagged_files)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | $(am__uniquify_input)` ++ETAGS = etags ++CTAGS = ctags ++am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp \ ++ $(top_srcdir)/mkinstalldirs ++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ++ACLOCAL = @ACLOCAL@ ++ALLOCA = @ALLOCA@ ++AMTAR = @AMTAR@ ++AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ ++AR = @AR@ ++AS = @AS@ ++AUTOCONF = @AUTOCONF@ ++AUTOHEADER = @AUTOHEADER@ ++AUTOMAKE = @AUTOMAKE@ ++AWK = @AWK@ ++BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ ++CATOBJEXT = @CATOBJEXT@ ++CC = @CC@ ++CCDEPMODE = @CCDEPMODE@ ++CFLAGS = @CFLAGS@ ++CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ ++CPP = @CPP@ ++CPPFLAGS = @CPPFLAGS@ ++CURSESLIB = @CURSESLIB@ ++CXX = @CXX@ ++CXXCPP = @CXXCPP@ ++CXXDEPMODE = @CXXDEPMODE@ ++CXXFLAGS = @CXXFLAGS@ ++CYGPATH_W = @CYGPATH_W@ ++DATADIRNAME = @DATADIRNAME@ ++DEFS = @DEFS@ ++DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ ++DSYMUTIL = @DSYMUTIL@ ++DUMPBIN = @DUMPBIN@ ++ECHO_C = @ECHO_C@ ++ECHO_N = @ECHO_N@ ++ECHO_T = @ECHO_T@ ++EGREP = @EGREP@ ++EXEEXT = @EXEEXT@ ++FGREP = @FGREP@ ++GENCAT = @GENCAT@ ++GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ ++GLIBC2 = @GLIBC2@ ++GLIBC21 = @GLIBC21@ ++GMSGFMT = @GMSGFMT@ ++GMSGFMT_015 = @GMSGFMT_015@ ++GREP = @GREP@ ++HAVE_ASPRINTF = @HAVE_ASPRINTF@ ++HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ ++HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ ++HAVE_SNPRINTF = @HAVE_SNPRINTF@ ++HAVE_VISIBILITY = @HAVE_VISIBILITY@ ++HAVE_WPRINTF = @HAVE_WPRINTF@ ++HUNSPELL_VERSION_MAJOR = @HUNSPELL_VERSION_MAJOR@ ++HUNSPELL_VERSION_MINOR = @HUNSPELL_VERSION_MINOR@ ++INSTALL = @INSTALL@ ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ++INSTOBJEXT = @INSTOBJEXT@ ++INTLBISON = @INTLBISON@ ++INTLLIBS = @INTLLIBS@ ++INTLOBJS = @INTLOBJS@ ++INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ ++INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ ++INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ++LD = @LD@ ++LDFLAGS = @LDFLAGS@ ++LIBICONV = @LIBICONV@ ++LIBINTL = @LIBINTL@ ++LIBMULTITHREAD = @LIBMULTITHREAD@ ++LIBOBJS = @LIBOBJS@ ++LIBPTH = @LIBPTH@ ++LIBPTH_PREFIX = @LIBPTH_PREFIX@ ++LIBS = @LIBS@ ++LIBTHREAD = @LIBTHREAD@ ++LIBTOOL = @LIBTOOL@ ++LIPO = @LIPO@ ++LN_S = @LN_S@ ++LTLIBC = @LTLIBC@ ++LTLIBICONV = @LTLIBICONV@ ++LTLIBINTL = @LTLIBINTL@ ++LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ ++LTLIBOBJS = @LTLIBOBJS@ ++LTLIBPTH = @LTLIBPTH@ ++LTLIBTHREAD = @LTLIBTHREAD@ ++LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ ++MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ ++MKDIR_P = @MKDIR_P@ ++MSGFMT = @MSGFMT@ ++MSGFMT_015 = @MSGFMT_015@ ++MSGMERGE = @MSGMERGE@ ++NM = @NM@ ++NMEDIT = @NMEDIT@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++OTOOL = @OTOOL@ ++OTOOL64 = @OTOOL64@ ++PACKAGE = @PACKAGE@ ++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ ++PACKAGE_NAME = @PACKAGE_NAME@ ++PACKAGE_STRING = @PACKAGE_STRING@ ++PACKAGE_TARNAME = @PACKAGE_TARNAME@ ++PACKAGE_URL = @PACKAGE_URL@ ++PACKAGE_VERSION = @PACKAGE_VERSION@ ++PATH_SEPARATOR = @PATH_SEPARATOR@ ++POSUB = @POSUB@ ++PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ ++RANLIB = @RANLIB@ ++READLINELIB = @READLINELIB@ ++SED = @SED@ ++SET_MAKE = @SET_MAKE@ ++SHELL = @SHELL@ ++STRIP = @STRIP@ ++USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ ++USE_NLS = @USE_NLS@ ++VERSION = @VERSION@ ++WINDRES = @WINDRES@ ++WOE32 = @WOE32@ ++WOE32DLL = @WOE32DLL@ ++XFAILED = @XFAILED@ ++XGETTEXT = @XGETTEXT@ ++XGETTEXT_015 = @XGETTEXT_015@ ++XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ++abs_builddir = @abs_builddir@ ++abs_srcdir = @abs_srcdir@ ++abs_top_builddir = @abs_top_builddir@ ++abs_top_srcdir = @abs_top_srcdir@ ++ac_ct_AR = @ac_ct_AR@ ++ac_ct_CC = @ac_ct_CC@ ++ac_ct_CXX = @ac_ct_CXX@ ++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ++am__include = @am__include@ ++am__leading_dot = @am__leading_dot@ ++am__quote = @am__quote@ ++am__tar = @am__tar@ ++am__untar = @am__untar@ ++bindir = @bindir@ ++build = @build@ ++build_alias = @build_alias@ ++build_cpu = @build_cpu@ ++build_os = @build_os@ ++build_vendor = @build_vendor@ ++builddir = @builddir@ ++datadir = @datadir@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++dvidir = @dvidir@ ++exec_prefix = @exec_prefix@ ++host = @host@ ++host_alias = @host_alias@ ++host_cpu = @host_cpu@ ++host_os = @host_os@ ++host_vendor = @host_vendor@ ++htmldir = @htmldir@ ++includedir = @includedir@ ++infodir = @infodir@ ++install_sh = @install_sh@ ++libdir = @libdir@ ++libexecdir = @libexecdir@ ++localedir = @localedir@ ++localstatedir = @localstatedir@ ++mandir = @mandir@ ++mkdir_p = @mkdir_p@ ++oldincludedir = @oldincludedir@ ++pdfdir = @pdfdir@ ++prefix = @prefix@ ++program_transform_name = @program_transform_name@ ++psdir = @psdir@ ++sbindir = @sbindir@ ++sharedstatedir = @sharedstatedir@ ++srcdir = @srcdir@ ++sysconfdir = @sysconfdir@ ++target_alias = @target_alias@ ++top_build_prefix = @top_build_prefix@ ++top_builddir = @top_builddir@ ++top_srcdir = @top_srcdir@ ++INCLUDES = -I${top_builddir}/src/hunspell ++noinst_LIBRARIES = libparsers.a ++libparsers_a_SOURCES = firstparser.cxx xmlparser.cxx \ ++ latexparser.cxx manparser.cxx \ ++ textparser.cxx htmlparser.cxx \ ++ odfparser.cxx ++ ++testparser_SOURCES = firstparser.cxx firstparser.hxx xmlparser.cxx \ ++ xmlparser.hxx latexparser.cxx latexparser.hxx \ ++ manparser.cxx manparser.hxx testparser.cxx \ ++ textparser.cxx textparser.hxx htmlparser.cxx \ ++ htmlparser.hxx odfparser.hxx odfparser.cxx ++ ++ ++# need mystrdup() ++LDADD = ../hunspell/libhunspell-1.6.la ++all: all-am ++ ++.SUFFIXES: ++.SUFFIXES: .cxx .lo .o .obj ++$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) ++ @for dep in $?; do \ ++ case '$(am__configure_deps)' in \ ++ *$$dep*) \ ++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/parsers/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnu src/parsers/Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++ ++clean-noinstLIBRARIES: ++ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) ++ ++libparsers.a: $(libparsers_a_OBJECTS) $(libparsers_a_DEPENDENCIES) $(EXTRA_libparsers_a_DEPENDENCIES) ++ $(AM_V_at)-rm -f libparsers.a ++ $(AM_V_AR)$(libparsers_a_AR) libparsers.a $(libparsers_a_OBJECTS) $(libparsers_a_LIBADD) ++ $(AM_V_at)$(RANLIB) libparsers.a ++ ++clean-noinstPROGRAMS: ++ @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ ++ echo " rm -f" $$list; \ ++ rm -f $$list || exit $$?; \ ++ test -n "$(EXEEXT)" || exit 0; \ ++ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ ++ echo " rm -f" $$list; \ ++ rm -f $$list ++ ++testparser$(EXEEXT): $(testparser_OBJECTS) $(testparser_DEPENDENCIES) $(EXTRA_testparser_DEPENDENCIES) ++ @rm -f testparser$(EXEEXT) ++ $(AM_V_CXXLD)$(CXXLINK) $(testparser_OBJECTS) $(testparser_LDADD) $(LIBS) ++ ++mostlyclean-compile: ++ -rm -f *.$(OBJEXT) ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/firstparser.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htmlparser.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/latexparser.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/manparser.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/odfparser.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testparser.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/textparser.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmlparser.Po@am__quote@ ++ ++.cxx.o: ++@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< ++@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< ++ ++.cxx.obj: ++@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` ++@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` ++ ++.cxx.lo: ++@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< ++@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo ++@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++ID: $(am__tagged_files) ++ $(am__define_uniq_tagged_files); mkid -fID $$unique ++tags: tags-am ++TAGS: tags ++ ++tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ set x; \ ++ here=`pwd`; \ ++ $(am__define_uniq_tagged_files); \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ ++ test -n "$$unique" || unique=$$empty_fix; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ ++ fi ++ctags: ctags-am ++ ++CTAGS: ctags ++ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ $(am__define_uniq_tagged_files); \ ++ test -z "$(CTAGS_ARGS)$$unique" \ ++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ ++ $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" ++cscopelist: cscopelist-am ++ ++cscopelist-am: $(am__tagged_files) ++ list='$(am__tagged_files)'; \ ++ case "$(srcdir)" in \ ++ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ ++ *) sdir=$(subdir)/$(srcdir) ;; \ ++ esac; \ ++ for i in $$list; do \ ++ if test -f "$$i"; then \ ++ echo "$(subdir)/$$i"; \ ++ else \ ++ echo "$$sdir/$$i"; \ ++ fi; \ ++ done >> $(top_builddir)/cscope.files ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags ++ ++distdir: $(DISTFILES) ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ ++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ ++ if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ ++ else \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ ++ || exit 1; \ ++ fi; \ ++ done ++check-am: all-am ++check: check-am ++all-am: Makefile $(LIBRARIES) $(PROGRAMS) ++installdirs: ++install: install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ if test -z '$(STRIP)'; then \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ install; \ ++ else \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ ++ fi ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-am ++ ++clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ ++ clean-noinstPROGRAMS mostlyclean-am ++ ++distclean: distclean-am ++ -rm -rf ./$(DEPDIR) ++ -rm -f Makefile ++distclean-am: clean-am distclean-compile distclean-generic \ ++ distclean-tags ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++html: html-am ++ ++html-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: ++ ++install-dvi: install-dvi-am ++ ++install-dvi-am: ++ ++install-exec-am: ++ ++install-html: install-html-am ++ ++install-html-am: ++ ++install-info: install-info-am ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-am ++ ++install-pdf-am: ++ ++install-ps: install-ps-am ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-am ++ -rm -rf ./$(DEPDIR) ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool ++ ++pdf: pdf-am ++ ++pdf-am: ++ ++ps: ps-am ++ ++ps-am: ++ ++uninstall-am: ++ ++.MAKE: install-am install-strip ++ ++.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ ++ clean-libtool clean-noinstLIBRARIES clean-noinstPROGRAMS \ ++ cscopelist-am ctags ctags-am distclean distclean-compile \ ++ distclean-generic distclean-libtool distclean-tags distdir dvi \ ++ dvi-am html html-am info info-am install install-am \ ++ install-data install-data-am install-dvi install-dvi-am \ ++ install-exec install-exec-am install-html install-html-am \ ++ install-info install-info-am install-man install-pdf \ ++ install-pdf-am install-ps install-ps-am install-strip \ ++ installcheck installcheck-am installdirs maintainer-clean \ ++ maintainer-clean-generic mostlyclean mostlyclean-compile \ ++ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ ++ tags tags-am uninstall uninstall-am ++ ++.PRECIOUS: Makefile ++ ++ ++# Tell versions [3.59,3.63) of GNU make to not export all variables. ++# Otherwise a system limit (for SysV at least) may be exceeded. ++.NOEXPORT: +diff --git a/src/tools/Makefile.in b/src/tools/Makefile.in +new file mode 100644 +index 0000000..50128cb +--- /dev/null ++++ b/src/tools/Makefile.in +@@ -0,0 +1,875 @@ ++# Makefile.in generated by automake 1.15 from Makefile.am. ++# @configure_input@ ++ ++# Copyright (C) 1994-2014 Free Software Foundation, Inc. ++ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++@SET_MAKE@ ++ ++ ++VPATH = @srcdir@ ++am__is_gnu_make = { \ ++ if test -z '$(MAKELEVEL)'; then \ ++ false; \ ++ elif test -n '$(MAKE_HOST)'; then \ ++ true; \ ++ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ ++ true; \ ++ else \ ++ false; \ ++ fi; \ ++} ++am__make_running_with_option = \ ++ case $${target_option-} in \ ++ ?) ;; \ ++ *) echo "am__make_running_with_option: internal error: invalid" \ ++ "target option '$${target_option-}' specified" >&2; \ ++ exit 1;; \ ++ esac; \ ++ has_opt=no; \ ++ sane_makeflags=$$MAKEFLAGS; \ ++ if $(am__is_gnu_make); then \ ++ sane_makeflags=$$MFLAGS; \ ++ else \ ++ case $$MAKEFLAGS in \ ++ *\\[\ \ ]*) \ ++ bs=\\; \ ++ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ ++ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ ++ esac; \ ++ fi; \ ++ skip_next=no; \ ++ strip_trailopt () \ ++ { \ ++ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ ++ }; \ ++ for flg in $$sane_makeflags; do \ ++ test $$skip_next = yes && { skip_next=no; continue; }; \ ++ case $$flg in \ ++ *=*|--*) continue;; \ ++ -*I) strip_trailopt 'I'; skip_next=yes;; \ ++ -*I?*) strip_trailopt 'I';; \ ++ -*O) strip_trailopt 'O'; skip_next=yes;; \ ++ -*O?*) strip_trailopt 'O';; \ ++ -*l) strip_trailopt 'l'; skip_next=yes;; \ ++ -*l?*) strip_trailopt 'l';; \ ++ -[dEDm]) skip_next=yes;; \ ++ -[JT]) skip_next=yes;; \ ++ esac; \ ++ case $$flg in \ ++ *$$target_option*) has_opt=yes; break;; \ ++ esac; \ ++ done; \ ++ test $$has_opt = yes ++am__make_dryrun = (target_option=n; $(am__make_running_with_option)) ++am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkglibexecdir = $(libexecdir)/@PACKAGE@ ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = @build@ ++host_triplet = @host@ ++bin_PROGRAMS = analyze$(EXEEXT) chmorph$(EXEEXT) hunspell$(EXEEXT) \ ++ munch$(EXEEXT) unmunch$(EXEEXT) hzip$(EXEEXT) hunzip$(EXEEXT) ++noinst_PROGRAMS = example$(EXEEXT) ++subdir = src/tools ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ ++ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ ++ $(top_srcdir)/m4/glibc2.m4 $(top_srcdir)/m4/glibc21.m4 \ ++ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \ ++ $(top_srcdir)/m4/intl.m4 $(top_srcdir)/m4/intlmacosx.m4 \ ++ $(top_srcdir)/m4/intmax.m4 $(top_srcdir)/m4/inttypes-pri.m4 \ ++ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ ++ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ ++ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ ++ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ ++ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ++ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ ++ $(top_srcdir)/m4/printf-posix.m4 $(top_srcdir)/m4/progtest.m4 \ ++ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/stdint_h.m4 \ ++ $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/m4/uintmax_t.m4 \ ++ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ ++ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ++ $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++DIST_COMMON = $(srcdir)/Makefile.am $(dist_bin_SCRIPTS) \ ++ $(am__DIST_COMMON) ++mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = ++am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" ++PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) ++am_analyze_OBJECTS = analyze.$(OBJEXT) ++analyze_OBJECTS = $(am_analyze_OBJECTS) ++analyze_DEPENDENCIES = ../hunspell/libhunspell-1.6.la ++AM_V_lt = $(am__v_lt_@AM_V@) ++am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) ++am__v_lt_0 = --silent ++am__v_lt_1 = ++am_chmorph_OBJECTS = chmorph.$(OBJEXT) ++chmorph_OBJECTS = $(am_chmorph_OBJECTS) ++chmorph_DEPENDENCIES = ../parsers/libparsers.a \ ++ ../hunspell/libhunspell-1.6.la ++am_example_OBJECTS = example.$(OBJEXT) ++example_OBJECTS = $(am_example_OBJECTS) ++example_DEPENDENCIES = ../hunspell/libhunspell-1.6.la ++am_hunspell_OBJECTS = hunspell.$(OBJEXT) ++hunspell_OBJECTS = $(am_hunspell_OBJECTS) ++hunspell_DEPENDENCIES = ../parsers/libparsers.a \ ++ ../hunspell/libhunspell-1.6.la ++am_hunzip_OBJECTS = hunzip.$(OBJEXT) ++hunzip_OBJECTS = $(am_hunzip_OBJECTS) ++hunzip_DEPENDENCIES = ../hunspell/libhunspell-1.6.la ++am_hzip_OBJECTS = hzip.$(OBJEXT) ++hzip_OBJECTS = $(am_hzip_OBJECTS) ++hzip_LDADD = $(LDADD) ++am_munch_OBJECTS = munch.$(OBJEXT) ++munch_OBJECTS = $(am_munch_OBJECTS) ++munch_LDADD = $(LDADD) ++am_unmunch_OBJECTS = unmunch.$(OBJEXT) ++unmunch_OBJECTS = $(am_unmunch_OBJECTS) ++unmunch_LDADD = $(LDADD) ++am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; ++am__vpath_adj = case $$p in \ ++ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ ++ *) f=$$p;; \ ++ esac; ++am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; ++am__install_max = 40 ++am__nobase_strip_setup = \ ++ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` ++am__nobase_strip = \ ++ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" ++am__nobase_list = $(am__nobase_strip_setup); \ ++ for p in $$list; do echo "$$p $$p"; done | \ ++ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ ++ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ ++ if (++n[$$2] == $(am__install_max)) \ ++ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ ++ END { for (dir in files) print dir, files[dir] }' ++am__base_list = \ ++ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ ++ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' ++am__uninstall_files_from_dir = { \ ++ test -z "$$files" \ ++ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ ++ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ ++ $(am__cd) "$$dir" && rm -f $$files; }; \ ++ } ++SCRIPTS = $(dist_bin_SCRIPTS) ++AM_V_P = $(am__v_P_@AM_V@) ++am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) ++am__v_P_0 = false ++am__v_P_1 = : ++AM_V_GEN = $(am__v_GEN_@AM_V@) ++am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) ++am__v_GEN_0 = @echo " GEN " $@; ++am__v_GEN_1 = ++AM_V_at = $(am__v_at_@AM_V@) ++am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) ++am__v_at_0 = @ ++am__v_at_1 = ++DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) ++depcomp = $(SHELL) $(top_srcdir)/depcomp ++am__depfiles_maybe = depfiles ++am__mv = mv -f ++CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ ++ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) ++LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ ++ $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ ++ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ ++ $(AM_CXXFLAGS) $(CXXFLAGS) ++AM_V_CXX = $(am__v_CXX_@AM_V@) ++am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) ++am__v_CXX_0 = @echo " CXX " $@; ++am__v_CXX_1 = ++CXXLD = $(CXX) ++CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ ++ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ ++ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ ++AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) ++am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) ++am__v_CXXLD_0 = @echo " CXXLD " $@; ++am__v_CXXLD_1 = ++COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ ++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ ++ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ ++ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ ++ $(AM_CFLAGS) $(CFLAGS) ++AM_V_CC = $(am__v_CC_@AM_V@) ++am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) ++am__v_CC_0 = @echo " CC " $@; ++am__v_CC_1 = ++CCLD = $(CC) ++LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ ++ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ ++ $(AM_LDFLAGS) $(LDFLAGS) -o $@ ++AM_V_CCLD = $(am__v_CCLD_@AM_V@) ++am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) ++am__v_CCLD_0 = @echo " CCLD " $@; ++am__v_CCLD_1 = ++SOURCES = $(analyze_SOURCES) $(chmorph_SOURCES) $(example_SOURCES) \ ++ $(hunspell_SOURCES) $(hunzip_SOURCES) $(hzip_SOURCES) \ ++ $(munch_SOURCES) $(unmunch_SOURCES) ++DIST_SOURCES = $(analyze_SOURCES) $(chmorph_SOURCES) \ ++ $(example_SOURCES) $(hunspell_SOURCES) $(hunzip_SOURCES) \ ++ $(hzip_SOURCES) $(munch_SOURCES) $(unmunch_SOURCES) ++am__can_run_installinfo = \ ++ case $$AM_UPDATE_INFO_DIR in \ ++ n|no|NO) false;; \ ++ *) (install-info --version) >/dev/null 2>&1;; \ ++ esac ++am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) ++# Read a list of newline-separated strings from the standard input, ++# and print each of them once, without duplicates. Input order is ++# *not* preserved. ++am__uniquify_input = $(AWK) '\ ++ BEGIN { nonempty = 0; } \ ++ { items[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in items) print i; }; } \ ++' ++# Make sure the list of sources is unique. This is necessary because, ++# e.g., the same source file might be shared among _SOURCES variables ++# for different programs/libraries. ++am__define_uniq_tagged_files = \ ++ list='$(am__tagged_files)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | $(am__uniquify_input)` ++ETAGS = etags ++CTAGS = ctags ++am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp \ ++ $(top_srcdir)/mkinstalldirs ++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ++ACLOCAL = @ACLOCAL@ ++ALLOCA = @ALLOCA@ ++AMTAR = @AMTAR@ ++AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ ++AR = @AR@ ++AS = @AS@ ++AUTOCONF = @AUTOCONF@ ++AUTOHEADER = @AUTOHEADER@ ++AUTOMAKE = @AUTOMAKE@ ++AWK = @AWK@ ++BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ ++CATOBJEXT = @CATOBJEXT@ ++CC = @CC@ ++CCDEPMODE = @CCDEPMODE@ ++CFLAGS = @CFLAGS@ ++CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ ++CPP = @CPP@ ++CPPFLAGS = @CPPFLAGS@ ++CURSESLIB = @CURSESLIB@ ++CXX = @CXX@ ++CXXCPP = @CXXCPP@ ++CXXDEPMODE = @CXXDEPMODE@ ++CXXFLAGS = @CXXFLAGS@ ++CYGPATH_W = @CYGPATH_W@ ++DATADIRNAME = @DATADIRNAME@ ++DEFS = @DEFS@ ++DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ ++DSYMUTIL = @DSYMUTIL@ ++DUMPBIN = @DUMPBIN@ ++ECHO_C = @ECHO_C@ ++ECHO_N = @ECHO_N@ ++ECHO_T = @ECHO_T@ ++EGREP = @EGREP@ ++EXEEXT = @EXEEXT@ ++FGREP = @FGREP@ ++GENCAT = @GENCAT@ ++GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ ++GLIBC2 = @GLIBC2@ ++GLIBC21 = @GLIBC21@ ++GMSGFMT = @GMSGFMT@ ++GMSGFMT_015 = @GMSGFMT_015@ ++GREP = @GREP@ ++HAVE_ASPRINTF = @HAVE_ASPRINTF@ ++HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ ++HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ ++HAVE_SNPRINTF = @HAVE_SNPRINTF@ ++HAVE_VISIBILITY = @HAVE_VISIBILITY@ ++HAVE_WPRINTF = @HAVE_WPRINTF@ ++HUNSPELL_VERSION_MAJOR = @HUNSPELL_VERSION_MAJOR@ ++HUNSPELL_VERSION_MINOR = @HUNSPELL_VERSION_MINOR@ ++INSTALL = @INSTALL@ ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ++INSTOBJEXT = @INSTOBJEXT@ ++INTLBISON = @INTLBISON@ ++INTLLIBS = @INTLLIBS@ ++INTLOBJS = @INTLOBJS@ ++INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ ++INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ ++INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ++LD = @LD@ ++LDFLAGS = @LDFLAGS@ ++LIBICONV = @LIBICONV@ ++LIBINTL = @LIBINTL@ ++LIBMULTITHREAD = @LIBMULTITHREAD@ ++LIBOBJS = @LIBOBJS@ ++LIBPTH = @LIBPTH@ ++LIBPTH_PREFIX = @LIBPTH_PREFIX@ ++LIBS = @LIBS@ ++LIBTHREAD = @LIBTHREAD@ ++LIBTOOL = @LIBTOOL@ ++LIPO = @LIPO@ ++LN_S = @LN_S@ ++LTLIBC = @LTLIBC@ ++LTLIBICONV = @LTLIBICONV@ ++LTLIBINTL = @LTLIBINTL@ ++LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ ++LTLIBOBJS = @LTLIBOBJS@ ++LTLIBPTH = @LTLIBPTH@ ++LTLIBTHREAD = @LTLIBTHREAD@ ++LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ ++MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ ++MKDIR_P = @MKDIR_P@ ++MSGFMT = @MSGFMT@ ++MSGFMT_015 = @MSGFMT_015@ ++MSGMERGE = @MSGMERGE@ ++NM = @NM@ ++NMEDIT = @NMEDIT@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++OTOOL = @OTOOL@ ++OTOOL64 = @OTOOL64@ ++PACKAGE = @PACKAGE@ ++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ ++PACKAGE_NAME = @PACKAGE_NAME@ ++PACKAGE_STRING = @PACKAGE_STRING@ ++PACKAGE_TARNAME = @PACKAGE_TARNAME@ ++PACKAGE_URL = @PACKAGE_URL@ ++PACKAGE_VERSION = @PACKAGE_VERSION@ ++PATH_SEPARATOR = @PATH_SEPARATOR@ ++POSUB = @POSUB@ ++PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ ++RANLIB = @RANLIB@ ++READLINELIB = @READLINELIB@ ++SED = @SED@ ++SET_MAKE = @SET_MAKE@ ++SHELL = @SHELL@ ++STRIP = @STRIP@ ++USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ ++USE_NLS = @USE_NLS@ ++VERSION = @VERSION@ ++WINDRES = @WINDRES@ ++WOE32 = @WOE32@ ++WOE32DLL = @WOE32DLL@ ++XFAILED = @XFAILED@ ++XGETTEXT = @XGETTEXT@ ++XGETTEXT_015 = @XGETTEXT_015@ ++XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ++abs_builddir = @abs_builddir@ ++abs_srcdir = @abs_srcdir@ ++abs_top_builddir = @abs_top_builddir@ ++abs_top_srcdir = @abs_top_srcdir@ ++ac_ct_AR = @ac_ct_AR@ ++ac_ct_CC = @ac_ct_CC@ ++ac_ct_CXX = @ac_ct_CXX@ ++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ++am__include = @am__include@ ++am__leading_dot = @am__leading_dot@ ++am__quote = @am__quote@ ++am__tar = @am__tar@ ++am__untar = @am__untar@ ++bindir = @bindir@ ++build = @build@ ++build_alias = @build_alias@ ++build_cpu = @build_cpu@ ++build_os = @build_os@ ++build_vendor = @build_vendor@ ++builddir = @builddir@ ++datadir = @datadir@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++dvidir = @dvidir@ ++exec_prefix = @exec_prefix@ ++host = @host@ ++host_alias = @host_alias@ ++host_cpu = @host_cpu@ ++host_os = @host_os@ ++host_vendor = @host_vendor@ ++htmldir = @htmldir@ ++includedir = @includedir@ ++infodir = @infodir@ ++install_sh = @install_sh@ ++libdir = @libdir@ ++libexecdir = @libexecdir@ ++localedir = @localedir@ ++localstatedir = @localstatedir@ ++mandir = @mandir@ ++mkdir_p = @mkdir_p@ ++oldincludedir = @oldincludedir@ ++pdfdir = @pdfdir@ ++prefix = @prefix@ ++program_transform_name = @program_transform_name@ ++psdir = @psdir@ ++sbindir = @sbindir@ ++sharedstatedir = @sharedstatedir@ ++srcdir = @srcdir@ ++sysconfdir = @sysconfdir@ ++target_alias = @target_alias@ ++top_build_prefix = @top_build_prefix@ ++top_builddir = @top_builddir@ ++top_srcdir = @top_srcdir@ ++INCLUDES = -I${top_builddir}/src/hunspell -I${top_srcdir}/src/hunspell -I${top_srcdir}/src/parsers ++hzip_SOURCES = hzip.cxx ++hunzip_SOURCES = hunzip.cxx ++hunzip_LDADD = ../hunspell/libhunspell-1.6.la ++munch_SOURCES = munch.cxx munch.h ++unmunch_SOURCES = unmunch.cxx unmunch.h ++example_SOURCES = example.cxx ++example_LDADD = ../hunspell/libhunspell-1.6.la ++hunspell_SOURCES = hunspell.cxx ++hunspell_LDADD = @LIBINTL@ @LIBICONV@ ../parsers/libparsers.a \ ++ ../hunspell/libhunspell-1.6.la @CURSESLIB@ @READLINELIB@ ++ ++analyze_SOURCES = analyze.cxx ++analyze_LDADD = ../hunspell/libhunspell-1.6.la ++chmorph_SOURCES = chmorph.cxx ++chmorph_LDADD = ../parsers/libparsers.a ../hunspell/libhunspell-1.6.la ++dist_bin_SCRIPTS = makealias affixcompress wordforms ispellaff2myspell wordlist2hunspell ++all: all-am ++ ++.SUFFIXES: ++.SUFFIXES: .cxx .lo .o .obj ++$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) ++ @for dep in $?; do \ ++ case '$(am__configure_deps)' in \ ++ *$$dep*) \ ++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/tools/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnu src/tools/Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++install-binPROGRAMS: $(bin_PROGRAMS) ++ @$(NORMAL_INSTALL) ++ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ ++ if test -n "$$list"; then \ ++ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ ++ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ ++ fi; \ ++ for p in $$list; do echo "$$p $$p"; done | \ ++ sed 's/$(EXEEXT)$$//' | \ ++ while read p p1; do if test -f $$p \ ++ || test -f $$p1 \ ++ ; then echo "$$p"; echo "$$p"; else :; fi; \ ++ done | \ ++ sed -e 'p;s,.*/,,;n;h' \ ++ -e 's|.*|.|' \ ++ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ ++ sed 'N;N;N;s,\n, ,g' | \ ++ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ ++ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ ++ if ($$2 == $$4) files[d] = files[d] " " $$1; \ ++ else { print "f", $$3 "/" $$4, $$1; } } \ ++ END { for (d in files) print "f", d, files[d] }' | \ ++ while read type dir files; do \ ++ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ ++ test -z "$$files" || { \ ++ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ ++ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ ++ } \ ++ ; done ++ ++uninstall-binPROGRAMS: ++ @$(NORMAL_UNINSTALL) ++ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ ++ files=`for p in $$list; do echo "$$p"; done | \ ++ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ ++ -e 's/$$/$(EXEEXT)/' \ ++ `; \ ++ test -n "$$list" || exit 0; \ ++ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ ++ cd "$(DESTDIR)$(bindir)" && rm -f $$files ++ ++clean-binPROGRAMS: ++ @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ ++ echo " rm -f" $$list; \ ++ rm -f $$list || exit $$?; \ ++ test -n "$(EXEEXT)" || exit 0; \ ++ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ ++ echo " rm -f" $$list; \ ++ rm -f $$list ++ ++clean-noinstPROGRAMS: ++ @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ ++ echo " rm -f" $$list; \ ++ rm -f $$list || exit $$?; \ ++ test -n "$(EXEEXT)" || exit 0; \ ++ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ ++ echo " rm -f" $$list; \ ++ rm -f $$list ++ ++analyze$(EXEEXT): $(analyze_OBJECTS) $(analyze_DEPENDENCIES) $(EXTRA_analyze_DEPENDENCIES) ++ @rm -f analyze$(EXEEXT) ++ $(AM_V_CXXLD)$(CXXLINK) $(analyze_OBJECTS) $(analyze_LDADD) $(LIBS) ++ ++chmorph$(EXEEXT): $(chmorph_OBJECTS) $(chmorph_DEPENDENCIES) $(EXTRA_chmorph_DEPENDENCIES) ++ @rm -f chmorph$(EXEEXT) ++ $(AM_V_CXXLD)$(CXXLINK) $(chmorph_OBJECTS) $(chmorph_LDADD) $(LIBS) ++ ++example$(EXEEXT): $(example_OBJECTS) $(example_DEPENDENCIES) $(EXTRA_example_DEPENDENCIES) ++ @rm -f example$(EXEEXT) ++ $(AM_V_CXXLD)$(CXXLINK) $(example_OBJECTS) $(example_LDADD) $(LIBS) ++ ++hunspell$(EXEEXT): $(hunspell_OBJECTS) $(hunspell_DEPENDENCIES) $(EXTRA_hunspell_DEPENDENCIES) ++ @rm -f hunspell$(EXEEXT) ++ $(AM_V_CXXLD)$(CXXLINK) $(hunspell_OBJECTS) $(hunspell_LDADD) $(LIBS) ++ ++hunzip$(EXEEXT): $(hunzip_OBJECTS) $(hunzip_DEPENDENCIES) $(EXTRA_hunzip_DEPENDENCIES) ++ @rm -f hunzip$(EXEEXT) ++ $(AM_V_CXXLD)$(CXXLINK) $(hunzip_OBJECTS) $(hunzip_LDADD) $(LIBS) ++ ++hzip$(EXEEXT): $(hzip_OBJECTS) $(hzip_DEPENDENCIES) $(EXTRA_hzip_DEPENDENCIES) ++ @rm -f hzip$(EXEEXT) ++ $(AM_V_CXXLD)$(CXXLINK) $(hzip_OBJECTS) $(hzip_LDADD) $(LIBS) ++ ++munch$(EXEEXT): $(munch_OBJECTS) $(munch_DEPENDENCIES) $(EXTRA_munch_DEPENDENCIES) ++ @rm -f munch$(EXEEXT) ++ $(AM_V_CXXLD)$(CXXLINK) $(munch_OBJECTS) $(munch_LDADD) $(LIBS) ++ ++unmunch$(EXEEXT): $(unmunch_OBJECTS) $(unmunch_DEPENDENCIES) $(EXTRA_unmunch_DEPENDENCIES) ++ @rm -f unmunch$(EXEEXT) ++ $(AM_V_CXXLD)$(CXXLINK) $(unmunch_OBJECTS) $(unmunch_LDADD) $(LIBS) ++install-dist_binSCRIPTS: $(dist_bin_SCRIPTS) ++ @$(NORMAL_INSTALL) ++ @list='$(dist_bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ ++ if test -n "$$list"; then \ ++ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ ++ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ ++ fi; \ ++ for p in $$list; do \ ++ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ ++ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ ++ done | \ ++ sed -e 'p;s,.*/,,;n' \ ++ -e 'h;s|.*|.|' \ ++ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ ++ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ ++ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ ++ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ ++ if (++n[d] == $(am__install_max)) { \ ++ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ ++ else { print "f", d "/" $$4, $$1 } } \ ++ END { for (d in files) print "f", d, files[d] }' | \ ++ while read type dir files; do \ ++ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ ++ test -z "$$files" || { \ ++ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ ++ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ ++ } \ ++ ; done ++ ++uninstall-dist_binSCRIPTS: ++ @$(NORMAL_UNINSTALL) ++ @list='$(dist_bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ ++ files=`for p in $$list; do echo "$$p"; done | \ ++ sed -e 's,.*/,,;$(transform)'`; \ ++ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir) ++ ++mostlyclean-compile: ++ -rm -f *.$(OBJEXT) ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/analyze.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmorph.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/example.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hunspell.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hunzip.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hzip.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/munch.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unmunch.Po@am__quote@ ++ ++.cxx.o: ++@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< ++@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< ++ ++.cxx.obj: ++@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` ++@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` ++ ++.cxx.lo: ++@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< ++@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo ++@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++ID: $(am__tagged_files) ++ $(am__define_uniq_tagged_files); mkid -fID $$unique ++tags: tags-am ++TAGS: tags ++ ++tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ set x; \ ++ here=`pwd`; \ ++ $(am__define_uniq_tagged_files); \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ ++ test -n "$$unique" || unique=$$empty_fix; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ ++ fi ++ctags: ctags-am ++ ++CTAGS: ctags ++ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ $(am__define_uniq_tagged_files); \ ++ test -z "$(CTAGS_ARGS)$$unique" \ ++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ ++ $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" ++cscopelist: cscopelist-am ++ ++cscopelist-am: $(am__tagged_files) ++ list='$(am__tagged_files)'; \ ++ case "$(srcdir)" in \ ++ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ ++ *) sdir=$(subdir)/$(srcdir) ;; \ ++ esac; \ ++ for i in $$list; do \ ++ if test -f "$$i"; then \ ++ echo "$(subdir)/$$i"; \ ++ else \ ++ echo "$$sdir/$$i"; \ ++ fi; \ ++ done >> $(top_builddir)/cscope.files ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags ++ ++distdir: $(DISTFILES) ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ ++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ ++ if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ ++ else \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ ++ || exit 1; \ ++ fi; \ ++ done ++check-am: all-am ++check: check-am ++all-am: Makefile $(PROGRAMS) $(SCRIPTS) ++installdirs: ++ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)"; do \ ++ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ ++ done ++install: install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ if test -z '$(STRIP)'; then \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ install; \ ++ else \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ ++ fi ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-am ++ ++clean-am: clean-binPROGRAMS clean-generic clean-libtool \ ++ clean-noinstPROGRAMS mostlyclean-am ++ ++distclean: distclean-am ++ -rm -rf ./$(DEPDIR) ++ -rm -f Makefile ++distclean-am: clean-am distclean-compile distclean-generic \ ++ distclean-tags ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++html: html-am ++ ++html-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: ++ ++install-dvi: install-dvi-am ++ ++install-dvi-am: ++ ++install-exec-am: install-binPROGRAMS install-dist_binSCRIPTS ++ ++install-html: install-html-am ++ ++install-html-am: ++ ++install-info: install-info-am ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-am ++ ++install-pdf-am: ++ ++install-ps: install-ps-am ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-am ++ -rm -rf ./$(DEPDIR) ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool ++ ++pdf: pdf-am ++ ++pdf-am: ++ ++ps: ps-am ++ ++ps-am: ++ ++uninstall-am: uninstall-binPROGRAMS uninstall-dist_binSCRIPTS ++ ++.MAKE: install-am install-strip ++ ++.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ ++ clean-binPROGRAMS clean-generic clean-libtool \ ++ clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \ ++ distclean-compile distclean-generic distclean-libtool \ ++ distclean-tags distdir dvi dvi-am html html-am info info-am \ ++ install install-am install-binPROGRAMS install-data \ ++ install-data-am install-dist_binSCRIPTS install-dvi \ ++ install-dvi-am install-exec install-exec-am install-html \ ++ install-html-am install-info install-info-am install-man \ ++ install-pdf install-pdf-am install-ps install-ps-am \ ++ install-strip installcheck installcheck-am installdirs \ ++ maintainer-clean maintainer-clean-generic mostlyclean \ ++ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ ++ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ ++ uninstall-binPROGRAMS uninstall-dist_binSCRIPTS ++ ++.PRECIOUS: Makefile ++ ++ ++# Tell versions [3.59,3.63) of GNU make to not export all variables. ++# Otherwise a system limit (for SysV at least) may be exceeded. ++.NOEXPORT: +diff --git a/src/win_api/Makefile.in b/src/win_api/Makefile.in +new file mode 100644 +index 0000000..356ad97 +--- /dev/null ++++ b/src/win_api/Makefile.in +@@ -0,0 +1,515 @@ ++# Makefile.in generated by automake 1.15 from Makefile.am. ++# @configure_input@ ++ ++# Copyright (C) 1994-2014 Free Software Foundation, Inc. ++ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++@SET_MAKE@ ++VPATH = @srcdir@ ++am__is_gnu_make = { \ ++ if test -z '$(MAKELEVEL)'; then \ ++ false; \ ++ elif test -n '$(MAKE_HOST)'; then \ ++ true; \ ++ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ ++ true; \ ++ else \ ++ false; \ ++ fi; \ ++} ++am__make_running_with_option = \ ++ case $${target_option-} in \ ++ ?) ;; \ ++ *) echo "am__make_running_with_option: internal error: invalid" \ ++ "target option '$${target_option-}' specified" >&2; \ ++ exit 1;; \ ++ esac; \ ++ has_opt=no; \ ++ sane_makeflags=$$MAKEFLAGS; \ ++ if $(am__is_gnu_make); then \ ++ sane_makeflags=$$MFLAGS; \ ++ else \ ++ case $$MAKEFLAGS in \ ++ *\\[\ \ ]*) \ ++ bs=\\; \ ++ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ ++ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ ++ esac; \ ++ fi; \ ++ skip_next=no; \ ++ strip_trailopt () \ ++ { \ ++ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ ++ }; \ ++ for flg in $$sane_makeflags; do \ ++ test $$skip_next = yes && { skip_next=no; continue; }; \ ++ case $$flg in \ ++ *=*|--*) continue;; \ ++ -*I) strip_trailopt 'I'; skip_next=yes;; \ ++ -*I?*) strip_trailopt 'I';; \ ++ -*O) strip_trailopt 'O'; skip_next=yes;; \ ++ -*O?*) strip_trailopt 'O';; \ ++ -*l) strip_trailopt 'l'; skip_next=yes;; \ ++ -*l?*) strip_trailopt 'l';; \ ++ -[dEDm]) skip_next=yes;; \ ++ -[JT]) skip_next=yes;; \ ++ esac; \ ++ case $$flg in \ ++ *$$target_option*) has_opt=yes; break;; \ ++ esac; \ ++ done; \ ++ test $$has_opt = yes ++am__make_dryrun = (target_option=n; $(am__make_running_with_option)) ++am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkglibexecdir = $(libexecdir)/@PACKAGE@ ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = @build@ ++host_triplet = @host@ ++subdir = src/win_api ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ ++ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ ++ $(top_srcdir)/m4/glibc2.m4 $(top_srcdir)/m4/glibc21.m4 \ ++ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \ ++ $(top_srcdir)/m4/intl.m4 $(top_srcdir)/m4/intlmacosx.m4 \ ++ $(top_srcdir)/m4/intmax.m4 $(top_srcdir)/m4/inttypes-pri.m4 \ ++ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ ++ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ ++ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ ++ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ ++ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ++ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ ++ $(top_srcdir)/m4/printf-posix.m4 $(top_srcdir)/m4/progtest.m4 \ ++ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/stdint_h.m4 \ ++ $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/m4/uintmax_t.m4 \ ++ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ ++ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ++ $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) ++mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = ++AM_V_P = $(am__v_P_@AM_V@) ++am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) ++am__v_P_0 = false ++am__v_P_1 = : ++AM_V_GEN = $(am__v_GEN_@AM_V@) ++am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) ++am__v_GEN_0 = @echo " GEN " $@; ++am__v_GEN_1 = ++AM_V_at = $(am__v_at_@AM_V@) ++am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) ++am__v_at_0 = @ ++am__v_at_1 = ++SOURCES = ++DIST_SOURCES = ++am__can_run_installinfo = \ ++ case $$AM_UPDATE_INFO_DIR in \ ++ n|no|NO) false;; \ ++ *) (install-info --version) >/dev/null 2>&1;; \ ++ esac ++am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) ++am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/mkinstalldirs \ ++ README ++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ++ACLOCAL = @ACLOCAL@ ++ALLOCA = @ALLOCA@ ++AMTAR = @AMTAR@ ++AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ ++AR = @AR@ ++AS = @AS@ ++AUTOCONF = @AUTOCONF@ ++AUTOHEADER = @AUTOHEADER@ ++AUTOMAKE = @AUTOMAKE@ ++AWK = @AWK@ ++BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ ++CATOBJEXT = @CATOBJEXT@ ++CC = @CC@ ++CCDEPMODE = @CCDEPMODE@ ++CFLAGS = @CFLAGS@ ++CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ ++CPP = @CPP@ ++CPPFLAGS = @CPPFLAGS@ ++CURSESLIB = @CURSESLIB@ ++CXX = @CXX@ ++CXXCPP = @CXXCPP@ ++CXXDEPMODE = @CXXDEPMODE@ ++CXXFLAGS = @CXXFLAGS@ ++CYGPATH_W = @CYGPATH_W@ ++DATADIRNAME = @DATADIRNAME@ ++DEFS = @DEFS@ ++DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ ++DSYMUTIL = @DSYMUTIL@ ++DUMPBIN = @DUMPBIN@ ++ECHO_C = @ECHO_C@ ++ECHO_N = @ECHO_N@ ++ECHO_T = @ECHO_T@ ++EGREP = @EGREP@ ++EXEEXT = @EXEEXT@ ++FGREP = @FGREP@ ++GENCAT = @GENCAT@ ++GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ ++GLIBC2 = @GLIBC2@ ++GLIBC21 = @GLIBC21@ ++GMSGFMT = @GMSGFMT@ ++GMSGFMT_015 = @GMSGFMT_015@ ++GREP = @GREP@ ++HAVE_ASPRINTF = @HAVE_ASPRINTF@ ++HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ ++HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ ++HAVE_SNPRINTF = @HAVE_SNPRINTF@ ++HAVE_VISIBILITY = @HAVE_VISIBILITY@ ++HAVE_WPRINTF = @HAVE_WPRINTF@ ++HUNSPELL_VERSION_MAJOR = @HUNSPELL_VERSION_MAJOR@ ++HUNSPELL_VERSION_MINOR = @HUNSPELL_VERSION_MINOR@ ++INSTALL = @INSTALL@ ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ++INSTOBJEXT = @INSTOBJEXT@ ++INTLBISON = @INTLBISON@ ++INTLLIBS = @INTLLIBS@ ++INTLOBJS = @INTLOBJS@ ++INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ ++INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ ++INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ++LD = @LD@ ++LDFLAGS = @LDFLAGS@ ++LIBICONV = @LIBICONV@ ++LIBINTL = @LIBINTL@ ++LIBMULTITHREAD = @LIBMULTITHREAD@ ++LIBOBJS = @LIBOBJS@ ++LIBPTH = @LIBPTH@ ++LIBPTH_PREFIX = @LIBPTH_PREFIX@ ++LIBS = @LIBS@ ++LIBTHREAD = @LIBTHREAD@ ++LIBTOOL = @LIBTOOL@ ++LIPO = @LIPO@ ++LN_S = @LN_S@ ++LTLIBC = @LTLIBC@ ++LTLIBICONV = @LTLIBICONV@ ++LTLIBINTL = @LTLIBINTL@ ++LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ ++LTLIBOBJS = @LTLIBOBJS@ ++LTLIBPTH = @LTLIBPTH@ ++LTLIBTHREAD = @LTLIBTHREAD@ ++LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ ++MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ ++MKDIR_P = @MKDIR_P@ ++MSGFMT = @MSGFMT@ ++MSGFMT_015 = @MSGFMT_015@ ++MSGMERGE = @MSGMERGE@ ++NM = @NM@ ++NMEDIT = @NMEDIT@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++OTOOL = @OTOOL@ ++OTOOL64 = @OTOOL64@ ++PACKAGE = @PACKAGE@ ++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ ++PACKAGE_NAME = @PACKAGE_NAME@ ++PACKAGE_STRING = @PACKAGE_STRING@ ++PACKAGE_TARNAME = @PACKAGE_TARNAME@ ++PACKAGE_URL = @PACKAGE_URL@ ++PACKAGE_VERSION = @PACKAGE_VERSION@ ++PATH_SEPARATOR = @PATH_SEPARATOR@ ++POSUB = @POSUB@ ++PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ ++RANLIB = @RANLIB@ ++READLINELIB = @READLINELIB@ ++SED = @SED@ ++SET_MAKE = @SET_MAKE@ ++SHELL = @SHELL@ ++STRIP = @STRIP@ ++USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ ++USE_NLS = @USE_NLS@ ++VERSION = @VERSION@ ++WINDRES = @WINDRES@ ++WOE32 = @WOE32@ ++WOE32DLL = @WOE32DLL@ ++XFAILED = @XFAILED@ ++XGETTEXT = @XGETTEXT@ ++XGETTEXT_015 = @XGETTEXT_015@ ++XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ++abs_builddir = @abs_builddir@ ++abs_srcdir = @abs_srcdir@ ++abs_top_builddir = @abs_top_builddir@ ++abs_top_srcdir = @abs_top_srcdir@ ++ac_ct_AR = @ac_ct_AR@ ++ac_ct_CC = @ac_ct_CC@ ++ac_ct_CXX = @ac_ct_CXX@ ++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ++am__include = @am__include@ ++am__leading_dot = @am__leading_dot@ ++am__quote = @am__quote@ ++am__tar = @am__tar@ ++am__untar = @am__untar@ ++bindir = @bindir@ ++build = @build@ ++build_alias = @build_alias@ ++build_cpu = @build_cpu@ ++build_os = @build_os@ ++build_vendor = @build_vendor@ ++builddir = @builddir@ ++datadir = @datadir@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++dvidir = @dvidir@ ++exec_prefix = @exec_prefix@ ++host = @host@ ++host_alias = @host_alias@ ++host_cpu = @host_cpu@ ++host_os = @host_os@ ++host_vendor = @host_vendor@ ++htmldir = @htmldir@ ++includedir = @includedir@ ++infodir = @infodir@ ++install_sh = @install_sh@ ++libdir = @libdir@ ++libexecdir = @libexecdir@ ++localedir = @localedir@ ++localstatedir = @localstatedir@ ++mandir = @mandir@ ++mkdir_p = @mkdir_p@ ++oldincludedir = @oldincludedir@ ++pdfdir = @pdfdir@ ++prefix = @prefix@ ++program_transform_name = @program_transform_name@ ++psdir = @psdir@ ++runstatedir = @runstatedir@ ++sbindir = @sbindir@ ++sharedstatedir = @sharedstatedir@ ++srcdir = @srcdir@ ++sysconfdir = @sysconfdir@ ++target_alias = @target_alias@ ++top_build_prefix = @top_build_prefix@ ++top_builddir = @top_builddir@ ++top_srcdir = @top_srcdir@ ++EXTRA_DIST = hunspelldll.h hunspelldll.c hunspelldll.dev README \ ++ config.h Hunspell.rc Hunspell.sln Makefile.cygwin \ ++ hunspell.vcproj libhunspell.vcproj testparser.vcproj ++ ++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 ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/win_api/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnu src/win_api/Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++tags TAGS: ++ ++ctags CTAGS: ++ ++cscope cscopelist: ++ ++ ++distdir: $(DISTFILES) ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ ++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ ++ if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ ++ else \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ ++ || exit 1; \ ++ fi; \ ++ done ++check-am: all-am ++check: check-am ++all-am: Makefile ++installdirs: ++install: install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ if test -z '$(STRIP)'; then \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ install; \ ++ else \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ ++ fi ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-am ++ ++clean-am: clean-generic clean-libtool mostlyclean-am ++ ++distclean: distclean-am ++ -rm -f Makefile ++distclean-am: clean-am distclean-generic ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++html: html-am ++ ++html-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: ++ ++install-dvi: install-dvi-am ++ ++install-dvi-am: ++ ++install-exec-am: ++ ++install-html: install-html-am ++ ++install-html-am: ++ ++install-info: install-info-am ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-am ++ ++install-pdf-am: ++ ++install-ps: install-ps-am ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-am ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-generic mostlyclean-libtool ++ ++pdf: pdf-am ++ ++pdf-am: ++ ++ps: ps-am ++ ++ps-am: ++ ++uninstall-am: ++ ++.MAKE: install-am install-strip ++ ++.PHONY: all all-am check check-am clean clean-generic clean-libtool \ ++ cscopelist-am ctags-am distclean distclean-generic \ ++ distclean-libtool distdir dvi dvi-am html html-am info info-am \ ++ install install-am install-data install-data-am install-dvi \ ++ install-dvi-am install-exec install-exec-am install-html \ ++ install-html-am install-info install-info-am install-man \ ++ install-pdf install-pdf-am install-ps install-ps-am \ ++ install-strip installcheck installcheck-am installdirs \ ++ maintainer-clean maintainer-clean-generic mostlyclean \ ++ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ ++ tags-am uninstall uninstall-am ++ ++.PRECIOUS: Makefile ++ ++ ++# 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/test-driver b/test-driver +new file mode 100755 +index 0000000..8e575b0 +--- /dev/null ++++ b/test-driver +@@ -0,0 +1,148 @@ ++#! /bin/sh ++# test-driver - basic testsuite driver script. ++ ++scriptversion=2013-07-13.22; # UTC ++ ++# Copyright (C) 2011-2014 Free Software Foundation, Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2, or (at your option) ++# any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program. If not, see . ++ ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that program. ++ ++# This file is maintained in Automake, please report ++# bugs to or send patches to ++# . ++ ++# Make unconditional expansion of undefined variables an error. This ++# helps a lot in preventing typo-related bugs. ++set -u ++ ++usage_error () ++{ ++ echo "$0: $*" >&2 ++ print_usage >&2 ++ exit 2 ++} ++ ++print_usage () ++{ ++ cat <$log_file 2>&1 ++estatus=$? ++ ++if test $enable_hard_errors = no && test $estatus -eq 99; then ++ tweaked_estatus=1 ++else ++ tweaked_estatus=$estatus ++fi ++ ++case $tweaked_estatus:$expect_failure in ++ 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; ++ 0:*) col=$grn res=PASS recheck=no gcopy=no;; ++ 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; ++ 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; ++ *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; ++ *:*) col=$red res=FAIL recheck=yes gcopy=yes;; ++esac ++ ++# Report the test outcome and exit status in the logs, so that one can ++# know whether the test passed or failed simply by looking at the '.log' ++# file, without the need of also peaking into the corresponding '.trs' ++# file (automake bug#11814). ++echo "$res $test_name (exit status: $estatus)" >>$log_file ++ ++# Report outcome to console. ++echo "${col}${res}${std}: $test_name" ++ ++# Register the test result, and other relevant metadata. ++echo ":test-result: $res" > $trs_file ++echo ":global-test-result: $res" >> $trs_file ++echo ":recheck: $recheck" >> $trs_file ++echo ":copy-in-global-log: $gcopy" >> $trs_file ++ ++# Local Variables: ++# mode: shell-script ++# sh-indentation: 2 ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "scriptversion=" ++# time-stamp-format: "%:y-%02m-%02d.%02H" ++# time-stamp-time-zone: "UTC" ++# time-stamp-end: "; # UTC" ++# End: +diff --git a/tests/Makefile.in b/tests/Makefile.in +new file mode 100644 +index 0000000..7e9bee8 +--- /dev/null ++++ b/tests/Makefile.in +@@ -0,0 +1,1749 @@ ++# Makefile.in generated by automake 1.15 from Makefile.am. ++# @configure_input@ ++ ++# Copyright (C) 1994-2014 Free Software Foundation, Inc. ++ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++@SET_MAKE@ ++VPATH = @srcdir@ ++am__is_gnu_make = { \ ++ if test -z '$(MAKELEVEL)'; then \ ++ false; \ ++ elif test -n '$(MAKE_HOST)'; then \ ++ true; \ ++ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ ++ true; \ ++ else \ ++ false; \ ++ fi; \ ++} ++am__make_running_with_option = \ ++ case $${target_option-} in \ ++ ?) ;; \ ++ *) echo "am__make_running_with_option: internal error: invalid" \ ++ "target option '$${target_option-}' specified" >&2; \ ++ exit 1;; \ ++ esac; \ ++ has_opt=no; \ ++ sane_makeflags=$$MAKEFLAGS; \ ++ if $(am__is_gnu_make); then \ ++ sane_makeflags=$$MFLAGS; \ ++ else \ ++ case $$MAKEFLAGS in \ ++ *\\[\ \ ]*) \ ++ bs=\\; \ ++ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ ++ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ ++ esac; \ ++ fi; \ ++ skip_next=no; \ ++ strip_trailopt () \ ++ { \ ++ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ ++ }; \ ++ for flg in $$sane_makeflags; do \ ++ test $$skip_next = yes && { skip_next=no; continue; }; \ ++ case $$flg in \ ++ *=*|--*) continue;; \ ++ -*I) strip_trailopt 'I'; skip_next=yes;; \ ++ -*I?*) strip_trailopt 'I';; \ ++ -*O) strip_trailopt 'O'; skip_next=yes;; \ ++ -*O?*) strip_trailopt 'O';; \ ++ -*l) strip_trailopt 'l'; skip_next=yes;; \ ++ -*l?*) strip_trailopt 'l';; \ ++ -[dEDm]) skip_next=yes;; \ ++ -[JT]) skip_next=yes;; \ ++ esac; \ ++ case $$flg in \ ++ *$$target_option*) has_opt=yes; break;; \ ++ esac; \ ++ done; \ ++ test $$has_opt = yes ++am__make_dryrun = (target_option=n; $(am__make_running_with_option)) ++am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkglibexecdir = $(libexecdir)/@PACKAGE@ ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = @build@ ++host_triplet = @host@ ++subdir = tests ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ ++ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ ++ $(top_srcdir)/m4/glibc2.m4 $(top_srcdir)/m4/glibc21.m4 \ ++ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \ ++ $(top_srcdir)/m4/intl.m4 $(top_srcdir)/m4/intlmacosx.m4 \ ++ $(top_srcdir)/m4/intmax.m4 $(top_srcdir)/m4/inttypes-pri.m4 \ ++ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ ++ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ ++ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ ++ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ ++ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ++ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ ++ $(top_srcdir)/m4/printf-posix.m4 $(top_srcdir)/m4/progtest.m4 \ ++ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/stdint_h.m4 \ ++ $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/m4/uintmax_t.m4 \ ++ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ ++ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ++ $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) ++mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = ++AM_V_P = $(am__v_P_@AM_V@) ++am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) ++am__v_P_0 = false ++am__v_P_1 = : ++AM_V_GEN = $(am__v_GEN_@AM_V@) ++am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) ++am__v_GEN_0 = @echo " GEN " $@; ++am__v_GEN_1 = ++AM_V_at = $(am__v_at_@AM_V@) ++am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) ++am__v_at_0 = @ ++am__v_at_1 = ++SOURCES = ++DIST_SOURCES = ++RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ++ ctags-recursive dvi-recursive html-recursive info-recursive \ ++ install-data-recursive install-dvi-recursive \ ++ install-exec-recursive install-html-recursive \ ++ install-info-recursive install-pdf-recursive \ ++ install-ps-recursive install-recursive installcheck-recursive \ ++ installdirs-recursive pdf-recursive ps-recursive \ ++ tags-recursive uninstall-recursive ++am__can_run_installinfo = \ ++ case $$AM_UPDATE_INFO_DIR in \ ++ n|no|NO) false;; \ ++ *) (install-info --version) >/dev/null 2>&1;; \ ++ esac ++RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ ++ distclean-recursive maintainer-clean-recursive ++am__recursive_targets = \ ++ $(RECURSIVE_TARGETS) \ ++ $(RECURSIVE_CLEAN_TARGETS) \ ++ $(am__extra_recursive_targets) ++AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ ++ check recheck distdir ++am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) ++# Read a list of newline-separated strings from the standard input, ++# and print each of them once, without duplicates. Input order is ++# *not* preserved. ++am__uniquify_input = $(AWK) '\ ++ BEGIN { nonempty = 0; } \ ++ { items[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in items) print i; }; } \ ++' ++# Make sure the list of sources is unique. This is necessary because, ++# e.g., the same source file might be shared among _SOURCES variables ++# for different programs/libraries. ++am__define_uniq_tagged_files = \ ++ list='$(am__tagged_files)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | $(am__uniquify_input)` ++ETAGS = etags ++CTAGS = ctags ++am__tty_colors_dummy = \ ++ mgn= red= grn= lgn= blu= brg= std=; \ ++ am__color_tests=no ++am__tty_colors = { \ ++ $(am__tty_colors_dummy); \ ++ if test "X$(AM_COLOR_TESTS)" = Xno; then \ ++ am__color_tests=no; \ ++ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ ++ am__color_tests=yes; \ ++ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ ++ am__color_tests=yes; \ ++ fi; \ ++ if test $$am__color_tests = yes; then \ ++ red=''; \ ++ grn=''; \ ++ lgn=''; \ ++ blu=''; \ ++ mgn=''; \ ++ brg=''; \ ++ std=''; \ ++ fi; \ ++} ++am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; ++am__vpath_adj = case $$p in \ ++ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ ++ *) f=$$p;; \ ++ esac; ++am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; ++am__install_max = 40 ++am__nobase_strip_setup = \ ++ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` ++am__nobase_strip = \ ++ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" ++am__nobase_list = $(am__nobase_strip_setup); \ ++ for p in $$list; do echo "$$p $$p"; done | \ ++ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ ++ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ ++ if (++n[$$2] == $(am__install_max)) \ ++ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ ++ END { for (dir in files) print dir, files[dir] }' ++am__base_list = \ ++ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ ++ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' ++am__uninstall_files_from_dir = { \ ++ test -z "$$files" \ ++ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ ++ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ ++ $(am__cd) "$$dir" && rm -f $$files; }; \ ++ } ++am__recheck_rx = ^[ ]*:recheck:[ ]* ++am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* ++am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* ++# A command that, given a newline-separated list of test names on the ++# standard input, print the name of the tests that are to be re-run ++# upon "make recheck". ++am__list_recheck_tests = $(AWK) '{ \ ++ recheck = 1; \ ++ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ ++ { \ ++ if (rc < 0) \ ++ { \ ++ if ((getline line2 < ($$0 ".log")) < 0) \ ++ recheck = 0; \ ++ break; \ ++ } \ ++ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ ++ { \ ++ recheck = 0; \ ++ break; \ ++ } \ ++ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ ++ { \ ++ break; \ ++ } \ ++ }; \ ++ if (recheck) \ ++ print $$0; \ ++ close ($$0 ".trs"); \ ++ close ($$0 ".log"); \ ++}' ++# A command that, given a newline-separated list of test names on the ++# standard input, create the global log from their .trs and .log files. ++am__create_global_log = $(AWK) ' \ ++function fatal(msg) \ ++{ \ ++ print "fatal: making $@: " msg | "cat >&2"; \ ++ exit 1; \ ++} \ ++function rst_section(header) \ ++{ \ ++ print header; \ ++ len = length(header); \ ++ for (i = 1; i <= len; i = i + 1) \ ++ printf "="; \ ++ printf "\n\n"; \ ++} \ ++{ \ ++ copy_in_global_log = 1; \ ++ global_test_result = "RUN"; \ ++ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ ++ { \ ++ if (rc < 0) \ ++ fatal("failed to read from " $$0 ".trs"); \ ++ if (line ~ /$(am__global_test_result_rx)/) \ ++ { \ ++ sub("$(am__global_test_result_rx)", "", line); \ ++ sub("[ ]*$$", "", line); \ ++ global_test_result = line; \ ++ } \ ++ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ ++ copy_in_global_log = 0; \ ++ }; \ ++ if (copy_in_global_log) \ ++ { \ ++ rst_section(global_test_result ": " $$0); \ ++ while ((rc = (getline line < ($$0 ".log"))) != 0) \ ++ { \ ++ if (rc < 0) \ ++ fatal("failed to read from " $$0 ".log"); \ ++ print line; \ ++ }; \ ++ printf "\n"; \ ++ }; \ ++ close ($$0 ".trs"); \ ++ close ($$0 ".log"); \ ++}' ++# Restructured Text title. ++am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } ++# Solaris 10 'make', and several other traditional 'make' implementations, ++# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it ++# by disabling -e (using the XSI extension "set +e") if it's set. ++am__sh_e_setup = case $$- in *e*) set +e;; esac ++# Default flags passed to test drivers. ++am__common_driver_flags = \ ++ --color-tests "$$am__color_tests" \ ++ --enable-hard-errors "$$am__enable_hard_errors" \ ++ --expect-failure "$$am__expect_failure" ++# To be inserted before the command running the test. Creates the ++# directory for the log if needed. Stores in $dir the directory ++# containing $f, in $tst the test, in $log the log. Executes the ++# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and ++# passes TESTS_ENVIRONMENT. Set up options for the wrapper that ++# will run the test scripts (or their associated LOG_COMPILER, if ++# thy have one). ++am__check_pre = \ ++$(am__sh_e_setup); \ ++$(am__vpath_adj_setup) $(am__vpath_adj) \ ++$(am__tty_colors); \ ++srcdir=$(srcdir); export srcdir; \ ++case "$@" in \ ++ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ ++ *) am__odir=.;; \ ++esac; \ ++test "x$$am__odir" = x"." || test -d "$$am__odir" \ ++ || $(MKDIR_P) "$$am__odir" || exit $$?; \ ++if test -f "./$$f"; then dir=./; \ ++elif test -f "$$f"; then dir=; \ ++else dir="$(srcdir)/"; fi; \ ++tst=$$dir$$f; log='$@'; \ ++if test -n '$(DISABLE_HARD_ERRORS)'; then \ ++ am__enable_hard_errors=no; \ ++else \ ++ am__enable_hard_errors=yes; \ ++fi; \ ++case " $(XFAIL_TESTS) " in \ ++ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ ++ am__expect_failure=yes;; \ ++ *) \ ++ am__expect_failure=no;; \ ++esac; \ ++$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) ++# A shell command to get the names of the tests scripts with any registered ++# extension removed (i.e., equivalently, the names of the test logs, with ++# the '.log' extension removed). The result is saved in the shell variable ++# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, ++# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", ++# since that might cause problem with VPATH rewrites for suffix-less tests. ++# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. ++am__set_TESTS_bases = \ ++ bases='$(TEST_LOGS)'; \ ++ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ ++ bases=`echo $$bases` ++RECHECK_LOGS = $(TEST_LOGS) ++TEST_SUITE_LOG = test-suite.log ++TEST_EXTENSIONS = @EXEEXT@ .test ++am__test_logs1 = $(TESTS:=.log) ++am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) ++TEST_LOGS = $(am__test_logs2:.test.log=.log) ++TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver ++TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ ++ $(TEST_LOG_FLAGS) ++am__set_b = \ ++ case '$@' in \ ++ */*) \ ++ case '$*' in \ ++ */*) b='$*';; \ ++ *) b=`echo '$@' | sed 's/\.log$$//'`; \ ++ esac;; \ ++ *) \ ++ b='$*';; \ ++ esac ++DIST_SUBDIRS = $(SUBDIRS) ++am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/mkinstalldirs \ ++ $(top_srcdir)/test-driver ++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ++am__relativize = \ ++ dir0=`pwd`; \ ++ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ ++ sed_rest='s,^[^/]*/*,,'; \ ++ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ ++ sed_butlast='s,/*[^/]*$$,,'; \ ++ while test -n "$$dir1"; do \ ++ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ ++ if test "$$first" != "."; then \ ++ if test "$$first" = ".."; then \ ++ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ ++ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ ++ else \ ++ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ ++ if test "$$first2" = "$$first"; then \ ++ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ ++ else \ ++ dir2="../$$dir2"; \ ++ fi; \ ++ dir0="$$dir0"/"$$first"; \ ++ fi; \ ++ fi; \ ++ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ ++ done; \ ++ reldir="$$dir2" ++ACLOCAL = @ACLOCAL@ ++ALLOCA = @ALLOCA@ ++AMTAR = @AMTAR@ ++AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ ++AR = @AR@ ++AS = @AS@ ++AUTOCONF = @AUTOCONF@ ++AUTOHEADER = @AUTOHEADER@ ++AUTOMAKE = @AUTOMAKE@ ++AWK = @AWK@ ++BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ ++CATOBJEXT = @CATOBJEXT@ ++CC = @CC@ ++CCDEPMODE = @CCDEPMODE@ ++CFLAGS = @CFLAGS@ ++CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ ++CPP = @CPP@ ++CPPFLAGS = @CPPFLAGS@ ++CURSESLIB = @CURSESLIB@ ++CXX = @CXX@ ++CXXCPP = @CXXCPP@ ++CXXDEPMODE = @CXXDEPMODE@ ++CXXFLAGS = @CXXFLAGS@ ++CYGPATH_W = @CYGPATH_W@ ++DATADIRNAME = @DATADIRNAME@ ++DEFS = @DEFS@ ++DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ ++DSYMUTIL = @DSYMUTIL@ ++DUMPBIN = @DUMPBIN@ ++ECHO_C = @ECHO_C@ ++ECHO_N = @ECHO_N@ ++ECHO_T = @ECHO_T@ ++EGREP = @EGREP@ ++EXEEXT = @EXEEXT@ ++FGREP = @FGREP@ ++GENCAT = @GENCAT@ ++GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ ++GLIBC2 = @GLIBC2@ ++GLIBC21 = @GLIBC21@ ++GMSGFMT = @GMSGFMT@ ++GMSGFMT_015 = @GMSGFMT_015@ ++GREP = @GREP@ ++HAVE_ASPRINTF = @HAVE_ASPRINTF@ ++HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ ++HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ ++HAVE_SNPRINTF = @HAVE_SNPRINTF@ ++HAVE_VISIBILITY = @HAVE_VISIBILITY@ ++HAVE_WPRINTF = @HAVE_WPRINTF@ ++HUNSPELL_VERSION_MAJOR = @HUNSPELL_VERSION_MAJOR@ ++HUNSPELL_VERSION_MINOR = @HUNSPELL_VERSION_MINOR@ ++INSTALL = @INSTALL@ ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ++INSTOBJEXT = @INSTOBJEXT@ ++INTLBISON = @INTLBISON@ ++INTLLIBS = @INTLLIBS@ ++INTLOBJS = @INTLOBJS@ ++INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ ++INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ ++INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ++LD = @LD@ ++LDFLAGS = @LDFLAGS@ ++LIBICONV = @LIBICONV@ ++LIBINTL = @LIBINTL@ ++LIBMULTITHREAD = @LIBMULTITHREAD@ ++LIBOBJS = @LIBOBJS@ ++LIBPTH = @LIBPTH@ ++LIBPTH_PREFIX = @LIBPTH_PREFIX@ ++LIBS = @LIBS@ ++LIBTHREAD = @LIBTHREAD@ ++LIBTOOL = @LIBTOOL@ ++LIPO = @LIPO@ ++LN_S = @LN_S@ ++LTLIBC = @LTLIBC@ ++LTLIBICONV = @LTLIBICONV@ ++LTLIBINTL = @LTLIBINTL@ ++LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ ++LTLIBOBJS = @LTLIBOBJS@ ++LTLIBPTH = @LTLIBPTH@ ++LTLIBTHREAD = @LTLIBTHREAD@ ++LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ ++MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ ++MKDIR_P = @MKDIR_P@ ++MSGFMT = @MSGFMT@ ++MSGFMT_015 = @MSGFMT_015@ ++MSGMERGE = @MSGMERGE@ ++NM = @NM@ ++NMEDIT = @NMEDIT@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++OTOOL = @OTOOL@ ++OTOOL64 = @OTOOL64@ ++PACKAGE = @PACKAGE@ ++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ ++PACKAGE_NAME = @PACKAGE_NAME@ ++PACKAGE_STRING = @PACKAGE_STRING@ ++PACKAGE_TARNAME = @PACKAGE_TARNAME@ ++PACKAGE_URL = @PACKAGE_URL@ ++PACKAGE_VERSION = @PACKAGE_VERSION@ ++PATH_SEPARATOR = @PATH_SEPARATOR@ ++POSUB = @POSUB@ ++PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ ++RANLIB = @RANLIB@ ++READLINELIB = @READLINELIB@ ++SED = @SED@ ++SET_MAKE = @SET_MAKE@ ++SHELL = @SHELL@ ++STRIP = @STRIP@ ++USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ ++USE_NLS = @USE_NLS@ ++VERSION = @VERSION@ ++WINDRES = @WINDRES@ ++WOE32 = @WOE32@ ++WOE32DLL = @WOE32DLL@ ++XFAILED = @XFAILED@ ++XGETTEXT = @XGETTEXT@ ++XGETTEXT_015 = @XGETTEXT_015@ ++XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ++abs_builddir = @abs_builddir@ ++abs_srcdir = @abs_srcdir@ ++abs_top_builddir = @abs_top_builddir@ ++abs_top_srcdir = @abs_top_srcdir@ ++ac_ct_AR = @ac_ct_AR@ ++ac_ct_CC = @ac_ct_CC@ ++ac_ct_CXX = @ac_ct_CXX@ ++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ++am__include = @am__include@ ++am__leading_dot = @am__leading_dot@ ++am__quote = @am__quote@ ++am__tar = @am__tar@ ++am__untar = @am__untar@ ++bindir = @bindir@ ++build = @build@ ++build_alias = @build_alias@ ++build_cpu = @build_cpu@ ++build_os = @build_os@ ++build_vendor = @build_vendor@ ++builddir = @builddir@ ++datadir = @datadir@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++dvidir = @dvidir@ ++exec_prefix = @exec_prefix@ ++host = @host@ ++host_alias = @host_alias@ ++host_cpu = @host_cpu@ ++host_os = @host_os@ ++host_vendor = @host_vendor@ ++htmldir = @htmldir@ ++includedir = @includedir@ ++infodir = @infodir@ ++install_sh = @install_sh@ ++libdir = @libdir@ ++libexecdir = @libexecdir@ ++localedir = @localedir@ ++localstatedir = @localstatedir@ ++mandir = @mandir@ ++mkdir_p = @mkdir_p@ ++oldincludedir = @oldincludedir@ ++pdfdir = @pdfdir@ ++prefix = @prefix@ ++program_transform_name = @program_transform_name@ ++psdir = @psdir@ ++sbindir = @sbindir@ ++sharedstatedir = @sharedstatedir@ ++srcdir = @srcdir@ ++sysconfdir = @sysconfdir@ ++target_alias = @target_alias@ ++top_build_prefix = @top_build_prefix@ ++top_builddir = @top_builddir@ ++top_srcdir = @top_srcdir@ ++SUBDIRS = suggestiontest ++XFAIL_TESTS = @XFAILED@ ++TESTS = \ ++affixes.test \ ++condition.test \ ++condition_utf.test \ ++base.test \ ++base_utf.test \ ++allcaps.test \ ++allcaps_utf.test \ ++allcaps2.test \ ++allcaps3.test \ ++keepcase.test \ ++i58202.test \ ++map.test \ ++rep.test \ ++sug.test \ ++sugutf.test \ ++phone.test \ ++flag.test \ ++flaglong.test \ ++flagnum.test \ ++flagutf8.test \ ++slash.test \ ++forbiddenword.test \ ++nosuggest.test \ ++alias.test \ ++alias2.test \ ++alias3.test \ ++breakdefault.test \ ++break.test \ ++needaffix.test \ ++needaffix2.test \ ++needaffix3.test \ ++needaffix4.test \ ++needaffix5.test \ ++circumfix.test \ ++fogemorpheme.test \ ++onlyincompound.test \ ++complexprefixes.test \ ++complexprefixes2.test \ ++complexprefixesutf.test \ ++conditionalprefix.test \ ++zeroaffix.test \ ++utf8.test \ ++utf8_bom.test \ ++utf8_bom2.test \ ++utf8_nonbmp.test \ ++compoundflag.test \ ++compoundrule.test \ ++compoundrule2.test \ ++compoundrule3.test \ ++compoundrule4.test \ ++compoundrule5.test \ ++compoundrule6.test \ ++compoundrule7.test \ ++compoundrule8.test \ ++compoundaffix.test \ ++compoundaffix2.test \ ++compoundaffix3.test \ ++checkcompounddup.test \ ++checkcompoundtriple.test \ ++simplifiedtriple.test \ ++checkcompoundrep.test \ ++checkcompoundcase2.test \ ++checkcompoundcaseutf.test \ ++checkcompoundpattern.test \ ++checkcompoundpattern2.test \ ++checkcompoundpattern3.test \ ++checkcompoundpattern4.test \ ++utfcompound.test \ ++checksharps.test \ ++checksharpsutf.test \ ++germancompounding.test \ ++germancompoundingold.test \ ++i35725.test \ ++i53643.test \ ++i54633.test \ ++i54980.test \ ++maputf.test \ ++reputf.test \ ++ignore.test \ ++ignoreutf.test \ ++1592880.test \ ++1695964.test \ ++1463589.test \ ++1463589_utf.test \ ++IJ.test \ ++i68568.test \ ++i68568utf.test \ ++1706659.test \ ++digits_in_words.test \ ++colons_in_words.test \ ++ngram_utf_fix.test \ ++morph.test \ ++1975530.test \ ++fullstrip.test \ ++iconv.test \ ++oconv.test \ ++encoding.test \ ++korean.test \ ++opentaal_forbiddenword1.test \ ++opentaal_forbiddenword2.test \ ++opentaal_keepcase.test \ ++arabic.test \ ++2970240.test \ ++2970242.test \ ++breakoff.test \ ++opentaal_cpdpat.test \ ++opentaal_cpdpat2.test \ ++2999225.test \ ++onlyincompound2.test \ ++forceucase.test \ ++nepali.test \ ++warn.test ++ ++EXTRA_DIST = \ ++test.sh \ ++affixes.aff \ ++affixes.dic \ ++affixes.good \ ++affixes.test \ ++condition.aff \ ++condition.dic \ ++condition.good \ ++condition.test \ ++condition.wrong \ ++condition_utf.aff \ ++condition_utf.dic \ ++condition_utf.good \ ++condition_utf.test \ ++condition_utf.wrong \ ++base.aff \ ++base.dic \ ++base.good \ ++base.sug \ ++base.test \ ++base.wrong \ ++base_utf.aff \ ++base_utf.dic \ ++base_utf.good \ ++base_utf.sug \ ++base_utf.test \ ++base_utf.wrong \ ++allcaps.aff \ ++allcaps.dic \ ++allcaps.good \ ++allcaps.sug \ ++allcaps.test \ ++allcaps.wrong \ ++allcaps2.aff \ ++allcaps2.dic \ ++allcaps2.good \ ++allcaps2.sug \ ++allcaps2.test \ ++allcaps2.wrong \ ++allcaps3.aff \ ++allcaps3.dic \ ++allcaps3.good \ ++allcaps3.test \ ++allcaps3.wrong \ ++allcaps_utf.aff \ ++allcaps_utf.dic \ ++allcaps_utf.good \ ++allcaps_utf.sug \ ++allcaps_utf.test \ ++allcaps_utf.wrong \ ++keepcase.aff \ ++keepcase.dic \ ++keepcase.good \ ++keepcase.sug \ ++keepcase.test \ ++keepcase.wrong \ ++map.aff \ ++map.dic \ ++map.sug \ ++map.test \ ++map.wrong \ ++rep.aff \ ++rep.dic \ ++rep.sug \ ++rep.test \ ++rep.wrong \ ++sug.aff \ ++sug.dic \ ++sug.sug \ ++sug.test \ ++sug.wrong \ ++sugutf.aff \ ++sugutf.dic \ ++sugutf.sug \ ++sugutf.test \ ++sugutf.wrong \ ++phone.aff \ ++phone.dic \ ++phone.sug \ ++phone.test \ ++phone.wrong \ ++alias.aff \ ++alias.dic \ ++alias.good \ ++alias.test \ ++alias2.aff \ ++alias2.dic \ ++alias2.good \ ++alias2.morph \ ++alias2.test \ ++alias3.aff \ ++alias3.dic \ ++alias3.good \ ++alias3.morph \ ++alias3.test \ ++break.aff \ ++break.dic \ ++break.good \ ++break.test \ ++break.wrong \ ++breakdefault.aff \ ++breakdefault.dic \ ++breakdefault.good \ ++breakdefault.sug \ ++breakdefault.test \ ++breakdefault.wrong \ ++circumfix.aff \ ++circumfix.dic \ ++circumfix.good \ ++circumfix.morph \ ++circumfix.test \ ++circumfix.wrong \ ++fogemorpheme.aff \ ++fogemorpheme.dic \ ++fogemorpheme.good \ ++fogemorpheme.test \ ++fogemorpheme.wrong \ ++onlyincompound.aff \ ++onlyincompound.dic \ ++onlyincompound.good \ ++onlyincompound.sug \ ++onlyincompound.test \ ++onlyincompound.wrong \ ++forbiddenword.aff \ ++forbiddenword.dic \ ++forbiddenword.good \ ++forbiddenword.test \ ++forbiddenword.wrong \ ++nosuggest.aff \ ++nosuggest.dic \ ++nosuggest.good \ ++nosuggest.sug \ ++nosuggest.test \ ++nosuggest.wrong \ ++germancompounding.aff \ ++germancompounding.dic \ ++germancompounding.good \ ++germancompounding.test \ ++germancompounding.wrong \ ++germancompoundingold.aff \ ++germancompoundingold.dic \ ++germancompoundingold.good \ ++germancompoundingold.test \ ++germancompoundingold.wrong \ ++needaffix2.aff \ ++needaffix2.dic \ ++needaffix2.good \ ++needaffix2.morph \ ++needaffix2.test \ ++needaffix3.aff \ ++needaffix3.dic \ ++needaffix3.good \ ++needaffix3.test \ ++needaffix3.wrong \ ++needaffix4.aff \ ++needaffix4.dic \ ++needaffix4.good \ ++needaffix4.test \ ++needaffix5.aff \ ++needaffix5.dic \ ++needaffix5.good \ ++needaffix5.test \ ++needaffix5.wrong \ ++needaffix.aff \ ++needaffix.dic \ ++needaffix.good \ ++needaffix.test \ ++needaffix.wrong \ ++zeroaffix.aff \ ++zeroaffix.dic \ ++zeroaffix.good \ ++zeroaffix.morph \ ++zeroaffix.test \ ++utf8.aff \ ++utf8.dic \ ++utf8.good \ ++utf8.test \ ++utf8_bom.aff \ ++utf8_bom.dic \ ++utf8_bom.good \ ++utf8_bom.test \ ++utf8_bom2.aff \ ++utf8_bom2.dic \ ++utf8_bom2.good \ ++utf8_bom2.test \ ++utf8_nonbmp.aff \ ++utf8_nonbmp.dic \ ++utf8_nonbmp.good \ ++utf8_nonbmp.sug \ ++utf8_nonbmp.test \ ++utf8_nonbmp.wrong \ ++utfcompound.aff \ ++utfcompound.dic \ ++utfcompound.good \ ++utfcompound.test \ ++utfcompound.wrong \ ++compoundflag.aff \ ++compoundflag.dic \ ++compoundflag.good \ ++compoundflag.test \ ++compoundflag.wrong \ ++compoundrule.aff \ ++compoundrule.dic \ ++compoundrule.good \ ++compoundrule.test \ ++compoundrule.wrong \ ++compoundrule2.aff \ ++compoundrule2.dic \ ++compoundrule2.good \ ++compoundrule2.test \ ++compoundrule2.wrong \ ++compoundrule3.aff \ ++compoundrule3.dic \ ++compoundrule3.good \ ++compoundrule3.test \ ++compoundrule3.wrong \ ++compoundrule4.aff \ ++compoundrule4.dic \ ++compoundrule4.good \ ++compoundrule4.test \ ++compoundrule4.wrong \ ++compoundrule5.aff \ ++compoundrule5.dic \ ++compoundrule5.good \ ++compoundrule5.morph \ ++compoundrule5.test \ ++compoundrule5.wrong \ ++compoundrule6.aff \ ++compoundrule6.dic \ ++compoundrule6.good \ ++compoundrule6.test \ ++compoundrule6.wrong \ ++compoundrule7.aff \ ++compoundrule7.dic \ ++compoundrule7.good \ ++compoundrule7.test \ ++compoundrule7.wrong \ ++compoundrule8.aff \ ++compoundrule8.dic \ ++compoundrule8.good \ ++compoundrule8.test \ ++compoundrule8.wrong \ ++compoundaffix.aff \ ++compoundaffix.dic \ ++compoundaffix.good \ ++compoundaffix.test \ ++compoundaffix.wrong \ ++compoundaffix2.aff \ ++compoundaffix2.dic \ ++compoundaffix2.good \ ++compoundaffix2.test \ ++compoundaffix3.aff \ ++compoundaffix3.dic \ ++compoundaffix3.good \ ++compoundaffix3.test \ ++compoundaffix3.wrong \ ++checkcompounddup.aff \ ++checkcompounddup.dic \ ++checkcompounddup.good \ ++checkcompounddup.test \ ++checkcompounddup.wrong \ ++checkcompoundcase.aff \ ++checkcompoundcase.dic \ ++checkcompoundcase.good \ ++checkcompoundcase.test \ ++checkcompoundcase.wrong \ ++checkcompoundcase2.aff \ ++checkcompoundcase2.dic \ ++checkcompoundcase2.good \ ++checkcompoundcase2.test \ ++checkcompoundcase2.wrong \ ++checkcompoundcaseutf.aff \ ++checkcompoundcaseutf.dic \ ++checkcompoundcaseutf.good \ ++checkcompoundcaseutf.test \ ++checkcompoundcaseutf.wrong \ ++checkcompoundrep.aff \ ++checkcompoundrep.dic \ ++checkcompoundrep.good \ ++checkcompoundrep.test \ ++checkcompoundrep.wrong \ ++checkcompoundtriple.aff \ ++checkcompoundtriple.dic \ ++checkcompoundtriple.good \ ++checkcompoundtriple.test \ ++checkcompoundtriple.wrong \ ++simplifiedtriple.aff \ ++simplifiedtriple.dic \ ++simplifiedtriple.good \ ++simplifiedtriple.test \ ++simplifiedtriple.wrong \ ++checkcompoundpattern.aff \ ++checkcompoundpattern.dic \ ++checkcompoundpattern.good \ ++checkcompoundpattern.test \ ++checkcompoundpattern.wrong \ ++checkcompoundpattern2.aff \ ++checkcompoundpattern2.dic \ ++checkcompoundpattern2.good \ ++checkcompoundpattern2.test \ ++checkcompoundpattern2.wrong \ ++checkcompoundpattern3.aff \ ++checkcompoundpattern3.dic \ ++checkcompoundpattern3.good \ ++checkcompoundpattern3.test \ ++checkcompoundpattern3.wrong \ ++checkcompoundpattern4.aff \ ++checkcompoundpattern4.dic \ ++checkcompoundpattern4.good \ ++checkcompoundpattern4.test \ ++checkcompoundpattern4.wrong \ ++checksharps.aff \ ++checksharps.dic \ ++checksharps.good \ ++checksharps.sug \ ++checksharps.test \ ++checksharps.wrong \ ++checksharpsutf.aff \ ++checksharpsutf.dic \ ++checksharpsutf.good \ ++checksharpsutf.sug \ ++checksharpsutf.test \ ++checksharpsutf.wrong \ ++conditionalprefix.aff \ ++conditionalprefix.dic \ ++conditionalprefix.good \ ++conditionalprefix.morph \ ++conditionalprefix.test \ ++conditionalprefix.wrong \ ++flaglong.aff \ ++flaglong.dic \ ++flaglong.good \ ++flaglong.test \ ++flagnum.aff \ ++flagnum.dic \ ++flagnum.good \ ++flagnum.test \ ++flag.aff \ ++flag.dic \ ++flag.good \ ++flag.test \ ++flagutf8.aff \ ++flagutf8.dic \ ++flagutf8.good \ ++flagutf8.test \ ++complexprefixes.aff \ ++complexprefixes.dic \ ++complexprefixes.good \ ++complexprefixes.wrong \ ++complexprefixes.test \ ++complexprefixes2.aff \ ++complexprefixes2.dic \ ++complexprefixes2.good \ ++complexprefixes2.test \ ++complexprefixesutf.aff \ ++complexprefixesutf.dic \ ++complexprefixesutf.good \ ++complexprefixesutf.wrong \ ++complexprefixesutf.test \ ++i35725.aff \ ++i35725.dic \ ++i35725.good \ ++i35725.sug \ ++i35725.test \ ++i35725.wrong \ ++i53643.aff \ ++i53643.dic \ ++i53643.good \ ++i53643.test \ ++i53643.wrong \ ++i54633.aff \ ++i54633.dic \ ++i54633.good \ ++i54633.sug \ ++i54633.test \ ++i54633.wrong \ ++i54980.aff \ ++i54980.dic \ ++i54980.good \ ++i54980.test \ ++i58202.aff \ ++i58202.dic \ ++i58202.good \ ++i58202.sug \ ++i58202.test \ ++i58202.wrong \ ++maputf.aff \ ++maputf.dic \ ++maputf.sug \ ++maputf.wrong \ ++maputf.test \ ++reputf.aff \ ++reputf.dic \ ++reputf.sug \ ++reputf.wrong \ ++reputf.test \ ++slash.aff \ ++slash.dic \ ++slash.good \ ++slash.test \ ++ignore.aff \ ++ignore.dic \ ++ignore.good \ ++ignore.test \ ++ignoreutf.aff \ ++ignoreutf.dic \ ++ignoreutf.good \ ++ignoreutf.test \ ++1592880.aff \ ++1592880.dic \ ++1592880.good \ ++1592880.test \ ++1695964.aff \ ++1695964.dic \ ++1695964.sug \ ++1695964.test \ ++1695964.wrong \ ++1463589.aff \ ++1463589.dic \ ++1463589.sug \ ++1463589.test \ ++1463589.wrong \ ++1463589_utf.aff \ ++1463589_utf.dic \ ++1463589_utf.sug \ ++1463589_utf.test \ ++1463589_utf.wrong \ ++IJ.aff \ ++IJ.dic \ ++IJ.good \ ++IJ.sug \ ++IJ.test \ ++IJ.wrong \ ++i68568.aff \ ++i68568.dic \ ++i68568.test \ ++i68568.wrong \ ++i68568utf.aff \ ++i68568utf.dic \ ++i68568utf.test \ ++i68568utf.wrong \ ++1706659.aff \ ++1706659.dic \ ++1706659.test \ ++1706659.wrong \ ++digits_in_words.aff \ ++digits_in_words.dic \ ++digits_in_words.test \ ++digits_in_words.wrong \ ++colons_in_words.aff \ ++colons_in_words.dic \ ++colons_in_words.test \ ++ngram_utf_fix.aff \ ++ngram_utf_fix.dic \ ++ngram_utf_fix.good \ ++ngram_utf_fix.sug \ ++ngram_utf_fix.test \ ++ngram_utf_fix.wrong \ ++morph.aff \ ++morph.dic \ ++morph.good \ ++morph.morph \ ++morph.test \ ++1975530.aff \ ++1975530.dic \ ++1975530.good \ ++1975530.test \ ++1975530.wrong \ ++fullstrip.aff \ ++fullstrip.dic \ ++fullstrip.good \ ++fullstrip.test \ ++iconv.aff \ ++iconv.dic \ ++iconv.good \ ++iconv.test \ ++oconv.aff \ ++oconv.dic \ ++oconv.good \ ++oconv.sug \ ++oconv.test \ ++oconv.wrong \ ++encoding.aff \ ++encoding.dic \ ++encoding.good \ ++encoding.test \ ++opentaal_forbiddenword1.aff \ ++opentaal_forbiddenword1.dic \ ++opentaal_forbiddenword1.good \ ++opentaal_forbiddenword1.sug \ ++opentaal_forbiddenword1.test \ ++opentaal_forbiddenword1.wrong \ ++opentaal_forbiddenword2.aff \ ++opentaal_forbiddenword2.dic \ ++opentaal_forbiddenword2.good \ ++opentaal_forbiddenword2.sug \ ++opentaal_forbiddenword2.test \ ++opentaal_forbiddenword2.wrong \ ++opentaal_forbiddenword2.aff \ ++opentaal_forbiddenword2.dic \ ++opentaal_forbiddenword2.good \ ++opentaal_forbiddenword2.sug \ ++opentaal_forbiddenword2.test \ ++opentaal_forbiddenword2.wrong \ ++opentaal_keepcase.aff \ ++opentaal_keepcase.dic \ ++opentaal_keepcase.good \ ++opentaal_keepcase.sug \ ++opentaal_keepcase.test \ ++opentaal_keepcase.wrong \ ++arabic.aff \ ++arabic.dic \ ++arabic.wrong \ ++arabic.test \ ++2970240.aff \ ++2970240.dic \ ++2970240.good \ ++2970240.wrong \ ++2970240.test \ ++2970242.aff \ ++2970242.dic \ ++2970242.good \ ++2970242.wrong \ ++2970242.test \ ++breakoff.aff \ ++breakoff.dic \ ++breakoff.good \ ++breakoff.wrong \ ++breakoff.test \ ++opentaal_cpdpat.aff \ ++opentaal_cpdpat.dic \ ++opentaal_cpdpat.good \ ++opentaal_cpdpat.wrong \ ++opentaal_cpdpat.test \ ++opentaal_cpdpat2.aff \ ++opentaal_cpdpat2.dic \ ++opentaal_cpdpat2.good \ ++opentaal_cpdpat2.wrong \ ++opentaal_cpdpat2.test \ ++2999225.aff \ ++2999225.dic \ ++2999225.good \ ++2999225.test \ ++korean.aff \ ++korean.dic \ ++korean.good \ ++korean.wrong \ ++korean.test \ ++onlyincompound2.aff \ ++onlyincompound2.dic \ ++onlyincompound2.good \ ++onlyincompound2.test \ ++onlyincompound2.wrong \ ++forceucase.aff \ ++forceucase.dic \ ++forceucase.good \ ++forceucase.sug \ ++forceucase.wrong \ ++forceucase.test \ ++nepali.aff \ ++nepali.dic \ ++nepali.good \ ++nepali.test \ ++warn.aff \ ++warn.dic \ ++warn.good \ ++warn.test ++ ++all: all-recursive ++ ++.SUFFIXES: ++.SUFFIXES: .log .test .test$(EXEEXT) .trs ++$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) ++ @for dep in $?; do \ ++ case '$(am__configure_deps)' in \ ++ *$$dep*) \ ++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnu tests/Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++ ++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. ++$(am__recursive_targets): ++ @fail=; \ ++ if $(am__make_keepgoing); then \ ++ failcom='fail=yes'; \ ++ else \ ++ failcom='exit 1'; \ ++ fi; \ ++ dot_seen=no; \ ++ target=`echo $@ | sed s/-recursive//`; \ ++ case "$@" in \ ++ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ ++ *) list='$(SUBDIRS)' ;; \ ++ esac; \ ++ for subdir in $$list; do \ ++ echo "Making $$target in $$subdir"; \ ++ if test "$$subdir" = "."; then \ ++ dot_seen=yes; \ ++ local_target="$$target-am"; \ ++ else \ ++ local_target="$$target"; \ ++ fi; \ ++ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ ++ || eval $$failcom; \ ++ done; \ ++ if test "$$dot_seen" = "no"; then \ ++ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ ++ fi; test -z "$$fail" ++ ++ID: $(am__tagged_files) ++ $(am__define_uniq_tagged_files); mkid -fID $$unique ++tags: tags-recursive ++TAGS: tags ++ ++tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ set x; \ ++ here=`pwd`; \ ++ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ ++ include_option=--etags-include; \ ++ empty_fix=.; \ ++ else \ ++ include_option=--include; \ ++ empty_fix=; \ ++ fi; \ ++ list='$(SUBDIRS)'; for subdir in $$list; do \ ++ if test "$$subdir" = .; then :; else \ ++ test ! -f $$subdir/TAGS || \ ++ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ ++ fi; \ ++ done; \ ++ $(am__define_uniq_tagged_files); \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ ++ test -n "$$unique" || unique=$$empty_fix; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ ++ fi ++ctags: ctags-recursive ++ ++CTAGS: ctags ++ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ $(am__define_uniq_tagged_files); \ ++ test -z "$(CTAGS_ARGS)$$unique" \ ++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ ++ $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" ++cscopelist: cscopelist-recursive ++ ++cscopelist-am: $(am__tagged_files) ++ list='$(am__tagged_files)'; \ ++ case "$(srcdir)" in \ ++ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ ++ *) sdir=$(subdir)/$(srcdir) ;; \ ++ esac; \ ++ for i in $$list; do \ ++ if test -f "$$i"; then \ ++ echo "$(subdir)/$$i"; \ ++ else \ ++ echo "$$sdir/$$i"; \ ++ fi; \ ++ done >> $(top_builddir)/cscope.files ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags ++ ++# Recover from deleted '.trs' file; this should ensure that ++# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create ++# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells ++# to avoid problems with "make -n". ++.log.trs: ++ rm -f $< $@ ++ $(MAKE) $(AM_MAKEFLAGS) $< ++ ++# Leading 'am--fnord' is there to ensure the list of targets does not ++# expand to empty, as could happen e.g. with make check TESTS=''. ++am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) ++am--force-recheck: ++ @: ++ ++$(TEST_SUITE_LOG): $(TEST_LOGS) ++ @$(am__set_TESTS_bases); \ ++ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ ++ redo_bases=`for i in $$bases; do \ ++ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ ++ done`; \ ++ if test -n "$$redo_bases"; then \ ++ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ ++ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ ++ if $(am__make_dryrun); then :; else \ ++ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ ++ fi; \ ++ fi; \ ++ if test -n "$$am__remaking_logs"; then \ ++ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ ++ "recursion detected" >&2; \ ++ elif test -n "$$redo_logs"; then \ ++ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ ++ fi; \ ++ if $(am__make_dryrun); then :; else \ ++ st=0; \ ++ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ ++ for i in $$redo_bases; do \ ++ test -f $$i.trs && test -r $$i.trs \ ++ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ ++ test -f $$i.log && test -r $$i.log \ ++ || { echo "$$errmsg $$i.log" >&2; st=1; }; \ ++ done; \ ++ test $$st -eq 0 || exit 1; \ ++ fi ++ @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ ++ ws='[ ]'; \ ++ results=`for b in $$bases; do echo $$b.trs; done`; \ ++ test -n "$$results" || results=/dev/null; \ ++ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ ++ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ ++ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ ++ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ ++ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ ++ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ ++ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ ++ if test `expr $$fail + $$xpass + $$error` -eq 0; then \ ++ success=true; \ ++ else \ ++ success=false; \ ++ fi; \ ++ br='==================='; br=$$br$$br$$br$$br; \ ++ result_count () \ ++ { \ ++ if test x"$$1" = x"--maybe-color"; then \ ++ maybe_colorize=yes; \ ++ elif test x"$$1" = x"--no-color"; then \ ++ maybe_colorize=no; \ ++ else \ ++ echo "$@: invalid 'result_count' usage" >&2; exit 4; \ ++ fi; \ ++ shift; \ ++ desc=$$1 count=$$2; \ ++ if test $$maybe_colorize = yes && test $$count -gt 0; then \ ++ color_start=$$3 color_end=$$std; \ ++ else \ ++ color_start= color_end=; \ ++ fi; \ ++ echo "$${color_start}# $$desc $$count$${color_end}"; \ ++ }; \ ++ create_testsuite_report () \ ++ { \ ++ result_count $$1 "TOTAL:" $$all "$$brg"; \ ++ result_count $$1 "PASS: " $$pass "$$grn"; \ ++ result_count $$1 "SKIP: " $$skip "$$blu"; \ ++ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ ++ result_count $$1 "FAIL: " $$fail "$$red"; \ ++ result_count $$1 "XPASS:" $$xpass "$$red"; \ ++ result_count $$1 "ERROR:" $$error "$$mgn"; \ ++ }; \ ++ { \ ++ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ ++ $(am__rst_title); \ ++ create_testsuite_report --no-color; \ ++ echo; \ ++ echo ".. contents:: :depth: 2"; \ ++ echo; \ ++ for b in $$bases; do echo $$b; done \ ++ | $(am__create_global_log); \ ++ } >$(TEST_SUITE_LOG).tmp || exit 1; \ ++ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ ++ if $$success; then \ ++ col="$$grn"; \ ++ else \ ++ col="$$red"; \ ++ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ ++ fi; \ ++ echo "$${col}$$br$${std}"; \ ++ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ ++ echo "$${col}$$br$${std}"; \ ++ create_testsuite_report --maybe-color; \ ++ echo "$$col$$br$$std"; \ ++ if $$success; then :; else \ ++ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ ++ if test -n "$(PACKAGE_BUGREPORT)"; then \ ++ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ ++ fi; \ ++ echo "$$col$$br$$std"; \ ++ fi; \ ++ $$success || exit 1 ++ ++check-TESTS: ++ @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list ++ @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list ++ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) ++ @set +e; $(am__set_TESTS_bases); \ ++ log_list=`for i in $$bases; do echo $$i.log; done`; \ ++ trs_list=`for i in $$bases; do echo $$i.trs; done`; \ ++ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ ++ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ ++ exit $$?; ++recheck: all ++ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) ++ @set +e; $(am__set_TESTS_bases); \ ++ bases=`for i in $$bases; do echo $$i; done \ ++ | $(am__list_recheck_tests)` || exit 1; \ ++ log_list=`for i in $$bases; do echo $$i.log; done`; \ ++ log_list=`echo $$log_list`; \ ++ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ ++ am__force_recheck=am--force-recheck \ ++ TEST_LOGS="$$log_list"; \ ++ exit $$? ++.test.log: ++ @p='$<'; \ ++ $(am__set_b); \ ++ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ ++ --log-file $$b.log --trs-file $$b.trs \ ++ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ ++ "$$tst" $(AM_TESTS_FD_REDIRECT) ++@am__EXEEXT_TRUE@.test$(EXEEXT).log: ++@am__EXEEXT_TRUE@ @p='$<'; \ ++@am__EXEEXT_TRUE@ $(am__set_b); \ ++@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ ++@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ ++@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ ++@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) ++ ++distdir: $(DISTFILES) ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ ++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ ++ if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ ++ else \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ ++ || exit 1; \ ++ fi; \ ++ done ++ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ ++ if test "$$subdir" = .; then :; else \ ++ $(am__make_dryrun) \ ++ || test -d "$(distdir)/$$subdir" \ ++ || $(MKDIR_P) "$(distdir)/$$subdir" \ ++ || exit 1; \ ++ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ ++ $(am__relativize); \ ++ new_distdir=$$reldir; \ ++ dir1=$$subdir; dir2="$(top_distdir)"; \ ++ $(am__relativize); \ ++ new_top_distdir=$$reldir; \ ++ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ ++ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ++ ($(am__cd) $$subdir && \ ++ $(MAKE) $(AM_MAKEFLAGS) \ ++ top_distdir="$$new_top_distdir" \ ++ distdir="$$new_distdir" \ ++ am__remove_distdir=: \ ++ am__skip_length_check=: \ ++ am__skip_mode_fix=: \ ++ distdir) \ ++ || exit 1; \ ++ fi; \ ++ done ++check-am: all-am ++ $(MAKE) $(AM_MAKEFLAGS) check-TESTS ++check: check-recursive ++all-am: Makefile ++installdirs: installdirs-recursive ++installdirs-am: ++install: install-recursive ++install-exec: install-exec-recursive ++install-data: install-data-recursive ++uninstall: uninstall-recursive ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-recursive ++install-strip: ++ if test -z '$(STRIP)'; then \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ install; \ ++ else \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ ++ fi ++mostlyclean-generic: ++ -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) ++ -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) ++ -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-recursive ++ ++clean-am: clean-generic clean-libtool mostlyclean-am ++ ++distclean: distclean-recursive ++ -rm -f Makefile ++distclean-am: clean-am distclean-generic distclean-local \ ++ distclean-tags ++ ++dvi: dvi-recursive ++ ++dvi-am: ++ ++html: html-recursive ++ ++html-am: ++ ++info: info-recursive ++ ++info-am: ++ ++install-data-am: ++ ++install-dvi: install-dvi-recursive ++ ++install-dvi-am: ++ ++install-exec-am: ++ ++install-html: install-html-recursive ++ ++install-html-am: ++ ++install-info: install-info-recursive ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-recursive ++ ++install-pdf-am: ++ ++install-ps: install-ps-recursive ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-recursive ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-recursive ++ ++mostlyclean-am: mostlyclean-generic mostlyclean-libtool ++ ++pdf: pdf-recursive ++ ++pdf-am: ++ ++ps: ps-recursive ++ ++ps-am: ++ ++uninstall-am: ++ ++.MAKE: $(am__recursive_targets) check-am install-am install-strip ++ ++.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ ++ check-TESTS check-am clean clean-generic clean-libtool \ ++ cscopelist-am ctags ctags-am distclean distclean-generic \ ++ distclean-libtool distclean-local 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 \ ++ recheck tags tags-am uninstall uninstall-am ++ ++.PRECIOUS: Makefile ++ ++ ++# infixes.test ++ ++distclean-local: ++ -rm -rf testSubDir ++ ++# infixes.aff ++# infixes.dic ++# infixes.good ++# infixes.test ++ ++# 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/tests/suggestiontest/Makefile.in b/tests/suggestiontest/Makefile.in +new file mode 100644 +index 0000000..2764df2 +--- /dev/null ++++ b/tests/suggestiontest/Makefile.in +@@ -0,0 +1,517 @@ ++# Makefile.in generated by automake 1.15 from Makefile.am. ++# @configure_input@ ++ ++# Copyright (C) 1994-2014 Free Software Foundation, Inc. ++ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++@SET_MAKE@ ++VPATH = @srcdir@ ++am__is_gnu_make = { \ ++ if test -z '$(MAKELEVEL)'; then \ ++ false; \ ++ elif test -n '$(MAKE_HOST)'; then \ ++ true; \ ++ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ ++ true; \ ++ else \ ++ false; \ ++ fi; \ ++} ++am__make_running_with_option = \ ++ case $${target_option-} in \ ++ ?) ;; \ ++ *) echo "am__make_running_with_option: internal error: invalid" \ ++ "target option '$${target_option-}' specified" >&2; \ ++ exit 1;; \ ++ esac; \ ++ has_opt=no; \ ++ sane_makeflags=$$MAKEFLAGS; \ ++ if $(am__is_gnu_make); then \ ++ sane_makeflags=$$MFLAGS; \ ++ else \ ++ case $$MAKEFLAGS in \ ++ *\\[\ \ ]*) \ ++ bs=\\; \ ++ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ ++ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ ++ esac; \ ++ fi; \ ++ skip_next=no; \ ++ strip_trailopt () \ ++ { \ ++ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ ++ }; \ ++ for flg in $$sane_makeflags; do \ ++ test $$skip_next = yes && { skip_next=no; continue; }; \ ++ case $$flg in \ ++ *=*|--*) continue;; \ ++ -*I) strip_trailopt 'I'; skip_next=yes;; \ ++ -*I?*) strip_trailopt 'I';; \ ++ -*O) strip_trailopt 'O'; skip_next=yes;; \ ++ -*O?*) strip_trailopt 'O';; \ ++ -*l) strip_trailopt 'l'; skip_next=yes;; \ ++ -*l?*) strip_trailopt 'l';; \ ++ -[dEDm]) skip_next=yes;; \ ++ -[JT]) skip_next=yes;; \ ++ esac; \ ++ case $$flg in \ ++ *$$target_option*) has_opt=yes; break;; \ ++ esac; \ ++ done; \ ++ test $$has_opt = yes ++am__make_dryrun = (target_option=n; $(am__make_running_with_option)) ++am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkglibexecdir = $(libexecdir)/@PACKAGE@ ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = @build@ ++host_triplet = @host@ ++subdir = tests/suggestiontest ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ ++ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ ++ $(top_srcdir)/m4/glibc2.m4 $(top_srcdir)/m4/glibc21.m4 \ ++ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \ ++ $(top_srcdir)/m4/intl.m4 $(top_srcdir)/m4/intlmacosx.m4 \ ++ $(top_srcdir)/m4/intmax.m4 $(top_srcdir)/m4/inttypes-pri.m4 \ ++ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ ++ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ ++ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ ++ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ ++ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ++ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ ++ $(top_srcdir)/m4/printf-posix.m4 $(top_srcdir)/m4/progtest.m4 \ ++ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/stdint_h.m4 \ ++ $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/m4/uintmax_t.m4 \ ++ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ ++ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ++ $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) ++mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = ++AM_V_P = $(am__v_P_@AM_V@) ++am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) ++am__v_P_0 = false ++am__v_P_1 = : ++AM_V_GEN = $(am__v_GEN_@AM_V@) ++am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) ++am__v_GEN_0 = @echo " GEN " $@; ++am__v_GEN_1 = ++AM_V_at = $(am__v_at_@AM_V@) ++am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) ++am__v_at_0 = @ ++am__v_at_1 = ++SOURCES = ++DIST_SOURCES = ++am__can_run_installinfo = \ ++ case $$AM_UPDATE_INFO_DIR in \ ++ n|no|NO) false;; \ ++ *) (install-info --version) >/dev/null 2>&1;; \ ++ esac ++am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) ++am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/mkinstalldirs \ ++ README ++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ++ACLOCAL = @ACLOCAL@ ++ALLOCA = @ALLOCA@ ++AMTAR = @AMTAR@ ++AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ ++AR = @AR@ ++AS = @AS@ ++AUTOCONF = @AUTOCONF@ ++AUTOHEADER = @AUTOHEADER@ ++AUTOMAKE = @AUTOMAKE@ ++AWK = @AWK@ ++BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ ++CATOBJEXT = @CATOBJEXT@ ++CC = @CC@ ++CCDEPMODE = @CCDEPMODE@ ++CFLAGS = @CFLAGS@ ++CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ ++CPP = @CPP@ ++CPPFLAGS = @CPPFLAGS@ ++CURSESLIB = @CURSESLIB@ ++CXX = @CXX@ ++CXXCPP = @CXXCPP@ ++CXXDEPMODE = @CXXDEPMODE@ ++CXXFLAGS = @CXXFLAGS@ ++CYGPATH_W = @CYGPATH_W@ ++DATADIRNAME = @DATADIRNAME@ ++DEFS = @DEFS@ ++DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ ++DSYMUTIL = @DSYMUTIL@ ++DUMPBIN = @DUMPBIN@ ++ECHO_C = @ECHO_C@ ++ECHO_N = @ECHO_N@ ++ECHO_T = @ECHO_T@ ++EGREP = @EGREP@ ++EXEEXT = @EXEEXT@ ++FGREP = @FGREP@ ++GENCAT = @GENCAT@ ++GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ ++GLIBC2 = @GLIBC2@ ++GLIBC21 = @GLIBC21@ ++GMSGFMT = @GMSGFMT@ ++GMSGFMT_015 = @GMSGFMT_015@ ++GREP = @GREP@ ++HAVE_ASPRINTF = @HAVE_ASPRINTF@ ++HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ ++HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ ++HAVE_SNPRINTF = @HAVE_SNPRINTF@ ++HAVE_VISIBILITY = @HAVE_VISIBILITY@ ++HAVE_WPRINTF = @HAVE_WPRINTF@ ++HUNSPELL_VERSION_MAJOR = @HUNSPELL_VERSION_MAJOR@ ++HUNSPELL_VERSION_MINOR = @HUNSPELL_VERSION_MINOR@ ++INSTALL = @INSTALL@ ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ++INSTOBJEXT = @INSTOBJEXT@ ++INTLBISON = @INTLBISON@ ++INTLLIBS = @INTLLIBS@ ++INTLOBJS = @INTLOBJS@ ++INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ ++INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ ++INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ++LD = @LD@ ++LDFLAGS = @LDFLAGS@ ++LIBICONV = @LIBICONV@ ++LIBINTL = @LIBINTL@ ++LIBMULTITHREAD = @LIBMULTITHREAD@ ++LIBOBJS = @LIBOBJS@ ++LIBPTH = @LIBPTH@ ++LIBPTH_PREFIX = @LIBPTH_PREFIX@ ++LIBS = @LIBS@ ++LIBTHREAD = @LIBTHREAD@ ++LIBTOOL = @LIBTOOL@ ++LIPO = @LIPO@ ++LN_S = @LN_S@ ++LTLIBC = @LTLIBC@ ++LTLIBICONV = @LTLIBICONV@ ++LTLIBINTL = @LTLIBINTL@ ++LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ ++LTLIBOBJS = @LTLIBOBJS@ ++LTLIBPTH = @LTLIBPTH@ ++LTLIBTHREAD = @LTLIBTHREAD@ ++LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ ++MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ ++MKDIR_P = @MKDIR_P@ ++MSGFMT = @MSGFMT@ ++MSGFMT_015 = @MSGFMT_015@ ++MSGMERGE = @MSGMERGE@ ++NM = @NM@ ++NMEDIT = @NMEDIT@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++OTOOL = @OTOOL@ ++OTOOL64 = @OTOOL64@ ++PACKAGE = @PACKAGE@ ++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ ++PACKAGE_NAME = @PACKAGE_NAME@ ++PACKAGE_STRING = @PACKAGE_STRING@ ++PACKAGE_TARNAME = @PACKAGE_TARNAME@ ++PACKAGE_URL = @PACKAGE_URL@ ++PACKAGE_VERSION = @PACKAGE_VERSION@ ++PATH_SEPARATOR = @PATH_SEPARATOR@ ++POSUB = @POSUB@ ++PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ ++RANLIB = @RANLIB@ ++READLINELIB = @READLINELIB@ ++SED = @SED@ ++SET_MAKE = @SET_MAKE@ ++SHELL = @SHELL@ ++STRIP = @STRIP@ ++USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ ++USE_NLS = @USE_NLS@ ++VERSION = @VERSION@ ++WINDRES = @WINDRES@ ++WOE32 = @WOE32@ ++WOE32DLL = @WOE32DLL@ ++XFAILED = @XFAILED@ ++XGETTEXT = @XGETTEXT@ ++XGETTEXT_015 = @XGETTEXT_015@ ++XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ++abs_builddir = @abs_builddir@ ++abs_srcdir = @abs_srcdir@ ++abs_top_builddir = @abs_top_builddir@ ++abs_top_srcdir = @abs_top_srcdir@ ++ac_ct_AR = @ac_ct_AR@ ++ac_ct_CC = @ac_ct_CC@ ++ac_ct_CXX = @ac_ct_CXX@ ++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ++am__include = @am__include@ ++am__leading_dot = @am__leading_dot@ ++am__quote = @am__quote@ ++am__tar = @am__tar@ ++am__untar = @am__untar@ ++bindir = @bindir@ ++build = @build@ ++build_alias = @build_alias@ ++build_cpu = @build_cpu@ ++build_os = @build_os@ ++build_vendor = @build_vendor@ ++builddir = @builddir@ ++datadir = @datadir@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++dvidir = @dvidir@ ++exec_prefix = @exec_prefix@ ++host = @host@ ++host_alias = @host_alias@ ++host_cpu = @host_cpu@ ++host_os = @host_os@ ++host_vendor = @host_vendor@ ++htmldir = @htmldir@ ++includedir = @includedir@ ++infodir = @infodir@ ++install_sh = @install_sh@ ++libdir = @libdir@ ++libexecdir = @libexecdir@ ++localedir = @localedir@ ++localstatedir = @localstatedir@ ++mandir = @mandir@ ++mkdir_p = @mkdir_p@ ++oldincludedir = @oldincludedir@ ++pdfdir = @pdfdir@ ++prefix = @prefix@ ++program_transform_name = @program_transform_name@ ++psdir = @psdir@ ++sbindir = @sbindir@ ++sharedstatedir = @sharedstatedir@ ++srcdir = @srcdir@ ++sysconfdir = @sysconfdir@ ++target_alias = @target_alias@ ++top_build_prefix = @top_build_prefix@ ++top_builddir = @top_builddir@ ++top_srcdir = @top_srcdir@ ++EXTRA_DIST = \ ++List_of_common_misspellings.txt \ ++Makefile.orig \ ++prepare \ ++README \ ++test ++ ++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 ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/suggestiontest/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnu tests/suggestiontest/Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++tags TAGS: ++ ++ctags CTAGS: ++ ++cscope cscopelist: ++ ++ ++distdir: $(DISTFILES) ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ ++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ ++ if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ ++ else \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ ++ || exit 1; \ ++ fi; \ ++ done ++check-am: all-am ++check: check-am ++all-am: Makefile ++installdirs: ++install: install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ if test -z '$(STRIP)'; then \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ install; \ ++ else \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ ++ fi ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-am ++ ++clean-am: clean-generic clean-libtool mostlyclean-am ++ ++distclean: distclean-am ++ -rm -f Makefile ++distclean-am: clean-am distclean-generic ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++html: html-am ++ ++html-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: ++ ++install-dvi: install-dvi-am ++ ++install-dvi-am: ++ ++install-exec-am: ++ ++install-html: install-html-am ++ ++install-html-am: ++ ++install-info: install-info-am ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-am ++ ++install-pdf-am: ++ ++install-ps: install-ps-am ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-am ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-generic mostlyclean-libtool ++ ++pdf: pdf-am ++ ++pdf-am: ++ ++ps: ps-am ++ ++ps-am: ++ ++uninstall-am: ++ ++.MAKE: install-am install-strip ++ ++.PHONY: all all-am check check-am clean clean-generic clean-libtool \ ++ cscopelist-am ctags-am distclean distclean-generic \ ++ distclean-libtool distdir dvi dvi-am html html-am info info-am \ ++ install install-am install-data install-data-am install-dvi \ ++ install-dvi-am install-exec install-exec-am install-html \ ++ install-html-am install-info install-info-am install-man \ ++ install-pdf install-pdf-am install-ps install-ps-am \ ++ install-strip installcheck installcheck-am installdirs \ ++ maintainer-clean maintainer-clean-generic mostlyclean \ ++ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ ++ tags-am uninstall uninstall-am ++ ++.PRECIOUS: Makefile ++ ++ ++# 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: +-- +2.9.3 + diff --git a/external/hunspell/0001-cppcheck-redundant-c_str.patch b/external/hunspell/0001-cppcheck-redundant-c_str.patch new file mode 100644 index 0000000000000..276ddd2e705b0 --- /dev/null +++ b/external/hunspell/0001-cppcheck-redundant-c_str.patch @@ -0,0 +1,34 @@ +From 9a0baf202f67291eaf482f1bcf654e21d71943e2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Mon, 23 Jan 2017 11:43:53 +0000 +Subject: [PATCH] cppcheck: redundant c_str + +--- + src/hunspell/suggestmgr.cxx | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/hunspell/suggestmgr.cxx b/src/hunspell/suggestmgr.cxx +index b998341..8d46dd6 100644 +--- a/src/hunspell/suggestmgr.cxx ++++ b/src/hunspell/suggestmgr.cxx +@@ -1107,7 +1107,7 @@ void SuggestMgr::ngsuggest(std::vector& wlst, + int sc2; + if (utf8) { + w_f.clear(); +- u8_u16(w_f, f.c_str()); ++ u8_u16(w_f, f); + sc2 = ngram(3, w_word, w_f, NGRAM_LONGER_WORSE + low) + + leftcommonsubstring(w_word, w_f); + } else { +@@ -1132,7 +1132,7 @@ void SuggestMgr::ngsuggest(std::vector& wlst, + std::string target2 = phonet(candidate, *ph); + w_target2.clear(); + if (utf8) { +- u8_u16(w_target2, target2.c_str()); ++ u8_u16(w_target2, target2); + scphon = 2 * ngram(3, w_target, w_target2, + NGRAM_LONGER_WORSE); + } else { +-- +2.9.3 + diff --git a/external/hunspell/0001-cppcheck-rv-is-reassigned-before-old-value-used.patch b/external/hunspell/0001-cppcheck-rv-is-reassigned-before-old-value-used.patch new file mode 100644 index 0000000000000..bfcdf490a0a9a --- /dev/null +++ b/external/hunspell/0001-cppcheck-rv-is-reassigned-before-old-value-used.patch @@ -0,0 +1,57 @@ +From 93156ba9a8e644f8b0b724880668714adcb0d094 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Mon, 23 Jan 2017 12:05:07 +0000 +Subject: [PATCH] cppcheck: rv is reassigned before old value used + +--- + src/hunspell/affixmgr.cxx | 6 ++---- + src/hunspell/suggestmgr.cxx | 3 +-- + 2 files changed, 3 insertions(+), 6 deletions(-) + +diff --git a/src/hunspell/affixmgr.cxx b/src/hunspell/affixmgr.cxx +index 680cbe9..21cf384 100644 +--- a/src/hunspell/affixmgr.cxx ++++ b/src/hunspell/affixmgr.cxx +@@ -1494,9 +1494,8 @@ int AffixMgr::defcpd_check(hentry*** words, + } + + inline int AffixMgr::candidate_check(const char* word, int len) { +- struct hentry* rv = NULL; + +- rv = lookup(word); ++ struct hentry* rv = lookup(word); + if (rv) + return 1; + +@@ -3045,10 +3044,9 @@ struct hentry* AffixMgr::affix_check(const char* word, + int len, + const FLAG needflag, + char in_compound) { +- struct hentry* rv = NULL; + + // check all prefixes (also crossed with suffixes if allowed) +- rv = prefix_check(word, len, in_compound, needflag); ++ struct hentry* rv = prefix_check(word, len, in_compound, needflag); + if (rv) + return rv; + +diff --git a/src/hunspell/suggestmgr.cxx b/src/hunspell/suggestmgr.cxx +index 8d46dd6..54a474f 100644 +--- a/src/hunspell/suggestmgr.cxx ++++ b/src/hunspell/suggestmgr.cxx +@@ -1675,11 +1675,10 @@ std::string SuggestMgr::suggest_hentry_gen(hentry* rv, const char* pattern) { + if (HENTRY_DATA(rv)) + p = (char*)strstr(HENTRY_DATA2(rv), MORPH_ALLOMORPH); + while (p) { +- struct hentry* rv2 = NULL; + p += MORPH_TAG_LEN; + int plen = fieldlen(p); + std::string allomorph(p, plen); +- rv2 = pAMgr->lookup(allomorph.c_str()); ++ struct hentry* rv2 = pAMgr->lookup(allomorph.c_str()); + while (rv2) { + // if (HENTRY_DATA(rv2) && get_sfxcount(HENTRY_DATA(rv2)) <= + // sfxcount) { +-- +2.9.3 + diff --git a/external/hunspell/0001-loop-via-iterators.patch b/external/hunspell/0001-loop-via-iterators.patch new file mode 100644 index 0000000000000..6ecdd769e3bf3 --- /dev/null +++ b/external/hunspell/0001-loop-via-iterators.patch @@ -0,0 +1,36 @@ +From f366e97fa8d7ad21060033b733dda15299edf7c5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Fri, 10 Feb 2017 15:37:11 +0000 +Subject: [PATCH 1/4] loop via iterators + +--- + src/hunspell/csutil.cxx | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/src/hunspell/csutil.cxx b/src/hunspell/csutil.cxx +index c1666a5..2408677 100644 +--- a/src/hunspell/csutil.cxx ++++ b/src/hunspell/csutil.cxx +@@ -2537,13 +2537,17 @@ int get_captype_utf8(const std::vector& word, int langnum) { + size_t ncap = 0; + size_t nneutral = 0; + size_t firstcap = 0; +- for (size_t i = 0; i < word.size(); ++i) { +- unsigned short idx = (word[i].h << 8) + word[i].l; ++ ++ std::vector::const_iterator it = word.begin(); ++ std::vector::const_iterator it_end = word.end(); ++ while (it != it_end) { ++ unsigned short idx = (it->h << 8) + it->l; + unsigned short lwridx = unicodetolower(idx, langnum); + if (idx != lwridx) + ncap++; + if (unicodetoupper(idx, langnum) == lwridx) + nneutral++; ++ ++it; + } + if (ncap) { + unsigned short idx = (word[0].h << 8) + word[0].l; +-- +2.9.3 + diff --git a/external/hunspell/0001-unroll-this-a-bit.patch b/external/hunspell/0001-unroll-this-a-bit.patch new file mode 100644 index 0000000000000..607a51a5fd1b6 --- /dev/null +++ b/external/hunspell/0001-unroll-this-a-bit.patch @@ -0,0 +1,116 @@ +From bf05e232805f6c1fae5dea3c223de8bdaab425e9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Mon, 23 Jan 2017 13:26:53 +0000 +Subject: [PATCH 1/3] unroll this a bit + +--- + src/hunspell/csutil.cxx | 49 ++++++++++++++++++++++++++++--------------------- + 1 file changed, 28 insertions(+), 21 deletions(-) + +diff --git a/src/hunspell/csutil.cxx b/src/hunspell/csutil.cxx +index ac5cd98..c1666a5 100644 +--- a/src/hunspell/csutil.cxx ++++ b/src/hunspell/csutil.cxx +@@ -518,18 +518,20 @@ unsigned char ccase(const struct cs_info* csconv, int nIndex) { + + w_char upper_utf(w_char u, int langnum) { + unsigned short idx = (u.h << 8) + u.l; +- if (idx != unicodetoupper(idx, langnum)) { +- u.h = (unsigned char)(unicodetoupper(idx, langnum) >> 8); +- u.l = (unsigned char)(unicodetoupper(idx, langnum) & 0x00FF); ++ unsigned short upridx = unicodetoupper(idx, langnum); ++ if (idx != upridx) { ++ u.h = (unsigned char)(upridx >> 8); ++ u.l = (unsigned char)(upridx & 0x00FF); + } + return u; + } + + w_char lower_utf(w_char u, int langnum) { + unsigned short idx = (u.h << 8) + u.l; +- if (idx != unicodetolower(idx, langnum)) { +- u.h = (unsigned char)(unicodetolower(idx, langnum) >> 8); +- u.l = (unsigned char)(unicodetolower(idx, langnum) & 0x00FF); ++ unsigned short lwridx = unicodetolower(idx, langnum); ++ if (idx != lwridx) { ++ u.h = (unsigned char)(lwridx >> 8); ++ u.l = (unsigned char)(lwridx & 0x00FF); + } + return u; + } +@@ -551,12 +553,13 @@ std::string& mkallsmall(std::string& s, const struct cs_info* csconv) { + } + + std::vector& mkallsmall_utf(std::vector& u, +- int langnum) { ++ int langnum) { + for (size_t i = 0; i < u.size(); ++i) { + unsigned short idx = (u[i].h << 8) + u[i].l; +- if (idx != unicodetolower(idx, langnum)) { +- u[i].h = (unsigned char)(unicodetolower(idx, langnum) >> 8); +- u[i].l = (unsigned char)(unicodetolower(idx, langnum) & 0x00FF); ++ unsigned short lwridx = unicodetolower(idx, langnum); ++ if (idx != lwridx) { ++ u[i].h = (unsigned char)(lwridx >> 8); ++ u[i].l = (unsigned char)(lwridx & 0x00FF); + } + } + return u; +@@ -565,9 +568,10 @@ std::vector& mkallsmall_utf(std::vector& u, + std::vector& mkallcap_utf(std::vector& u, int langnum) { + for (size_t i = 0; i < u.size(); i++) { + unsigned short idx = (u[i].h << 8) + u[i].l; +- if (idx != unicodetoupper(idx, langnum)) { +- u[i].h = (unsigned char)(unicodetoupper(idx, langnum) >> 8); +- u[i].l = (unsigned char)(unicodetoupper(idx, langnum) & 0x00FF); ++ unsigned short upridx = unicodetoupper(idx, langnum); ++ if (idx != upridx) { ++ u[i].h = (unsigned char)(upridx >> 8); ++ u[i].l = (unsigned char)(upridx & 0x00FF); + } + } + return u; +@@ -583,9 +587,10 @@ std::string& mkinitcap(std::string& s, const struct cs_info* csconv) { + std::vector& mkinitcap_utf(std::vector& u, int langnum) { + if (!u.empty()) { + unsigned short idx = (u[0].h << 8) + u[0].l; +- if (idx != unicodetoupper(idx, langnum)) { +- u[0].h = (unsigned char)(unicodetoupper(idx, langnum) >> 8); +- u[0].l = (unsigned char)(unicodetoupper(idx, langnum) & 0x00FF); ++ unsigned short upridx = unicodetoupper(idx, langnum); ++ if (idx != upridx) { ++ u[0].h = (unsigned char)(upridx >> 8); ++ u[0].l = (unsigned char)(upridx & 0x00FF); + } + } + return u; +@@ -601,9 +606,10 @@ std::string& mkinitsmall(std::string& s, const struct cs_info* csconv) { + std::vector& mkinitsmall_utf(std::vector& u, int langnum) { + if (!u.empty()) { + unsigned short idx = (u[0].h << 8) + u[0].l; +- if (idx != unicodetolower(idx, langnum)) { +- u[0].h = (unsigned char)(unicodetolower(idx, langnum) >> 8); +- u[0].l = (unsigned char)(unicodetolower(idx, langnum) & 0x00FF); ++ unsigned short lwridx = unicodetolower(idx, langnum); ++ if (idx != lwridx) { ++ u[0].h = (unsigned char)(lwridx >> 8); ++ u[0].l = (unsigned char)(lwridx & 0x00FF); + } + } + return u; +@@ -2533,9 +2539,10 @@ int get_captype_utf8(const std::vector& word, int langnum) { + size_t firstcap = 0; + for (size_t i = 0; i < word.size(); ++i) { + unsigned short idx = (word[i].h << 8) + word[i].l; +- if (idx != unicodetolower(idx, langnum)) ++ unsigned short lwridx = unicodetolower(idx, langnum); ++ if (idx != lwridx) + ncap++; +- if (unicodetoupper(idx, langnum) == unicodetolower(idx, langnum)) ++ if (unicodetoupper(idx, langnum) == lwridx) + nneutral++; + } + if (ncap) { +-- +2.9.3 + diff --git a/external/hunspell/0002-add-a-get_clen_and_captype-varient-that-takes-a-buff.patch b/external/hunspell/0002-add-a-get_clen_and_captype-varient-that-takes-a-buff.patch new file mode 100644 index 0000000000000..88695ec027d54 --- /dev/null +++ b/external/hunspell/0002-add-a-get_clen_and_captype-varient-that-takes-a-buff.patch @@ -0,0 +1,78 @@ +From 8e957585671c76fa21e6265ec7b68aa19507f4fe Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Fri, 10 Feb 2017 15:49:17 +0000 +Subject: [PATCH 2/4] add a get_clen_and_captype varient that takes a buffer + +kcachegrind reports 1,057,506,901 -> 830,529,143 on + +echo Hollo | valgrind --tool=callgrind ./src/tools/.libs/hunspell -d nl_NL +--- + src/hunspell/hashmgr.cxx | 16 +++++++++++----- + src/hunspell/hashmgr.hxx | 1 + + 2 files changed, 12 insertions(+), 5 deletions(-) + +diff --git a/src/hunspell/hashmgr.cxx b/src/hunspell/hashmgr.cxx +index 1de1690..4844b49 100644 +--- a/src/hunspell/hashmgr.cxx ++++ b/src/hunspell/hashmgr.cxx +@@ -363,12 +363,11 @@ int HashMgr::add_hidden_capitalized_word(const std::string& word, + } + + // detect captype and modify word length for UTF-8 encoding +-int HashMgr::get_clen_and_captype(const std::string& word, int* captype) { ++int HashMgr::get_clen_and_captype(const std::string& word, int* captype, std::vector &workbuf) { + int len; + if (utf8) { +- std::vector dest_utf; +- len = u8_u16(dest_utf, word); +- *captype = get_captype_utf8(dest_utf, langnum); ++ len = u8_u16(workbuf, word); ++ *captype = get_captype_utf8(workbuf, langnum); + } else { + len = word.size(); + *captype = get_captype(word, csconv); +@@ -376,6 +375,11 @@ int HashMgr::get_clen_and_captype(const std::string& word, int* captype) { + return len; + } + ++int HashMgr::get_clen_and_captype(const std::string& word, int* captype) { ++ std::vector workbuf; ++ return get_clen_and_captype(word, captype, workbuf); ++} ++ + // remove word (personal dictionary function for standalone applications) + int HashMgr::remove(const std::string& word) { + struct hentry* dp = lookup(word.c_str()); +@@ -527,6 +531,8 @@ int HashMgr::load_tables(const char* tpath, const char* key) { + // loop through all words on much list and add to hash + // table and create word and affix strings + ++ std::vector workbuf; ++ + while (dict->getline(ts)) { + mychomp(ts); + // split each line into word and morphological description +@@ -599,7 +605,7 @@ int HashMgr::load_tables(const char* tpath, const char* key) { + } + + int captype; +- int wcl = get_clen_and_captype(ts, &captype); ++ int wcl = get_clen_and_captype(ts, &captype, workbuf); + const std::string *dp_str = dp.empty() ? NULL : &dp; + // add the word and its index plus its capitalized form optionally + if (add_word(ts, wcl, flags, al, dp_str, false) || +diff --git a/src/hunspell/hashmgr.hxx b/src/hunspell/hashmgr.hxx +index 812171a..5a09c45 100644 +--- a/src/hunspell/hashmgr.hxx ++++ b/src/hunspell/hashmgr.hxx +@@ -125,6 +125,7 @@ class HashMgr { + + private: + int get_clen_and_captype(const std::string& word, int* captype); ++ int get_clen_and_captype(const std::string& word, int* captype, std::vector &workbuf); + int load_tables(const char* tpath, const char* key); + int add_word(const std::string& word, + int wcl, +-- +2.9.3 + diff --git a/external/hunspell/0002-fix-other-regression-in-compounding.patch b/external/hunspell/0002-fix-other-regression-in-compounding.patch new file mode 100644 index 0000000000000..cbf29e54f93a7 --- /dev/null +++ b/external/hunspell/0002-fix-other-regression-in-compounding.patch @@ -0,0 +1,43 @@ +From 1fada01663b29b57c010a9c274e45a5cf9ecf222 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?L=C3=A1szl=C3=B3=20N=C3=A9meth?= + +Date: Sun, 19 Mar 2017 13:19:29 +0100 +Subject: [PATCH 2/7] fix other regression in compounding +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Allow compound words again with +starting "kor", "alak", "asszony", "úr" +related to the "REP kor _kor" etc. rules +using the Hungarian spelling dictionary. + +regression from... + +commit 73b1cad1af7ab94252f75784fa6724cf062a6966 +Author: Martin Hosken +Date: Mon Apr 18 16:28:26 2016 +0700 + + Add support for bounded conversion +--- + src/hunspell/affixmgr.cxx | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/hunspell/affixmgr.cxx b/src/hunspell/affixmgr.cxx +index 78c70e7..ec2093d 100644 +--- a/src/hunspell/affixmgr.cxx ++++ b/src/hunspell/affixmgr.cxx +@@ -1290,8 +1290,8 @@ int AffixMgr::cpdrep_check(const char* word, int wl) { + // search every occurence of the pattern in the word + while ((r = strstr(r, reptable[i].pattern.c_str())) != NULL) { + std::string candidate(word); +- size_t type = r == word ? 1 : 0; +- if (r - word + reptable[i].pattern.size() == lenp) ++ size_t type = r == word && langnum != LANG_hu ? 1 : 0; ++ if (r - word + reptable[i].pattern.size() == lenp && langnum != LANG_hu) + type += 2; + candidate.replace(r - word, lenp, reptable[i].outstrings[type]); + if (candidate_check(candidate.c_str(), candidate.size())) +-- +2.7.4 + diff --git a/external/hunspell/0003-hoist-string-lowering-from-ngram-to-ngsuggest.patch b/external/hunspell/0003-hoist-string-lowering-from-ngram-to-ngsuggest.patch new file mode 100644 index 0000000000000..ff2530cfe23dc --- /dev/null +++ b/external/hunspell/0003-hoist-string-lowering-from-ngram-to-ngsuggest.patch @@ -0,0 +1,264 @@ +From cf0967951a25a2daa10a636092193af5c5497aa2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Fri, 10 Feb 2017 16:36:27 +0000 +Subject: [PATCH 3/4] hoist string lowering from ngram to ngsuggest + +only lower when we have to and reuse scratch buffers as +tolower destination + +kcachegrind reports 830,529,143 -> 779,887,690 on + +echo Hollo | valgrind --tool=callgrind ./src/tools/.libs/hunspell -d nl_NL +--- + src/hunspell/suggestmgr.cxx | 143 +++++++++++++++++++++++++++++--------------- + 1 file changed, 95 insertions(+), 48 deletions(-) + +diff --git a/src/hunspell/suggestmgr.cxx b/src/hunspell/suggestmgr.cxx +index 54a474f..ea52707 100644 +--- a/src/hunspell/suggestmgr.cxx ++++ b/src/hunspell/suggestmgr.cxx +@@ -1075,10 +1075,8 @@ void SuggestMgr::ngsuggest(std::vector& wlst, + u8_u16(w_target, target); + } + +- std::vector w_entry; + std::string f; + std::vector w_f; +- std::vector w_target2; + + for (size_t i = 0; i < rHMgr.size(); ++i) { + while (0 != (hp = rHMgr[i]->walk_hashtable(col, hp))) { +@@ -1091,13 +1089,24 @@ void SuggestMgr::ngsuggest(std::vector& wlst, + continue; + + if (utf8) { +- w_entry.clear(); +- u8_u16(w_entry, HENTRY_WORD(hp)); +- sc = ngram(3, w_word, w_entry, NGRAM_LONGER_WORSE + low) + +- leftcommonsubstring(w_word, w_entry); ++ w_f.clear(); ++ u8_u16(w_f, HENTRY_WORD(hp)); ++ ++ int leftcommon = leftcommonsubstring(w_word, w_f); ++ if (low) { ++ // lowering dictionary word ++ mkallsmall_utf(w_f, langnum); ++ } ++ sc = ngram(3, w_word, w_f, NGRAM_LONGER_WORSE) + leftcommon; + } else { +- sc = ngram(3, word, HENTRY_WORD(hp), NGRAM_LONGER_WORSE + low) + +- leftcommonsubstring(word, HENTRY_WORD(hp)); ++ f.assign(HENTRY_WORD(hp)); ++ ++ int leftcommon = leftcommonsubstring(word, f.c_str()); ++ if (low) { ++ // lowering dictionary word ++ mkallsmall(f, csconv); ++ } ++ sc = ngram(3, word, f, NGRAM_LONGER_WORSE) + leftcommon; + } + + // check special pronounciation +@@ -1108,11 +1117,20 @@ void SuggestMgr::ngsuggest(std::vector& wlst, + if (utf8) { + w_f.clear(); + u8_u16(w_f, f); +- sc2 = ngram(3, w_word, w_f, NGRAM_LONGER_WORSE + low) + +- leftcommonsubstring(w_word, w_f); ++ ++ int leftcommon = leftcommonsubstring(w_word, w_f); ++ if (low) { ++ // lowering dictionary word ++ mkallsmall_utf(w_f, langnum); ++ } ++ sc2 = ngram(3, w_word, w_f, NGRAM_LONGER_WORSE) + leftcommon; + } else { +- sc2 = ngram(3, word, f, NGRAM_LONGER_WORSE + low) + +- leftcommonsubstring(word, f.c_str()); ++ int leftcommon = leftcommonsubstring(word, f.c_str()); ++ if (low) { ++ // lowering dictionary word ++ mkallsmall(f, csconv); ++ } ++ sc2 = ngram(3, word, f, NGRAM_LONGER_WORSE) + leftcommon; + } + if (sc2 > sc) + sc = sc2; +@@ -1129,14 +1147,14 @@ void SuggestMgr::ngsuggest(std::vector& wlst, + candidate = HENTRY_WORD(hp); + mkallcap(candidate, csconv); + } +- std::string target2 = phonet(candidate, *ph); +- w_target2.clear(); ++ f = phonet(candidate, *ph); ++ w_f.clear(); + if (utf8) { +- u8_u16(w_target2, target2); +- scphon = 2 * ngram(3, w_target, w_target2, ++ u8_u16(w_f, f); ++ scphon = 2 * ngram(3, w_target, w_f, + NGRAM_LONGER_WORSE); + } else { +- scphon = 2 * ngram(3, target, target2, ++ scphon = 2 * ngram(3, target, f, + NGRAM_LONGER_WORSE); + } + } +@@ -1177,12 +1195,24 @@ void SuggestMgr::ngsuggest(std::vector& wlst, + w_mw[k].l = '*'; + w_mw[k].h = 0; + } +- thresh += ngram(n, w_word, w_mw, NGRAM_ANY_MISMATCH + low); ++ ++ if (low) { ++ // lowering dictionary word ++ mkallsmall_utf(w_mw, langnum); ++ } ++ ++ thresh += ngram(n, w_word, w_mw, NGRAM_ANY_MISMATCH); + } else { + std::string mw = word; + for (int k = sp; k < n; k += 4) + mw[k] = '*'; +- thresh += ngram(n, word, mw, NGRAM_ANY_MISMATCH + low); ++ ++ if (low) { ++ // lowering dictionary word ++ mkallsmall(mw, csconv); ++ } ++ ++ thresh += ngram(n, word, mw, NGRAM_ANY_MISMATCH); + } + } + thresh = thresh / 3; +@@ -1210,7 +1240,6 @@ void SuggestMgr::ngsuggest(std::vector& wlst, + return; + } + +- std::vector w_glst_word; + for (int i = 0; i < MAX_ROOTS; i++) { + if (roots[i]) { + struct hentry* rp = roots[i]; +@@ -1225,15 +1254,26 @@ void SuggestMgr::ngsuggest(std::vector& wlst, + + for (int k = 0; k < nw; k++) { + if (utf8) { +- w_glst_word.clear(); +- u8_u16(w_glst_word, glst[k].word); +- sc = ngram(n, w_word, w_glst_word, +- NGRAM_ANY_MISMATCH + low) + +- leftcommonsubstring(w_word, w_glst_word); ++ w_f.clear(); ++ u8_u16(w_f, glst[k].word); ++ ++ int leftcommon = leftcommonsubstring(w_word, w_f); ++ if (low) { ++ // lowering dictionary word ++ mkallsmall_utf(w_f, langnum); ++ } ++ ++ sc = ngram(n, w_word, w_f, NGRAM_ANY_MISMATCH) + leftcommon; + } else { +- sc = ngram(n, word, glst[k].word, +- NGRAM_ANY_MISMATCH + low) + +- leftcommonsubstring(word, glst[k].word); ++ f = glst[k].word; ++ ++ int leftcommon = leftcommonsubstring(word, f.c_str()); ++ if (low) { ++ // lowering dictionary word ++ mkallsmall(f, csconv); ++ } ++ ++ sc = ngram(n, word, f, NGRAM_ANY_MISMATCH) + leftcommon; + } + + if (sc > thresh) { +@@ -1318,19 +1358,37 @@ void SuggestMgr::ngsuggest(std::vector& wlst, + w_gl.clear(); + if (utf8) { + u8_u16(w_gl, gl); +- re = ngram(2, w_word, w_gl, NGRAM_ANY_MISMATCH + low + NGRAM_WEIGHTED) + +- ngram(2, w_gl, w_word, NGRAM_ANY_MISMATCH + low + NGRAM_WEIGHTED); ++ //w_gl is lowercase already at this point ++ re = ngram(2, w_word, w_gl, NGRAM_ANY_MISMATCH + NGRAM_WEIGHTED); ++ if (low) { ++ w_f = w_word; ++ // lowering dictionary word ++ mkallsmall_utf(w_f, langnum); ++ re += ngram(2, w_gl, w_f, NGRAM_ANY_MISMATCH + NGRAM_WEIGHTED); ++ } else { ++ re += ngram(2, w_gl, w_word, NGRAM_ANY_MISMATCH + NGRAM_WEIGHTED); ++ } + } else { +- re = ngram(2, word, gl, NGRAM_ANY_MISMATCH + low + NGRAM_WEIGHTED) + +- ngram(2, gl, word, NGRAM_ANY_MISMATCH + low + NGRAM_WEIGHTED); ++ //gl is lowercase already at this point ++ re = ngram(2, word, gl, NGRAM_ANY_MISMATCH + NGRAM_WEIGHTED); ++ if (low) { ++ f = word; ++ // lowering dictionary word ++ mkallsmall(f, csconv); ++ re += ngram(2, gl, f, NGRAM_ANY_MISMATCH + NGRAM_WEIGHTED); ++ } else { ++ re += ngram(2, gl, word, NGRAM_ANY_MISMATCH + NGRAM_WEIGHTED); ++ } + } + + int ngram_score, leftcommon_score; + if (utf8) { +- ngram_score = ngram(4, w_word, w_gl, NGRAM_ANY_MISMATCH + low); ++ //w_gl is lowercase already at this point ++ ngram_score = ngram(4, w_word, w_gl, NGRAM_ANY_MISMATCH); + leftcommon_score = leftcommonsubstring(w_word, w_gl); + } else { +- ngram_score = ngram(4, word, gl, NGRAM_ANY_MISMATCH + low); ++ //gl is lowercase already at this point ++ ngram_score = ngram(4, word, gl, NGRAM_ANY_MISMATCH); + leftcommon_score = leftcommonsubstring(word, gl.c_str()); + } + gscore[i] = +@@ -1802,14 +1860,6 @@ int SuggestMgr::ngram(int n, + l2 = su2.size(); + if (l2 == 0) + return 0; +- // lowering dictionary word +- const std::vector* p_su2 = &su2; +- std::vector su2_copy; +- if (opt & NGRAM_LOWERING) { +- su2_copy = su2; +- mkallsmall_utf(su2_copy, langnum); +- p_su2 = &su2_copy; +- } + for (int j = 1; j <= n; j++) { + ns = 0; + for (int i = 0; i <= (l1 - j); i++) { +@@ -1817,7 +1867,7 @@ int SuggestMgr::ngram(int n, + for (int l = 0; l <= (l2 - j); l++) { + for (k = 0; k < j; k++) { + const w_char& c1 = su1[i + k]; +- const w_char& c2 = (*p_su2)[l + k]; ++ const w_char& c2 = su2[l + k]; + if ((c1.l != c2.l) || (c1.h != c2.h)) + break; + } +@@ -1862,14 +1912,11 @@ int SuggestMgr::ngram(int n, + if (l2 == 0) + return 0; + l1 = s1.size(); +- std::string t(s2); +- if (opt & NGRAM_LOWERING) +- mkallsmall(t, csconv); + for (int j = 1; j <= n; j++) { + ns = 0; + for (int i = 0; i <= (l1 - j); i++) { +- //t is haystack, s1[i..i+j) is needle +- if (t.find(s1.c_str()+i, 0, j) != std::string::npos) { ++ //s2 is haystack, s1[i..i+j) is needle ++ if (s2.find(s1.c_str()+i, 0, j) != std::string::npos) { + ns++; + } else if (opt & NGRAM_WEIGHTED) { + ns--; +-- +2.9.3 + diff --git a/external/hunspell/0004-either-clear-will-be-called-anyway-before-use-or-its.patch b/external/hunspell/0004-either-clear-will-be-called-anyway-before-use-or-its.patch new file mode 100644 index 0000000000000..6c8a108d67197 --- /dev/null +++ b/external/hunspell/0004-either-clear-will-be-called-anyway-before-use-or-its.patch @@ -0,0 +1,81 @@ +From aab258adbd9c78931a36b96e58975a08000249a8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Fri, 10 Feb 2017 17:14:35 +0000 +Subject: [PATCH 4/4] either clear will be called anyway before use, or its + unused afterwards + +--- + src/hunspell/suggestmgr.cxx | 8 -------- + 1 file changed, 8 deletions(-) + +diff --git a/src/hunspell/suggestmgr.cxx b/src/hunspell/suggestmgr.cxx +index ea52707..ae34535 100644 +--- a/src/hunspell/suggestmgr.cxx ++++ b/src/hunspell/suggestmgr.cxx +@@ -1089,7 +1089,6 @@ void SuggestMgr::ngsuggest(std::vector& wlst, + continue; + + if (utf8) { +- w_f.clear(); + u8_u16(w_f, HENTRY_WORD(hp)); + + int leftcommon = leftcommonsubstring(w_word, w_f); +@@ -1115,7 +1114,6 @@ void SuggestMgr::ngsuggest(std::vector& wlst, + copy_field(f, HENTRY_DATA(hp), MORPH_PHON)) { + int sc2; + if (utf8) { +- w_f.clear(); + u8_u16(w_f, f); + + int leftcommon = leftcommonsubstring(w_word, w_f); +@@ -1139,7 +1137,6 @@ void SuggestMgr::ngsuggest(std::vector& wlst, + int scphon = -20000; + if (ph && (sc > 2) && (abs(n - (int)hp->clen) <= 3)) { + if (utf8) { +- w_candidate.clear(); + u8_u16(w_candidate, HENTRY_WORD(hp)); + mkallcap_utf(w_candidate, langnum); + u16_u8(candidate, w_candidate); +@@ -1148,7 +1145,6 @@ void SuggestMgr::ngsuggest(std::vector& wlst, + mkallcap(candidate, csconv); + } + f = phonet(candidate, *ph); +- w_f.clear(); + if (utf8) { + u8_u16(w_f, f); + scphon = 2 * ngram(3, w_target, w_f, +@@ -1254,7 +1250,6 @@ void SuggestMgr::ngsuggest(std::vector& wlst, + + for (int k = 0; k < nw; k++) { + if (utf8) { +- w_f.clear(); + u8_u16(w_f, glst[k].word); + + int leftcommon = leftcommonsubstring(w_word, w_f); +@@ -1335,7 +1330,6 @@ void SuggestMgr::ngsuggest(std::vector& wlst, + std::string gl; + int len; + if (utf8) { +- w_gl.clear(); + len = u8_u16(w_gl, guess[i]); + mkallsmall_utf(w_gl, langnum); + u16_u8(gl, w_gl); +@@ -1355,7 +1349,6 @@ void SuggestMgr::ngsuggest(std::vector& wlst, + } + // using 2-gram instead of 3, and other weightening + +- w_gl.clear(); + if (utf8) { + u8_u16(w_gl, gl); + //w_gl is lowercase already at this point +@@ -1421,7 +1414,6 @@ void SuggestMgr::ngsuggest(std::vector& wlst, + // lowering rootphon[i] + std::string gl; + int len; +- w_gl.clear(); + if (utf8) { + len = u8_u16(w_gl, rootsphon[i]); + mkallsmall_utf(w_gl, langnum); +-- +2.9.3 + diff --git a/external/hunspell/0005-fix-syllable-counting-in-compound-word-handling.patch b/external/hunspell/0005-fix-syllable-counting-in-compound-word-handling.patch new file mode 100644 index 0000000000000..670d938e54414 --- /dev/null +++ b/external/hunspell/0005-fix-syllable-counting-in-compound-word-handling.patch @@ -0,0 +1,66 @@ +From f4ec6a283f972c82d068f4472320d424c40d45cb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?L=C3=A1szl=C3=B3=20N=C3=A9meth?= + +Date: Thu, 23 Mar 2017 16:40:52 +0100 +Subject: [PATCH 5/7] fix syllable counting in compound word handling +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Note: one of the fixed regressions is related to an old +hidden mistake: using clen instead of blen of the stem +word lengths was indifferent with the original get_syllable(), +because blen == clen at 8-bit encodings, and UTF-8 +words were handled by null-termination. Implementing Unicode +support in Hunspell, clen was changed only in +compound_check_morph() to blen accidentally, but not +in compound_check(), resulting problems from the +recent std::string conversion. + +Now this commit is a real fix for the regression from the +commit c63c93237e4decdba5544a96093448605ac549c2, +instead of the following bad fix: + +commit d06b0c57ae87ee8743f1bf53f80c1f8e364db619 +Author: László Németh +Date: Fri Mar 17 15:11:23 2017 +0100 + + fix Hungarian compound word handling +--- + src/hunspell/affixmgr.cxx | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/hunspell/affixmgr.cxx b/src/hunspell/affixmgr.cxx +index 2ed8233..3d65539 100644 +--- a/src/hunspell/affixmgr.cxx ++++ b/src/hunspell/affixmgr.cxx +@@ -1816,7 +1816,7 @@ struct hentry* AffixMgr::compound_check(const std::string& word, + // LANG_hu section: spec. Hungarian rule + if (langnum == LANG_hu) { + // calculate syllable number of the word +- numsyllable += get_syllable(st.substr(i)); ++ numsyllable += get_syllable(st.substr(0, i)); + // + 1 word, if syllable number of the prefix > 1 (hungarian + // convention) + if (pfx && (get_syllable(pfx->getKey()) > 1)) +@@ -1901,7 +1901,7 @@ struct hentry* AffixMgr::compound_check(const std::string& word, + (compoundend && TESTAFF(rv->astr, compoundend, rv->alen))) && + (((cpdwordmax == -1) || (wordnum + 1 < cpdwordmax)) || + ((cpdmaxsyllable != 0) && +- (numsyllable + get_syllable(std::string(HENTRY_WORD(rv), rv->clen)) <= ++ (numsyllable + get_syllable(std::string(HENTRY_WORD(rv), rv->blen)) <= + cpdmaxsyllable))) && + ( + // test CHECKCOMPOUNDPATTERN +@@ -2382,7 +2382,7 @@ int AffixMgr::compound_check_morph(const char* word, + // LANG_hu section: spec. Hungarian rule + if (langnum == LANG_hu) { + // calculate syllable number of the word +- numsyllable += get_syllable(st.substr(i)); ++ numsyllable += get_syllable(st.substr(0, i)); + + // + 1 word, if syllable number of the prefix > 1 (hungarian + // convention) +-- +2.7.4 + diff --git a/external/hunspell/ExternalProject_hunspell.mk b/external/hunspell/ExternalProject_hunspell.mk index 160f2b1864fd4..984485fc2a2c5 100644 --- a/external/hunspell/ExternalProject_hunspell.mk +++ b/external/hunspell/ExternalProject_hunspell.mk @@ -13,14 +13,25 @@ $(eval $(call gb_ExternalProject_register_targets,hunspell,\ build \ )) +hunspell_CPPCLAGS=$(CPPFLAGS) + +ifneq (,$(filter ANDROID DRAGONFLY FREEBSD IOS LINUX NETBSD OPENBSD,$(OS))) +ifneq (,$(gb_ENABLE_DBGUTIL)) +hunspell_CPPFLAGS+=-D_GLIBCXX_DEBUG +endif +endif + $(call gb_ExternalProject_get_state_target,hunspell,build): $(call gb_ExternalProject_run,build,\ + $(if $(filter IOS MACOSX,$(OS)),ACLOCAL="aclocal -I $(SRCDIR)/m4/mac") \ LIBS="$(gb_STDLIBS) $(LIBS)" \ - ./configure --disable-shared --disable-nls --with-pic \ + autoreconf && \ + $(SHELL) ./configure --disable-shared --disable-nls --with-pic \ $(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM))\ $(if $(filter AIX,$(OS)),CFLAGS="-D_LINUX_SOURCE_COMPAT") \ - $(if $(filter-out WNTGCC,$(OS)$(COM)),,LDFLAGS="-Wl,--enable-runtime-pseudo-reloc-v2") \ - && $(MAKE) \ + $(if $(hunspell_CPPFLAGS),CPPFLAGS='$(hunspell_CPPFLAGS)') \ + CXXFLAGS="$(CXXFLAGS) $(if $(debug),$(gb_COMPILERNOOPTFLAGS) $(gb_DEBUGINFO_FLAGS) $(gb_DEBUG_CXXFLAGS),$(gb_COMPILEROPTFLAGS))" \ + && cd src/hunspell && $(MAKE) \ ) # vim: set noet sw=4 ts=4: diff --git a/external/hunspell/UnpackedTarball_hunspell.mk b/external/hunspell/UnpackedTarball_hunspell.mk index e70e33f379111..40a4a101a8f09 100644 --- a/external/hunspell/UnpackedTarball_hunspell.mk +++ b/external/hunspell/UnpackedTarball_hunspell.mk @@ -11,15 +11,25 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,hunspell)) $(eval $(call gb_UnpackedTarball_set_tarball,hunspell,$(HUNSPELL_TARBALL))) -$(eval $(call gb_UnpackedTarball_add_patches,hunspell,\ - external/hunspell/hunspell-solaris.patch \ - external/hunspell/hunspell-windows.patch \ -)) - ifeq ($(COM),MSC) $(eval $(call gb_UnpackedTarball_set_post_action,hunspell,\ touch src/hunspell/config.h \ )) endif +$(eval $(call gb_UnpackedTarball_set_patchlevel,hunspell,1)) + +$(eval $(call gb_UnpackedTarball_add_patches,hunspell, \ + external/hunspell/0001-Revert-Remove-autotools-autogenerated-files.patch \ + external/hunspell/0001-unroll-this-a-bit.patch \ + external/hunspell/0001-cppcheck-redundant-c_str.patch \ + external/hunspell/0001-cppcheck-rv-is-reassigned-before-old-value-used.patch \ + external/hunspell/0001-loop-via-iterators.patch \ + external/hunspell/0002-add-a-get_clen_and_captype-varient-that-takes-a-buff.patch \ + external/hunspell/0003-hoist-string-lowering-from-ngram-to-ngsuggest.patch \ + external/hunspell/0004-either-clear-will-be-called-anyway-before-use-or-its.patch \ + external/hunspell/0002-fix-other-regression-in-compounding.patch \ + external/hunspell/0005-fix-syllable-counting-in-compound-word-handling.patch \ +)) + # vim: set noet sw=4 ts=4: diff --git a/external/hunspell/hunspell-solaris.patch b/external/hunspell/hunspell-solaris.patch deleted file mode 100644 index b07bbb254c3f0..0000000000000 --- a/external/hunspell/hunspell-solaris.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- misc/hunspell-1.3.2.orig/src/tools/hunspell.cxx 2010-02-27 23:42:05.000000000 +0000 -+++ misc/build/hunspell-1.3.2/src/tools/hunspell.cxx 2010-02-27 23:43:02.000000000 +0000 -@@ -10,6 +10,9 @@ - #include "hunspell.hxx" - #include "csutil.hxx" - -+// switch off iconv support for tests (fixing Solaris problems) -+#undef HAVE_ICONV -+ - #ifndef HUNSPELL_EXTRA - #define suggest_auto suggest - #endif diff --git a/external/hunspell/hunspell-windows.patch b/external/hunspell/hunspell-windows.patch deleted file mode 100644 index 357272d17c008..0000000000000 --- a/external/hunspell/hunspell-windows.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- /dev/null 2016-03-15 09:11:25.292954614 +0000 -+++ misc/hunspell-1.3.4/src/hunspell/hunvisapi.h 2016-04-06 16:40:47.181698825 +0100 -@@ -0,0 +1,18 @@ -+#ifndef _HUNSPELL_VISIBILITY_H_ -+#define _HUNSPELL_VISIBILITY_H_ -+ -+#if defined(HUNSPELL_STATIC) -+# define LIBHUNSPELL_DLL_EXPORTED -+#elif defined(_MSC_VER) -+# if defined(BUILDING_LIBHUNSPELL) -+# define LIBHUNSPELL_DLL_EXPORTED __declspec(dllexport) -+# else -+# define LIBHUNSPELL_DLL_EXPORTED __declspec(dllimport) -+# endif -+#elif defined(BUILDING_LIBHUNSPELL) && 1 -+# define LIBHUNSPELL_DLL_EXPORTED __attribute__((__visibility__("default"))) -+#else -+# define LIBHUNSPELL_DLL_EXPORTED -+#endif -+ -+#endif diff --git a/external/icu/UnpackedTarball_icu.mk b/external/icu/UnpackedTarball_icu.mk index 0e4a6455a0a34..f1658a2295865 100644 --- a/external/icu/UnpackedTarball_icu.mk +++ b/external/icu/UnpackedTarball_icu.mk @@ -27,6 +27,8 @@ $(eval $(call gb_UnpackedTarball_add_patches,icu,\ $(if $(filter-out ANDROID,$(OS)),external/icu/icu4c-icudata-stdlibs.diff) \ $(if $(filter EMSCRIPTEN,$(OS)),external/icu/icu4c-emscripten.patch.1) \ external/icu/khmerbreakengine.patch \ + external/icu/icu4c-changeset-39671.patch.1 \ + external/icu/icu4c-changeset-40324.patch.1 \ )) $(eval $(call gb_UnpackedTarball_add_file,icu,source/data/brkitr/khmerdict.dict,external/icu/khmerdict.dict)) diff --git a/external/icu/icu4c-changeset-39671.patch.1 b/external/icu/icu4c-changeset-39671.patch.1 new file mode 100644 index 0000000000000..b8ac1385364e1 --- /dev/null +++ b/external/icu/icu4c-changeset-39671.patch.1 @@ -0,0 +1,189 @@ +diff -ur icu.org/source/common/utext.cpp icu/source/common/utext.cpp +--- icu.org/source/common/utext.cpp 2016-06-15 20:58:17.000000000 +0200 ++++ icu/source/common/utext.cpp 2017-04-21 16:38:15.993398034 +0200 +@@ -847,9 +847,15 @@ + //------------------------------------------------------------------------------ + + // Chunk size. +-// Must be less than 85, because of byte mapping from UChar indexes to native indexes. +-// Worst case is three native bytes to one UChar. (Supplemenaries are 4 native bytes +-// to two UChars.) ++// Must be less than 42 (256/6), because of byte mapping from UChar indexes to native indexes. ++// Worst case there are six UTF-8 bytes per UChar. ++// obsolete 6 byte form fd + 5 trails maps to fffd ++// obsolete 5 byte form fc + 4 trails maps to fffd ++// non-shortest 4 byte forms maps to fffd ++// normal supplementaries map to a pair of utf-16, two utf8 bytes per utf-16 unit ++// mapToUChars array size must allow for the worst case, 6. ++// This could be brought down to 4, by treating fd and fc as pure illegal, ++// rather than obsolete lead bytes. But that is not compatible with the utf-8 access macros. + // + enum { UTF8_TEXT_CHUNK_SIZE=32 }; + +@@ -867,6 +873,15 @@ + // pair. Doing this is simpler than checking for the edge case. + // + ++// erAck: older MSVC used on libreoffice-5-3 and 5-2 bails out with ++// error C2070: 'unknown': illegal sizeof operand ++// for sizeof(UTF8Buf::mapToUChars) ++// so have an ugly workaround: ++// First define a macro of the original size expression, so a follow-up patch ++// on the original code would fail.. ++#define UGLY_MAPTOUCHARS_SIZE (UTF8_TEXT_CHUNK_SIZE*6+6) ++#define UGLY_SIZEOF_MAPTOUCHARS (sizeof(uint8_t)*(UGLY_MAPTOUCHARS_SIZE)) ++ + struct UTF8Buf { + int32_t bufNativeStart; // Native index of first char in UChar buf + int32_t bufNativeLimit; // Native index following last char in buf. +@@ -889,7 +904,7 @@ + // Requires two extra slots, + // one for a supplementary starting in the last normal position, + // and one for an entry for the buffer limit position. +- uint8_t mapToUChars[UTF8_TEXT_CHUNK_SIZE*3+6]; // Map native offset from bufNativeStart to ++ uint8_t mapToUChars[UGLY_MAPTOUCHARS_SIZE]; // Map native offset from bufNativeStart to + // correspoding offset in filled part of buf. + int32_t align; + }; +@@ -1032,6 +1047,7 @@ + // Requested index is in this buffer. + u8b = (UTF8Buf *)ut->p; // the current buffer + mapIndex = ix - u8b->toUCharsMapStart; ++ U_ASSERT(mapIndex < (int32_t)UGLY_SIZEOF_MAPTOUCHARS); + ut->chunkOffset = u8b->mapToUChars[mapIndex] - u8b->bufStartIdx; + return TRUE; + +@@ -1298,6 +1314,10 @@ + // Can only do this if the incoming index is somewhere in the interior of the string. + // If index is at the end, there is no character there to look at. + if (ix != ut->b) { ++ // Note: this function will only move the index back if it is on a trail byte ++ // and there is a preceding lead byte and the sequence from the lead ++ // through this trail could be part of a valid UTF-8 sequence ++ // Otherwise the index remains unchanged. + U8_SET_CP_START(s8, 0, ix); + } + +@@ -1311,7 +1331,10 @@ + UChar *buf = u8b->buf; + uint8_t *mapToNative = u8b->mapToNative; + uint8_t *mapToUChars = u8b->mapToUChars; +- int32_t toUCharsMapStart = ix - (UTF8_TEXT_CHUNK_SIZE*3 + 1); ++ int32_t toUCharsMapStart = ix - UGLY_SIZEOF_MAPTOUCHARS + 1; ++ // Note that toUCharsMapStart can be negative. Happens when the remaining ++ // text from current position to the beginning is less than the buffer size. ++ // + 1 because mapToUChars must have a slot at the end for the bufNativeLimit entry. + int32_t destIx = UTF8_TEXT_CHUNK_SIZE+2; // Start in the overflow region + // at end of buffer to leave room + // for a surrogate pair at the +@@ -1338,6 +1361,7 @@ + if (c<0x80) { + // Special case ASCII range for speed. + buf[destIx] = (UChar)c; ++ U_ASSERT(toUCharsMapStart <= srcIx); + mapToUChars[srcIx - toUCharsMapStart] = (uint8_t)destIx; + mapToNative[destIx] = (uint8_t)(srcIx - toUCharsMapStart); + } else { +@@ -1367,6 +1391,7 @@ + do { + mapToUChars[sIx-- - toUCharsMapStart] = (uint8_t)destIx; + } while (sIx >= srcIx); ++ U_ASSERT(toUCharsMapStart <= (srcIx+1)); + + // Set native indexing limit to be the current position. + // We are processing a non-ascii, non-native-indexing char now; +@@ -1541,6 +1566,7 @@ + U_ASSERT(index>=ut->chunkNativeStart+ut->nativeIndexingLimit); + U_ASSERT(index<=ut->chunkNativeLimit); + int32_t mapIndex = index - u8b->toUCharsMapStart; ++ U_ASSERT(mapIndex < (int32_t)UGLY_SIZEOF_MAPTOUCHARS); + int32_t offset = u8b->mapToUChars[mapIndex] - u8b->bufStartIdx; + U_ASSERT(offset>=0 && offset<=ut->chunkLength); + return offset; +diff -ur icu.org/source/test/intltest/utxttest.cpp icu/source/test/intltest/utxttest.cpp +--- icu.org/source/test/intltest/utxttest.cpp 2016-06-15 20:58:17.000000000 +0200 ++++ icu/source/test/intltest/utxttest.cpp 2017-04-21 16:14:57.383814739 +0200 +@@ -67,6 +67,8 @@ + if (exec) Ticket10983(); break; + case 7: name = "Ticket12130"; + if (exec) Ticket12130(); break; ++ case 8: name = "Ticket12888"; ++ if (exec) Ticket12888(); break; + default: name = ""; break; + } + } +@@ -1583,3 +1585,63 @@ + } + utext_close(&ut); + } ++ ++// Ticket 12888: bad handling of illegal utf-8 containing many instances of the archaic, now illegal, ++// six byte utf-8 forms. Original implementation had an assumption that ++// there would be at most three utf-8 bytes per UTF-16 code unit. ++// The five and six byte sequences map to a single replacement character. ++ ++void UTextTest::Ticket12888() { ++ const char *badString = ++ "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80" ++ "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80" ++ "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80" ++ "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80" ++ "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80" ++ "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80" ++ "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80" ++ "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80" ++ "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80" ++ "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80" ++ "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80" ++ "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80" ++ "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80" ++ "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80" ++ "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80" ++ "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80" ++ "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80" ++ "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80" ++ "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80" ++ "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"; ++ ++ UErrorCode status = U_ZERO_ERROR; ++ LocalUTextPointer ut(utext_openUTF8(NULL, badString, -1, &status)); ++ TEST_SUCCESS(status); ++ for (;;) { ++ UChar32 c = utext_next32(ut.getAlias()); ++ if (c == U_SENTINEL) { ++ break; ++ } ++ } ++ int32_t endIdx = utext_getNativeIndex(ut.getAlias()); ++ if (endIdx != (int32_t)strlen(badString)) { ++ errln("%s:%d expected=%d, actual=%d", __FILE__, __LINE__, strlen(badString), endIdx); ++ return; ++ } ++ ++ for (int32_t prevIndex = endIdx; prevIndex>0;) { ++ UChar32 c = utext_previous32(ut.getAlias()); ++ int32_t currentIndex = utext_getNativeIndex(ut.getAlias()); ++ if (c != 0xfffd) { ++ errln("%s:%d (expected, actual, index) = (%d, %d, %d)\n", ++ __FILE__, __LINE__, 0xfffd, c, currentIndex); ++ break; ++ } ++ if (currentIndex != prevIndex - 6) { ++ errln("%s:%d: wrong index. Expected, actual = %d, %d", ++ __FILE__, __LINE__, prevIndex - 6, currentIndex); ++ break; ++ } ++ prevIndex = currentIndex; ++ } ++} +diff -ur icu.org/source/test/intltest/utxttest.h icu/source/test/intltest/utxttest.h +--- icu.org/source/test/intltest/utxttest.h 2016-06-15 20:58:17.000000000 +0200 ++++ icu/source/test/intltest/utxttest.h 2017-04-21 16:14:57.383814739 +0200 +@@ -38,6 +38,7 @@ + void Ticket10562(); + void Ticket10983(); + void Ticket12130(); ++ void Ticket12888(); + + private: + struct m { // Map between native indices & code points. diff --git a/external/icu/icu4c-changeset-40324.patch.1 b/external/icu/icu4c-changeset-40324.patch.1 new file mode 100644 index 0000000000000..a651eb19415d8 --- /dev/null +++ b/external/icu/icu4c-changeset-40324.patch.1 @@ -0,0 +1,11 @@ +# https://ssl.icu-project.org/trac/changeset/40324/trunk/icu4c/source/i18n/zonemeta.cpp +Index: trunk/icu4c/source/i18n/zonemeta.cpp +=================================================================== +--- icu.orig/source/i18n/zonemeta.cpp ++++ icu/source/i18n/zonemeta.cpp +@@ -691,5 +691,4 @@ + if (U_FAILURE(status)) { + delete mzMappings; +- deleteOlsonToMetaMappingEntry(entry); + uprv_free(entry); + break; diff --git a/external/libcmis/UnpackedTarball_cmis.mk b/external/libcmis/UnpackedTarball_cmis.mk index 8fb247fb87aa6..0b76efd254a1a 100644 --- a/external/libcmis/UnpackedTarball_cmis.mk +++ b/external/libcmis/UnpackedTarball_cmis.mk @@ -17,6 +17,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,cmis, \ external/libcmis/libcmis-libxml2_compatibility.patch \ external/libcmis/libcmis-fix-google-drive.patch \ external/libcmis/libcmis-google-2FA-implementation.patch \ + external/libcmis/libcmis-fix-google-drive-2.patch \ external/libcmis/libcmis-sharepoint-repository-root.patch \ )) diff --git a/external/libcmis/libcmis-fix-google-drive-2.patch b/external/libcmis/libcmis-fix-google-drive-2.patch new file mode 100755 index 0000000000000..7d11514d82ee3 --- /dev/null +++ b/external/libcmis/libcmis-fix-google-drive-2.patch @@ -0,0 +1,125 @@ +diff --git a/src/libcmis/oauth2-providers.cxx b/src/libcmis/oauth2-providers.cxx +index 74c0fec..30fedb0 100644 +--- a/src/libcmis/oauth2-providers.cxx ++++ b/src/libcmis/oauth2-providers.cxx +@@ -41,6 +41,7 @@ + #define CHALLENGE_PAGE_ACTION_LEN sizeof( CHALLENGE_PAGE_ACTION ) - 1 + #define PIN_FORM_ACTION "/signin/challenge/ipp" + #define PIN_FORM_ACTION_LEN sizeof( PIN_FORM_ACTION ) - 1 ++#define PIN_INPUT_NAME "Pin" + + using namespace std; + +@@ -80,7 +81,7 @@ string OAuth2Providers::OAuth2Gdrive( HttpSession* session, const string& authUr + // send the first get, receive the html login page + res = session->httpGetRequest( authUrl )->getStream( )->str( ); + } +- catch ( const CurlException& e ) ++ catch ( const CurlException& ) + { + return string( ); + } +@@ -102,7 +103,7 @@ string OAuth2Providers::OAuth2Gdrive( HttpSession* session, const string& authUr + loginEmailRes = session->httpPostRequest ( loginEmailLink, loginEmailIs, CONTENT_TYPE ) + ->getStream( )->str( ); + } +- catch ( const CurlException& e ) ++ catch ( const CurlException& ) + { + return string( ); + } +@@ -113,7 +114,7 @@ string OAuth2Providers::OAuth2Gdrive( HttpSession* session, const string& authUr + if ( !parseResponse( loginEmailRes.c_str( ), loginPasswdPost, loginPasswdLink ) ) + return string( ); + +- loginPasswdPost += "&Passwd="; ++ loginPasswdPost += "Passwd="; + loginPasswdPost += string( password ); + + istringstream loginPasswdIs( loginPasswdPost ); +@@ -124,7 +125,7 @@ string OAuth2Providers::OAuth2Gdrive( HttpSession* session, const string& authUr + loginPasswdRes = session->httpPostRequest ( loginPasswdLink, loginPasswdIs, CONTENT_TYPE ) + ->getStream( )->str( ); + } +- catch ( const CurlException& e ) ++ catch ( const CurlException& ) + { + return string( ); + } +@@ -152,7 +153,7 @@ string OAuth2Providers::OAuth2Gdrive( HttpSession* session, const string& authUr + } + + loginChallengeLink = "https://accounts.google.com" + loginChallengeLink; +- loginChallengePost += "Pin="; ++ loginChallengePost += string( PIN_INPUT_NAME ) + "="; + loginChallengePost += string( pin ); + + istringstream loginChallengeIs( loginChallengePost ); +@@ -163,7 +164,7 @@ string OAuth2Providers::OAuth2Gdrive( HttpSession* session, const string& authUr + loginChallengeRes = session->httpPostRequest ( loginChallengeLink, loginChallengeIs, CONTENT_TYPE ) + ->getStream( )->str( ); + } +- catch ( const CurlException& e ) ++ catch ( const CurlException& ) + { + return string( ); + } +@@ -221,7 +222,7 @@ string OAuth2Providers::OAuth2Alfresco( HttpSession* session, const string& auth + { + res = session->httpGetRequest( authUrl )->getStream( )->str( ); + } +- catch ( const CurlException& e ) ++ catch ( const CurlException& ) + { + return string( ); + } +@@ -247,7 +248,7 @@ string OAuth2Providers::OAuth2Alfresco( HttpSession* session, const string& auth + // Alfresco code is in the redirect link + resp = session->httpPostRequest( loginLink, loginIs, CONTENT_TYPE, false ); + } +- catch ( const CurlException& e ) ++ catch ( const CurlException& ) + { + return string( ); + } +@@ -291,6 +292,8 @@ int OAuth2Providers::parseResponse ( const char* response, string& post, string& + if ( reader == NULL ) return 0; + + bool readInputField = false; ++ bool bIsRightForm = false; ++ bool bHasPinField = false; + + while ( true ) + { +@@ -301,6 +304,12 @@ int OAuth2Providers::parseResponse ( const char* response, string& post, string& + // Find the redirect link + if ( xmlStrEqual( nodeName, BAD_CAST( "form" ) ) ) + { ++ // 2FA: Don't add fields form other forms not having pin field ++ if ( bIsRightForm && !bHasPinField ) ++ post = string( "" ); ++ if ( bIsRightForm && bHasPinField ) ++ break; ++ + xmlChar* action = xmlTextReaderGetAttribute( reader, + BAD_CAST( "action" )); + +@@ -311,7 +320,7 @@ int OAuth2Providers::parseResponse ( const char* response, string& post, string& + bool bChallengePage = ( strncmp( (char*)action, + CHALLENGE_PAGE_ACTION, + CHALLENGE_PAGE_ACTION_LEN ) == 0 ); +- bool bIsRightForm = ( strncmp( (char*)action, ++ bIsRightForm = ( strncmp( (char*)action, + PIN_FORM_ACTION, + PIN_FORM_ACTION_LEN ) == 0 ); + if ( ( xmlStrlen( action ) > 0 ) +@@ -332,6 +341,8 @@ int OAuth2Providers::parseResponse ( const char* response, string& post, string& + BAD_CAST( "name" )); + xmlChar* value = xmlTextReaderGetAttribute( reader, + BAD_CAST( "value" )); ++ if ( name != NULL && strcmp( (char*)name, PIN_INPUT_NAME ) == 0 ) ++ bHasPinField = true; + if ( ( name != NULL ) && ( value!= NULL ) ) + { + if ( ( xmlStrlen( name ) > 0) && ( xmlStrlen( value ) > 0) ) + diff --git a/external/libmwaw/0001-fix-build-with-msvc.patch.1 b/external/libmwaw/0001-fix-build-with-msvc.patch.1 index 95b5e0cbeb0b1..ab6035811ce52 100644 --- a/external/libmwaw/0001-fix-build-with-msvc.patch.1 +++ b/external/libmwaw/0001-fix-build-with-msvc.patch.1 @@ -1,54 +1,106 @@ -From 01495bf788fe32723f222599e34ba1779ca3d594 Mon Sep 17 00:00:00 2001 +From ae8f006018f6cfc79b86f327116f6ceed71692f9 Mon Sep 17 00:00:00 2001 From: David Tardon -Date: Fri, 24 Jun 2016 14:01:14 +0200 -Subject: [PATCH] fix build with msvc +Date: Wed, 23 Nov 2016 09:06:35 +0100 +Subject: [PATCH] fix build with MSVC --- - src/lib/CricketDrawParser.cxx | 4 ++-- - src/lib/FreeHandParser.cxx | 4 ++-- - 2 files changed, 4 insertions(+), 4 deletions(-) + src/lib/PowerPoint3Parser.cxx | 30 +++++++++++++++--------------- + 1 file changed, 15 insertions(+), 15 deletions(-) -diff --git a/src/lib/CricketDrawParser.cxx b/src/lib/CricketDrawParser.cxx -index f04be91..9fe5a32 100644 ---- a/src/lib/CricketDrawParser.cxx -+++ b/src/lib/CricketDrawParser.cxx -@@ -930,12 +930,12 @@ bool CricketDrawParser::readShape() - MWAWBox2f box(shape.m_vertices[0], shape.m_vertices[2]); - int angle[2] = { shape.m_angles[0], shape.m_angles[1] }; - if (box.min()[1]>box.max()[1]) { -- std::swap(box.min()[1],box.max()[1]); -+ std::swap(box.min()[1],box.max()[1]); - angle[0]=180-shape.m_angles[1]; - angle[1]=180-shape.m_angles[0]; - } - if (angle[1]<=angle[0]) -- std::swap(angle[0],angle[1]); -+ std::swap(angle[0],angle[1]); - if (angle[1]>360) { - int numLoop=int(angle[1]/360)-1; - angle[0]-=numLoop*360; -diff --git a/src/lib/FreeHandParser.cxx b/src/lib/FreeHandParser.cxx -index 78d8b08..e97e6e3 100644 ---- a/src/lib/FreeHandParser.cxx -+++ b/src/lib/FreeHandParser.cxx -@@ -999,7 +999,7 @@ bool FreeHandParser::checkHeader(MWAWHeader *header, bool strict) - getPageSpan().setFormOrientation(MWAWPageSpan::LANDSCAPE); - for (int j=0; j<4; ++j) { - if (j==1) continue; -- std::swap(dim[2*j],dim[2*j+1]); -+ std::swap(dim[2*j],dim[2*j+1]); - } - val &= 0xFFDF; - } -@@ -1016,7 +1016,7 @@ bool FreeHandParser::checkHeader(MWAWHeader *header, bool strict) - f << "landscape,"; - getPageSpan().setFormOrientation(MWAWPageSpan::LANDSCAPE); - for (int j=0; j<4; ++j) -- std::swap(dim[2*j],dim[2*j+1]); -+ std::swap(dim[2*j],dim[2*j+1]); - } - if (val&2) f << "crop[mark],"; - if (val&4) f << "center[mark],"; +diff --git a/src/lib/PowerPoint3Parser.cxx b/src/lib/PowerPoint3Parser.cxx +index 9ecbe1b..51348d6 100644 +--- a/src/lib/PowerPoint3Parser.cxx ++++ b/src/lib/PowerPoint3Parser.cxx +@@ -1076,15 +1076,15 @@ bool PowerPoint3Parser::readDocInfo(MWAWEntry const &entry) + f << "],"; + for (int i=0; i<4; ++i) dim[i]=int(input->readLong(2)); + if (!m_state->m_isMacFile) { +- std::swap(dim[0],dim[1]); +- std::swap(dim[2],dim[3]); ++ std::swap(dim[0],dim[1]); ++ std::swap(dim[2],dim[3]); + } + MWAWBox2i pageBox(MWAWVec2i(dim[1],dim[0]),MWAWVec2i(dim[3],dim[2])); + f << "dim[page]=" << pageBox << ","; + for (int i=0; i<4; ++i) dim[i]=int(input->readLong(2)); + if (!m_state->m_isMacFile) { +- std::swap(dim[0],dim[1]); +- std::swap(dim[2],dim[3]); ++ std::swap(dim[0],dim[1]); ++ std::swap(dim[2],dim[3]); + } + MWAWBox2i paperBox=MWAWBox2i(MWAWVec2i(dim[0],dim[1]),MWAWVec2i(dim[2],dim[3])); + f << "dim[paper]=" << paperBox << ","; +@@ -1673,16 +1673,16 @@ bool PowerPoint3Parser::readSlideFormats(MWAWEntry const &entry, std::vectorreadLong(2)); +- if (!isMacFile) std::swap(dim[0],dim[1]); ++ if (!isMacFile) std::swap(dim[0],dim[1]); + f << "dim0=" << MWAWVec2i(dim[1], dim[0]) << ","; + format.m_gradientOffset=int(input->readLong(2)); + if (format.m_gradientOffset) f << "grad[col,offset]=" << format.m_gradientOffset << ","; + for (int j=0; j<2; ++j) dim[j]=int(input->readLong(2)); +- if (!isMacFile) std::swap(dim[0],dim[1]); ++ if (!isMacFile) std::swap(dim[0],dim[1]); + format.m_margins=MWAWVec2i(dim[1], dim[0]); + f << "box[margins]=" << format.m_margins << ","; + for (int j=0; j<2; ++j) dim[j]=int(input->readLong(2)); +- if (!isMacFile) std::swap(dim[0],dim[1]); ++ if (!isMacFile) std::swap(dim[0],dim[1]); + format.m_shadowOffset=MWAWVec2i(dim[1], dim[0]); + if (format.m_shadowOffset!=MWAWVec2i(0,0)) + f << "shadow[offset]=" << format.m_shadowOffset << ","; +@@ -1727,15 +1727,15 @@ bool PowerPoint3Parser::readSlidePolygons(MWAWEntry const &entry, std::vectorreadLong(2)); + if (!isMacFile) { +- std::swap(dim[0],dim[1]); +- std::swap(dim[2],dim[3]); ++ std::swap(dim[0],dim[1]); ++ std::swap(dim[2],dim[3]); + } + poly.m_box=MWAWBox2i(MWAWVec2i(dim[1],dim[0]), MWAWVec2i(dim[3],dim[2])); + f << "box=" << poly.m_box << ","; + f << "pts=["; + for (int pt=0; ptreadLong(2)); +- if (!isMacFile) std::swap(dim[0],dim[1]); ++ if (!isMacFile) std::swap(dim[0],dim[1]); + poly.m_vertices.push_back(MWAWVec2f(float(dim[1])/8.f, float(dim[0])/8.f)); + f << poly.m_vertices.back() << ","; + } +@@ -1918,8 +1918,8 @@ bool PowerPoint3Parser::readFramesList(MWAWEntry const &entry, PowerPoint3Parser + int dim[4]; + for (int d=0; d<4; ++d) dim[d]=int(input->readLong(2)); + if (!isMacFile) { +- std::swap(dim[0],dim[1]); +- std::swap(dim[2],dim[3]); ++ std::swap(dim[0],dim[1]); ++ std::swap(dim[2],dim[3]); + } + frame.m_dimension=MWAWBox2i(MWAWVec2i(dim[1],dim[0]), MWAWVec2i(dim[3],dim[2])); + f << "dim=" << frame.m_dimension << ","; +@@ -2233,8 +2233,8 @@ bool PowerPoint3Parser::readTextZone(MWAWEntry const &entry, PowerPoint3ParserIn + int dim[4]; + for (int i=0; i<4; ++i) dim[i]=int(input->readLong(2)); + if (!isMacFile) { +- std::swap(dim[0],dim[1]); +- std::swap(dim[2],dim[3]); ++ std::swap(dim[0],dim[1]); ++ std::swap(dim[2],dim[3]); + } + tZone.m_box=MWAWBox2i(MWAWVec2i(dim[1],dim[0]),MWAWVec2i(dim[3],dim[2])); + f << "dim=" << tZone.m_box << ","; +@@ -3544,7 +3544,7 @@ bool PowerPoint3Parser::sendFrame(PowerPoint3ParserInternal::Frame const &frame, + case 3: { + float angle[2] = { frame.m_angles[0], frame.m_angles[0]+frame.m_angles[1] }; + if (angle[1](angle[0],angle[1]); ++ std::swap(angle[0],angle[1]); + if (angle[1]>360) { + int numLoop=int(angle[1]/360)-1; + angle[0]-=float(numLoop*360); -- -2.7.4 +2.9.3 diff --git a/external/libmwaw/0001-ofz-1037-resize-vector-correctly.patch.1 b/external/libmwaw/0001-ofz-1037-resize-vector-correctly.patch.1 new file mode 100644 index 0000000000000..df64f7bcf4d25 --- /dev/null +++ b/external/libmwaw/0001-ofz-1037-resize-vector-correctly.patch.1 @@ -0,0 +1,25 @@ +From 68b3b74569881248bfb6cbb4266177cc253b292f Mon Sep 17 00:00:00 2001 +From: David Tardon +Date: Sat, 8 Apr 2017 14:03:29 +0200 +Subject: [PATCH] ofz#1037 resize vector correctly + +--- + src/lib/MsWrd1Parser.cxx | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/lib/MsWrd1Parser.cxx b/src/lib/MsWrd1Parser.cxx +index 63547e6..3626064 100644 +--- a/src/lib/MsWrd1Parser.cxx ++++ b/src/lib/MsWrd1Parser.cxx +@@ -902,7 +902,7 @@ bool MsWrd1Parser::readFootnoteCorrespondance(MWAWVec2i limits) + int id = fIt++->second; + fPos[1] = fIt==footnoteMap.end() ? m_state->m_eot : fIt->first; + if (id >= int(m_state->m_footnotesList.size())) +- m_state->m_footnotesList.resize(size_t(id),MWAWVec2l(0,0)); ++ m_state->m_footnotesList.resize(size_t(id)+1,MWAWVec2l(0,0)); + m_state->m_footnotesList[size_t(id)]=fPos; + } + ascii().addDelimiter(input->tell(),'|'); +-- +2.13.0 + diff --git a/external/libmwaw/Library_mwaw.mk b/external/libmwaw/Library_mwaw.mk index c28fe0117c2f3..f003626ec20fc 100644 --- a/external/libmwaw/Library_mwaw.mk +++ b/external/libmwaw/Library_mwaw.mk @@ -161,6 +161,8 @@ $(eval $(call gb_Library_add_generated_exception_objects,mwaw,\ UnpackedTarball/libmwaw/src/lib/NisusWrtStruct \ UnpackedTarball/libmwaw/src/lib/NisusWrtText \ UnpackedTarball/libmwaw/src/lib/PixelPaintParser \ + UnpackedTarball/libmwaw/src/lib/PowerPoint1Parser \ + UnpackedTarball/libmwaw/src/lib/PowerPoint3Parser \ UnpackedTarball/libmwaw/src/lib/RagTime5Chart \ UnpackedTarball/libmwaw/src/lib/RagTime5ClusterManager \ UnpackedTarball/libmwaw/src/lib/RagTime5Graph \ diff --git a/external/libmwaw/UnpackedTarball_libmwaw.mk b/external/libmwaw/UnpackedTarball_libmwaw.mk index 17c3ec5f82c27..6803ee09d06d0 100644 --- a/external/libmwaw/UnpackedTarball_libmwaw.mk +++ b/external/libmwaw/UnpackedTarball_libmwaw.mk @@ -37,6 +37,7 @@ endif $(eval $(call gb_UnpackedTarball_add_patches,libmwaw,\ external/libmwaw/0001-fix-build-with-msvc.patch.1 \ + external/libmwaw/0001-ofz-1037-resize-vector-correctly.patch.1 \ )) # vim: set noet sw=4 ts=4: diff --git a/external/liborcus/UnpackedTarball_liborcus.mk b/external/liborcus/UnpackedTarball_liborcus.mk index 5d09d6de7ccd7..93b988553116a 100644 --- a/external/liborcus/UnpackedTarball_liborcus.mk +++ b/external/liborcus/UnpackedTarball_liborcus.mk @@ -17,6 +17,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,liborcus,\ external/liborcus/0001-workaround-a-linking-problem-on-windows.patch \ external/liborcus/rpath.patch.0 \ external/liborcus/visibility.patch.0 \ + external/liborcus/nullptr-in-ostringstream.patch.1 \ )) ifeq ($(OS),WNT) diff --git a/external/liborcus/nullptr-in-ostringstream.patch.1 b/external/liborcus/nullptr-in-ostringstream.patch.1 new file mode 100644 index 0000000000000..d8b97ee2c92ae --- /dev/null +++ b/external/liborcus/nullptr-in-ostringstream.patch.1 @@ -0,0 +1,12 @@ +diff -ur liborcus.org/src/liborcus/xml_context_base.cpp liborcus/src/liborcus/xml_context_base.cpp +--- liborcus.org/src/liborcus/xml_context_base.cpp 2017-06-30 14:32:19.044195127 +0200 ++++ liborcus/src/liborcus/xml_context_base.cpp 2017-06-30 14:34:27.580268421 +0200 +@@ -171,7 +171,7 @@ + + // Create a generic error message. + ostringstream os; +- os << "element '" << ns << ":" << m_tokens.get_token_name(name) << "' expected, but '"; ++ os << "element '" << (ns ? ns : "") << ":" << m_tokens.get_token_name(name) << "' expected, but '"; + os << elem.first << ":" << m_tokens.get_token_name(elem.second) << "' encountered."; + throw xml_structure_error(os.str()); + } diff --git a/external/libstaroffice/0001-ofz-1029-use-correct-loop-index.patch.1 b/external/libstaroffice/0001-ofz-1029-use-correct-loop-index.patch.1 new file mode 100644 index 0000000000000..f004e5674da6e --- /dev/null +++ b/external/libstaroffice/0001-ofz-1029-use-correct-loop-index.patch.1 @@ -0,0 +1,27 @@ +From 2d6253c7a692a3d92785dd990fce7256ea05e794 Mon Sep 17 00:00:00 2001 +From: David Tardon +Date: Fri, 7 Apr 2017 19:28:55 +0200 +Subject: [PATCH] ofz#1029 use correct loop index + +To be honest, I think this would be clearer as two separate reads to two +separate vars... +--- + src/lib/StarWriterStruct.cxx | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/lib/StarWriterStruct.cxx b/src/lib/StarWriterStruct.cxx +index 5893302..d1ad366 100644 +--- a/src/lib/StarWriterStruct.cxx ++++ b/src/lib/StarWriterStruct.cxx +@@ -327,7 +327,7 @@ bool DatabaseName::read(StarZone &zone) + } + data.m_name=libstoff::getString(text); + int positions[2]; +- for (int j=0; j<2; ++j) positions[i]=int(input->readULong(4)); ++ for (int j=0; j<2; ++j) positions[j]=int(input->readULong(4)); + data.m_selection=STOFFVec2i(positions[0],positions[1]); + m_dataList.push_back(data); + } +-- +2.13.0 + diff --git a/external/libstaroffice/UnpackedTarball_libstaroffice.mk b/external/libstaroffice/UnpackedTarball_libstaroffice.mk index 957c11859ac5f..41e7c63983e84 100644 --- a/external/libstaroffice/UnpackedTarball_libstaroffice.mk +++ b/external/libstaroffice/UnpackedTarball_libstaroffice.mk @@ -37,6 +37,7 @@ endif $(eval $(call gb_UnpackedTarball_add_patches,libstaroffice, \ external/libstaroffice/0001-error-C2512-StarObject-no-appropriate-default-constr.patch.1 \ + external/libstaroffice/0001-ofz-1029-use-correct-loop-index.patch.1 \ )) # vim: set noet sw=4 ts=4: diff --git a/external/libwpd/UnpackedTarball_libwpd.mk b/external/libwpd/UnpackedTarball_libwpd.mk index 7fb7c3b2181d8..495824d804b59 100644 --- a/external/libwpd/UnpackedTarball_libwpd.mk +++ b/external/libwpd/UnpackedTarball_libwpd.mk @@ -16,6 +16,7 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,libwpd,0)) $(eval $(call gb_UnpackedTarball_add_patches,libwpd,\ external/libwpd/libwpd-vs2013.patch.1 \ $(if $(SYSTEM_REVENGE),,external/libwpd/rpath.patch) \ + external/libwpd/libwpd-tdf112269.patch.1 \ )) ifneq ($(OS),MACOSX) diff --git a/external/libwpd/libwpd-tdf112269.patch.1 b/external/libwpd/libwpd-tdf112269.patch.1 new file mode 100644 index 0000000000000..bc79ab0eaccd4 --- /dev/null +++ b/external/libwpd/libwpd-tdf112269.patch.1 @@ -0,0 +1,42 @@ +--- libwpd/src/lib/WP5StylesListener.cpp ++++ libwpd/src/lib/WP5StylesListener.cpp +@@ -85,8 +85,9 @@ + m_currentPage = WPXPageSpan(m_pageList.back(), 0.0, 0.0); + m_currentPage.setPageSpan(1); + +- for (std::vector::const_iterator HFiter = (m_nextPage.getHeaderFooterList()).begin(); +- HFiter != (m_nextPage.getHeaderFooterList()).end(); ++HFiter) ++ std::vector headerFooterList = m_nextPage.getHeaderFooterList(); ++ for (std::vector::const_iterator HFiter = headerFooterList.begin(); ++ HFiter != headerFooterList.end(); ++HFiter) + { + if ((*HFiter).getOccurrence() != NEVER) + { +--- libwpd/src/lib/WP42StylesListener.cpp ++++ libwpd/src/lib/WP42StylesListener.cpp +@@ -84,8 +84,9 @@ + m_currentPage = WPXPageSpan(m_pageList.back(), 0.0, 0.0); + m_currentPage.setPageSpan(1); + +- for (std::vector::const_iterator HFiter = (m_nextPage.getHeaderFooterList()).begin(); +- HFiter != (m_nextPage.getHeaderFooterList()).end(); ++HFiter) ++ std::vector headerFooterList = m_nextPage.getHeaderFooterList(); ++ for (std::vector::const_iterator HFiter = headerFooterList.begin(); ++ HFiter != headerFooterList.end(); ++HFiter) + { + if ((*HFiter).getOccurrence() != NEVER) + { +--- libwpd/src/lib/WP1StylesListener.cpp ++++ libwpd/src/lib/WP1StylesListener.cpp +@@ -83,8 +83,9 @@ + m_currentPage = WPXPageSpan(m_pageList.back(), 0.0, 0.0); + m_currentPage.setPageSpan(1); + +- for (std::vector::const_iterator HFiter = (m_nextPage.getHeaderFooterList()).begin(); +- HFiter != (m_nextPage.getHeaderFooterList()).end(); ++HFiter) ++ std::vector headerFooterList = m_nextPage.getHeaderFooterList(); ++ for (std::vector::const_iterator HFiter = headerFooterList.begin(); ++ HFiter != headerFooterList.end(); ++HFiter) + { + if ((*HFiter).getOccurrence() != NEVER) + { diff --git a/external/libxml2/0001-Fix-buffer-size-checks-in-xmlSnprintfElementContent.patch.1 b/external/libxml2/0001-Fix-buffer-size-checks-in-xmlSnprintfElementContent.patch.1 new file mode 100644 index 0000000000000..047c88d943a72 --- /dev/null +++ b/external/libxml2/0001-Fix-buffer-size-checks-in-xmlSnprintfElementContent.patch.1 @@ -0,0 +1,116 @@ +From 932cc9896ab41475d4aa429c27d9afd175959d74 Mon Sep 17 00:00:00 2001 +From: Nick Wellnhofer +Date: Sat, 3 Jun 2017 02:01:29 +0200 +Subject: [PATCH] Fix buffer size checks in xmlSnprintfElementContent +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +xmlSnprintfElementContent failed to correctly check the available +buffer space in two locations. + +Fixes bug 781333 (CVE-2017-9047) and bug 781701 (CVE-2017-9048). + +Thanks to Marcel Böhme and Thuan Pham for the report. +--- + result/valid/781333.xml | 5 +++++ + result/valid/781333.xml.err | 3 +++ + result/valid/781333.xml.err.rdr | 6 ++++++ + test/valid/781333.xml | 4 ++++ + valid.c | 20 +++++++++++--------- + 5 files changed, 29 insertions(+), 9 deletions(-) + create mode 100644 result/valid/781333.xml + create mode 100644 result/valid/781333.xml.err + create mode 100644 result/valid/781333.xml.err.rdr + create mode 100644 test/valid/781333.xml + +diff --git a/result/valid/781333.xml b/result/valid/781333.xml +new file mode 100644 +index 00000000..45dc451d +--- /dev/null ++++ b/result/valid/781333.xml +@@ -0,0 +1,5 @@ ++ ++ ++]> ++ +diff --git a/result/valid/781333.xml.err b/result/valid/781333.xml.err +new file mode 100644 +index 00000000..b401b49a +--- /dev/null ++++ b/result/valid/781333.xml.err +@@ -0,0 +1,3 @@ ++./test/valid/781333.xml:4: element a: validity error : Element a content does not follow the DTD, expecting ( ..., got ++ ++ ^ +diff --git a/result/valid/781333.xml.err.rdr b/result/valid/781333.xml.err.rdr +new file mode 100644 +index 00000000..5ff56992 +--- /dev/null ++++ b/result/valid/781333.xml.err.rdr +@@ -0,0 +1,6 @@ ++./test/valid/781333.xml:4: element a: validity error : Element a content does not follow the DTD, expecting ( ..., got ++ ++ ^ ++./test/valid/781333.xml:5: element a: validity error : Element a content does not follow the DTD, Expecting more child ++ ++^ +diff --git a/test/valid/781333.xml b/test/valid/781333.xml +new file mode 100644 +index 00000000..b29e5a68 +--- /dev/null ++++ b/test/valid/781333.xml +@@ -0,0 +1,4 @@ ++ ++]> ++ +diff --git a/valid.c b/valid.c +index 19f84b82..9b2df56a 100644 +--- a/valid.c ++++ b/valid.c +@@ -1262,22 +1262,23 @@ xmlSnprintfElementContent(char *buf, int size, xmlElementContentPtr content, int + case XML_ELEMENT_CONTENT_PCDATA: + strcat(buf, "#PCDATA"); + break; +- case XML_ELEMENT_CONTENT_ELEMENT: ++ case XML_ELEMENT_CONTENT_ELEMENT: { ++ int qnameLen = xmlStrlen(content->name); ++ ++ if (content->prefix != NULL) ++ qnameLen += xmlStrlen(content->prefix) + 1; ++ if (size - len < qnameLen + 10) { ++ strcat(buf, " ..."); ++ return; ++ } + if (content->prefix != NULL) { +- if (size - len < xmlStrlen(content->prefix) + 10) { +- strcat(buf, " ..."); +- return; +- } + strcat(buf, (char *) content->prefix); + strcat(buf, ":"); + } +- if (size - len < xmlStrlen(content->name) + 10) { +- strcat(buf, " ..."); +- return; +- } + if (content->name != NULL) + strcat(buf, (char *) content->name); + break; ++ } + case XML_ELEMENT_CONTENT_SEQ: + if ((content->c1->type == XML_ELEMENT_CONTENT_OR) || + (content->c1->type == XML_ELEMENT_CONTENT_SEQ)) +@@ -1319,6 +1320,7 @@ xmlSnprintfElementContent(char *buf, int size, xmlElementContentPtr content, int + xmlSnprintfElementContent(buf, size, content->c2, 0); + break; + } ++ if (size - strlen(buf) <= 2) return; + if (englob) + strcat(buf, ")"); + switch (content->ocur) { +-- +2.13.5 + diff --git a/external/libxml2/0001-Fix-handling-of-parameter-entity-references.patch.1 b/external/libxml2/0001-Fix-handling-of-parameter-entity-references.patch.1 new file mode 100644 index 0000000000000..8f005cf32181b --- /dev/null +++ b/external/libxml2/0001-Fix-handling-of-parameter-entity-references.patch.1 @@ -0,0 +1,287 @@ +From e26630548e7d138d2c560844c43820b6767251e3 Mon Sep 17 00:00:00 2001 +From: Nick Wellnhofer +Date: Mon, 5 Jun 2017 15:37:17 +0200 +Subject: [PATCH] Fix handling of parameter-entity references +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +There were two bugs where parameter-entity references could lead to an +unexpected change of the input buffer in xmlParseNameComplex and +xmlDictLookup being called with an invalid pointer. + +Percent sign in DTD Names +========================= + +The NEXTL macro used to call xmlParserHandlePEReference. When parsing +"complex" names inside the DTD, this could result in entity expansion +which created a new input buffer. The fix is to simply remove the call +to xmlParserHandlePEReference from the NEXTL macro. This is safe because +no users of the macro require expansion of parameter entities. + +- xmlParseNameComplex +- xmlParseNCNameComplex +- xmlParseNmtoken + +The percent sign is not allowed in names, which are grammatical tokens. + +- xmlParseEntityValue + +Parameter-entity references in entity values are expanded but this +happens in a separate step in this function. + +- xmlParseSystemLiteral + +Parameter-entity references are ignored in the system literal. + +- xmlParseAttValueComplex +- xmlParseCharDataComplex +- xmlParseCommentComplex +- xmlParsePI +- xmlParseCDSect + +Parameter-entity references are ignored outside the DTD. + +- xmlLoadEntityContent + +This function is only called from xmlStringLenDecodeEntities and +entities are replaced in a separate step immediately after the function +call. + +This bug could also be triggered with an internal subset and double +entity expansion. + +This fixes bug 766956 initially reported by Wei Lei and independently by +Chromium's ClusterFuzz, Hanno Böck, and Marco Grassi. Thanks to everyone +involved. + +xmlParseNameComplex with XML_PARSE_OLD10 +======================================== + +When parsing Names inside an expanded parameter entity with the +XML_PARSE_OLD10 option, xmlParseNameComplex would call xmlGROW via the +GROW macro if the input buffer was exhausted. At the end of the +parameter entity's replacement text, this function would then call +xmlPopInput which invalidated the input buffer. + +There should be no need to invoke GROW in this situation because the +buffer is grown periodically every XML_PARSER_CHUNK_SIZE characters and, +at least for UTF-8, in xmlCurrentChar. This also matches the code path +executed when XML_PARSE_OLD10 is not set. + +This fixes bugs 781205 (CVE-2017-9049) and 781361 (CVE-2017-9050). +Thanks to Marcel Böhme and Thuan Pham for the report. + +Additional hardening +==================== + +A separate check was added in xmlParseNameComplex to validate the +buffer size. +--- + Makefile.am | 18 ++++++++++++++++++ + parser.c | 18 ++++++++++-------- + result/errors10/781205.xml | 0 + result/errors10/781205.xml.err | 21 +++++++++++++++++++++ + result/errors10/781361.xml | 0 + result/errors10/781361.xml.err | 13 +++++++++++++ + result/valid/766956.xml | 0 + result/valid/766956.xml.err | 9 +++++++++ + result/valid/766956.xml.err.rdr | 10 ++++++++++ + runtest.c | 3 +++ + test/errors10/781205.xml | 3 +++ + test/errors10/781361.xml | 3 +++ + test/valid/766956.xml | 2 ++ + test/valid/dtds/766956.dtd | 2 ++ + 14 files changed, 94 insertions(+), 8 deletions(-) + create mode 100644 result/errors10/781205.xml + create mode 100644 result/errors10/781205.xml.err + create mode 100644 result/errors10/781361.xml + create mode 100644 result/errors10/781361.xml.err + create mode 100644 result/valid/766956.xml + create mode 100644 result/valid/766956.xml.err + create mode 100644 result/valid/766956.xml.err.rdr + create mode 100644 test/errors10/781205.xml + create mode 100644 test/errors10/781361.xml + create mode 100644 test/valid/766956.xml + create mode 100644 test/valid/dtds/766956.dtd + +diff --git a/parser.c b/parser.c +index df2efa55..a175ac4e 100644 +--- a/parser.c ++++ b/parser.c +@@ -2121,7 +2121,6 @@ static void xmlGROW (xmlParserCtxtPtr ctxt) { + ctxt->input->line++; ctxt->input->col = 1; \ + } else ctxt->input->col++; \ + ctxt->input->cur += l; \ +- if (*ctxt->input->cur == '%') xmlParserHandlePEReference(ctxt); \ + } while (0) + + #define CUR_CHAR(l) xmlCurrentChar(ctxt, &l) +@@ -3412,13 +3411,6 @@ xmlParseNameComplex(xmlParserCtxtPtr ctxt) { + len += l; + NEXTL(l); + c = CUR_CHAR(l); +- if (c == 0) { +- count = 0; +- GROW; +- if (ctxt->instate == XML_PARSER_EOF) +- return(NULL); +- c = CUR_CHAR(l); +- } + } + } + if ((len > XML_MAX_NAME_LENGTH) && +@@ -3426,6 +3418,16 @@ xmlParseNameComplex(xmlParserCtxtPtr ctxt) { + xmlFatalErr(ctxt, XML_ERR_NAME_TOO_LONG, "Name"); + return(NULL); + } ++ if (ctxt->input->cur - ctxt->input->base < len) { ++ /* ++ * There were a couple of bugs where PERefs lead to to a change ++ * of the buffer. Check the buffer size to avoid passing an invalid ++ * pointer to xmlDictLookup. ++ */ ++ xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR, ++ "unexpected change of input buffer"); ++ return (NULL); ++ } + if ((*ctxt->input->cur == '\n') && (ctxt->input->cur[-1] == '\r')) + return(xmlDictLookup(ctxt->dict, ctxt->input->cur - (len + 1), len)); + return(xmlDictLookup(ctxt->dict, ctxt->input->cur - len, len)); +diff --git a/result/errors10/781205.xml b/result/errors10/781205.xml +new file mode 100644 +index 00000000..e69de29b +diff --git a/result/errors10/781205.xml.err b/result/errors10/781205.xml.err +new file mode 100644 +index 00000000..da15c3f7 +--- /dev/null ++++ b/result/errors10/781205.xml.err +@@ -0,0 +1,21 @@ ++Entity: line 1: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration ++ ++ %a; ++ ^ ++Entity: line 1: ++<:0000 ++^ ++Entity: line 1: parser error : DOCTYPE improperly terminated ++ %a; ++ ^ ++Entity: line 1: ++<:0000 ++^ ++namespace error : Failed to parse QName ':0000' ++ %a; ++ ^ ++<:0000 ++ ^ ++./test/errors10/781205.xml:4: parser error : Couldn't find end of Start Tag :0000 line 1 ++ ++^ +diff --git a/result/errors10/781361.xml b/result/errors10/781361.xml +new file mode 100644 +index 00000000..e69de29b +diff --git a/result/errors10/781361.xml.err b/result/errors10/781361.xml.err +new file mode 100644 +index 00000000..655f41a2 +--- /dev/null ++++ b/result/errors10/781361.xml.err +@@ -0,0 +1,13 @@ ++./test/errors10/781361.xml:4: parser error : xmlParseElementDecl: 'EMPTY', 'ANY' or '(' expected ++ ++^ ++./test/errors10/781361.xml:4: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration ++ ++ ++^ ++./test/errors10/781361.xml:4: parser error : DOCTYPE improperly terminated ++ ++^ ++./test/errors10/781361.xml:4: parser error : Start tag expected, '<' not found ++ ++^ +diff --git a/result/valid/766956.xml b/result/valid/766956.xml +new file mode 100644 +index 00000000..e69de29b +diff --git a/result/valid/766956.xml.err b/result/valid/766956.xml.err +new file mode 100644 +index 00000000..34b1dae6 +--- /dev/null ++++ b/result/valid/766956.xml.err +@@ -0,0 +1,9 @@ ++test/valid/dtds/766956.dtd:2: parser error : PEReference: expecting ';' ++%ä%ent; ++ ^ ++Entity: line 1: parser error : Content error in the external subset ++ %ent; ++ ^ ++Entity: line 1: ++value ++^ +diff --git a/result/valid/766956.xml.err.rdr b/result/valid/766956.xml.err.rdr +new file mode 100644 +index 00000000..77603462 +--- /dev/null ++++ b/result/valid/766956.xml.err.rdr +@@ -0,0 +1,10 @@ ++test/valid/dtds/766956.dtd:2: parser error : PEReference: expecting ';' ++%ä%ent; ++ ^ ++Entity: line 1: parser error : Content error in the external subset ++ %ent; ++ ^ ++Entity: line 1: ++value ++^ ++./test/valid/766956.xml : failed to parse +diff --git a/runtest.c b/runtest.c +index b2ce693b..378b38e3 100644 +--- a/runtest.c ++++ b/runtest.c +@@ -4214,6 +4214,9 @@ testDesc testDescriptions[] = { + { "Error cases regression tests", + errParseTest, "./test/errors/*.xml", "result/errors/", "", ".err", + 0 }, ++ { "Error cases regression tests (old 1.0)", ++ errParseTest, "./test/errors10/*.xml", "result/errors10/", "", ".err", ++ XML_PARSE_OLD10 }, + #ifdef LIBXML_READER_ENABLED + { "Error cases stream regression tests", + streamParseTest, "./test/errors/*.xml", "result/errors/", NULL, ".str", +diff --git a/test/errors10/781205.xml b/test/errors10/781205.xml +new file mode 100644 +index 00000000..d9e9e839 +--- /dev/null ++++ b/test/errors10/781205.xml +@@ -0,0 +1,3 @@ ++ ++ %a; +diff --git a/test/errors10/781361.xml b/test/errors10/781361.xml +new file mode 100644 +index 00000000..67476bcb +--- /dev/null ++++ b/test/errors10/781361.xml +@@ -0,0 +1,3 @@ ++ ++ %elem; +diff --git a/test/valid/766956.xml b/test/valid/766956.xml +new file mode 100644 +index 00000000..19a95a0e +--- /dev/null ++++ b/test/valid/766956.xml +@@ -0,0 +1,2 @@ ++ ++ +diff --git a/test/valid/dtds/766956.dtd b/test/valid/dtds/766956.dtd +new file mode 100644 +index 00000000..dddde68b +--- /dev/null ++++ b/test/valid/dtds/766956.dtd +@@ -0,0 +1,2 @@ ++ ++%ä%ent; +-- +2.13.5 + diff --git a/external/libxml2/0001-Fix-type-confusion-in-xmlValidateOneNamespace.patch.1 b/external/libxml2/0001-Fix-type-confusion-in-xmlValidateOneNamespace.patch.1 new file mode 100644 index 0000000000000..f0c4e6d5dba56 --- /dev/null +++ b/external/libxml2/0001-Fix-type-confusion-in-xmlValidateOneNamespace.patch.1 @@ -0,0 +1,43 @@ +From 92b9e8c8b3787068565a1820ba575d042f9eec66 Mon Sep 17 00:00:00 2001 +From: Nick Wellnhofer +Date: Tue, 6 Jun 2017 12:56:28 +0200 +Subject: [PATCH] Fix type confusion in xmlValidateOneNamespace + +Comment out code that casts xmlNsPtr to xmlAttrPtr. ID types on +namespace declarations make no practical sense anyway. + +Fixes bug 780228. + +Found with libFuzzer and ASan. +--- + valid.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/valid.c b/valid.c +index 8075d3a0..c51ea290 100644 +--- a/valid.c ++++ b/valid.c +@@ -4627,6 +4627,12 @@ xmlNodePtr elem, const xmlChar *prefix, xmlNsPtr ns, const xmlChar *value) { + } + } + ++ /* ++ * Casting ns to xmlAttrPtr is wrong. We'd need separate functions ++ * xmlAddID and xmlAddRef for namespace declarations, but it makes ++ * no practical sense to use ID types anyway. ++ */ ++#if 0 + /* Validity Constraint: ID uniqueness */ + if (attrDecl->atype == XML_ATTRIBUTE_ID) { + if (xmlAddID(ctxt, doc, value, (xmlAttrPtr) ns) == NULL) +@@ -4638,6 +4644,7 @@ xmlNodePtr elem, const xmlChar *prefix, xmlNsPtr ns, const xmlChar *value) { + if (xmlAddRef(ctxt, doc, value, (xmlAttrPtr) ns) == NULL) + ret = 0; + } ++#endif + + /* Validity Constraint: Notation Attributes */ + if (attrDecl->atype == XML_ATTRIBUTE_NOTATION) { +-- +2.13.5 + diff --git a/external/libxml2/0001-Increase-buffer-space-for-port-in-HTTP-redirect-supp.patch.1 b/external/libxml2/0001-Increase-buffer-space-for-port-in-HTTP-redirect-supp.patch.1 new file mode 100644 index 0000000000000..fa90247f5e237 --- /dev/null +++ b/external/libxml2/0001-Increase-buffer-space-for-port-in-HTTP-redirect-supp.patch.1 @@ -0,0 +1,31 @@ +From 5dca9eea1bd4263bfa4d037ab2443de1cd730f7e Mon Sep 17 00:00:00 2001 +From: Daniel Veillard +Date: Fri, 7 Apr 2017 17:13:28 +0200 +Subject: [PATCH] Increase buffer space for port in HTTP redirect support + +For https://bugzilla.gnome.org/show_bug.cgi?id=780690 + +nanohttp.c: the code wrongly assumed a short int port value. +--- + nanohttp.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/nanohttp.c b/nanohttp.c +index e109ad75..373425de 100644 +--- a/nanohttp.c ++++ b/nanohttp.c +@@ -1423,9 +1423,9 @@ retry: + if (ctxt->port != 80) { + /* reserve space for ':xxxxx', incl. potential proxy */ + if (proxy) +- blen += 12; ++ blen += 17; + else +- blen += 6; ++ blen += 11; + } + bp = (char*)xmlMallocAtomic(blen); + if ( bp == NULL ) { +-- +2.13.5 + diff --git a/external/libxml2/0001-Prevent-unwanted-external-entity-reference.patch.1 b/external/libxml2/0001-Prevent-unwanted-external-entity-reference.patch.1 new file mode 100644 index 0000000000000..7a935a6ada609 --- /dev/null +++ b/external/libxml2/0001-Prevent-unwanted-external-entity-reference.patch.1 @@ -0,0 +1,35 @@ +From 90ccb58242866b0ba3edbef8fe44214a101c2b3e Mon Sep 17 00:00:00 2001 +From: Neel Mehta +Date: Fri, 7 Apr 2017 17:43:02 +0200 +Subject: [PATCH] Prevent unwanted external entity reference + +For https://bugzilla.gnome.org/show_bug.cgi?id=780691 + +* parser.c: add a specific check to avoid PE reference +--- + parser.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/parser.c b/parser.c +index 609a2703..c2c812de 100644 +--- a/parser.c ++++ b/parser.c +@@ -8123,6 +8123,15 @@ xmlParsePEReference(xmlParserCtxtPtr ctxt) + if (xmlPushInput(ctxt, input) < 0) + return; + } else { ++ if ((entity->etype == XML_EXTERNAL_PARAMETER_ENTITY) && ++ ((ctxt->options & XML_PARSE_NOENT) == 0) && ++ ((ctxt->options & XML_PARSE_DTDVALID) == 0) && ++ ((ctxt->options & XML_PARSE_DTDLOAD) == 0) && ++ ((ctxt->options & XML_PARSE_DTDATTR) == 0) && ++ (ctxt->replaceEntities == 0) && ++ (ctxt->validate == 0)) ++ return; ++ + /* + * TODO !!! + * handle the extra spaces added before and after +-- +2.13.5 + diff --git a/external/libxml2/UnpackedTarball_xml2.mk b/external/libxml2/UnpackedTarball_xml2.mk index a683d28ead78c..3f06a40764a3f 100644 --- a/external/libxml2/UnpackedTarball_xml2.mk +++ b/external/libxml2/UnpackedTarball_xml2.mk @@ -18,6 +18,11 @@ $(eval $(call gb_UnpackedTarball_add_patches,xml2,\ $(if $(filter ANDROID,$(OS)),external/libxml2/libxml2-android.patch) \ external/libxml2/libxml2-icu.patch.0 \ external/libxml2/ubsan.patch.0 \ + external/libxml2/0001-Fix-type-confusion-in-xmlValidateOneNamespace.patch.1 \ + external/libxml2/0001-Prevent-unwanted-external-entity-reference.patch.1 \ + external/libxml2/0001-Increase-buffer-space-for-port-in-HTTP-redirect-supp.patch.1 \ + external/libxml2/0001-Fix-buffer-size-checks-in-xmlSnprintfElementContent.patch.1 \ + external/libxml2/0001-Fix-handling-of-parameter-entity-references.patch.1 \ )) # vim: set noet sw=4 ts=4: diff --git a/external/more_fonts/ExternalPackage_NotoEmoji.mk b/external/more_fonts/ExternalPackage_EmojiOne_Color.mk similarity index 60% rename from external/more_fonts/ExternalPackage_NotoEmoji.mk rename to external/more_fonts/ExternalPackage_EmojiOne_Color.mk index 2540ab32b341f..76cdb668487f4 100644 --- a/external/more_fonts/ExternalPackage_NotoEmoji.mk +++ b/external/more_fonts/ExternalPackage_EmojiOne_Color.mk @@ -7,10 +7,10 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. # -$(eval $(call gb_ExternalPackage_ExternalPackage,fonts_notoemoji,font_notoemoji)) +$(eval $(call gb_ExternalPackage_ExternalPackage,fonts_emojione_color,font_emojione_color)) -$(eval $(call gb_ExternalPackage_add_unpacked_files,fonts_notoemoji,$(LIBO_SHARE_FOLDER)/fonts/truetype,\ - NotoEmoji-Regular.ttf \ +$(eval $(call gb_ExternalPackage_add_unpacked_files,fonts_emojione_color,$(LIBO_SHARE_FOLDER)/fonts/truetype,\ + EmojiOneColor-SVGinOT.ttf \ )) # vim: set noet sw=4 ts=4: diff --git a/external/more_fonts/Module_more_fonts.mk b/external/more_fonts/Module_more_fonts.mk index 54bb9b9ee905e..f584a8fec4a5a 100644 --- a/external/more_fonts/Module_more_fonts.mk +++ b/external/more_fonts/Module_more_fonts.mk @@ -22,7 +22,7 @@ $(eval $(call gb_Module_add_targets,more_fonts,\ ExternalPackage_ptserif \ ExternalPackage_sourcecode \ ExternalPackage_sourcesans \ - ExternalPackage_NotoEmoji \ + ExternalPackage_EmojiOne_Color \ UnpackedTarball_caladea \ UnpackedTarball_carlito \ UnpackedTarball_dejavu \ @@ -34,7 +34,7 @@ $(eval $(call gb_Module_add_targets,more_fonts,\ UnpackedTarball_ptserif \ UnpackedTarball_sourcecode \ UnpackedTarball_sourcesans \ - UnpackedTarball_NotoEmoji \ + UnpackedTarball_EmojiOne_Color \ )) # vim: set noet sw=4 ts=4: diff --git a/external/more_fonts/UnpackedTarball_NotoEmoji.mk b/external/more_fonts/UnpackedTarball_EmojiOne_Color.mk similarity index 67% rename from external/more_fonts/UnpackedTarball_NotoEmoji.mk rename to external/more_fonts/UnpackedTarball_EmojiOne_Color.mk index 0c773b6248cf5..d931c77056368 100644 --- a/external/more_fonts/UnpackedTarball_NotoEmoji.mk +++ b/external/more_fonts/UnpackedTarball_EmojiOne_Color.mk @@ -7,8 +7,8 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. # -$(eval $(call gb_UnpackedTarball_UnpackedTarball,font_notoemoji)) +$(eval $(call gb_UnpackedTarball_UnpackedTarball,font_emojione_color)) -$(eval $(call gb_UnpackedTarball_set_tarball,font_notoemoji,$(FONT_NOTOEMOJI_TARBALL))) +$(eval $(call gb_UnpackedTarball_set_tarball,font_emojione_color,$(FONT_EMOJIONE_COLOR_TARBALL))) # vim: set noet sw=4 ts=4: diff --git a/external/nss/ExternalProject_nss.mk b/external/nss/ExternalProject_nss.mk index 07cc472b9fb23..b7bdf4b26ac91 100644 --- a/external/nss/ExternalProject_nss.mk +++ b/external/nss/ExternalProject_nss.mk @@ -77,6 +77,7 @@ $(call gb_ExternalProject_get_state_target,nss,build): $(call gb_ExternalProject $(MAKE) -j1 AR="$(AR)" \ RANLIB="$(RANLIB)" \ NMEDIT="$(NM)edit" \ + CCC="$(CXX)" \ $(if $(CROSS_COMPILING),NSPR_CONFIGURE_OPTS="--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)") \ nss_build_all \ && rm -f $(call gb_UnpackedTarball_get_dir,nss)/dist/out/lib/*.a \ diff --git a/external/nss/UnpackedTarball_nss.mk b/external/nss/UnpackedTarball_nss.mk index a0ac57173fd19..4a90853f543a3 100644 --- a/external/nss/UnpackedTarball_nss.mk +++ b/external/nss/UnpackedTarball_nss.mk @@ -44,7 +44,6 @@ ifeq ($(COM_IS_CLANG),TRUE) ifneq ($(filter -fsanitize=%,$(CC)),) $(eval $(call gb_UnpackedTarball_add_patches,nss,\ external/nss/asan.patch.1 \ - external/nss/ubsan-alignment.patch.0 \ )) endif endif diff --git a/external/nss/nss-ios.patch b/external/nss/nss-ios.patch index d4107d77f954c..9d4af2c724e96 100644 --- a/external/nss/nss-ios.patch +++ b/external/nss/nss-ios.patch @@ -52,8 +52,8 @@ --- a/a/nss/coreconf/Darwin.mk +++ a/a/nss/coreconf/Darwin.mk @@ -124,7 +124,7 @@ - # May override this with -bundle to create a loadable module. - DSO_LDOPTS = -dynamiclib $(DARWIN_DYLIB_VERSIONS) -install_name @__________________________________________________OOO/$(notdir $@) -headerpad_max_install_names + DSO_LDOPTS += --coverage + endif -MKSHLIB = $(CC) $(DSO_LDOPTS) $(DARWIN_SDK_SHLIBFLAGS) +MKSHLIB = touch $@; echo diff --git a/external/nss/nss-more-static.patch b/external/nss/nss-more-static.patch index 6b06a4e4a226c..26948f0be24cb 100644 --- a/external/nss/nss-more-static.patch +++ b/external/nss/nss-more-static.patch @@ -9,30 +9,30 @@ /* determine if hybrid platform, then actually load the DSO. */ static PRStatus @@ -136,9 +136,9 @@ - return PR_FAILURE; - } + return PR_FAILURE; + } -- handle = loader_LoadLibrary(name); -- if (handle) { -- PRFuncPtr address = PR_FindFunctionSymbol(handle, "FREEBL_GetVector"); -+ handle = 0; -+ { -+ PRFuncPtr address = FREEBL_GetVector; - PRStatus status; - if (address) { - FREEBLGetVectorFn * getVector = (FREEBLGetVectorFn *)address; +- handle = loader_LoadLibrary(name); +- if (handle) { +- PRFuncPtr address = PR_FindFunctionSymbol(handle, "FREEBL_GetVector"); ++ handle = 0; ++ { ++ PRFuncPtr address = FREEBL_GetVector; + if (address) { + FREEBLGetVectorFn *getVector = (FREEBLGetVectorFn *)address; + const FREEBLVector *dsoVector = getVector(); @@ -887,6 +887,7 @@ void BL_Unload(void) { +#if 0 - /* This function is not thread-safe, but doesn't need to be, because it is - * only called from functions that are also defined as not thread-safe, - * namely C_Finalize in softoken, and the SSL bypass shutdown callback called + /* This function is not thread-safe, but doesn't need to be, because it is + * only called from functions that are also defined as not thread-safe, + * namely C_Finalize in softoken, and the SSL bypass shutdown callback called @@ -905,6 +905,7 @@ - blLib = NULL; - } - loadFreeBLOnce = pristineCallOnce; + } + blLib = NULL; + loadFreeBLOnce = pristineCallOnce; +#endif } diff --git a/external/nss/nss.patch b/external/nss/nss.patch index 771ebf59baed9..b3b932343d831 100644 --- a/external/nss/nss.patch +++ b/external/nss/nss.patch @@ -54,24 +54,16 @@ diff -ru a/nss/cmd/platlibs.mk b/nss/cmd/platlibs.mk diff -ru nss.orig/nss/coreconf/arch.mk nss/nss/coreconf/arch.mk --- a/nss.orig/nss/coreconf/arch.mk 2016-02-12 15:36:18.000000000 +0100 +++ b/nss/nss/coreconf/arch.mk 2016-02-23 20:48:31.595941079 +0100 -@@ -280,15 +280,21 @@ - # IMPL_STRATEGY may be defined too. - # - --ifdef CROSS_COMPILE --OBJDIR_NAME = $(OS_TARGET)$(OS_RELEASE)$(CPU_TAG)$(LIBC_TAG)$(IMPL_STRATEGY)$(OBJDIR_TAG).OBJ --else --OBJDIR_NAME = $(OS_TARGET)$(OS_RELEASE)$(CPU_TAG)$(COMPILER_TAG)$(LIBC_TAG)$(IMPL_STRATEGY)$(OBJDIR_TAG).OBJ --endif +@@ -280,11 +280,17 @@ + OBJDIR_NAME_COMPILER = $(COMPILER_TAG) + endif + OBJDIR_NAME_BASE = $(OS_TARGET)$(OS_RELEASE)$(CPU_TAG)$(OBJDIR_NAME_COMPILER)$(LIBC_TAG)$(IMPL_STRATEGY)$(OBJDIR_TAG) +-OBJDIR_NAME = $(OBJDIR_NAME_BASE).OBJ +# OBJDIR_NAME is used to build the directory containing the built objects, for +# example mozilla/dist/Linux2.6_x86_glibc_PTH_DBG.OBJ +# We need to deliver the contents of that folder into instdir. To make that +# easier in the makefile we rename this directory to "out". -+#ifdef CROSS_COMPILE -+#OBJDIR_NAME = $(OS_TARGET)$(OS_RELEASE)$(CPU_TAG)$(LIBC_TAG)$(IMPL_STRATEGY)$(OBJDIR_TAG).OBJ -+#else -+#OBJDIR_NAME = $(OS_TARGET)$(OS_RELEASE)$(CPU_TAG)$(COMPILER_TAG)$(LIBC_TAG)$(IMPL_STRATEGY)$(OBJDIR_TAG).OBJ -+#endif ++#OBJDIR_NAME = $(OBJDIR_NAME_BASE).OBJ +OBJDIR_NAME = out @@ -96,20 +88,6 @@ diff -ru a/nss/coreconf/FreeBSD.mk b/nss/coreconf/FreeBSD.mk diff -ru a/nss/coreconf/Linux.mk b/nss/coreconf/Linux.mk --- a/a/nss/coreconf/Linux.mk 2014-09-29 16:46:38.189421588 +0100 +++ b/b/nss/coreconf/Linux.mk 2014-09-29 16:47:42.985012235 +0100 -@@ -16,8 +16,11 @@ - IMPL_STRATEGY = _PTH - endif - --CC = gcc --CCC = g++ -+# CC is taken from environment automatically. -+#CC = gcc -+# Use CCC from environment. -+#CCC = g++ -+CCC = $(CXX) - RANLIB = ranlib - - DEFAULT_COMPILER = gcc @@ -157,7 +160,7 @@ # against the libsanitizer runtime built into the main executable. ZDEFS_FLAG = -Wl,-z,defs @@ -172,6 +150,19 @@ diff -ru a/nss/Makefile b/nss/Makefile #! gmake # # This Source Code Form is subject to the terms of the Mozilla Public +@@ -91,10 +91,10 @@ + NSPR_CONFIGURE_ENV = CC=gcc CXX=g++ + endif + ifdef CC +-NSPR_CONFIGURE_ENV = CC=$(CC) ++NSPR_CONFIGURE_ENV = CC="$(CC) " + endif + ifdef CCC +-NSPR_CONFIGURE_ENV += CXX=$(CCC) ++NSPR_CONFIGURE_ENV += CXX="$(CCC) " + endif + # Remove -arch definitions. NSPR can't handle that. + NSPR_CONFIGURE_ENV := $(filter-out -arch x86_64,$(NSPR_CONFIGURE_ENV)) diff -ru nss.orig/nss/coreconf/Werror.mk nss/nss/coreconf/Werror.mk --- a/nss.orig/nss/coreconf/Werror.mk 2016-02-12 15:36:18.000000000 +0100 +++ b/nss/nss/coreconf/Werror.mk 2016-02-23 23:58:15.119584046 +0100 diff --git a/external/nss/nss.utf8bom.patch.1 b/external/nss/nss.utf8bom.patch.1 index bc37f184ce64d..e8c56abefcde4 100644 --- a/external/nss/nss.utf8bom.patch.1 +++ b/external/nss/nss.utf8bom.patch.1 @@ -1,12 +1,3 @@ -diff -ur nss.org/nss/external_tests/google_test/gtest/include/gtest/internal/gtest-internal.h nss/nss/external_tests/google_test/gtest/include/gtest/internal/gtest-internal.h ---- nss.org/nss/external_tests/google_test/gtest/include/gtest/internal/gtest-internal.h 2016-03-31 18:26:06.763009800 +0800 -+++ nss/nss/external_tests/google_test/gtest/include/gtest/internal/gtest-internal.h 2016-03-31 19:17:11.724452000 +0800 -@@ -1,4 +1,4 @@ --// Copyright 2005, Google Inc. -+// Copyright 2005, Google Inc. - // All rights reserved. - // - // Redistribution and use in source and binary forms, with or without diff -ur nss.org/nss/lib/ckfw/builtins/certdata.perl nss/nss/lib/ckfw/builtins/certdata.perl --- nss.org/nss/lib/ckfw/builtins/certdata.perl 2016-03-31 18:26:07.890190900 +0800 +++ nss/nss/lib/ckfw/builtins/certdata.perl 2016-03-31 19:16:16.727269600 +0800 diff --git a/external/nss/nss.windowbuild.patch.0 b/external/nss/nss.windowbuild.patch.0 index 04b13a7bea270..c25ff4d6437b4 100644 --- a/external/nss/nss.windowbuild.patch.0 +++ b/external/nss/nss.windowbuild.patch.0 @@ -1,5 +1,5 @@ ---- ./nss/external_tests/ssl_gtest/tls_connect.cc -+++ ./nss/external_tests/ssl_gtest/tls_connect.cc +--- ./nss/gtests/ssl_gtest/tls_connect.cc ++++ ./nss/gtests/ssl_gtest/tls_connect.cc @@ -375,6 +375,12 @@ } } @@ -13,8 +13,8 @@ void TlsConnectTestBase::EnableAlpn() { client_->EnableAlpn(alpn_dummy_val_, sizeof(alpn_dummy_val_)); server_->EnableAlpn(alpn_dummy_val_, sizeof(alpn_dummy_val_)); ---- ./nss/external_tests/ssl_gtest/tls_connect.h -+++ ./nss/external_tests/ssl_gtest/tls_connect.h +--- ./nss/gtests/ssl_gtest/tls_connect.h ++++ ./nss/gtests/ssl_gtest/tls_connect.h @@ -113,12 +113,6 @@ SessionResumptionMode expected_resumption_mode_; std::vector> session_ids_; @@ -26,10 +26,10 @@ - const uint8_t alpn_dummy_val_[4] = {0x01, 0x62, 0x01, 0x61}; - private: - void CheckResumption(SessionResumptionMode expected); - void CheckExtendedMasterSecret(); ---- ./nss/external_tests/ssl_gtest/ssl_loopback_unittest.cc -+++ ./nss/external_tests/ssl_gtest/ssl_loopback_unittest.cc + static inline Mode ToMode(const std::string& str) { + return str == "TLS" ? STREAM : DGRAM; +--- ./nss/gtests/ssl_gtest/ssl_loopback_unittest.cc ++++ ./nss/gtests/ssl_gtest/ssl_loopback_unittest.cc @@ -51,6 +51,12 @@ CheckAlpn("a"); } @@ -43,8 +43,8 @@ TEST_P(TlsConnectGeneric, ConnectAlpnClone) { EnsureModelSockets(); client_model_->EnableAlpn(alpn_dummy_val_, sizeof(alpn_dummy_val_)); ---- ./nss/external_tests/ssl_gtest/databuffer.h -+++ ./nss/external_tests/ssl_gtest/databuffer.h +--- ./nss/gtests/ssl_gtest/databuffer.h ++++ ./nss/gtests/ssl_gtest/databuffer.h @@ -10,6 +10,7 @@ #include #include diff --git a/external/nss/nss_macosx.patch b/external/nss/nss_macosx.patch index dfbad1a36f32c..3144fa6877616 100644 --- a/external/nss/nss_macosx.patch +++ b/external/nss/nss_macosx.patch @@ -13,21 +13,6 @@ diff -ru a/nspr/configure b/nspr/configure diff -ru a/nss/coreconf/Darwin.mk b/nss/coreconf/Darwin.mk --- a/a/nss/coreconf/Darwin.mk 2014-09-29 16:50:22.992304799 +0100 +++ b/b/nss/coreconf/Darwin.mk 2014-09-29 16:51:59.214931953 +0100 -@@ -8,8 +8,12 @@ - - DEFAULT_COMPILER = gcc - --CC = gcc --CCC = g++ -+# CC is taken from environment automatically. -+#CC = cc -+# Use CCC from environment. -+#CCC = c++ -+CCC = $(CXX) -+ - RANLIB = ranlib - - ifndef CPU_ARCH @@ -20,13 +24,17 @@ ifeq (,$(filter-out i%86,$(CPU_ARCH))) @@ -71,8 +56,8 @@ diff -ru a/nss/coreconf/Darwin.mk b/nss/coreconf/Darwin.mk -DSO_LDOPTS = -dynamiclib $(DARWIN_DYLIB_VERSIONS) -install_name @executable_path/$(notdir $@) -headerpad_max_install_names +DSO_LDOPTS = -dynamiclib $(DARWIN_DYLIB_VERSIONS) -install_name @__________________________________________________OOO/$(notdir $@) -headerpad_max_install_names - MKSHLIB = $(CC) $(DSO_LDOPTS) $(DARWIN_SDK_SHLIBFLAGS) - DLL_SUFFIX = dylib + ifdef USE_GCOV + OS_CFLAGS += --coverage diff -ru a/nss/Makefile b/nss/Makefile --- a/a/nss/Makefile 2014-09-29 16:50:22.990304789 +0100 +++ b/b/nss/Makefile 2014-09-29 16:51:59.207931908 +0100 diff --git a/external/nss/ubsan-alignment.patch.0 b/external/nss/ubsan-alignment.patch.0 deleted file mode 100644 index 651939f7bc88c..0000000000000 --- a/external/nss/ubsan-alignment.patch.0 +++ /dev/null @@ -1,40 +0,0 @@ ---- nss/lib/freebl/md5.c -+++ nss/lib/freebl/md5.c -@@ -445,7 +445,7 @@ - /* Iterate over 64-byte chunks of the message. */ - while (inputLen >= MD5_BUFFER_SIZE) { - #ifdef IS_LITTLE_ENDIAN --#ifdef NSS_X86_OR_X64 -+#if 0 - /* x86 can handle arithmetic on non-word-aligned buffers */ - wBuf = (PRUint32 *)input; - #else ---- nss/lib/freebl/sha_fast.c -+++ nss/lib/freebl/sha_fast.c -@@ -16,7 +16,7 @@ - #include "ssltrace.h" - #endif - --static void shaCompress(volatile SHA_HW_t *X, const PRUint32 *datain); -+static void shaCompress(volatile SHA_HW_t *X, const unsigned char *datain); - - #define W u.w - #define B u.b -@@ -241,7 +241,7 @@ - * code on AMD64. - */ - static void --shaCompress(volatile SHA_HW_t *X, const PRUint32 *inbuf) -+shaCompress(volatile SHA_HW_t *X, const unsigned char *inbuf) - { - register SHA_HW_t A, B, C, D, E; - -@@ -277,7 +277,7 @@ - a = SHA_ROTL(b, 5) + SHA_F4(c, d, e) + a + XW(n) + K3; \ - c = SHA_ROTL(c, 30) - --#define LOAD(n) XW(n) = SHA_HTONL(inbuf[n]) -+#define LOAD(n) XW(n) = (((PRUint32)inbuf[4*n])<<24)|(((PRUint32)inbuf[4*n+1])<<16)|(((PRUint32)inbuf[4*n+2])<<8)|((PRUint32)inbuf[4*n+3]) - - A = XH(0); - B = XH(1); diff --git a/external/nss/ubsan.patch.0 b/external/nss/ubsan.patch.0 index 1254afd0c4adb..059a9f3b2c0ac 100644 --- a/external/nss/ubsan.patch.0 +++ b/external/nss/ubsan.patch.0 @@ -1,14 +1,3 @@ ---- nss/lib/certdb/crl.c -+++ nss/lib/certdb/crl.c -@@ -1982,7 +1982,7 @@ - return SECSuccess; - } - /* all CRLs are good, sort them by thisUpdate */ -- qsort(cache->crls, cache->ncrls, sizeof(CachedCrl*), SortCRLsByThisUpdate); -+ if (cache->ncrls != 0) qsort(cache->crls, cache->ncrls, sizeof(CachedCrl*), SortCRLsByThisUpdate); - - if (cache->ncrls) { - /* pick the newest CRL */ --- nss/lib/softoken/legacydb/pk11db.c +++ nss/lib/softoken/legacydb/pk11db.c @@ -65,7 +65,7 @@ diff --git a/external/poppler/0001-really-disable-JPEG2000-import.patch.1 b/external/poppler/0001-really-disable-JPEG2000-import.patch.1 new file mode 100644 index 0000000000000..b23e29de03482 --- /dev/null +++ b/external/poppler/0001-really-disable-JPEG2000-import.patch.1 @@ -0,0 +1,35 @@ +From 728c4d962ec0d2b1a6b2684aff8319ff9f91dbbc Mon Sep 17 00:00:00 2001 +From: David Tardon +Date: Thu, 25 May 2017 16:12:20 +0200 +Subject: [PATCH] really disable JPEG2000 import + +--- + poppler/Stream.cc | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/poppler/Stream.cc b/poppler/Stream.cc +index 4a9babe4..ea119cb4 100644 +--- a/poppler/Stream.cc ++++ b/poppler/Stream.cc +@@ -76,8 +76,6 @@ + + #ifdef ENABLE_LIBOPENJPEG + #include "JPEG2000Stream.h" +-#else +-#include "JPXStream.h" + #endif + + #ifdef __DJGPP__ +@@ -348,7 +346,8 @@ Stream *Stream::makeFilter(char *name, Stream *str, Object *params, int recursio + globals.free(); + obj.free(); + } else if (!strcmp(name, "JPXDecode")) { +- str = new JPXStream(str); ++ error(errSyntaxError, getPos(), "Unknown filter '{0:s}'", name); ++ str = new EOFStream(str); + } else if (!strcmp(name, "Crypt")) { + if (str->getKind() == strCrypt) { + str = str->getBaseStream(); +-- +2.13.0 + diff --git a/external/poppler/ExternalProject_poppler.mk b/external/poppler/ExternalProject_poppler.mk index f75dddc114cd4..2a83b164ce4d2 100644 --- a/external/poppler/ExternalProject_poppler.mk +++ b/external/poppler/ExternalProject_poppler.mk @@ -11,6 +11,10 @@ $(eval $(call gb_ExternalProject_ExternalProject,poppler)) $(eval $(call gb_ExternalProject_use_autoconf,poppler,build)) +$(eval $(call gb_ExternalProject_use_externals,poppler,\ + jpeg \ +)) + $(eval $(call gb_ExternalProject_register_targets,poppler,\ build \ )) diff --git a/external/poppler/UnpackedTarball_poppler.mk b/external/poppler/UnpackedTarball_poppler.mk index afad5fba13b66..86080d4e802ab 100644 --- a/external/poppler/UnpackedTarball_poppler.mk +++ b/external/poppler/UnpackedTarball_poppler.mk @@ -15,10 +15,9 @@ $(eval $(call gb_UnpackedTarball_add_patches,poppler,\ external/poppler/poppler-notests.patch.1 \ $(if $(filter MSC-120,$(COM)-$(VCVER)),external/poppler/poppler-snprintf.patch.1) \ external/poppler/poppler-mac-fake.patch.1 \ - external/poppler/poppler-vs2013.patch.1 \ - external/poppler/poppler-0.46.0-std-max.patch.1 \ external/poppler/ubsan.patch.0 \ external/poppler/poppler-libjpeg.patch.1 \ + external/poppler/0001-really-disable-JPEG2000-import.patch.1 \ )) # vim: set noet sw=4 ts=4: diff --git a/external/poppler/poppler-0.46.0-std-max.patch.1 b/external/poppler/poppler-0.46.0-std-max.patch.1 deleted file mode 100644 index 96a9abe886956..0000000000000 --- a/external/poppler/poppler-0.46.0-std-max.patch.1 +++ /dev/null @@ -1,10 +0,0 @@ ---- a/poppler/PSOutputDev.cc -+++ b/poppler/PSOutputDev.cc -@@ -48,6 +48,7 @@ - #include - #include - #include -+#include - #include "goo/GooString.h" - #include "goo/GooList.h" - #include "goo/GooHash.h" diff --git a/external/poppler/poppler-vs2013.patch.1 b/external/poppler/poppler-vs2013.patch.1 deleted file mode 100644 index ca892dfc2500b..0000000000000 --- a/external/poppler/poppler-vs2013.patch.1 +++ /dev/null @@ -1,11 +0,0 @@ ---- poppler/poppler/poppler-config.h.in -+++ poppler/poppler/poppler-config.h.in -@@ -186,7 +186,7 @@ char * strtok_r (char *s, const char *delim, char **save_ptr); - #define GCC_PRINTF_FORMAT(fmt_index, va_index) - #endif - --#if defined(_MSC_VER) -+#if defined(_MSC_VER) && _MSC_VER < 1800 - #define fmax(a, b) std::max(a, b) - #define fmin(a, b) std::min(a, b) - #endif diff --git a/external/python3/ExternalPackage_python3.mk b/external/python3/ExternalPackage_python3.mk index 045b4c194e2fb..864c9cdcff305 100644 --- a/external/python3/ExternalPackage_python3.mk +++ b/external/python3/ExternalPackage_python3.mk @@ -112,6 +112,7 @@ $(eval $(call gb_ExternalPackage_add_files,python3,$(LIBO_BIN_FOLDER)/python-cor LO_lib/_testcapi.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \ LO_lib/_testimportmultiple.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \ LO_lib/_testmultiphase.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \ + LO_lib/unicodedata.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \ LO_lib/xxlimited.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \ LO_lib/zlib.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \ )) @@ -660,7 +661,6 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p Lib/lib2to3/fixes/fix_asserts.py \ Lib/lib2to3/fixes/fix_basestring.py \ Lib/lib2to3/fixes/fix_buffer.py \ - Lib/lib2to3/fixes/fix_callable.py \ Lib/lib2to3/fixes/fix_dict.py \ Lib/lib2to3/fixes/fix_except.py \ Lib/lib2to3/fixes/fix_execfile.py \ diff --git a/external/python3/UnpackedTarball_python3.mk b/external/python3/UnpackedTarball_python3.mk index a70005bbb9538..423dc3e0b31ff 100644 --- a/external/python3/UnpackedTarball_python3.mk +++ b/external/python3/UnpackedTarball_python3.mk @@ -19,17 +19,14 @@ $(eval $(call gb_UnpackedTarball_add_patches,python3,\ external/python3/i100492-freebsd.patch.1 \ $(if $(filter AIX,$(OS)),external/python3/python-3.3.3-aix.patch.1) \ external/python3/python-3.3.0-darwin.patch.1 \ - external/python3/python-3.3.0-msvc-disable.patch.1 \ - external/python3/python-3.3.0-ssl.patch.1 \ - external/python3/python-3.3.3-py17797.patch.1 \ + external/python3/python-3.5.4-ssl.patch.1 \ + external/python3/python-3.5.4-msvc-disable.patch.1 \ external/python3/python-3.3.0-i42553.patch.2 \ external/python3/python-3.3.0-pythreadstate.patch.1 \ external/python3/python-3.3.0-clang.patch.1 \ external/python3/python-3.3.5-pyexpat-symbols.patch.1 \ - external/python3/python-lsan.patch.0 \ external/python3/ubsan.patch.0 \ external/python3/python-3.5.tweak.strip.soabi.patch \ - external/python3/python-3.5.0-tcltk.disable.patch \ )) ifneq ($(filter DRAGONFLY FREEBSD LINUX NETBSD OPENBSD SOLARIS,$(OS)),) @@ -44,18 +41,18 @@ $(eval $(call gb_UnpackedTarball_add_patches,python3,\ )) endif -ifeq ($(OS)-$(COM),WNT-MSC) -ifneq ($(filter 120,$(VCVER)),) -$(eval $(call gb_UnpackedTarball_add_patches,python3,\ - external/python3/python-vc2013.patch.1 \ -)) -endif -endif - ifneq ($(SYSTEM_ZLIB),TRUE) $(eval $(call gb_UnpackedTarball_add_patches,python3, \ external/python3/internal-zlib.patch.0 \ )) endif +ifeq ($(OS),MACOSX) +ifneq ($(filter 1080 1090 101000 101100 101200,$(MAC_OS_X_VERSION_MIN_REQUIRED)),) +$(eval $(call gb_UnpackedTarball_add_patches,python3,\ + external/python3/python3-osx-avoid-new-10.13.patch.1 \ +)) +endif +endif + # vim: set noet sw=4 ts=4: diff --git a/external/python3/python-3.3.0-darwin.patch.1 b/external/python3/python-3.3.0-darwin.patch.1 index 2cf5bbb9e1bd3..d5cb17e339a2b 100644 --- a/external/python3/python-3.3.0-darwin.patch.1 +++ b/external/python3/python-3.3.0-darwin.patch.1 @@ -27,8 +27,6 @@ diff -ru python3.orig/configure python3/configure LIPO_32BIT_FLAGS="" ARCH_RUN_32BIT="" ;; -Only in python3: .#configure -Only in python3: #configure# diff -ru python3.orig/Mac/Makefile.in python3/Mac/Makefile.in --- python3.orig/Mac/Makefile.in 2015-07-05 18:50:07.000000000 +0200 +++ python3/Mac/Makefile.in 2015-07-26 17:40:14.860514100 +0200 @@ -51,7 +49,7 @@ diff -ru python3.orig/Mac/Resources/app/Info.plist.in python3/Mac/Resources/app/ - Python + LibreOfficePython CFBundleGetInfoString - %version%, (c) 2001-2015 Python Software Foundation. + %version%, (c) 2001-2016 Python Software Foundation. CFBundleHelpBookFolder diff -ru python3.orig/Mac/Resources/framework/Info.plist.in python3/Mac/Resources/framework/Info.plist.in --- python3.orig/Mac/Resources/framework/Info.plist.in 2015-07-05 18:50:07.000000000 +0200 diff --git a/external/python3/python-3.3.3-py17797.patch.1 b/external/python3/python-3.3.3-py17797.patch.1 deleted file mode 100644 index 0365717d10705..0000000000000 --- a/external/python3/python-3.3.3-py17797.patch.1 +++ /dev/null @@ -1,49 +0,0 @@ -http://bugs.python.org/issue17797 -http://connect.microsoft.com/VisualStudio/feedback/details/785119/ - -Visual Studio 2013 changed return value for fileno function that breaks -when python tries to check/setup stdin/out/err -GetStdHandle on Windows XP behaves contrary to the documentation... -MSVC 14.0 fixed this bug. - -diff -ru python3.orig/Python/pylifecycle.c python3/Python/pylifecycle.c ---- python3.orig/Python/pylifecycle.c 2015-07-05 18:50:08.000000000 +0200 -+++ python3/Python/pylifecycle.c 2015-07-26 20:01:23.563082638 +0200 -@@ -1065,15 +1065,30 @@ - static int - is_valid_fd(int fd) - { -- int dummy_fd; - if (fd < 0 || !_PyVerify_fd(fd)) - return 0; -- _Py_BEGIN_SUPPRESS_IPH -- dummy_fd = dup(fd); -- if (dummy_fd >= 0) -- close(dummy_fd); -- _Py_END_SUPPRESS_IPH -- return dummy_fd >= 0; -+ -+#if defined(MS_WINDOWS) && defined(HAVE_FSTAT) && defined(_MSC_VER) && (_MSC_VER >= 1700 && _MSC_VER < 1900) -+ /* dup (DuplicateHandle) doesn't say fd is a valid *file* handle. -+ * It could be a current thread pseudo-handle. -+ */ -+ { -+ struct stat buf; -+ if (fstat(fd, &buf) < 0 && (errno == EBADF || errno == ENOENT)) -+ return 0; -+ else -+ return 1; -+ } -+#else -+ { -+ int dummy_fd = dup(fd); -+ _Py_BEGIN_SUPPRESS_IPH -+ if (dummy_fd >= 0) -+ close(dummy_fd); -+ _Py_END_SUPPRESS_IPH -+ return dummy_fd >= 0; -+ } -+#endif - } - - /* Initialize sys.stdin, stdout, stderr and builtins.open */ diff --git a/external/python3/python-3.5.0-tcltk.disable.patch b/external/python3/python-3.5.0-tcltk.disable.patch deleted file mode 100644 index 3aeebec2719cd..0000000000000 --- a/external/python3/python-3.5.0-tcltk.disable.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff -ru python3.orig/PCbuild/pcbuild.sln python3/PCbuild/pcbuild.sln ---- foo/python3.orig/PCbuild/pcbuild.sln 2015-08-22 19:12:48.508338400 +0200 -+++ foo/python3/PCbuild/pcbuild.sln 2015-08-22 19:15:50.130169800 +0200 -@@ -58,12 +58,6 @@ - EndProject - Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testmultiphase", "_testmultiphase.vcxproj", "{16BFE6F0-22EF-40B5-B831-7E937119EF10}" - EndProject --Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tcl", "tcl.vcxproj", "{B5FD6F1D-129E-4BFF-9340-03606FAC7283}" --EndProject --Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tix", "tix.vcxproj", "{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}" --EndProject --Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tk", "tk.vcxproj", "{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}" --EndProject - Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 diff --git a/external/python3/python-3.3.0-msvc-disable.patch.1 b/external/python3/python-3.5.4-msvc-disable.patch.1 similarity index 77% rename from external/python3/python-3.3.0-msvc-disable.patch.1 rename to external/python3/python-3.5.4-msvc-disable.patch.1 index bb0a57f4c032f..54b2a5f465404 100644 --- a/external/python3/python-3.3.0-msvc-disable.patch.1 +++ b/external/python3/python-3.5.4-msvc-disable.patch.1 @@ -1,8 +1,8 @@ Disable some stuff LO does not need, especially stuff with external dependencies diff -ru python3.orig/PCbuild/pcbuild.sln python3/PCbuild/pcbuild.sln ---- python3.orig/PCbuild/pcbuild.sln 2015-07-26 17:43:52.262528695 +0200 -+++ python3/PCbuild/pcbuild.sln 2015-07-26 18:00:18.438594901 +0200 +--- python3.orig/PCbuild/pcbuild.sln 2017-08-10 00:04:44.359879894 +0200 ++++ python3/PCbuild/pcbuild.sln 2017-08-10 00:13:51.179873748 +0200 @@ -12,8 +12,6 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythoncore", "pythoncore.vcxproj", "{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}" @@ -45,3 +45,17 @@ diff -ru python3.orig/PCbuild/pcbuild.sln python3/PCbuild/pcbuild.sln Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_multiprocessing", "_multiprocessing.vcxproj", "{9E48B300-37D1-11DD-8C41-005056C00008}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python3dll", "python3dll.vcxproj", "{885D4898-D08D-4091-9C40-C700CFE3FC5A}" +@@ -80,12 +64,6 @@ + EndProject + Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testmultiphase", "_testmultiphase.vcxproj", "{16BFE6F0-22EF-40B5-B831-7E937119EF10}" + EndProject +-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tcl", "tcl.vcxproj", "{B5FD6F1D-129E-4BFF-9340-03606FAC7283}" +-EndProject +-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tix", "tix.vcxproj", "{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}" +-EndProject +-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tk", "tk.vcxproj", "{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}" +-EndProject + Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pyshellext", "pyshellext.vcxproj", "{0F6EE4A4-C75F-4578-B4B3-2D64F4B9B782}" + EndProject + Global +Only in python3/PCbuild: pcbuild.sln~ diff --git a/external/python3/python-3.3.0-ssl.patch.1 b/external/python3/python-3.5.4-ssl.patch.1 similarity index 75% rename from external/python3/python-3.3.0-ssl.patch.1 rename to external/python3/python-3.5.4-ssl.patch.1 index e43a7b332a882..beb6fe38882f0 100644 --- a/external/python3/python-3.3.0-ssl.patch.1 +++ b/external/python3/python-3.5.4-ssl.patch.1 @@ -1,11 +1,11 @@ -*- Mode: diff -*- -Tweak SSL build to find OpenSSL in solver & not build it itself in "ssl.vcproj" etc. +Tweak SSL build to find OpenSSL in workdir & not build it itself in "ssl.vcproj" etc. diff -ru python3.orig/PCbuild/pcbuild.sln python3/PCbuild/pcbuild.sln ---- python3.orig/PCbuild/pcbuild.sln 2015-08-22 18:57:16.653719900 +0200 -+++ python3/PCbuild/pcbuild.sln 2015-08-22 19:03:06.062853000 +0200 -@@ -64,10 +64,6 @@ +--- python3.orig/PCbuild/pcbuild.sln 2017-08-09 23:39:15.511897077 +0200 ++++ python3/PCbuild/pcbuild.sln 2017-08-09 23:48:41.375890717 +0200 +@@ -86,10 +86,6 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tk", "tk.vcxproj", "{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}" EndProject @@ -13,44 +13,50 @@ diff -ru python3.orig/PCbuild/pcbuild.sln python3/PCbuild/pcbuild.sln -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssleay", "ssleay.vcxproj", "{10615B24-73BF-4EFA-93AA-236916321317}" -EndProject + Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pyshellext", "pyshellext.vcxproj", "{0F6EE4A4-C75F-4578-B4B3-2D64F4B9B782}" + EndProject Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 diff -ru python3.orig/PCbuild/_ssl.vcxproj python3/PCbuild/_ssl.vcxproj ---- python3.orig/PCbuild/_ssl.vcxproj 2015-08-11 02:52:36.000000000 +0200 -+++ python3/PCbuild/_ssl.vcxproj 2015-08-22 18:19:20.744299000 +0200 +--- python3.orig/PCbuild/_ssl.vcxproj 2017-08-07 09:59:11.000000000 +0200 ++++ python3/PCbuild/_ssl.vcxproj 2017-08-09 23:50:36.871889419 +0200 +@@ -1,4 +1,4 @@ +- ++ + + + @@ -61,10 +61,10 @@ - - - -- $(opensslDir)include;%(AdditionalIncludeDirectories) -+ $(WORKDIR)/UnpackedTarball/openssl/include;%(AdditionalIncludeDirectories) - - -- ws2_32.lib;crypt32.lib;$(OutDir)libeay$(PyDebugExt).lib;$(OutDir)ssleay$(PyDebugExt).lib;%(AdditionalDependencies) -+ ws2_32.lib;crypt32.lib;$(WORKDIR)\UnpackedTarball\openssl\out32dll\libeay32.lib;$(WORKDIR)\UnpackedTarball\openssl\out32dll\ssleay32.lib;%(AdditionalDependencies) - - - -@@ -75,14 +75,6 @@ - {cf7ac3d1-e2df-41d2-bea6-1e2556cdea26} - false - -- -- {e5b04cc0-eb4c-42ab-b4dc-18ef95f864b0} -- false -- -- -- {10615b24-73bf-4efa-93aa-236916321317} -- false -- - - {86937f53-c189-40ef-8ce8-8759d8e7d480} - false + + + +- $(opensslIncludeDir);%(AdditionalIncludeDirectories) ++ $(WORKDIR)/UnpackedTarball/openssl/include;%(AdditionalIncludeDirectories) + + +- ws2_32.lib;crypt32.lib;$(OutDir)libeay$(PyDebugExt).lib;$(OutDir)ssleay$(PyDebugExt).lib;%(AdditionalDependencies) ++ ws2_32.lib;crypt32.lib;$(WORKDIR)\UnpackedTarball\openssl\out32dll\libeay32.lib;$(WORKDIR)\UnpackedTarball\openssl\out32dll\ssleay32.lib;%(AdditionalDependencies) + + + +@@ -78,14 +78,6 @@ + {cf7ac3d1-e2df-41d2-bea6-1e2556cdea26} + false + +- +- {e5b04cc0-eb4c-42ab-b4dc-18ef95f864b0} +- false +- +- +- {10615b24-73bf-4efa-93aa-236916321317} +- false +- + + {86937f53-c189-40ef-8ce8-8759d8e7d480} + false diff -ru python3.orig/setup.py python3/setup.py ---- python3.orig/setup.py 2015-08-22 18:16:15.825267200 +0200 -+++ python3/setup.py 2015-08-22 18:22:44.162757900 +0200 -@@ -778,7 +778,10 @@ +--- python3.orig/setup.py 2017-08-09 23:39:15.495897077 +0200 ++++ python3/setup.py 2017-08-09 23:53:06.891887733 +0200 +@@ -807,7 +807,10 @@ exts.append( Extension('_socket', ['socketmodule.c'], depends = ['socketmodule.h']) ) # Detect SSL support for the socket module (via _ssl) @@ -61,7 +67,7 @@ diff -ru python3.orig/setup.py python3/setup.py '/usr/local/ssl/include', '/usr/contrib/ssl/include/' ] -@@ -790,8 +793,12 @@ +@@ -819,8 +822,12 @@ ['/usr/kerberos/include']) if krb5_h: ssl_incs += krb5_h @@ -74,5 +80,4 @@ diff -ru python3.orig/setup.py python3/setup.py + '/usr/local/ssl/lib', '/usr/contrib/ssl/lib/' ] ) - - + diff --git a/external/python3/python-lsan.patch.0 b/external/python3/python-lsan.patch.0 deleted file mode 100644 index 3796904bed4eb..0000000000000 --- a/external/python3/python-lsan.patch.0 +++ /dev/null @@ -1,19 +0,0 @@ ---- configure -+++ configure -@@ -11821,6 +11821,7 @@ - break; - } - } -+ freeaddrinfo(aitop); - } - - if (!(inet4 == 0 || inet4 == 2)) -@@ -11828,8 +11829,6 @@ - if (!(inet6 == 0 || inet6 == 2)) - goto bad; - -- if (aitop) -- freeaddrinfo(aitop); - return 0; - - bad: diff --git a/external/python3/python-vc2013.patch.1 b/external/python3/python-vc2013.patch.1 deleted file mode 100644 index c7eb30759d1fd..0000000000000 --- a/external/python3/python-vc2013.patch.1 +++ /dev/null @@ -1,1213 +0,0 @@ --*- Mode:Diff -*- ---- python3/PCbuild/_ctypes.vcxproj -+++ python3/PCbuild/_ctypes.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - Debug -@@ -44,39 +44,47 @@ - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - ---- python3/PCbuild/_ctypes_test.vcxproj -+++ python3/PCbuild/_ctypes_test.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - Debug -@@ -44,39 +44,47 @@ - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - ---- python3/PCbuild/_decimal.vcxproj -+++ python3/PCbuild/_decimal.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - Debug -@@ -44,39 +44,47 @@ - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - ---- python3/PCbuild/_elementtree.vcxproj -+++ python3/PCbuild/_elementtree.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - Debug -@@ -44,39 +44,47 @@ - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - ---- python3/PCbuild/_freeze_importlib.vcxproj -+++ python3/PCbuild/_freeze_importlib.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - Debug -@@ -28,23 +28,27 @@ - Application - true - Unicode -+ v120 - - - Application - true - Unicode -+ v120 - - - Application - false - true - Unicode -+ v120 - - - Application - false - true - Unicode -+ v120 - - - ---- python3/PCbuild/_msi.vcxproj -+++ python3/PCbuild/_msi.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - Debug -@@ -44,39 +44,47 @@ - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - ---- python3/PCbuild/_multiprocessing.vcxproj -+++ python3/PCbuild/_multiprocessing.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - Debug -@@ -44,39 +44,47 @@ - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - ---- python3/PCbuild/_socket.vcxproj -+++ python3/PCbuild/_socket.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - Debug -@@ -44,39 +44,47 @@ - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - ---- python3/PCbuild/_ssl.vcxproj -+++ python3/PCbuild/_ssl.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - Debug -@@ -44,39 +44,47 @@ - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - ---- python3/PCbuild/_testbuffer.vcxproj -+++ python3/PCbuild/_testbuffer.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - Debug -@@ -44,39 +44,47 @@ - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - ---- python3/PCbuild/_testcapi.vcxproj -+++ python3/PCbuild/_testcapi.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - Debug -@@ -44,39 +44,47 @@ - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - ---- python3/PCbuild/kill_python.vcxproj -+++ python3/PCbuild/kill_python.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - Debug -@@ -28,19 +28,23 @@ - Application - NotSet - true -+ v120 - - - Application - NotSet -+ v120 - - - Application - NotSet - true -+ v120 - - - Application - NotSet -+ v120 - - - ---- python3/PCbuild/make_buildinfo.vcxproj -+++ python3/PCbuild/make_buildinfo.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - Release -@@ -19,10 +19,12 @@ - - Application - NotSet -+ v120 - - - Application - NotSet -+ v120 - - - ---- python3/PCbuild/make_versioninfo.vcxproj -+++ python3/PCbuild/make_versioninfo.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - Debug -@@ -27,17 +27,21 @@ - Application - false - NotSet -+ v120 - - - Application - false - MultiByte -+ v120 - - - Application -+ v120 - - - Application -+ v120 - - - ---- python3/PCbuild/pyexpat.vcxproj -+++ python3/PCbuild/pyexpat.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - Debug -@@ -44,39 +44,47 @@ - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - ---- python3/PCbuild/pylauncher.vcxproj -+++ python3/PCbuild/pylauncher.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - Debug -@@ -43,47 +43,55 @@ - Application - true - MultiByte -+ v120 - - - Application - true - MultiByte -+ v120 - - - Application - false - true - MultiByte -+ v120 - - - Application - false - true - MultiByte -+ v120 - - - Application - false - true - MultiByte -+ v120 - - - Application - false - true - MultiByte -+ v120 - - - Application - false - true - MultiByte -+ v120 - - - Application - false - true - MultiByte -+ v120 - - - -@@ -308,4 +316,4 @@ - - - -- -+ -\ No newline at end of file ---- python3/PCbuild/python.vcxproj -+++ python3/PCbuild/python.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - Debug -@@ -42,41 +42,49 @@ - Application - false - MultiByte -+ v120 - - - Application - false - MultiByte -+ v120 - - - Application - false - NotSet -+ v120 - - - Application - false - MultiByte -+ v120 - - - Application - false - MultiByte -+ v120 - - - Application - false - MultiByte -+ v120 - - - Application - false - MultiByte -+ v120 - - - Application - false - MultiByte -+ v120 - - - ---- python3/PCbuild/pythoncore.vcxproj -+++ python3/PCbuild/pythoncore.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - Debug -@@ -42,35 +42,43 @@ - - DynamicLibrary - false -+ v120 - - - DynamicLibrary - false -+ v120 - - - DynamicLibrary - false - NotSet -+ v120 - - - DynamicLibrary - false -+ v120 - - - DynamicLibrary - false -+ v120 - - - DynamicLibrary - false -+ v120 - - - DynamicLibrary - false -+ v120 - - - DynamicLibrary - false -+ v120 - - - ---- python3/PCbuild/pywlauncher.vcxproj -+++ python3/PCbuild/pywlauncher.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - Debug -@@ -43,29 +43,41 @@ - Application - true - Unicode -+ v120 - - - Application - true - Unicode -+ v120 - - - Application - false - true - Unicode -+ v120 - - - Application - false - true - Unicode -+ v120 - - - Unicode -+ v120 - - - Unicode -+ v120 -+ -+ -+ v120 -+ -+ -+ v120 - - - ---- python3/PCbuild/select.vcxproj -+++ python3/PCbuild/select.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - Debug -@@ -44,39 +44,47 @@ - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - ---- python3/PCbuild/unicodedata.vcxproj -+++ python3/PCbuild/unicodedata.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - Debug -@@ -44,39 +44,47 @@ - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - ---- python3/PCbuild/w9xpopen.vcxproj -+++ python3/PCbuild/w9xpopen.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - Debug ---- python3/PCbuild/winsound.vcxproj -+++ python3/PCbuild/winsound.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - Debug -@@ -44,39 +44,47 @@ - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet -+ v120 - - - ---- python3/PCbuild/xxlimited.vcxproj -+++ python3/PCbuild/xxlimited.vcxproj -@@ -1,5 +1,5 @@ -  -- -+ - - - PGInstrument -@@ -36,31 +36,37 @@ - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - DynamicLibrary - NotSet - true -+ v120 - - - diff --git a/external/python3/python3-osx-avoid-new-10.13.patch.1 b/external/python3/python3-osx-avoid-new-10.13.patch.1 new file mode 100644 index 0000000000000..93bf5a078e01e --- /dev/null +++ b/external/python3/python3-osx-avoid-new-10.13.patch.1 @@ -0,0 +1,61 @@ +-*- Mode: Diff -*- + +--- python3/Modules/posixmodule.c ++++ python3/Modules/posixmodule.c +@@ -4565,12 +4565,12 @@ + } \ + + +-#if defined(HAVE_FUTIMESAT) || defined(HAVE_UTIMENSAT) ++#if defined(HAVE_FUTIMESAT) + + static int + utime_dir_fd(utime_t *ut, int dir_fd, char *path, int follow_symlinks) + { +-#ifdef HAVE_UTIMENSAT ++#if 0 + int flags = follow_symlinks ? 0 : AT_SYMLINK_NOFOLLOW; + UTIME_TO_TIMESPEC; + return utimensat(dir_fd, path, time, flags); +@@ -4591,12 +4591,12 @@ + #define FUTIMENSAT_DIR_FD_CONVERTER dir_fd_unavailable + #endif + +-#if defined(HAVE_FUTIMES) || defined(HAVE_FUTIMENS) ++#if defined(HAVE_FUTIMES) + + static int + utime_fd(utime_t *ut, int fd) + { +-#ifdef HAVE_FUTIMENS ++#if 0 + UTIME_TO_TIMESPEC; + return futimens(fd, time); + #else +@@ -4619,7 +4619,7 @@ + static int + utime_nofollow_symlinks(utime_t *ut, char *path) + { +-#ifdef HAVE_UTIMENSAT ++#if 0 + UTIME_TO_TIMESPEC; + return utimensat(DEFAULT_DIR_FD, path, time, AT_SYMLINK_NOFOLLOW); + #else +@@ -4635,7 +4635,7 @@ + static int + utime_default(utime_t *ut, char *path) + { +-#ifdef HAVE_UTIMENSAT ++#if 0 + UTIME_TO_TIMESPEC; + return utimensat(DEFAULT_DIR_FD, path, time, 0); + #elif defined(HAVE_UTIMES) +@@ -4836,7 +4836,7 @@ + else + #endif + +-#if defined(HAVE_FUTIMESAT) || defined(HAVE_UTIMENSAT) ++#if defined(HAVE_FUTIMESAT) + if ((dir_fd != DEFAULT_DIR_FD) || (!follow_symlinks)) + result = utime_dir_fd(&utime, dir_fd, path->narrow, follow_symlinks); + else diff --git a/external/python3/ubsan.patch.0 b/external/python3/ubsan.patch.0 index 700f43b9b2f8f..8f52375bc8297 100644 --- a/external/python3/ubsan.patch.0 +++ b/external/python3/ubsan.patch.0 @@ -21,30 +21,3 @@ diff -ru python3.orig/Modules/_ctypes/libffi/src/x86/ffi64.c python3/Modules/_ct /* Set the carry bit iff the function uses any sse registers. This is clc or stc, together with the first byte of the jmp. */ -diff -ru python3.orig/Objects/listobject.c python3/Objects/listobject.c ---- Objects/listobject.c 2015-07-05 18:50:08.000000000 +0200 -+++ Objects/listobject.c 2015-07-26 20:22:30.539167695 +0200 -@@ -641,7 +641,7 @@ - goto Error; - } - } -- memcpy(recycle, &item[ilow], s); -+ if (s != 0) memcpy(recycle, &item[ilow], s); - - if (d < 0) { /* Delete -d items */ - Py_ssize_t tail; ---- Modules/_ctypes/_ctypes.c -+++ Modules/_ctypes/_ctypes.c -@@ -1358,8 +1358,10 @@ - goto error; - } - stgdict->shape[0] = length; -- memmove(&stgdict->shape[1], itemdict->shape, -- sizeof(Py_ssize_t) * (stgdict->ndim - 1)); -+ if (itemdict->shape) { -+ memmove(&stgdict->shape[1], itemdict->shape, -+ sizeof(Py_ssize_t) * (stgdict->ndim - 1)); -+ } - - itemsize = itemdict->size; - if (length * itemsize < 0) { diff --git a/external/python33/ExternalPackage_python3.mk b/external/python33/ExternalPackage_python3.mk index a2f51c10be187..9341e9c498f26 100644 --- a/external/python33/ExternalPackage_python3.mk +++ b/external/python33/ExternalPackage_python3.mk @@ -106,6 +106,7 @@ $(eval $(call gb_ExternalPackage_add_files,python3,$(LIBO_BIN_FOLDER)/python-cor LO_lib/_testbuffer.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \ LO_lib/_testcapi.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \ LO_lib/time.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \ + LO_lib/unicodedata.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \ LO_lib/zlib.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \ )) endif diff --git a/external/redland/UnpackedTarball_raptor.mk b/external/redland/UnpackedTarball_raptor.mk index 762903018d43c..a6260715588e2 100644 --- a/external/redland/UnpackedTarball_raptor.mk +++ b/external/redland/UnpackedTarball_raptor.mk @@ -26,6 +26,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,raptor,\ external/redland/raptor/ubsan.patch \ $(if $(SYSTEM_LIBXML),,external/redland/raptor/rpath.patch) \ external/redland/raptor/xml2-config.patch \ + external/redland/raptor/0001-Calcualte-max-nspace-declarations-correctly-for-XML-.patch.1 \ )) # vim: set noet sw=4 ts=4: diff --git a/external/redland/raptor/0001-Calcualte-max-nspace-declarations-correctly-for-XML-.patch.1 b/external/redland/raptor/0001-Calcualte-max-nspace-declarations-correctly-for-XML-.patch.1 new file mode 100644 index 0000000000000..6fa726cae6da9 --- /dev/null +++ b/external/redland/raptor/0001-Calcualte-max-nspace-declarations-correctly-for-XML-.patch.1 @@ -0,0 +1,43 @@ +From 590681e546cd9aa18d57dc2ea1858cb734a3863f Mon Sep 17 00:00:00 2001 +From: Dave Beckett +Date: Sun, 16 Apr 2017 23:15:12 +0100 +Subject: [PATCH] Calcualte max nspace declarations correctly for XML writer + +(raptor_xml_writer_start_element_common): Calculate max including for +each attribute a potential name and value. + +Fixes Issues #0000617 http://bugs.librdf.org/mantis/view.php?id=617 +and #0000618 http://bugs.librdf.org/mantis/view.php?id=618 +--- + src/raptor_xml_writer.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/src/raptor_xml_writer.c b/src/raptor_xml_writer.c +index 693b946..0d3a36a 100644 +--- a/src/raptor_xml_writer.c ++++ b/src/raptor_xml_writer.c +@@ -181,9 +181,10 @@ raptor_xml_writer_start_element_common(raptor_xml_writer* xml_writer, + size_t nspace_declarations_count = 0; + unsigned int i; + +- /* max is 1 per element and 1 for each attribute + size of declared */ + if(nstack) { +- int nspace_max_count = element->attribute_count+1; ++ int nspace_max_count = element->attribute_count * 2; /* attr and value */ ++ if(element->name->nspace) ++ nspace_max_count++; + if(element->declared_nspaces) + nspace_max_count += raptor_sequence_size(element->declared_nspaces); + if(element->xml_language) +@@ -237,7 +238,7 @@ raptor_xml_writer_start_element_common(raptor_xml_writer* xml_writer, + } + } + +- /* Add the attribute + value */ ++ /* Add the attribute's value */ + nspace_declarations[nspace_declarations_count].declaration= + raptor_qname_format_as_xml(element->attributes[i], + &nspace_declarations[nspace_declarations_count].length); +-- +2.9.3 + diff --git a/external/redland/raptor/xml2-config.patch b/external/redland/raptor/xml2-config.patch index 61520a8eb72aa..2550acee044a7 100644 --- a/external/redland/raptor/xml2-config.patch +++ b/external/redland/raptor/xml2-config.patch @@ -12,3 +12,11 @@ fi fi +@@ -14481,6 +14481,7 @@ + + LIBXML_VERSION=`$PKG_CONFIG libxml-2.0 --modversion` + libxml_source="pkg-config" ++ XML_CONFIG="$PKG_CONFIG libxml-2.0" + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml via pkg-config" >&5 diff --git a/extras/Package_palettes.mk b/extras/Package_palettes.mk index ed1f820764b74..a4031d742507e 100644 --- a/extras/Package_palettes.mk +++ b/extras/Package_palettes.mk @@ -11,15 +11,13 @@ $(eval $(call gb_Package_Package,extras_palettes,$(SRCDIR)/extras/source/palette $(eval $(call gb_Package_add_files,extras_palettes,$(LIBO_SHARE_FOLDER)/palette,\ arrowhd.soe \ + breeze.soc \ classic.sog \ - cmyk.soc \ - gallery.soc \ + freecolour-hlc.soc \ hatching.soh \ html.soc \ libreoffice.soc \ modern.sog \ - palette.soc \ - scribus.soc \ standard.sob \ standard.soc \ standard.sod \ @@ -29,8 +27,7 @@ $(eval $(call gb_Package_add_files,extras_palettes,$(LIBO_SHARE_FOLDER)/palette, standard.sop \ styles.sod \ tango.soc \ - tonal_column.soc \ - web.soc \ + tonal.soc \ )) # vim: set noet sw=4 ts=4: diff --git a/extras/source/autocorr/lang/bg/DocumentList.xml b/extras/source/autocorr/lang/bg/DocumentList.xml index 348a27a296cd3..627fe2c725845 100644 --- a/extras/source/autocorr/lang/bg/DocumentList.xml +++ b/extras/source/autocorr/lang/bg/DocumentList.xml @@ -20,46 +20,58 @@ + + + + + + + + + + + + diff --git a/extras/source/autocorr/lang/ca/DocumentList.xml b/extras/source/autocorr/lang/ca/DocumentList.xml index 5b3f48ae56035..38a1bf70aac89 100644 --- a/extras/source/autocorr/lang/ca/DocumentList.xml +++ b/extras/source/autocorr/lang/ca/DocumentList.xml @@ -358,7 +358,6 @@ - @@ -443,11 +442,13 @@ + + @@ -460,6 +461,7 @@ + @@ -511,7 +513,7 @@ - + @@ -594,10 +596,12 @@ + + @@ -646,18 +650,17 @@ - - - + + @@ -665,17 +668,25 @@ + + + + + + + + @@ -696,6 +707,7 @@ + @@ -705,6 +717,7 @@ + @@ -712,11 +725,13 @@ + + @@ -734,6 +749,7 @@ + @@ -757,6 +773,8 @@ + + @@ -820,6 +838,7 @@ + @@ -844,6 +863,7 @@ + @@ -861,6 +881,7 @@ + @@ -873,6 +894,7 @@ + @@ -898,6 +920,7 @@ + @@ -942,6 +965,7 @@ + @@ -962,11 +986,14 @@ + - + + + @@ -986,7 +1013,7 @@ - + @@ -1023,7 +1050,10 @@ + + + @@ -1042,6 +1072,7 @@ + @@ -1053,6 +1084,7 @@ + @@ -1064,17 +1096,20 @@ + + + @@ -1084,10 +1119,12 @@ + + @@ -1149,6 +1186,8 @@ + + @@ -1172,10 +1211,12 @@ + + @@ -1193,6 +1234,7 @@ + @@ -1226,6 +1268,8 @@ + + @@ -1251,11 +1295,14 @@ + + + @@ -1282,6 +1329,7 @@ + @@ -1313,8 +1361,13 @@ + + + + + @@ -1325,6 +1378,7 @@ + @@ -1388,9 +1442,10 @@ - + + @@ -1400,6 +1455,7 @@ + diff --git a/extras/source/autocorr/lang/de/DocumentList.xml b/extras/source/autocorr/lang/de/DocumentList.xml index 2b8cf95db46b6..b085cfb32dec5 100644 --- a/extras/source/autocorr/lang/de/DocumentList.xml +++ b/extras/source/autocorr/lang/de/DocumentList.xml @@ -810,6 +810,7 @@ + @@ -824,7 +825,6 @@ - diff --git a/extras/source/autocorr/lang/fi/DocumentList.xml b/extras/source/autocorr/lang/fi/DocumentList.xml index bf87c3dd1cd70..d994c161e1091 100644 --- a/extras/source/autocorr/lang/fi/DocumentList.xml +++ b/extras/source/autocorr/lang/fi/DocumentList.xml @@ -19,46 +19,58 @@ + + + + + + + + + + + + diff --git a/extras/source/autocorr/lang/hr/DocumentList.xml b/extras/source/autocorr/lang/hr/DocumentList.xml index 279a56c6fd02c..9f0164f17d3e8 100644 --- a/extras/source/autocorr/lang/hr/DocumentList.xml +++ b/extras/source/autocorr/lang/hr/DocumentList.xml @@ -1,5 +1,6 @@ + diff --git a/extras/source/autocorr/lang/ja/DocumentList.xml b/extras/source/autocorr/lang/ja/DocumentList.xml index befa97dbd7be7..449e8279316f5 100644 --- a/extras/source/autocorr/lang/ja/DocumentList.xml +++ b/extras/source/autocorr/lang/ja/DocumentList.xml @@ -818,46 +818,58 @@ + + + + + + + + + + + + diff --git a/extras/source/autocorr/lang/pl/DocumentList.xml b/extras/source/autocorr/lang/pl/DocumentList.xml index d35c0e2e22b4e..d83e32285aa13 100644 --- a/extras/source/autocorr/lang/pl/DocumentList.xml +++ b/extras/source/autocorr/lang/pl/DocumentList.xml @@ -492,35 +492,47 @@ + + + + + + + + + + + + @@ -777,29 +789,17 @@ - - - - - - - - - - - - diff --git a/extras/source/autocorr/lang/pt-BR/DocumentList.xml b/extras/source/autocorr/lang/pt-BR/DocumentList.xml index b213b200b39e5..648d2fe1dd4b8 100644 --- a/extras/source/autocorr/lang/pt-BR/DocumentList.xml +++ b/extras/source/autocorr/lang/pt-BR/DocumentList.xml @@ -2186,7 +2186,6 @@ - @@ -2211,6 +2210,7 @@ + diff --git a/extras/source/autocorr/lang/pt/DocumentList.xml b/extras/source/autocorr/lang/pt/DocumentList.xml index 29a26b85f7dc4..9e89c094cbb0f 100644 --- a/extras/source/autocorr/lang/pt/DocumentList.xml +++ b/extras/source/autocorr/lang/pt/DocumentList.xml @@ -182,6 +182,8 @@ + + @@ -199,6 +201,7 @@ + @@ -208,9 +211,13 @@ + + + + @@ -239,6 +246,7 @@ + @@ -430,6 +438,7 @@ + @@ -1472,6 +1481,8 @@ + + @@ -2096,6 +2107,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extras/source/autocorr/lang/ro/DocumentList.xml b/extras/source/autocorr/lang/ro/DocumentList.xml index bbb543342bc03..a7b6d46c27692 100644 --- a/extras/source/autocorr/lang/ro/DocumentList.xml +++ b/extras/source/autocorr/lang/ro/DocumentList.xml @@ -88,34 +88,46 @@ + + + + + + + + + + + + diff --git a/extras/source/autocorr/lang/ru/DocumentList.xml b/extras/source/autocorr/lang/ru/DocumentList.xml index 05c1b6470a914..7612490be2849 100644 --- a/extras/source/autocorr/lang/ru/DocumentList.xml +++ b/extras/source/autocorr/lang/ru/DocumentList.xml @@ -214,38 +214,63 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -275,7 +300,10 @@ + + + @@ -309,12 +337,14 @@ + + @@ -332,6 +362,7 @@ + @@ -341,17 +372,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -361,92 +416,216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + - + + + + @@ -454,52 +633,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + @@ -508,108 +741,231 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -619,136 +975,358 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -758,26 +1336,45 @@ + + + + + + + + + + - + - + - + + + + + + + + + + diff --git a/extras/source/autocorr/lang/sk/DocumentList.xml b/extras/source/autocorr/lang/sk/DocumentList.xml index 143f568ddfe48..a54f2042bb74e 100644 --- a/extras/source/autocorr/lang/sk/DocumentList.xml +++ b/extras/source/autocorr/lang/sk/DocumentList.xml @@ -174,6 +174,7 @@ + @@ -362,7 +363,7 @@ - + @@ -397,8 +398,8 @@ - + @@ -536,7 +537,6 @@ - @@ -733,7 +733,6 @@ - @@ -760,7 +759,6 @@ - @@ -780,6 +778,7 @@ + @@ -838,7 +837,7 @@ - + @@ -1214,6 +1213,7 @@ + diff --git a/extras/source/autocorr/lang/sv/DocumentList.xml b/extras/source/autocorr/lang/sv/DocumentList.xml index 2a2e8577006ef..7ab564e29e326 100644 --- a/extras/source/autocorr/lang/sv/DocumentList.xml +++ b/extras/source/autocorr/lang/sv/DocumentList.xml @@ -113,35 +113,47 @@ + + + + + + + + + + + + diff --git a/extras/source/autocorr/lang/tr/DocumentList.xml b/extras/source/autocorr/lang/tr/DocumentList.xml index 15208b6e877c0..4695427dfd250 100644 --- a/extras/source/autocorr/lang/tr/DocumentList.xml +++ b/extras/source/autocorr/lang/tr/DocumentList.xml @@ -97,35 +97,47 @@ + + + + + + + + + + + + @@ -182,6 +194,7 @@ + @@ -463,7 +476,6 @@ - diff --git a/extras/source/autocorr/lang/zh-TW/DocumentList.xml b/extras/source/autocorr/lang/zh-TW/DocumentList.xml index 75a68bd1902e5..84a01f9cafa2d 100644 --- a/extras/source/autocorr/lang/zh-TW/DocumentList.xml +++ b/extras/source/autocorr/lang/zh-TW/DocumentList.xml @@ -1093,7 +1093,6 @@ - @@ -1169,6 +1168,7 @@ + diff --git a/extras/source/palettes/cmyk.soc b/extras/source/palettes/cmyk.soc deleted file mode 100644 index 0642dd9b3563b..0000000000000 --- a/extras/source/palettes/cmyk.soc +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/extras/source/palettes/freecolour-hlc.soc b/extras/source/palettes/freecolour-hlc.soc new file mode 100644 index 0000000000000..914aa91150084 --- /dev/null +++ b/extras/source/palettes/freecolour-hlc.soc @@ -0,0 +1,1038 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extras/source/palettes/gallery.soc b/extras/source/palettes/gallery.soc deleted file mode 100644 index e9970ea6e612c..0000000000000 --- a/extras/source/palettes/gallery.soc +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/extras/source/palettes/palette.soc b/extras/source/palettes/palette.soc deleted file mode 100644 index 6668b7031d157..0000000000000 --- a/extras/source/palettes/palette.soc +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/extras/source/palettes/scribus.soc b/extras/source/palettes/scribus.soc deleted file mode 100644 index 0f26ccd12bbf7..0000000000000 --- a/extras/source/palettes/scribus.soc +++ /dev/null @@ -1,548 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/extras/source/palettes/standard.soc b/extras/source/palettes/standard.soc index a174401d41072..7d97dbfeed425 100644 --- a/extras/source/palettes/standard.soc +++ b/extras/source/palettes/standard.soc @@ -1,8 +1,9 @@ - + + + - @@ -14,187 +15,100 @@ + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extras/source/palettes/tonal_column.soc b/extras/source/palettes/tonal.soc similarity index 68% rename from extras/source/palettes/tonal_column.soc rename to extras/source/palettes/tonal.soc index 1740160ee3b47..ad4872c75e7a6 100644 --- a/extras/source/palettes/tonal_column.soc +++ b/extras/source/palettes/tonal.soc @@ -13,49 +13,49 @@ - - - + + + - - - - - - - + + + + + + + - - - + + + - - - + + + - - - + + + - + - + - + - + - + @@ -65,9 +65,9 @@ - + - + @@ -77,9 +77,9 @@ - + - + @@ -89,9 +89,9 @@ - + - + @@ -101,9 +101,9 @@ - + - + @@ -113,9 +113,9 @@ - + - + diff --git a/extras/source/palettes/web.soc b/extras/source/palettes/web.soc deleted file mode 100644 index d05ba1462c31c..0000000000000 --- a/extras/source/palettes/web.soc +++ /dev/null @@ -1,236 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/extras/source/templates/presnt/Alizarin.otp b/extras/source/templates/presnt/Alizarin.otp index dcd05bbd23205..8a8252d5a0f06 100644 Binary files a/extras/source/templates/presnt/Alizarin.otp and b/extras/source/templates/presnt/Alizarin.otp differ diff --git a/extras/source/templates/presnt/BrightBlue.otp b/extras/source/templates/presnt/BrightBlue.otp index 542fb259908af..f9f7a4536407e 100644 Binary files a/extras/source/templates/presnt/BrightBlue.otp and b/extras/source/templates/presnt/BrightBlue.otp differ diff --git a/extras/source/templates/presnt/DNA.otp b/extras/source/templates/presnt/DNA.otp index eb400b47120dd..7640e9e1c2a20 100644 Binary files a/extras/source/templates/presnt/DNA.otp and b/extras/source/templates/presnt/DNA.otp differ diff --git a/extras/source/templates/presnt/Focus.otp b/extras/source/templates/presnt/Focus.otp index 18b3ecae210f6..d99618e841f87 100644 Binary files a/extras/source/templates/presnt/Focus.otp and b/extras/source/templates/presnt/Focus.otp differ diff --git a/extras/source/templates/presnt/Impress.otp b/extras/source/templates/presnt/Impress.otp index ddf9a7eeb2be4..9a33dcb7627c7 100644 Binary files a/extras/source/templates/presnt/Impress.otp and b/extras/source/templates/presnt/Impress.otp differ diff --git a/extras/source/templates/presnt/Inspiration.otp b/extras/source/templates/presnt/Inspiration.otp index 18a30cfa7c689..18ec2148c61a0 100644 Binary files a/extras/source/templates/presnt/Inspiration.otp and b/extras/source/templates/presnt/Inspiration.otp differ diff --git a/extras/source/templates/presnt/LushGreen.otp b/extras/source/templates/presnt/LushGreen.otp index 040e3bf8bd780..e2d6638e97dde 100644 Binary files a/extras/source/templates/presnt/LushGreen.otp and b/extras/source/templates/presnt/LushGreen.otp differ diff --git a/extras/source/templates/presnt/Metropolis.otp b/extras/source/templates/presnt/Metropolis.otp index 2af7d8a0ab75e..f176ad79e9e9c 100644 Binary files a/extras/source/templates/presnt/Metropolis.otp and b/extras/source/templates/presnt/Metropolis.otp differ diff --git a/extras/source/templates/presnt/Midnightblue.otp b/extras/source/templates/presnt/Midnightblue.otp index 981704cf26e46..962bafa3f6f6c 100644 Binary files a/extras/source/templates/presnt/Midnightblue.otp and b/extras/source/templates/presnt/Midnightblue.otp differ diff --git a/extras/source/templates/presnt/Pencil.otp b/extras/source/templates/presnt/Pencil.otp index 549714bef5e11..fa12e50deaa59 100644 Binary files a/extras/source/templates/presnt/Pencil.otp and b/extras/source/templates/presnt/Pencil.otp differ diff --git a/extras/source/templates/presnt/Sunset.otp b/extras/source/templates/presnt/Sunset.otp index ff9ac1b023063..b3d7b54077b62 100644 Binary files a/extras/source/templates/presnt/Sunset.otp and b/extras/source/templates/presnt/Sunset.otp differ diff --git a/extras/source/templates/presnt/Vintage.otp b/extras/source/templates/presnt/Vintage.otp index d34f839771992..7dbc4d4c92402 100644 Binary files a/extras/source/templates/presnt/Vintage.otp and b/extras/source/templates/presnt/Vintage.otp differ diff --git a/extras/source/templates/presnt/Vivid.otp b/extras/source/templates/presnt/Vivid.otp index 6152b9e773b0b..5241ef42a9834 100644 Binary files a/extras/source/templates/presnt/Vivid.otp and b/extras/source/templates/presnt/Vivid.otp differ diff --git a/extras/source/truetype/symbol/OpenSymbol.sfd b/extras/source/truetype/symbol/OpenSymbol.sfd index f6582b3de1aa3..35d4b01328b97 100644 --- a/extras/source/truetype/symbol/OpenSymbol.sfd +++ b/extras/source/truetype/symbol/OpenSymbol.sfd @@ -4,7 +4,7 @@ FullName: OpenSymbol FamilyName: OpenSymbol Weight: Book Copyright: (c) 2009 Sun Microsystems Inc.\nTHERE DOES NOT EXIST (c) 2011 Julien Nabet\nPRECEDES <-> DOES NOT SUCCEED (c) 2011 Olivier Hallot\nPRIME <-> TRIPLE PRIME (c) 2013 Mathias Hasselmann\nphi <-> phi1 (c) 2015 Khaled Hosny\n(c) 2016 Mike Kaganski\nzero, one, two, three, four, five, six, seven, eight, nine, question, underscore, copyright, registered, uni2215, angle, therefore, lozenge (c) 2010 Google Corporation -Version: 102.9 +Version: 102.10 ItalicAngle: 0 UnderlinePosition: -143 UnderlineWidth: 20 @@ -20,26 +20,26 @@ OS2Version: 0 OS2_WeightWidthSlopeOnly: 0 OS2_UseTypoMetrics: 1 CreationTime: 1144938807 -ModificationTime: 1479471125 +ModificationTime: 1479754802 PfmFamily: 81 TTFWeight: 400 TTFWidth: 5 -LineGap: 0 +LineGap: 307 VLineGap: 0 Panose: 5 1 0 0 0 0 0 0 0 0 -OS2TypoAscent: 0 -OS2TypoAOffset: 1 -OS2TypoDescent: 820 -OS2TypoDOffset: 1 -OS2TypoLinegap: 0 -OS2WinAscent: -240 +OS2TypoAscent: 1420 +OS2TypoAOffset: 0 +OS2TypoDescent: -442 +OS2TypoDOffset: 0 +OS2TypoLinegap: 307 +OS2WinAscent: 0 OS2WinAOffset: 1 -OS2WinDescent: -231 +OS2WinDescent: 0 OS2WinDOffset: 1 -HheadAscent: 0 -HheadAOffset: 1 -HheadDescent: 0 -HheadDOffset: 1 +HheadAscent: 1420 +HheadAOffset: 0 +HheadDescent: -442 +HheadDOffset: 0 OS2SubXSize: 409 OS2SubYSize: 409 OS2SubXOff: 0 diff --git a/extras/source/truetype/symbol/opens___.ttf b/extras/source/truetype/symbol/opens___.ttf index 3129e220ba16c..5a10feb2b8da1 100644 Binary files a/extras/source/truetype/symbol/opens___.ttf and b/extras/source/truetype/symbol/opens___.ttf differ diff --git a/filter/qa/cppunit/data/dxf/pass/loop-1.dxf b/filter/qa/cppunit/data/dxf/pass/loop-1.dxf new file mode 100644 index 0000000000000..e3277e69b8440 --- /dev/null +++ b/filter/qa/cppunit/data/dxf/pass/loop-1.dxf @@ -0,0 +1,17320 @@ + 0 +SECTION + 2 +HEADER + 9 +$ACADVER + 1 +AC1015 + 9 +$ACADMAINTVER + 70 + 6 + 9 +$DWGCODEPAGE + 3 +ANSI_1252 + 9 +$INSBASE + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$EXTMIN + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$EXTMAX + 10 +297.0 + 20 +420.0 + 30 +0.0 + 9 +$LIMMIN + 10 +0.0 + 20 +0.0 + 9 +$LIMMAX + 10 +297.0 + 20 +420.0 + 9 +$ORTHOMODE + 70 + 0 + 9 +$REGENMODE + 70 + 1 + 9 +$FILLODE + 70 + 1 + 9 +$QTEXTMODE + 70 + 0 + 9 +$MIRRTEXT + 70 + 1 + 9 +$LTSCALE + 40 +1.0 + 9 +$ATTMODE + 70 + 1 + 9 +$TEXTSIZE + 40 +3.5 + 9 +$TRACEWID + 40 +1.0 + 9 +$TEXTSTYLE + 7 +Standard + 9 +$CLAYER + 8 +0 + 9 +$CELTYPE + 6 +ByLayer + 9 +$CECOLOR + 62 + 256 + 9 +$CELTSCALE + 40 +1.0 + 9 +$DISPSILH + 70 + 0 + 9 +$DIMSCALE + 40 +1.0 + 9 +$DIMASZ + 40 +3.0 + 9 +$DIMEXO + 40 +1.0 + 9 +$DIMDLI + 40 +3.75 + 9 +$DIMRND + 40 +0.0 + 9 +$DIMDLE + 40 +0.0 + 9 +$DIMEXE + 40 +1.0 + 9 +$DIMTP + 40 +0.0 + 9 +$DIMTM + 40 +0.0 + 9 +$DIMTXT + 40 +3.5 + 9 +$DIMCEN + 40 +2.5 + 9 +$DIMTSZ + 40 +0.0 + 9 +$DIMTOL + 70 + 0 + 9 +$DIMLIM + 70 + 0 + 9 +$DIMTIH + 70 + 1 + 9 +$DIMTOH + 70 + 1 + 9 +$DIMSE1 + 70 + 0 + 9 +$DIMSE2 + 70 + 0 + 9 +$DIMTAD + 70 + 1 + 9 +$DIMZIN + 70 + 0 + 9 +$DIMBLK + 1 + + 9 +$DIMASO + 70 + 1 + 9 +$DIMSHO + 70 + 1 + 9 +$DIMPOST + 1 + + 9 +$DIMAPOST + 1 + + 9 +$DIMALT + 70 + 0 + 9 +$DIMALTD + 70 + 3 + 9 +$DIMALTF + 40 +0.0393700787 + 9 +$DIMLFAC + 40 +100.0 + 9 +$DIMTOFL + 70 + 1 + 9 +$DIMTVP + 40 +0.0 + 9 +$DIMTIX + 70 + 0 + 9 +$DIMSOXD + 70 + 0 + 9 +$DIMSAH + 70 + 0 + 9 +$DIMBLK1 + 1 + + 9 +$DIMBLK2 + 1 + + 9 +$DIMSTYLE + 2 +ISO-25 + 9 +$DIMCLRD + 70 + 0 + 9 +$DIMCLRE + 70 + 0 + 9 +$DIMCLRT + 70 + 0 + 9 +$DIMTFAC + 40 +1.0 + 9 +$DIMGAP + 40 +1.524 + 9 +$DIMJUST + 70 + 0 + 9 +$DIMSD1 + 70 + 0 + 9 +$DIMSD2 + 70 + 0 + 9 +$DIMTOLJ + 70 + 0 + 9 +$DIMTZIN + 70 + 0 + 9 +$DIMALTZ + 70 + 0 + 9 +$DIMALTTZ + 70 + 0 + 9 +$DIMUPT + 70 + 0 + 9 +$DIMDEC + 70 + 3 + 9 +$DIMTDEC + 70 + 3 + 9 +$DIMALTU + 70 + 2 + 9 +$DIMALTTD + 70 + 3 + 9 +$DIMTXSTY + 7 +Standard + 9 +$DIMAUNIT + 70 + 0 + 9 +$DIMADEC + 70 + 2 + 9 +$DIMALTRND + 40 +0.0 + 9 +$DIMAZIN + 70 + 0 + 9 +$DIMDSEP + 70 + 44 + 9 +$DIMATFIT + 70 + 3 + 9 +$DIMFRAC + 70 + 0 + 9 +$DIMLDRBLK + 1 + + 9 +$DIMLUNIT + 70 + 2 + 9 +$DIMLWD + 70 + -2 + 9 +$DIMLWE + 70 + -2 + 9 +$DIMTMOVE + 70 + 0 + 9 +$LUNITS + 70 + 2 + 9 +$LUPREC + 70 + 2 + 9 +$SKETCHINC + 40 +1.0 + 9 +$FILLETRAD + 40 +10.0 + 9 +$AUNITS + 70 + 0 + 9 +$AUPREC + 70 + 2 + 9 +$MENU + 1 +. + 9 +$ELEVATION + 40 +0.0 + 9 +$PELEVATION + 40 +0.0 + 9 +$THICKNESS + 40 +0.0 + 9 +$LIMCHECK + 70 + 0 + 9 +$CHAMFERA + 40 +10.0 + 9 +$CHAMFERB + 40 +10.0 + 9 +$CHAMFERC + 40 +20.0 + 9 +$CHAMFERD + 40 +0.0 + 9 +$SKPOLY + 70 + 0 + 9 +$TDCREATE + 40 +2456962.662635255 + 9 +$TDUCREATE + 40 +2456962.620968588 + 9 +$TDUPDATE + 40 +2456962.662636401 + 9 +$TDUUPDATE + 40 +2456962.620969734 + 9 +$TDINDWG + 40 +0.0000000116 + 9 +$TDUSRTIMER + 40 +0.0000000116 + 9 +$USRTIMER + 70 + 1 + 9 +$ANGBASE + 50 +0.0 + 9 +$ANGDIR + 70 + 0 + 9 +$PDMODE + 70 + 0 + 9 +$PDSIZE + 40 +-1.0 + 9 +$PLINEWID + 40 +0.0 + 9 +$SPLFRAME + 70 + 0 + 9 +$SPLINETYPE + 70 + 6 + 9 +$SPLINESEGS + 70 + 8 + 9 +$HANDSEED + 5 +5C0 + 9 +$SURFTAB1 + 70 + 6 + 9 +$SURFTAB2 + 70 + 6 + 9 +$SURFTYPE + 70 + 6 + 9 +$SURFU + 70 + 6 + 9 +$SURFV + 70 + 6 + 9 +$UCSBASE + 2 + + 9 +$UCSNAME + 2 + + 9 +$UCSORG + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSXDIR + 10 +1.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSYDIR + 10 +0.0 + 20 +1.0 + 30 +0.0 + 9 +$UCSORTHOREF + 2 + + 9 +$UCSORTHOVIEW + 70 + 0 + 9 +$UCSORGTOP + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGBOTTOM + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGLEFT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGRIGHT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGFRONT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGBACK + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSBASE + 2 + + 9 +$PUCSNAME + 2 + + 9 +$PUCSORG + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSXDIR + 10 +1.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSYDIR + 10 +0.0 + 20 +1.0 + 30 +0.0 + 9 +$PUCSORTHOREF + 2 + + 9 +$PUCSORTHOVIEW + 70 + 0 + 9 +$PUCSORGTOP + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGBOTTOM + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGLEFT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGRIGHT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGFRONT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGBACK + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$USERI1 + 70 + 0 + 9 +$USERI2 + 70 + 0 + 9 +$USERI3 + 70 + 0 + 9 +$USERI4 + 70 + 0 + 9 +$USERI5 + 70 + 0 + 9 +$USERR1 + 40 +0.0 + 9 +$USERR2 + 40 +0.0 + 9 +$USERR3 + 40 +0.0 + 9 +$USERR4 + 40 +0.0 + 9 +$USERR5 + 40 +0.0 + 9 +$WORLDVIEW + 70 + 1 + 9 +$SHADEDGE + 70 + 3 + 9 +$SHADEDIF + 70 + 70 + 9 +$TILEMODE + 70 + 1 + 9 +$MAXACTVP + 70 + 64 + 9 +$PINSBASE + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PLIMCHECK + 70 + 0 + 9 +$PEXTMIN + 10 +1.0000000000E+20 + 20 +1.0000000000E+20 + 30 +1.0000000000E+20 + 9 +$PEXTMAX + 10 +-1.0000000000E+20 + 20 +-1.0000000000E+20 + 30 +-1.0000000000E+20 + 9 +$PLIMMIN + 10 +0.0 + 20 +0.0 + 9 +$PLIMMAX + 10 +420.0 + 20 +297.0 + 9 +$UNITMODE + 70 + 0 + 9 +$VISRETAIN + 70 + 1 + 9 +$PLINEGEN + 70 + 0 + 9 +$PSLTSCALE + 70 + 1 + 9 +$TREEDEPTH + 70 + 3020 + 9 +$CMLSTYLE + 2 +Standard + 9 +$CMLJUST + 70 + 0 + 9 +$CMLSCALE + 40 +20.0 + 9 +$PROXYGRAPHICS + 70 + 1 + 9 +$MEASUREMENT + 70 + 1 + 9 +$CELWEIGHT +370 + -1 + 9 +$ENDCAPS +280 + 0 + 9 +$JOINSTYLE +280 + 0 + 9 +$LWDISPLAY +290 + 1 + 9 +$INSUNITS + 70 + 4 + 9 +$HYPERLINKBASE + 1 + + 9 +$STYLESHEET + 1 + + 9 +$XEDIT +290 + 1 + 9 +$CEPSNTYPE +380 + 0 + 9 +$PSTYLEMODE +290 + 1 + 9 +$FINGERPRINTGUID + 2 +{12852F08-F252-4439-8DDF-34F6DEA5435B} + 9 +$VERSIONGUID + 2 +{FAEB1C32-E019-11D5-929B-00C0DF256EC4} + 9 +$EXTNAMES +290 + 1 + 9 +$PSVPSCALE + 40 +0.0 + 9 +$OLESTARTUP +290 + 0 + 0 +ENDSEC + 0 +SECTION + 2 +CLASSES + 0 +CLASS + 1 +ACDBDICTIONARYWDFLT + 2 +AcDbDictionaryWithDefault + 3 +ObjectDBX Classes + 90 + 0 +280 + 0 +281 + 0 + 0 +CLASS + 1 +VISUALSTYLE + 2 +AcDbVisualStyle + 3 +ObjectDBX Classes + 90 + 4095 +280 + 0 +281 + 0 + 0 +CLASS + 1 +MATERIAL + 2 +AcDbMaterial + 3 +ObjectDBX Classes + 90 + 1153 +280 + 0 +281 + 0 + 0 +CLASS + 1 +ACDBPLACEHOLDER + 2 +AcDbPlaceHolder + 3 +ObjectDBX Classes + 90 + 0 +280 + 0 +281 + 0 + 0 +CLASS + 1 +LAYOUT + 2 +AcDbLayout + 3 +ObjectDBX Classes + 90 + 0 +280 + 0 +281 + 0 + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +VPORT + 5 +8 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +VPORT + 5 +29 +330 +8 +100 +AcDbSymbolTableRecord +100 +AcDbViewportTableRecord + 2 +*Active + 70 + 0 + 10 +0.0 + 20 +0.0 + 11 +1.0 + 21 +1.0 + 12 +148.5 + 22 +210.0 + 13 +0.0 + 23 +0.0 + 14 +10.0 + 24 +10.0 + 15 +10.0 + 25 +10.0 + 16 +0.0 + 26 +0.0 + 36 +1.0 + 17 +0.0 + 27 +0.0 + 37 +0.0 + 40 +420.0 + 41 +0.7071428571 + 42 +50.0 + 43 +0.0 + 44 +0.0 + 50 +0.0 + 51 +0.0 + 71 + 0 + 72 + 2000 + 73 + 1 + 74 + 3 + 75 + 0 + 76 + 0 + 77 + 0 + 78 + 0 +281 + 0 + 65 + 1 +110 +0.0 +120 +0.0 +130 +0.0 +111 +1.0 +121 +0.0 +131 +0.0 +112 +0.0 +122 +1.0 +132 +0.0 + 79 + 0 +146 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LTYPE + 5 +5 +330 +0 +100 +AcDbSymbolTable + 70 + 6 + 0 +LTYPE + 5 +14 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByBlock + 70 + 0 + 3 + + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +LTYPE + 5 +15 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByLayer + 70 + 0 + 3 + + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +LTYPE + 5 +16 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +Continuous + 70 + 0 + 3 +Solid line + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +LTYPE + 5 +3F +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +HIDDEN + 70 + 0 + 3 +Hidden __ __ __ __ __ __ __ __ __ __ __ __ __ __ + 72 + 65 + 73 + 2 + 40 +1.905 + 49 +1.27 + 74 + 0 + 49 +-0.635 + 74 + 0 + 0 +LTYPE + 5 +40 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +PHANTOM + 70 + 0 + 3 +Phantom ______ __ __ ______ __ __ ______ + 72 + 65 + 73 + 6 + 40 +12.7 + 49 +6.35 + 74 + 0 + 49 +-1.27 + 74 + 0 + 49 +1.27 + 74 + 0 + 49 +-1.27 + 74 + 0 + 49 +1.27 + 74 + 0 + 49 +-1.27 + 74 + 0 + 0 +LTYPE + 5 +41 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +CENTER + 70 + 0 + 3 +Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ + 72 + 65 + 73 + 4 + 40 +10.16 + 49 +6.35 + 74 + 0 + 49 +-1.27 + 74 + 0 + 49 +1.27 + 74 + 0 + 49 +-1.27 + 74 + 0 + 0 +LTYPE + 5 +42 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +CENTERX2 + 70 + 0 + 3 +Center (2x) ________ __ ________ __ _____ + 72 + 65 + 73 + 4 + 40 +20.32 + 49 +12.7 + 74 + 0 + 49 +-2.54 + 74 + 0 + 49 +2.54 + 74 + 0 + 49 +-2.54 + 74 + 0 + 0 +LTYPE + 5 +43 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DOT2 + 70 + 0 + 3 +Dot (.5x) ........................................ + 72 + 65 + 73 + 2 + 40 +0.635 + 49 +0.0 + 74 + 0 + 49 +-0.635 + 74 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +LAYER + 5 +2 +330 +0 +100 +AcDbSymbolTable + 70 + 8 + 0 +LAYER + 5 +10 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +0 + 70 + 0 + 62 + 7 + 6 +Continuous +370 + -3 +390 +F + 0 +LAYER + 5 +44 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +TEKENLIJN + 70 + 0 + 62 + 7 + 6 +Continuous +370 + -3 +390 +F + 0 +LAYER + 5 +45 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +HARTLIJN + 70 + 0 + 62 + 7 + 6 +CENTER +370 + -3 +390 +F + 0 +LAYER + 5 +46 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +STIPPELIJN + 70 + 0 + 62 + 7 + 6 +HIDDEN +370 + 15 +390 +F + 0 +LAYER + 5 +47 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +DIKKE_MAATLIJN + 70 + 0 + 62 + 7 + 6 +Continuous +370 + 158 +390 +F + 0 +LAYER + 5 +48 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +STUKLIJST + 70 + 0 + 62 + 7 + 6 +Continuous +370 + 15 +390 +F + 0 +LAYER + 5 +49 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +MAATLIJN + 70 + 0 + 62 + 7 + 6 +Continuous +370 + -3 +390 +F + 0 +LAYER + 5 +4A +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +TEKST + 70 + 0 + 62 + 7 + 6 +Continuous +370 + 15 +390 +F + 0 +ENDTAB + 0 +TABLE + 2 +STYLE + 5 +3 +330 +0 +100 +AcDbSymbolTable + 70 + 3 + 0 +STYLE + 5 +11 +330 +3 +100 +AcDbSymbolTableRecord +100 +AcDbTextStyleTableRecord + 2 +Standard + 70 + 0 + 40 +0.0 + 41 +1.0 + 50 +0.0 + 71 + 0 + 42 +3.5 + 3 +txt + 4 + + 0 +STYLE + 5 +54 +330 +3 +100 +AcDbSymbolTableRecord +100 +AcDbTextStyleTableRecord + 2 +SLDTEXTSTYLE0 + 70 + 0 + 40 +0.0 + 41 +0.75 + 50 +0.0 + 71 + 0 + 42 +0.2 + 3 +TXT + 4 + + 0 +STYLE + 5 +56A +330 +3 +100 +AcDbSymbolTableRecord +100 +AcDbTextStyleTableRecord + 2 +SLDTEXTSTYLE1 + 70 + 0 + 40 +0.0 + 41 +0.7 + 50 +0.0 + 71 + 0 + 42 +0.2 + 3 +TXT + 4 + + 0 +ENDTAB + 0 +TABLE + 2 +VIEW + 5 +6 +330 +0 +100 +AcDbSymbolTable + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +UCS + 5 +7 +330 +0 +100 +AcDbSymbolTable + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +APPID + 5 +9 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +APPID + 5 +12 +330 +9 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +ACAD + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +DIMSTYLE + 5 +A +330 +0 +100 +AcDbSymbolTable + 70 + 4 +100 +AcDbDimStyleTable + 0 +DIMSTYLE +105 +27 +330 +A +100 +AcDbSymbolTableRecord +100 +AcDbDimStyleTableRecord + 2 +ISO-25 + 70 + 0 + 41 +2.5 + 42 +0.625 + 43 +3.75 + 44 +1.25 + 73 + 0 + 74 + 0 + 77 + 1 + 78 + 8 +140 +2.5 +141 +2.5 +143 +0.0393700787 +147 +0.625 +171 + 3 +172 + 1 +178 + 0 +271 + 2 +272 + 2 +274 + 3 +278 + 44 +283 + 0 +284 + 8 +340 +11 + 0 +DIMSTYLE +105 +501 +102 +{ACAD_REACTORS +330 +500 +102 +} +330 +A +100 +AcDbSymbolTableRecord +100 +AcDbDimStyleTableRecord + 2 +SLDDIMSTYLE0 + 70 + 0 + 41 +3.0 + 44 +0.0 + 45 +0.000000001 + 73 + 0 + 74 + 0 + 77 + 1 + 78 + 12 + 79 + 3 +140 +3.5 +144 +2.5 +147 +0.875 +172 + 1 +173 + 1 +178 + 0 +271 + 3 +272 + 3 +276 + 2 +284 + 12 +289 + 0 +340 +54 + 0 +DIMSTYLE +105 +50E +102 +{ACAD_REACTORS +330 +50D +330 +51A +330 +526 +330 +56C +330 +578 +330 +584 +102 +} +330 +A +100 +AcDbSymbolTableRecord +100 +AcDbDimStyleTableRecord + 2 +SLDDIMSTYLE1 + 70 + 0 + 41 +3.0 + 44 +0.0 + 45 +0.000000001 + 73 + 0 + 74 + 0 + 77 + 1 + 78 + 12 + 79 + 3 +140 +3.5 +144 +2.5 +147 +0.875 +172 + 1 +173 + 1 +178 + 0 +271 + 0 +272 + 0 +276 + 2 +284 + 12 +289 + 0 +340 +54 + 0 +DIMSTYLE +105 +533 +102 +{ACAD_REACTORS +330 +532 +330 +53C +330 +545 +330 +54E +330 +557 +330 +561 +102 +} +330 +A +100 +AcDbSymbolTableRecord +100 +AcDbDimStyleTableRecord + 2 +SLDDIMSTYLE2 + 70 + 0 + 41 +3.0 + 44 +0.0 + 45 +0.000000001 + 73 + 0 + 74 + 0 + 77 + 1 + 78 + 12 + 79 + 3 +140 +3.5 +144 +2.5 +147 +0.875 +173 + 1 +178 + 0 +271 + 3 +272 + 3 +276 + 2 +284 + 12 +340 +54 + 0 +ENDTAB + 0 +TABLE + 2 +BLOCK_RECORD + 5 +1 +330 +0 +100 +AcDbSymbolTable + 70 + 15 + 0 +BLOCK_RECORD + 5 +1F +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Model_Space +340 +22 + 0 +BLOCK_RECORD + 5 +1B +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Paper_Space +340 +1E + 0 +BLOCK_RECORD + 5 +23 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Paper_Space0 +340 +26 + 0 +BLOCK_RECORD + 5 +56 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +SW_BROKEN_VIEW_0 +340 +0 +102 +{BLKREFS +331 +59 +102 +} + 0 +BLOCK_RECORD + 5 +502 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D +340 +0 + 0 +BLOCK_RECORD + 5 +50F +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_1 +340 +0 + 0 +BLOCK_RECORD + 5 +51B +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_2 +340 +0 + 0 +BLOCK_RECORD + 5 +527 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_3 +340 +0 + 0 +BLOCK_RECORD + 5 +534 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_4 +340 +0 + 0 +BLOCK_RECORD + 5 +53D +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_5 +340 +0 + 0 +BLOCK_RECORD + 5 +546 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_6 +340 +0 + 0 +BLOCK_RECORD + 5 +54F +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_7 +340 +0 + 0 +BLOCK_RECORD + 5 +558 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_8 +340 +0 + 0 +BLOCK_RECORD + 5 +562 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_9 +340 +0 + 0 +BLOCK_RECORD + 5 +56D +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_10 +340 +0 + 0 +BLOCK_RECORD + 5 +579 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_11 +340 +0 + 0 +BLOCK_RECORD + 5 +585 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_12 +340 +0 + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +BLOCKS + 0 +BLOCK + 5 +20 +330 +1F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*Model_Space + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Model_Space + 1 + + 0 +ENDBLK + 5 +21 +330 +1F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +1C +330 +1B +100 +AcDbEntity + 67 + 1 + 8 +0 +100 +AcDbBlockBegin + 2 +*Paper_Space + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Paper_Space + 1 + + 0 +ENDBLK + 5 +1D +330 +1B +100 +AcDbEntity + 67 + 1 + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +24 +330 +23 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*Paper_Space0 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Paper_Space0 + 1 + + 0 +ENDBLK + 5 +25 +330 +23 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +57 +330 +56 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +SW_BROKEN_VIEW_0 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +SW_BROKEN_VIEW_0 + 1 + + 0 +ENDBLK + 5 +58 +330 +56 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +503 +330 +502 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D + 1 + + 0 +SOLID + 5 +505 +330 +502 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +195.4299255838 + 20 +28.7821787182 + 30 +0.0 + 11 +194.9299255838 + 21 +25.7821787182 + 31 +0.0 + 12 +195.9299255838 + 22 +25.7821787182 + 32 +0.0 + 13 +195.9299255838 + 23 +25.7821787182 + 33 +0.0 + 0 +SOLID + 5 +506 +330 +502 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +195.4299255838 + 20 +41.9821787182 + 30 +0.0 + 11 +195.9299255838 + 21 +44.9821787182 + 31 +0.0 + 12 +194.9299255838 + 22 +44.9821787182 + 32 +0.0 + 13 +194.9299255838 + 23 +44.9821787182 + 33 +0.0 + 0 +LINE + 5 +507 +330 +502 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +143.0299255838 + 20 +28.7821787182 + 30 +0.0 + 11 +196.4299255838 + 21 +28.7821787182 + 31 +0.0 + 0 +LINE + 5 +508 +330 +502 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +149.0299255838 + 20 +41.9821787182 + 30 +0.0 + 11 +196.4299255838 + 21 +41.9821787182 + 31 +0.0 + 0 +LINE + 5 +509 +330 +502 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +195.4299255838 + 20 +28.7821787182 + 30 +0.0 + 11 +195.4299255838 + 21 +22.7821787182 + 31 +0.0 + 0 +LINE + 5 +50A +330 +502 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +195.4299255838 + 20 +28.7821787182 + 30 +0.0 + 11 +195.4299255838 + 21 +41.9821787182 + 31 +0.0 + 0 +LINE + 5 +50B +330 +502 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +195.4299255838 + 20 +41.9821787182 + 30 +0.0 + 11 +195.4299255838 + 21 +47.9821787182 + 31 +0.0 + 0 +MTEXT + 5 +50C +330 +502 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbMText + 10 +190.9181886692 + 20 +31.991019801 + 30 +0.04 + 40 +3.5 + 41 +0.0 + 71 + 1 + 72 + 1 + 1 +33 + 7 +SLDTEXTSTYLE0 + 11 +6.123233995736766E-17 + 21 +1.0 + 31 +0.0 + 73 + 1 + 44 +1.0 + 0 +ENDBLK + 5 +504 +330 +502 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +510 +330 +50F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_1 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_1 + 1 + + 0 +SOLID + 5 +512 +330 +50F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +171.4299255838 + 20 +280.0124004364 + 30 +0.0 + 11 +170.9299255838 + 21 +277.0124004364 + 31 +0.0 + 12 +171.9299255838 + 22 +277.0124004364 + 32 +0.0 + 13 +171.9299255838 + 23 +277.0124004364 + 33 +0.0 + 0 +SOLID + 5 +513 +330 +50F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +171.4299255838 + 20 +287.499722104 + 30 +0.0 + 11 +171.9299255838 + 21 +290.499722104 + 31 +0.0 + 12 +170.9299255838 + 22 +290.499722104 + 32 +0.0 + 13 +170.9299255838 + 23 +290.499722104 + 33 +0.0 + 0 +LINE + 5 +514 +330 +50F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +150.4168593775 + 20 +280.0124004364 + 30 +0.0 + 11 +172.4299255838 + 21 +280.0124004364 + 31 +0.0 + 0 +LINE + 5 +515 +330 +50F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +148.8555696261 + 20 +287.499722104 + 30 +0.0 + 11 +172.4299255838 + 21 +287.499722104 + 31 +0.0 + 0 +LINE + 5 +516 +330 +50F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +171.4299255838 + 20 +280.0124004364 + 30 +0.0 + 11 +171.4299255838 + 21 +267.6770872868 + 31 +0.0 + 0 +LINE + 5 +517 +330 +50F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +171.4299255838 + 20 +280.0124004364 + 30 +0.0 + 11 +171.4299255838 + 21 +287.499722104 + 31 +0.0 + 0 +LINE + 5 +518 +330 +50F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +171.4299255838 + 20 +287.499722104 + 30 +0.0 + 11 +171.4299255838 + 21 +293.499722104 + 31 +0.0 + 0 +MTEXT + 5 +519 +330 +50F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbMText + 10 +166.9181886692 + 20 +267.6770872868 + 30 +0.04 + 40 +3.5 + 41 +0.0 + 71 + 1 + 72 + 1 + 1 +19 + 7 +SLDTEXTSTYLE0 + 11 +6.123233995736766E-17 + 21 +1.0 + 31 +0.0 + 73 + 1 + 44 +1.0 + 0 +ENDBLK + 5 +511 +330 +50F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +51C +330 +51B +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_2 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_2 + 1 + + 0 +SOLID + 5 +51E +330 +51B +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +171.4299255838 + 20 +202.8200717467 + 30 +0.0 + 11 +170.9299255838 + 21 +199.8200717467 + 31 +0.0 + 12 +171.9299255838 + 22 +199.8200717467 + 32 +0.0 + 13 +171.9299255838 + 23 +199.8200717467 + 33 +0.0 + 0 +SOLID + 5 +51F +330 +51B +370 + 0 +100 +AcDbCircle + 10 +149.1879091276 + 20 +124.2049907824 + 30 +0.0 + 40 +0.0800276369171186 +100 +AcDbArc + 50 +31.2357600789 + 51 +89.9882535152 + 0 +LINE + 5 +3A8 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.2563360204 + 20 +105.7777046893 + 30 +0.0 + 11 +149.2563360204 + 21 +124.2464899752 + 31 +0.0 + 0 +LINE + 5 +3A9 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.2162960043 + 20 +105.7777046893 + 30 +0.0 + 11 +134.2162960043 + 21 +124.2850184176 + 31 +0.0 + 0 +LINE + 5 +3AA +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.2162960043 + 20 +124.2850184176 + 30 +0.0 + 11 +134.1499254873 + 21 +124.2850184176 + 31 +0.0 + 0 +LINE + 5 +3AB +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +133.4299252202 + 20 +105.7777046893 + 30 +0.0 + 11 +133.4299252202 + 21 +124.2555737231 + 31 +0.0 + 0 +LWPOLYLINE + 5 +3AC +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbPolyline + 90 + 4 + 70 + 128 + 43 +0.0 + 10 +149.2569536736 + 20 +124.2454528544 + 10 +149.2656842639 + 20 +124.2305516932 + 10 +149.2736712863 + 20 +124.2169141505 + 10 +149.2808976044 + 20 +124.204575989 + 0 +LINE + 5 +3AD +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.3099258115 + 20 +105.7777046893 + 30 +0.0 + 11 +149.3099258115 + 21 +124.1757392619 + 31 +0.0 + 0 +LINE + 5 +3AE +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.2563360204 + 20 +124.2464899752 + 30 +0.0 + 11 +149.2569536736 + 21 +124.2454528544 + 31 +0.0 + 0 +LINE + 5 +3AF +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.2299253514 + 20 +105.7777046893 + 30 +0.0 + 11 +134.2299253514 + 21 +124.2850184176 + 31 +0.0 + 0 +LINE + 5 +3B0 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.2299253514 + 20 +124.2850184176 + 30 +0.0 + 11 +134.2162960043 + 21 +124.2850184176 + 31 +0.0 + 0 +LINE + 5 +3B1 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.5099256804 + 20 +105.7777046893 + 30 +0.0 + 11 +148.5099256804 + 21 +123.090755913 + 31 +0.0 + 0 +LINE + 5 +3B2 5 +4FF +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbPoint + 10 +133.4299255838 + 20 +660.3011936068 + 30 +0.0 + 0 +DIMENSION + 5 +500 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D + 10 +195.4299255838 + 20 +41.9821787182 + 30 +0.0 + 11 +195.4299255838 + 21 +34.5771309945 + 31 +0.0 + 70 + 160 + 1 +33 + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE0 +100 +AcDbAlignedDimension + 13 +142.0299255838 + 23 +28.7821787182 + 33 +0.0 + 14 +148.0299255838 + 24 +41.9821787182 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +50D +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_1 + 10 +171.4299255838 + 20 +287.499722104 + 30 +0.0 + 11 +171.4299255838 + 21 +271.6850735678 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +149.4168593775 + 23 +280.0124004364 + 33 +0.0 + 14 +147.8555696261 + 24 +287.499722104 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +51A +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_2 + 10 +171.4299255838 + 20 +210.3073934143 + 30 +0.0 + 11 +171.4299255838 + 21 +194.8678981433 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +149.4168593775 + 23 +202.8200717467 + 33 +0.0 + 14 +147.8555696261 + 24 +210.3073934143 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +526 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_3 + 10 +171.4299255838 + 20 +133.7256838344 + 30 +0.0 + 11 +171.4299255838 + 21 +113.1236101725 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +149.4168593775 + 23 +126.2783621669 + 33 +0.0 + 14 +148.0299255838 + 24 +133.7256838344 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +532 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_4 + 10 +195.4299255838 + 20 +41.9821787182 + 30 +0.0 + 11 +195.4299255838 + 21 +84.1586135498 + 31 +0.0 + 70 + 160 + 1 +675,902 + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +148.0299255838 + 23 +133.7256838344 + 33 +0.0 + 14 +148.0299255838 + 24 +41.9821787182 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +53C +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_5 + 10 +195.3191971725 + 20 +133.7649839595 + 30 +0.0 + 11 +195.2817915125 + 21 +178.7746730971 + 31 +0.0 + 70 + 160 + 1 +524,500 + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +147.8555696261 + 23 +210.3073934143 + 33 +0.0 + 14 +148.0299255838 + 24 +133.7256838344 + 34 +0.0 + 50 +-89.9523838979 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +545 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_6 + 10 +195.2555696261 + 20 +210.3073934143 + 30 +0.0 + 11 +195.2555696261 + 21 +246.0726158741 + 31 +0.0 + 70 + 160 + 1 +524,400 + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +147.8555696261 + 23 +287.499722104 + 33 +0.0 + 14 +147.8555696261 + 24 +210.3073934143 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +54E +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_7 + 10 +195.2555696261 + 20 +397.2202084954 + 30 +0.0 + 11 +195.2555696261 + 21 +357.7845521004 + 31 +0.0 + 70 + 160 + 1 +545,698 + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +147.8555696261 + 23 +287.499722104 + 33 +0.0 + 14 +145.8378589248 + 24 +397.2202084954 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +557 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_8 + 10 +219.4299255838 + 20 +397.2202084954 + 30 +0.0 + 11 +219.4299255838 + 21 +226.31135989 + 31 +0.0 + 70 + 160 + 1 +Kozijnmaat = + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +142.0299255838 + 23 +28.7821787182 + 33 +0.0 + 14 +145.8378589248 + 24 +397.2202084954 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +561 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_9 + 10 +99.2299255838 + 20 +28.7821787182 + 30 +0.0 + 11 +99.2299255838 + 21 +214.5361780403 + 31 +0.0 + 70 + 160 + 1 +DMH = + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +133.4299255838 + 23 +383.8202084954 + 33 +0.0 + 14 +142.0299255838 + 24 +28.7821787182 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +56C +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_10 + 10 +117.2299255838 + 20 +148.4450158005 + 30 +0.0 + 11 +117.2299255838 + 21 +157.3719824392 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +133.5499255838 + 23 +147.8850158005 + 33 +0.0 + 14 +133.5499255838 + 24 +148.4450158005 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +578 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_11 + 10 +117.2299255838 + 20 +224.9867253803 + 30 +0.0 + 11 +117.2299255838 + 21 +236.5334651005 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +133.5499255838 + 23 +224.4267253803 + 33 +0.0 + 14 +133.5499255838 + 24 +224.9867253803 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +584 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_12 + 10 +117.2299255838 + 20 +302.17905407 + 30 +0.0 + 11 +117.2299255838 + 21 +311.8110919194 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +133.5499255838 + 23 +301.61905407 + 33 +0.0 + 14 +133.5499255838 + 24 +302.17905407 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +LINE + 5 +590 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +103.7777066237 + 30 +0.0 + 11 +142.3699255838 + 21 +103.4 + 51 +89.9999492362 + 0 +ARC + 5 +3D7 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +137.5163691973 + 20 +133.4850123101 + 30 +0.0 + 40 +0.1200011213146664 +100 +AcDbArc + 50 +138.497247328 + 51 +269.9999068087 + 0 +ARC + 5 +3D8 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +136.355993356 + 20 +132.6849348127 + 30 +0.0 + 40 +0.0800841035922697 +100 +AcDbArc + 50 +90.0150168159 + 51 +113.8359930711 + 0 +ARC + 5 +3D9 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +135.0299508788 + 20 +135.6849288285 + 30 +0.0 + 40 +3.199908694378492 +100 +AcDbArc + 50 +269.9995452672 + 51 +293.8464037785 + 0 +LINE + 5 +3DA +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +135.0299254825 + 20 +132.4850201342 + 30 +0.0 + 11 +134.2499256899 + 21 +132.4850201342 + 31 +0.0 + 0 +ARC + 5 +3DB +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +134.2499379652 + 20 +132.3650080634 + 30 +0.0 + 40 +0.1200120715024033 +100 +AcDbArc + 50 +90.0058604254 + 51 +179.9980525768 + 0 +LINE + 5 +3DC +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.1299258938 + 20 +132.3650121424 + 30 +0.0 + 11 +134.1299258938 + 21 +132.2075128291 + 31 +0.0 + 0 +ARC + 5 +3DD +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +134.2499411967 + 20 +132.2075174672 + 30 +0.0 + 40 +0.1200153029850342 +100 +AcDbArc + 50 +180.0022142502 + 51 +218.9973251432 + 0 +LINE + 5 +3DE +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.1566682627 + 20 +132.1319937442 + 30 +0.0 + 11 +134.4031833877 + 21 +131.8275689814 + 31 +0.0 + 0 +ARC + 5 +3DF +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +134.3099104538 + 20 +131.7520452584 + 30 +0.0 + 40 +0.1200153029849757 +100 +AcDbArc + 50 +0.0022142501 + 51 +38.9973251432 + 0 +LINE + 5 +3E0 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.4299257567 + 20 +131.7520498965 + 30 +0.0 + 11 +134.4299257567 + 21 +127.9414653514 + 31 +0.0 + 0 +ARC + 5 +3E1 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +134.3099104538 + 20 +127.9414699895 + 30 +0.0 + 40 +0.1200153029849757 +100 +AcDbArc + 50 +321.0026748568 + 51 +359.9977857499 + 0 +LINE + 5 +3E2 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.4031833877 + 20 +127.8659462664 + 30 +0.0 + 11 +134.05666806 + 21 +127.4380445216 + 31 +0.0 + 0 +ARC + 5 +3E3 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +134.149940994 + 20 +127.3625207985 + 30 +0.0 + 40 +0.120015302984857 +100 +AcDbArc + 50 +141.0026748568 + 51 +179.9977857499 + 0 +LINE + 5 +3E4 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.0299256911 + 20 +127.3625254367 + 30 +0.0 + 11 +134.0299256911 + 21 +126.1250138018 + 31 +0.0 + 0 +ARC + 5 +3E5 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +134.1499186836 + 20 +126.1250107233 + 30 +0.0 + 40 +0.1199929925412997 +100 +AcDbArc + 50 +179.9985300323 + 51 +270.0032486934 + 0 +LINE + 5 +3E6 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.1499254873 + 20 +126.005017731 + 30 +0.0 + 11 +136.2299256792 + 21 +126.005017731 + 31 +0.0 + 0 +ARC + 5 +3E7 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +136.229912767 + 20 +125.8850050222 + 30 +0.0 + 40 +0.1200127094438369 +100 +AcDbArc + 50 +0.0079431648 + 51 +89.9938355609 + 0 +LINE + 5 +3E8 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +136.3499254753 + 20 +125.8850216601 + 30 +0.0 + 11 +136.3499254753 + 21 +125.2050161097 + 31 +0.0 + 0 +ARC + 5 +3E9 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +136.4699184679 + 20 +125.2050130312 + 30 +0.0 + 40 +0.1199929925783876 +100 +AcDbArc + 50 +179.9985300396 + 51 +270.0034265556 + 0 +LINE + 5 +3EA +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +136.469925644 + 20 +125.0850200389 + 30 +0.0 + 11 +148.7099253406 + 21 +125.0850200389 + 31 +0.0 + 0 +ARC + 5 +3EB +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.7099328893 + 20 +125.2050130312 + 30 +0.0 + 40 +0.119992992617387 +100 +AcDbArc + 50 +269.9963955831 + 51 +0.0014699527 + 0 +LINE + 5 +3EC +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.8299258818 + 20 +125.2050161097 + 30 +0.0 + 11 +148.8299258818 + 21 +125.9183764193 + 31 +0.0 + 0 +ARC + 5 +3ED +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.709927865 + 20 +125.91837716 + 30 +0.0 + 40 +0.1199980168837526 +100 +AcDbArc + 50 +359.9996463459 + 51 +53.9732887541 + 0 +LINE + 5 +3EE +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.7805061807 + 20 +126.0154247019 + 30 +0.0 + 11 +146.6793448498 + 21 +127.5435447428 + 31 +0.0 + 0 +ARC + 5 +3EF +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +146.749919111 + 20 +127.6405897595 + 30 +0.0 + 40 +0.1199935898327405 +100 +AcDbArc + 50 +179.9984405241 + 51 +233.9741452813 + 0 +LINE + 5 +3F0 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +146.6299255212 + 20 +127.6405930255 + 30 +0.0 + 11 +146.6299255212 + 21 +133.3159088824 + 31 +0.0 + 0 +ARC + 5 +3F1 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +146.5099232936 + 20 +133.315903341 + 30 +0.0 + 40 +0.120002227728508 +100 +AcDbArc + 50 +0.0026457597 + 51 +20.999682824 + 0 +LINE + 5 +3F2 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +146.6219552626 + 20 +133.3589076731 + 30 +0.0 + 11 +146.3471007367 + 21 +134.0749263499 + 31 +0.0 + 0 +ARC + 5 +3F3 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +146.2350683839 + 20 +134.0319208293 + 30 +0.0 + 40 +0.1200030119081427 +100 +AcDbArc + 50 +21.0001469018 + 51 +134.9966517297 + 0 +LINE + 5 +3F4 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +146.1502183994 + 20 +134.1167807315 + 30 +0.0 + 11 +144.8336009701 + 21 +132.8001618121 + 31 +0.0 + 0 +ARC + 5 +3F5 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +144.748758296 + 20 +132.8850047843 + 30 +0.0 + 40 +0.1199858712428317 +100 +AcDbArc + 50 +269.995164801 + 51 +314.9998993415 + 0 +LINE + 5 +3F6 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +144.7487481703 + 20 +132.7650189135 + 30 +0.0 + 11 +136.3559723665 + 21 +132.7650189135 + 31 +0.0 + 0 +ARC + 5 +3F7 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +133.3499200157 + 20 +124.3450103265 + 30 +0.0 + 40 +0.1199960615305855 +100 +AcDbArc + 50 +127.9778213362 + 51 +315.5786816839 + 0 +ARC + 5 +3F8 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +133.492770837 + 20 +124.204971188 + 30 +0.0 + 40 +0.0800472312450756 +100 +AcDbArc + 50 +90.0117105688 + 51 +135.5556160835 + 0 +LINE + 5 +3F9 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +133.4927544763 + 20 +124.2850184176 + 30 +0.0 + 11 +134.1499254873 + 21 +124.2850184176 + 31 +0.0 + 0 +ARC + 5 +3FA +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +134.1499294027 + 20 +124.3650139485 + 30 +0.0 + 40 +0.0799955310302896 +100 +AcDbArc + 50 +269.9971956253 + 51 +15.9984086718 + 0 +LINE + 5 +3FB +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.2268266549 + 20 +124.3870615695 + 30 +0.0 + 11 +134.0812475254 + 21 +124.8947620127 + 31 +0.0 + 0 +ARC + 5 +3FC +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +134.465753153 + 20 +125.0050135586 + 30 +0.0 + 40 +0.3999999762120172 +100 +AcDbArc + 50 +90.0000765526 + 51 +195.9994948625 + 0 +LINE + 5 +3FD +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.4657526185 + 20 +125.4050135348 + 30 +0.0 + 11 +134.8818720152 + 21 +125.4050135348 + 31 +0.0 + 0 +ARC + 5 +3FE +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +134.8818895266 + 20 +125.0050340998 + 30 +0.0 + 40 +0.3999794353998879 +100 +AcDbArc + 50 +15.9988052851 + 51 +90.0025084456 + 0 +LINE + 5 +3FF +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +135.2663767358 + 20 +125.1152753565 + 30 +0.0 + 11 +135.3382822891 + 21 +124.864506695 + 31 +0.0 + 0 +ARC + 5 +400 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +136.1072824299 + 20 +125.085006887 + 30 +0.0 + 40 +0.7999884694317702 +100 +AcDbArc + 50 +195.9995146278 + 51 +270.000666096 + 0 +LINE + 5 +401 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +136.1072917303 + 20 +124.2850184176 + 30 +0.0 + 11 +144.2699256187 + 21 +124.2850184176 + 31 +0.0 + 0 +ARC + 5 +402 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +144.2699168791 + 20 +124.2050096278 + 30 +0.0 + 40 +0.0800087902519152 +100 +AcDbArc + 50 +0.0053247404 + 51 +89.9937414529 + 0 +LINE + 5 +403 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +144.349925669 + 20 +124.2050170634 + 30 +0.0 + 11 +144.349925669 + 21 +123.9650130007 + 31 +0.0 + 0 +ARC + 5 +404 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +144.4299341409 + 20 +123.9650201183 + 30 +0.0 + 40 +0.0800084721904046 +100 +AcDbArc + 50 +180.0050970011 + 51 +269.9938357899 + 0 +LINE + 5 +405 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +144.4299255331 + 20 +123.8850116465 + 30 +0.0 + 11 +144.669925498 + 21 +123.8850116465 + 31 +0.0 + 0 +ARC + 5 +406 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +144.6699166267 + 20 +123.9650207543 + 30 +0.0 + 40 +0.0800091083155471 +100 +AcDbArc + 50 +270.0063528841 + 51 +359.9944475208 + 0 +LINE + 5 +407 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +144.7499257346 + 20 +123.9650130007 + 30 +0.0 + 11 +144.7499257346 + 21 +124.2050170634 + 31 +0.0 + 0 +ARC + 5 +408 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +144.8299342065 + 20 +124.2050099459 + 30 +0.0 + 40 +0.0800084721903386 +100 +AcDbArc + 50 +90.00616421 + 51 +179.9949029989 + 0 +LINE + 5 +409 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +144.8299255987 + 20 +124.2850184176 + 30 +0.0 + 11 +147.7288805713 + 21 +124.2850184176 + 31 +0.0 + 0 +ARC + 5 +40A +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +147.7288779357 + 20 +123.8850159947 + 30 +0.0 + 40 +0.4000024229248144 +100 +AcDbArc + 50 +345.0003781315 + 51 +89.9996224743 + 0 +LINE + 5 +40B +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.1152512898 + 20 +123.7814902995 + 30 +0.0 + 11 +147.6108663549 + 21 +121.8991040919 + 31 +0.0 + 0 +ARC + 5 +40C +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +147.1754788065 + 20 +122.0157535212 + 30 +0.0 + 40 +0.4507431714908194 +100 +AcDbArc + 50 +188.9989377763 + 51 +345.0015117857 + 0 +LINE + 5 +40D +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +146.7302837243 + 20 +121.9452500079 + 30 +0.0 + 11 +146.7030935754 + 21 +122.1169233058 + 31 +0.0 + 0 +ARC + 5 +40E +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +146.5055559119 + 20 +122.0856369716 + 30 +0.0 + 40 +0.1999999080912635 +100 +AcDbArc + 50 +8.9998420876 + 51 +161.9998367828 + 0 +LINE + 5 +40F +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +146.3153448721 + 20 +122.1474408839 + 30 +0.0 + 11 +145.8463118245 + 21 +120.7038998339 + 31 +0.0 + 0 +ARC + 5 +410 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircleTrace + 10 +195.2555696261 + 20 +397.2202084954 + 30 +0.0 + 11 +194.7555696261 + 21 +394.2202084954 + 31 +0.0 + 12 +195.7555696261 + 22 +394.2202084954 + 32 +0.0 + 13 +195.7555696261 + 23 +394.2202084954 + 33 +0.0 + 0 +LINE + 5 +554 +330 +54F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +148.8555696261 + 20 +287.499722104 + 30 +0.0 + 11 +196.2555696261 + 21 +287.499722104 + 31 +0.0 + 0 +LINE + 5 +555 +330 +54F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +146.8378589248 + 20 +397.2202084954 + 30 +0.0 + 11 +196.2555696261 + 21 +397.2202084954 + 31 +0.0 + 0 +LINE + 5 +556 +330 +54F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +195.2555696261 + 20 +287.499722104 + 30 +0.0 + 11 +195.2555696261 + 21 +397.2202084954 + 31 +0.0 + 0 +ENDBLK + 5 +551 +330 +54F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +559 +330 +558 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_8 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_8 + 1 + + 0 +SOLID + 5 +55B +330 +558 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +219.4299255838 + 20 +28.7821787182 + 30 +0.0 + 11 +219.9299255838 + 21 +31.7821787182 + 31 +0.0 + 12 +218.9299255838 + 22 +31.7821787182 + 32 +0.0 + 13 +218.9299255838 + 23 +31.7821787182 + 33 +0.0 + 0 +SOLID + 5 +55C +330 +558 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +219.4299255838 + 20 +397.2202084954 + 30 +0.0 + 11 +218.9299255838 + 21 +394.2202084954 + 31 +0.0 + 12 +219.9299255838 + 22 +394.2202084954 + 32 +0.0 + 13 +219.9299255838 + 23 +394.2202084954 + 33 +0.0 + 0 +LINE + 5 +55D +330 +558 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +143.0299255838 + 20 +28.7821787182 + 30 +0.0 + 11 +220.4299255838 + 21 +28.7821787182 + 31 +0.0 + 0 +LINE + 5 +55E +330 +558 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +146.8378589248 + 20 +397.2202084954 + 30 +0.0 + 11 +220.4299255838 + 21 +397.2202084954 + 31 +0.0 + 0 +LINE + 5 +55F +330 +558 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +219.4299255838 + 20 +28.7821787182 + 30 +0.0 + 11 +219.4299255838 + 21 +397.2202084954 + 31 +0.0 + 0 +MTEXT + 5 +560 +330 +558 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbMText + 10 +214.9181886692 + 20 +211.8228183688 + 30 +0.04 + 40 +3.5 + 41 +0.0 + 71 + 1 + 72 + 1 + 1 +Kozijnmaat = + 7 +SLDTEXTSTYLE0 + 11 +6.123233995736766E-17 + 21 +1.0 + 31 +0.0 + 73 + 1 + 44 +1.0 + 0 +ENDBLK + 5 +55A +330 +558 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +563 +330 +562 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_9 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_9 + 1 + + 0 +SOLID + 5 +565 +330 +562 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +99.2299255838 + 20 +383.8202084954 + 30 +0.0 + 11 +98.7299255838 + 21 +380.8202084954 + 31 +0.0 + 12 +99.7299255838 + 22 +380.8202084954 + 32 +0.0 + 13 +99.7299255838 + 23 +380.8202084954 + 33 +0.0 + 0 +SOLID + 5 +566 +330 +562 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +99.2299255838 + 20 +28.7821787182 + 30 +0.0 + 11 +99.7299255838 + 21 +31.7821787182 + 31 +0.0 + 12 +98.7299255838 + 22 +31.7821787182 + 32 +0.0 + 13 +98.7299255838 + 23 +31.7821787182 + 33 +0.0 + 0 +LINE + 5 +567 +330 +562 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +132.4299255838 + 20 +383.8202084954 + 30 +0.0 + 11 +98.2299255838 + 21 +383.8202084954 + 31 +0.0 + 0 +LINE + 5 +568 +330 +562 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +141.0299255838 + 20 +28.7821787182 + 30 +0.0 + 11 +98.2299255838 + 21 +28.7821787182 + 31 +0.0 + 0 +LINE + 5 +569 +330 +562 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +99.2299255838 + 20 +383.8202084954 + 30 +0.0 + 11 +99.2299255838 + 21 +28.7821787182 + 31 +0.0 + 0 +MTEXT + 5 +56B +330 +562 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbMText + 10 +94.7181886692 + 20 +207.001456174 + 30 +0.04 + 40 +3.5 + 41 +0.0 + 71 + 1 + 72 + 1 + 1 +DMH = + 7 +SLDTEXTSTYLE1 + 11 +-7.044195017643634E-15 + 21 +1.0 + 31 +0.0 + 73 + 1 + 44 +1.0 + 0 +ENDBLK + 5 +564 +330 +562 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +56E +330 +56D +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_10 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_10 + 1 + + 0 +SOLID + 5 +570 +330 +56D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +117.2299255838 + 20 +147.8850158005 + 30 +0.0 + 11 +116.7299255838 + 21 +144.8850158005 + 31 +0.0 + 12 +117.7299255838 + 22 +144.8850158005 + 32 +0.0 + 13 +117.7299255838 + 23 +144.8850158005 + 33 +0.0 + 0 +SOLID + 5 +571 +330 +56D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +117.2299255838 + 20 +148.4450158005 + 30 +0.0 + 11 +117.7299255838 + 21 +151.4450158005 + 31 +0.0 + 12 +116.7299255838 + 22 +151.4450158005 + 32 +0.0 + 13 +116.7299255838 + 23 +151.4450158005 + 33 +0.0 + 0 +LINE + 5 +572 +330 +56D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +132.5499255838 + 20 +147.8850158005 + 30 +0.0 + 11 +116.2299255838 + 21 +147.8850158005 + 31 +0.0 + 0 +LINE + 5 +573 +330 +56D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +132.5499255838 + 20 +148.4450158005 + 30 +0.0 + 11 +116.2299255838 + 21 +148.4450158005 + 31 +0.0 + 0 +LINE + 5 +574 +330 +56D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +117.2299255838 + 20 +147.8850158005 + 30 +0.0 + 11 +117.2299255838 + 21 +141.8850158005 + 31 +0.0 + 0 +LINE + 5 +575 +330 +56D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +117.2299255838 + 20 +147.8850158005 + 30 +0.0 + 11 +117.2299255838 + 21 +148.4450158005 + 31 +0.0 + 0 +LINE + 5 +576 +330 +56D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +117.2299255838 + 20 +148.4450158005 + 30 +0.0 + 11 +117.2299255838 + 21 +160.0869130071 + 31 +0.0 + 0 +MTEXT + 5 +577 +330 +56D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbMText + 10 +112.7181886692 + 20 +154.6570518713 + 30 +0.04 + 40 +3.5 + 41 +0.0 + 71 + 1 + 72 + 1 + 1 +1 + 7 +SLDTEXTSTYLE0 + 11 +-7.044195017643634E-15 + 21 +1.0 + 31 +0.0 + 73 + 1 + 44 +1.0 + 0 +ENDBLK + 5 +56F +330 +56D +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +57A +330 +579 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_11 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_11 + 1 + + 0 +SOLID + 5 +57C +330 +579 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +117.2299255838 + 20 +224.4267253803 + 30 +0.0 + 11 +116.7299255838 + 21 +221.4267253803 + 31 +0.0 + 12 +117.7299255838 + 22 +221.4267253803 + 32 +0.0 + 13 +117.7299255838 + 23 +221.4267253803 + 33 +0.0 + 0 +SOLID + 5 +57D +330 +579 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +117.2299255838 + 20 +224.9867253803 + 30 +0.0 + 11 +117.7299255838 + 21 +227.9867253803 + 31 +0.0 + 12 +116.7299255838 + 22 +227.9867253803 + 32 +0.0 + 13 +116.7299255838 + 23 +227.9867253803 + 33 +0.0 + 0 +LINE + 5 +57E +330 +579 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +132.5499255838 + 20 +224.4267253803 + 30 +0.0 + 11 +116.2299255838 + 21 +224.4267253803 + 31 +0.0 + 0 +LINE + 5 +57F +330 +579 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +132.5499255838 + 20 +224.9867253803 + 30 +0.0 + 11 +116.2299255838 + 21 +224.9867253803 + 31 +0.0 + 0 +LINE + 5 +580 +330 +579 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +117.2299255838 + 20 +224.4267253803 + 30 +0.0 + 11 +117.2299255838 + 21 +218.4267253803 + 31 +0.0 + 0 +LINE + 5 +581 +330 +579 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +117.2299255838 + 20 +224.4267253803 + 30 +0.0 + 11 +117.2299255838 + 21 +224.9867253803 + 31 +0.0 + 0 +LINE + 5 +582 +330 +579 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +117.2299255838 + 20 +224.9867253803 + 30 +0.0 + 11 +117.2299255838 + 21 +239.2483956684 + 31 +0.0 + 0 +MTEXT + 5 +583 +330 +579 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbMText + 10 +112.7181886692 + 20 +233.8185345326 + 30 +0.04 + 40 +3.5 + 41 +0.0 + 71 + 1 + 72 + 1 + 1 +1 + 7 +SLDTEXTSTYLE0 + 11 +-7.044195017643634E-15 + 21 +1.0 + 31 +0.0 + 73 + 1 + 44 +1.0 + 0 +ENDBLK + 5 +57B +330 +579 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +586 +330 +585 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_12 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_12 + 1 + + 0 +SOLID + 5 +588 +330 +585 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +117.2299255838 + 20 +301.61905407 + 30 +0.0 + 11 +116.7299255838 + 21 +298.61905407 + 31 +0.0 + 12 +117.7299255838 + 22 +298.61905407 + 32 +0.0 + 13 +117.7299255838 + 23 +298.61905407 + 33 +0.0 + 0 +SOLID + 5 +589 +330 +585 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +117.2299255838 + 20 +302.17905407 + 30 +0.0 + 11 +117.7299255838 + 21 +305.17905407 + 31 +0.0 + 12 +116.7299255838 + 22 +305.17905407 + 32 +0.0 + 13 +116.7299255838 + 23 +305.17905407 + 33 +0.0 + 0 +LINE + 5 +58A +330 +585 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +132.5499255838 + 20 +301.61905407 + 30 +0.0 + 11 +116.2299255838 + 21 +301.61905407 + 31 +0.0 + 0 +LINE + 5 +58B +330 +585 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +132.5499255838 + 20 +302.17905407 + 30 +0.0 + 11 +116.2299255838 + 21 +302.17905407 + 31 +0.0 + 0 +LINE + 5 +58C +330 +585 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +117.2299255838 + 20 +301.61905407 + 30 +0.0 + 11 +117.2299255838 + 21 +295.61905407 + 31 +0.0 + 0 +LINE + 5 +58D +330 +585 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +117.2299255838 + 20 +301.61905407 + 30 +0.0 + 11 +117.2299255838 + 21 +302.17905407 + 31 +0.0 + 0 +LINE + 5 +58E +330 +585 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +117.2299255838 + 20 +302.17905407 + 30 +0.0 + 11 +117.2299255838 + 21 +314.5260224873 + 31 +0.0 + 0 +MTEXT + 5 +58F +330 +585 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbMText + 10 +112.7181886692 + 20 +309.0961613515 + 30 +0.04 + 40 +3.5 + 41 +0.0 + 71 + 1 + 72 + 1 + 1 +1 + 7 +SLDTEXTSTYLE0 + 11 +-7.044195017643634E-15 + 21 +1.0 + 31 +0.0 + 73 + 1 + 44 +1.0 + 0 +ENDBLK + 5 +587 +330 +585 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +LINE + 5 +4B +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +123.9140543182 + 20 +383.8493547742 + 30 +0.0 + 11 +160.598524565 + 21 +383.8493547742 + 31 +0.0 + 0 +LINE + 5 +4C +330 +1F +100 +AcDbEntity + 8 +STUKLIJST +100 +AcDbLine + 10 +10.3087825773 + 20 +9.2198227322 + 30 +0.0 + 11 +10.3087825773 + 21 +409.2698227322 + 31 +0.0 + 0 +LINE + 5 +4D +330 +1F +100 +AcDbEntity + 8 +STUKLIJST +100 +AcDbLine + 10 +10.3087825773 + 20 +9.2198227322 + 30 +0.0 + 11 +287.198438446 + 21 +9.2198227322 + 31 +0.0 + 0 +LINE + 5 +4E +330 +1F +100 +AcDbEntity + 8 +STUKLIJST +100 +AcDbLine + 10 +287.198438446 + 20 +409.2698227322 + 30 +0.0 + 11 +287.198438446 + 21 +9.2198227322 + 31 +0.0 + 0 +LINE + 5 +4F +330 +1F +100 +AcDbEntity + 8 +STUKLIJST +100 +AcDbLine + 10 +287.198438446 + 20 +409.2698227322 + 30 +0.0 + 11 +10.3087825773 + 21 +409.2698227322 + 31 +0.0 + 0 +LINE + 5 +50 +330 +1F +100 +AcDbEntity + 8 +MAATLIJN +100 +AcDbLine + 10 +4.3087825773 + 20 +3.2198227322 + 30 +0.0 + 11 +4.3087825773 + 21 +415.2698227322 + 31 +0.0 + 0 +LINE + 5 +51 +330 +1F +100 +AcDbEntity + 8 +MAATLIJN +100 +AcDbLine + 10 +4.3087825773 + 20 +415.2698227322 + 30 +0.0 + 11 +293.4090035115 + 21 +415.2698227322 + 31 +0.0 + 0 +LINE + 5 +52 +330 +1F +100 +AcDbEntity + 8 +MAATLIJN +100 +AcDbLine + 10 +293.4090035115 + 20 +415.2698227322 + 30 +0.0 + 11 +293.4090035115 + 21 +3.2198227322 + 31 +0.0 + 0 +LINE + 5 +53 +330 +1F +100 +AcDbEntity + 8 +MAATLIJN +100 +AcDbLine + 10 +293.4090035115 + 20 +3.2198227322 + 30 +0.0 + 11 +4.3087825773 + 21 +3.2198227322 + 31 +0.0 + 0 +MTEXT + 5 +55 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbMText + 10 +211.9617900851 + 20 +18.9651870984 + 30 +0.0 + 40 +4.2333333333 + 41 +0.0 + 71 + 1 + 72 + 1 + 1 +Alum. deurblad - 4 secties + 7 +SLDTEXTSTYLE0 + 73 + 1 + 44 +1.0 + 0 +INSERT + 5 +59 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +100 +AcDbBlockReference + 2 +SW_BROKEN_VIEW_0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 0 +LINE + 5 +5A +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.9420049658 + 20 +336.7369001461 + 30 +0.0 + 11 +148.9420049658 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +5B +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.1445668807 + 20 +336.7369001461 + 30 +0.0 + 11 +149.1445668807 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +5C +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.0406432023 + 20 +336.7369001461 + 30 +0.0 + 11 +149.0406432023 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +5D +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.0406432023 + 20 +359.2202013088 + 30 +0.0 + 11 +148.9420049658 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +5E +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +133.9137577285 + 20 +336.7369001461 + 30 +0.0 + 11 +133.9137577285 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +5F +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +133.797846066 + 20 +336.7369001461 + 30 +0.0 + 11 +133.797846066 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +60 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +133.6992078294 + 20 +336.7369001461 + 30 +0.0 + 11 +133.6992078294 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +61 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +133.797846066 + 20 +359.2202013088 + 30 +0.0 + 11 +133.6992078294 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +62 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +133.5952848961 + 20 +336.7369001461 + 30 +0.0 + 11 +133.5952848961 + 21 +359.2202013088 + 31 +0.0 + 0 +ARC + 5 +63 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.1879324767 + 20 +359.1402151319 + 30 +0.0 + 40 +0.0799861772139263 +100 +AcDbArc + 50 +31.2190407028 + 51 +90.0049728915 + 0 +LINE + 5 +64 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.2563360204 + 20 +336.7369001461 + 30 +0.0 + 11 +149.2563360204 + 21 +359.1816728664 + 31 +0.0 + 0 +LINE + 5 +65 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.2162960043 + 20 +336.7369001461 + 30 +0.0 + 11 +134.2162960043 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +66 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.2162960043 + 20 +359.2202013088 + 30 +0.0 + 11 +134.1499254873 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +67 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +133.4299252202 + 20 +336.7369001461 + 30 +0.0 + 11 +133.4299252202 + 21 +359.1907804561 + 31 +0.0 + 0 +ARC + 5 +68 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +127.793914781 + 20 +346.5773729462 + 30 +0.0 + 40 +24.8898367051569 +100 +AcDbArc + 50 +30.3127339119 + 51 +30.4217624082 + 0 +LINE + 5 +69 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.3099258115 + 20 +336.7369001461 + 30 +0.0 + 11 +149.3099258115 + 21 +359.1109102321 + 31 +0.0 + 0 +LINE + 5 +6A +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.2563360204 + 20 +359.1816728664 + 30 +0.0 + 11 +149.2569536736 + 21 +359.1806238247 + 31 +0.0 + 0 +LINE + 5 +6B +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.2299253514 + 20 +336.7369001461 + 30 +0.0 + 11 +134.2299253514 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +6C +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.2299253514 + 20 +359.2202013088 + 30 +0.0 + 11 +134.2162960043 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +6D +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.5099256804 + 20 +336.7369001461 + 30 +0.0 + 11 +148.5099256804 + 21 +358.0259626461 + 31 +0.0 + 0 +LINE + 5 +6E +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.6299254169 + 20 +336.7369001461 + 30 +0.0 + 11 +134.6299254169 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +6F +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.6299254169 + 20 +359.2202013088 + 30 +0.0 + 11 +134.2299253514 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +70 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +143.0299256762 + 20 +359.2202013088 + 30 +0.0 + 11 +143.0299256762 + 21 +353.6202257229 + 31 +0.0 + 0 +LINE + 5 +71 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +143.0299256762 + 20 +353.6202257229 + 30 +0.0 + 11 +147.3280240615 + 21 +353.6202257229 + 31 +0.0 + 0 +LINE + 5 +72 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +147.3280240615 + 20 +353.6202257229 + 30 +0.0 + 11 +147.5545917471 + 21 +354.4657533718 + 31 +0.0 + 0 +LINE + 5 +73 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +141.5499255826 + 20 +359.2202013088 + 30 +0.0 + 11 +141.3099255843 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +74 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +138.9099255969 + 20 +359.2202013088 + 30 +0.0 + 11 +134.6299254169 + 21 +359.2202013088 + 31 +0.0 + 0 +ARC + 5 +75 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +137.1595398236 + 20 +361.9409267861 + 30 +0.0 + 40 +0.3992677940247622 +100 +AcDbArc + 50 +89.9681903289 + 51 +114.7477262168 + 0 +LINE + 5 +76 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +137.1597614904 + 20 +362.3401945186 + 30 +0.0 + 11 +139.7899255922 + 21 +362.3401945186 + 31 +0.0 + 0 +ARC + 5 +77 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +139.7899227961 + 20 +361.9401917488 + 30 +0.0 + 40 +0.4000027697985571 +100 +AcDbArc + 50 +0.0045494665 + 51 +89.9995994903 + 0 +LINE + 5 +78 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +140.1899255646 + 20 +361.9402235103 + 30 +0.0 + 11 +140.1899255646 + 21 +360.4202097011 + 31 +0.0 + 0 +ARC + 5 +79 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +140.5899283325 + 20 +360.4201937773 + 30 +0.0 + 40 +0.4000027681863966 +100 +AcDbArc + 50 +179.9977190938 + 51 +269.999606256 + 0 +LINE + 5 +7A +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +140.5899255836 + 20 +360.0201910091 + 30 +0.0 + 11 +142.2699255703 + 21 +360.0201910091 + 31 +0.0 + 0 +ARC + 5 +7B +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +142.2699229338 + 20 +360.4201936183 + 30 +0.0 + 40 +0.4000026092087915 +100 +AcDbArc + 50 +270.0003776416 + 51 +0.0023036787 + 0 +LINE + 5 +7C +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +142.6699255427 + 20 +360.4202097011 + 30 +0.0 + 11 +142.6699255427 + 21 +361.9402235103 + 31 +0.0 + 0 +ARC + 5 +7D +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +143.0699283112 + 20 +361.9401917488 + 30 +0.0 + 40 +0.4000027697974622 +100 +AcDbArc + 50 +90.0003871694 + 51 +179.9954505335 + 0 +LINE + 5 +7E +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +143.0699256082 + 20 +362.3401945186 + 30 +0.0 + 11 +148.5899255445 + 21 +362.3401945186 + 31 +0.0 + 0 +ARC + 5 +7F +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5899336175 + 20 +362.4601862448 + 30 +0.0 + 40 +0.1199917263967713 +100 +AcDbArc + 50 +269.9961451292 + 51 +0.0134590356 + 0 +LINE + 5 +80 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.7099253406 + 20 +362.4602144314 + 30 +0.0 + 11 +148.7099253406 + 21 +366.669732864 + 31 +0.0 + 0 +ARC + 5 +81 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5098175737 + 20 +366.669705415 + 30 +0.0 + 40 +0.2001077687858761 +100 +AcDbArc + 50 +0.0078593224 + 51 +46.1736252111 + 0 +ARC + 5 +82 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.229892261 + 20 +367.4202030254 + 30 +0.0 + 40 +0.8399663770856335 +100 +AcDbArc + 50 +133.8120979057 + 51 +226.1879020943 + 0 +ARC + 5 +83 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5098175737 + 20 +368.1707006358 + 30 +0.0 + 40 +0.200107768785933 +100 +AcDbArc + 50 +313.8263747889 + 51 +359.9921406775 + 0 +LINE + 5 +84 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.7099253406 + 20 +368.1706731868 + 30 +0.0 + 11 +148.7099253406 + 21 +370.3305070949 + 31 +0.0 + 0 +ARC + 5 +85 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5900202217 + 20 +370.3305234822 + 30 +0.0 + 40 +0.1199051200450481 +100 +AcDbArc + 50 +359.9921694514 + 51 +45.0183972297 + 0 +LINE + 5 +86 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.6747787168 + 20 +370.4153364254 + 30 +0.0 + 11 +148.5050731172 + 21 +370.58504277 + 31 +0.0 + 0 +ARC + 5 +87 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5900489089 + 20 +370.6699467703 + 30 +0.0 + 40 +0.1201231635795685 +100 +AcDbArc + 50 +180.0128717119 + 51 +224.9757867508 + 0 +LINE + 5 +88 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.4699257483 + 20 +370.6699197841 + 30 +0.0 + 11 +148.4699257483 + 21 +371.770507629 + 31 +0.0 + 0 +ARC + 5 +89 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5898274113 + 20 +371.7705247037 + 30 +0.0 + 40 +0.1199016642176248 +100 +AcDbArc + 50 +134.9804150373 + 51 +180.0081592821 + 0 +LINE + 5 +8A +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.5050731172 + 20 +371.8553369594 + 30 +0.0 + 11 +148.6747787168 + 21 +372.025043304 + 31 +0.0 + 0 +ARC + 5 +8B +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5897987133 + 20 +372.1099479939 + 30 +0.0 + 40 +0.1201266304909027 +100 +AcDbArc + 50 +315.0254004562 + 51 +359.9867997393 + 0 +LINE + 5 +8C +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.7099253406 + 20 +372.1099203182 + 30 +0.0 + 11 +148.7099253406 + 21 +374.2697542263 + 31 +0.0 + 0 +ARC + 5 +8D +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5100322735 + 20 +374.2697706431 + 30 +0.0 + 40 +0.1998930677679371 +100 +AcDbArc + 50 +359.9952944114 + 51 +46.1998513567 + 0 +ARC + 5 +8E +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.229948176 + 20 +375.0202005459 + 30 +0.0 + 40 +0.840022291756649 +100 +AcDbArc + 50 +133.8137242063 + 51 +226.1862757937 + 0 +ARC + 5 +8F +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5100322233 + 20 +375.7706304833 + 30 +0.0 + 40 +0.1998931275890775 +100 +AcDbArc + 50 +313.8001521475 + 51 +0.018363319 + 0 +LINE + 5 +90 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.7099253406 + 20 +375.7706945491 + 30 +0.0 + 11 +148.7099253406 + 21 +392.9185693813 + 31 +0.0 + 0 +ARC + 5 +91 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.3098818552 + 20 +392.9185180141 + 30 +0.0 + 40 +0.4000434887682899 +100 +AcDbArc + 50 +0.0073570038 + 51 +106.4508778333 + 0 +ARC + 5 +92 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +147.6299231955 + 20 +395.2202061714 + 30 +0.0 + 40 +1.999979879929223 +100 +AcDbArc + 50 +230.0551007785 + 51 +286.4594915024 + 0 +ARC + 5 +93 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +146.0888728608 + 20 +393.3797645665 + 30 +0.0 + 40 +0.4004495854783311 +100 +AcDbArc + 50 +50.0825069136 + 51 +89.9794164413 + 0 +LINE + 5 +94 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +146.0890167227 + 20 +393.7802141262 + 30 +0.0 + 11 +136.7708344778 + 21 +393.7802141262 + 31 +0.0 + 0 +ARC + 5 +95 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +136.7709783396 + 20 +393.3797645665 + 30 +0.0 + 40 +0.4004495854783879 +100 +AcDbArc + 50 +90.0205835587 + 51 +129.9174930864 + 0 +ARC + 5 +96 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +135.2299278051 + 20 +395.220206584 + 30 +0.0 + 40 +1.999980324488907 +100 +AcDbArc + 50 +253.5405071009 + 51 +309.9448960222 + 0 +ARC + 5 +97 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +134.5499689727 + 20 +392.9185180141 + 30 +0.0 + 40 +0.4000434887683444 +100 +AcDbArc + 50 +73.5491221667 + 51 +179.9926429962 + 0 +LINE + 5 +98 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.1499254873 + 20 +392.9185693813 + 30 +0.0 + 11 +134.1499254873 + 21 +361.3064115596 + 31 +0.0 + 0 +ARC + 5 +99 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +134.3499114332 + 20 +361.3063661517 + 30 +0.0 + 40 +0.1999859510592641 +100 +AcDbArc + 50 +179.9869906558 + 51 +294.7406415951 + 0 +LINE + 5 +9A +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.4336078336 + 20 +361.1247366024 + 30 +0.0 + 11 +136.9923968633 + 21 +362.3035257412 + 31 +0.0 + 0 +ARC + 5 +9B +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +135.2299441549 + 20 +395.2202094278 + 30 +0.0 + 40 +1.999982807792111 +100 +AcDbArc + 50 +346.3277484711 + 51 +21.510375133 + 0 +ARC + 5 +9C +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +137.3676151968 + 20 +394.7002149549 + 30 +0.0 + 40 +0.2000244053689593 +100 +AcDbArc + 50 +166.3324477609 + 51 +269.9922055192 + 0 +LINE + 5 +9D +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +145.4922632148 + 20 +394.5001905513 + 30 +0.0 + 11 +137.3675879856 + 21 +394.5001905513 + 31 +0.0 + 0 +ARC + 5 +9E +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +145.4922360036 + 20 +394.7002149549 + 30 +0.0 + 40 +0.2000244053689451 +100 +AcDbArc + 50 +270.0077944808 + 51 +13.6675522392 + 0 +ARC + 5 +9F +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +147.6299070455 + 20 +395.2202094278 + 30 +0.0 + 40 +1.999982807792221 +100 +AcDbArc + 50 +158.489624867 + 51 +193.6722515289 + 0 +ARC + 5 +A0 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +145.3970883777 + 20 +396.1002000547 + 30 +0.0 + 40 +0.3999885893651534 +100 +AcDbArc + 50 +338.4905744645 + 51 +90.0012269037 + 0 +LINE + 5 +A1 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +143.9099256714 + 20 +396.500188644 + 30 +0.0 + 11 +145.3970798125 + 21 +396.500188644 + 31 +0.0 + 0 +ARC + 5 +A2 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +143.9099748178 + 20 +396.5802378337 + 30 +0.0 + 40 +0.0800492048011358 +100 +AcDbArc + 50 +180.0257061046 + 51 +269.9648231328 + 0 +LINE + 5 +A3 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +143.8299256211 + 20 +397.1401994777 + 30 +0.0 + 11 +143.8299256211 + 21 +396.5802019191 + 31 +0.0 + 0 +ARC + 5 +A4 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +143.9098934092 + 20 +397.1402449584 + 30 +0.0 + 40 +0.0799678010352043 +100 +AcDbArc + 50 +89.9768845512 + 51 +180.0325862115 + 0 +LINE + 5 +A5 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +145.8378587683 + 20 +397.2202127529 + 30 +0.0 + 11 +143.9099256714 + 21 +397.2202127529 + 31 +0.0 + 0 +ARC + 5 +A6 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +145.8378250788 + 20 +396.8201414766 + 30 +0.0 + 40 +0.4000712776531297 +100 +AcDbArc + 50 +35.0061485493 + 51 +89.9951751956 + 0 +LINE + 5 +A7 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +146.7657630166 + 20 +396.1923902584 + 30 +0.0 + 11 +146.1655196567 + 21 +397.0496481014 + 31 +0.0 + 0 +ARC + 5 +A8 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +146.667516349 + 20 +396.1235761057 + 30 +0.0 + 40 +0.1199491362526079 +100 +AcDbArc + 50 +316.8039486115 + 51 +35.0082542764 + 0 +ARC + 5 +A9 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +147.6299254989 + 20 +395.2202090721 + 30 +0.0 + 40 +1.200014262087242 +100 +AcDbArc + 50 +136.8133643338 + 51 +43.1866356662 + 0 +ARC + 5 +AA +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5923363035 + 20 +396.1235762241 + 30 +0.0 + 40 +0.1199504236850838 +100 +AcDbArc + 50 +144.9922455228 + 51 +223.1955515893 + 0 +LINE + 5 +AB +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.1713189354 + 20 +397.1596067501 + 30 +0.0 + 11 +148.4940879812 + 21 +396.1923902584 + 31 +0.0 + 0 +ARC + 5 +AC +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.2877619365 + 20 +397.0780497932 + 30 +0.0 + 40 +0.1421636723032836 +100 +AcDbArc + 50 +0.0071750237 + 51 +144.9925091982 + 0 +LINE + 5 +AD +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.4299256077 + 20 +375.5001848293 + 30 +0.0 + 11 +149.4299256077 + 21 +397.078067596 + 31 +0.0 + 0 +ARC + 5 +AE +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.0299484881 + 20 +375.500185302 + 30 +0.0 + 40 +0.3999771195635114 +100 +AcDbArc + 50 +292.617691446 + 51 +359.9999322798 + 0 +ARC + 5 +AF +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.2299252955 + 20 +375.0202005459 + 30 +0.0 + 40 +0.1199998892853004 +100 +AcDbArc + 50 +112.6196870788 + 51 +247.3803129212 + 0 +ARC + 5 +B0 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.0299484881 + 20 +374.5402157897 + 30 +0.0 + 40 +0.3999771195634261 +100 +AcDbArc + 50 +0.0000677202 + 51 +67.382308554 + 0 +LINE + 5 +B1 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.4299256077 + 20 +371.973878677 + 30 +0.0 + 11 +149.4299256077 + 21 +374.5402162624 + 31 +0.0 + 0 +ARC + 5 +B2 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.3098934127 + 20 +371.9739249372 + 30 +0.0 + 40 +0.1200322038601951 +100 +AcDbArc + 50 +284.0483064245 + 51 +359.9779182862 + 0 +LINE + 5 +B3 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.2808216085 + 20 +371.8429391933 + 30 +0.0 + 11 +149.3390300145 + 21 +371.8574827266 + 31 +0.0 + 0 +ARC + 5 +B4 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.309957026 + 20 +371.7264971484 + 30 +0.0 + 40 +0.1200317557485873 +100 +AcDbArc + 50 +104.0477772241 + 51 +180.000758526 + 0 +LINE + 5 +B5 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.1899252703 + 20 +370.7138841701 + 30 +0.0 + 11 +149.1899252703 + 21 +371.7264955593 + 31 +0.0 + 0 +ARC + 5 +B6 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.3099570381 + 20 +370.7139302833 + 30 +0.0 + 40 +0.120031776642215 + 0 +ARC + 5 +46F +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.3098818552 + 20 +46.4038720687 + 30 +0.0 + 40 +0.4000434887682782 +100 +AcDbArc + 50 +253.5491221667 + 51 +359.9926429962 + 0 +LINE + 5 +470 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.7099253406 + 20 +63.5516955336 + 30 +0.0 + 11 +148.7099253406 + 21 +46.4038207015 + 31 +0.0 + 0 +ARC + 5 +471 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5098175737 + 20 +63.5516680847 + 30 +0.0 + 40 +0.2001077687861043 +100 +AcDbArc + 50 +0.0078593225 + 51 +46.1736252111 + 0 +ARC + 5 +472 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.229948176 + 20 +64.3021895369 + 30 +0.0 + 40 +0.8400222917564932 +100 +AcDbArc + 50 +133.8137242063 + 51 +226.1862757937 + 0 +ARC + 5 +473 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5100322735 + 20 +65.0526194397 + 30 +0.0 + 40 +0.1998930677682871 +100 +AcDbArc + 50 +313.8001486433 + 51 +0.0047055886 + 0 +LINE + 5 +474 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.7099253406 + 20 +67.2124697646 + 30 +0.0 + 11 +148.7099253406 + 21 +65.0526358565 + 31 +0.0 + 0 +ARC + 5 +475 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5897987133 + 20 +67.2124420889 + 30 +0.0 + 40 +0.1201266304911527 +100 +AcDbArc + 50 +0.0132002608 + 51 +44.9745995438 + 0 +LINE + 5 +476 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.5050731172 + 20 +67.4670531234 + 30 +0.0 + 11 +148.6747787168 + 21 +67.2973467788 + 31 +0.0 + 0 +ARC + 5 +477 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5898274113 + 20 +67.5518653791 + 30 +0.0 + 40 +0.1199016642178358 +100 +AcDbArc + 50 +179.9918407179 + 51 +225.0195849627 + 0 +LINE + 5 +478 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.4699257483 + 20 +68.6524702987 + 30 +0.0 + 11 +148.4699257483 + 21 +67.5518824538 + 31 +0.0 + 0 +ARC + 5 +479 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5900489089 + 20 +68.6524433125 + 30 +0.0 + 40 +0.1201231635794379 +100 +AcDbArc + 50 +135.0242132492 + 51 +179.9871282881 + 0 +LINE + 5 +47A +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.6747787168 + 20 +68.9070536574 + 30 +0.0 + 11 +148.5050731172 + 21 +68.7373473128 + 31 +0.0 + 0 +ARC + 5 +47B +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5900202217 + 20 +68.9918666006 + 30 +0.0 + 40 +0.1199051200450481 +100 +AcDbArc + 50 +314.9816027702 + 51 +0.0078305486 + 0 +LINE + 5 +47C +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.7099253406 + 20 +71.151716896 + 30 +0.0 + 11 +148.7099253406 + 21 +68.9918829879 + 31 +0.0 + 0 +ARC + 5 +47D +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5098175737 + 20 +71.151689447 + 30 +0.0 + 40 +0.200107768785911 +100 +AcDbArc + 50 +0.0078593225 + 51 +46.1736252111 + 0 +ARC + 5 +47E +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.229892261 + 20 +71.9021870574 + 30 +0.0 + 40 +0.8399663770856326 +100 +AcDbArc + 50 +133.8120979057 + 51 +226.1879020943 + 0 +ARC + 5 +47F +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5098175737 + 20 +72.6526846678 + 30 +0.0 + 40 +0.200107768785933 +100 +AcDbArc + 50 +313.8263747889 + 51 +359.9921406776 + 0 +LINE + 5 +480 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.7099253406 + 20 +76.8621756514 + 30 +0.0 + 11 +148.7099253406 + 21 +72.6526572188 + 31 +0.0 + 0 +ARC + 5 +481 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5899336175 + 20 +76.862203838 + 30 +0.0 + 40 +0.1199917263968139 +100 +AcDbArc + 50 +359.9865409644 + 51 +90.0038548708 + 0 +LINE + 5 +482 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +143.0699256082 + 20 +76.9821955642 + 30 +0.0 + 11 +148.5899255445 + 21 +76.9821955642 + 31 +0.0 + 0 +ARC + 5 +483 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +143.0699283112 + 20 +77.382198334 + 30 +0.0 + 40 +0.4000027697974338 +100 +AcDbArc + 50 +180.0045494665 + 51 +269.9996128306 + 0 +LINE + 5 +484 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +142.6699255427 + 20 +78.9021803817 + 30 +0.0 + 11 +142.6699255427 + 21 +77.3821665725 + 31 +0.0 + 0 +ARC + 5 +485 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +142.2699229338 + 20 +78.9021964645 + 30 +0.0 + 40 +0.4000026092089052 +100 +AcDbArc + 50 +359.9976963213 + 51 +89.9996223584 + 0 +LINE + 5 +486 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +140.5899255836 + 20 +79.3021990737 + 30 +0.0 + 11 +142.2699255703 + 21 +79.3021990737 + 31 +0.0 + 0 +ARC + 5 +487 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +140.5899283325 + 20 +78.9021963055 + 30 +0.0 + 40 +0.4000027681864251 +100 +AcDbArc + 50 +90.000393744 + 51 +180.0022809062 + 0 +LINE + 5 +488 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +140.1899255646 + 20 +77.3821665725 + 30 +0.0 + 11 +140.1899255646 + 21 +78.9021803817 + 31 +0.0 + 0 +ARC + 5 +489 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +139.7899227961 + 20 +77.382198334 + 30 +0.0 + 40 +0.400002769798557 +100 +AcDbArc + 50 +270.0004005097 + 51 +359.9954505335 + 0 +LINE + 5 +48A +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +137.1597614904 + 20 +76.9821955642 + 30 +0.0 + 11 +139.7899255922 + 21 +76.9821955642 + 31 +0.0 + 0 +ARC + 5 +48B +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +137.1595398236 + 20 +77.3814632967 + 30 +0.0 + 40 +0.3992677940260214 +100 +AcDbArc + 50 +245.2522737832 + 51 +270.0318096711 + 0 +LINE + 5 +48C +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.4336078336 + 20 +78.1976534804 + 30 +0.0 + 11 +136.9923968633 + 21 +77.0188643416 + 31 +0.0 + 0 +ARC + 5 +48D +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +134.3499584368 + 20 +78.0159505357 + 30 +0.0 + 40 +0.2000329515294041 +100 +AcDbArc + 50 +65.2803842384 + 51 +179.9919835107 + 0 +LINE + 5 +48E +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +137.4627713879 + 20 +42.8222014388 + 30 +0.0 + 11 +138.949925529 + 21 +42.8222014388 + 31 +0.0 + 0 +ARC + 5 +48F +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +138.9498760641 + 20 +42.7421519306 + 30 +0.0 + 40 +0.0800495234356318 +100 +AcDbArc + 50 +0.0259339259 + 51 +89.9645953115 + 0 +LINE + 5 +490 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +139.0299255793 + 20 +42.7421881637 + 30 +0.0 + 11 +139.0299255793 + 21 +42.1821906051 + 31 +0.0 + 0 +ARC + 5 +491 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +138.9499574737 + 20 +42.182145442 + 30 +0.0 + 40 +0.0799681184311334 +100 +AcDbArc + 50 +269.9771121806 + 51 +0.032358582 + 0 +LINE + 5 +492 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +138.949925529 + 20 +42.1021773299 + 30 +0.0 + 11 +137.0219920596 + 21 +42.1021773299 + 31 +0.0 + 0 +ARC + 5 +493 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +137.0220261217 + 20 +42.5022486063 + 30 +0.0 + 40 +0.400071277792755 +100 +AcDbArc + 50 +215.0061485542 + 51 +269.9951218307 + 0 +LINE + 5 +494 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +136.6943315437 + 20 +42.2727419814 + 30 +0.0 + 11 +136.0940881839 + 21 +43.1299998244 + 31 +0.0 + 0 +ARC + 5 +495 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +136.1923348514 + 20 +43.1988139771 + 30 +0.0 + 40 +0.1199491362525765 +100 +AcDbArc + 50 +136.8039486115 + 51 +215.0082542764 + 0 +ARC + 5 +496 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +135.2299255153 + 20 +44.1021809094 + 30 +0.0 + 40 +1.20001432860059 +100 +AcDbArc + 50 +316.8133739453 + 51 +223.1866260547 + 0 +ARC + 5 +497 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +134.2675178339 + 20 +43.1988140955 + 30 +0.0 + 40 +0.1199478488608696 +100 +AcDbArc + 50 +324.9912459259 + 51 +43.1965511861 + 0 +LINE + 5 +498 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.3657628467 + 20 +43.1299998244 + 30 +0.0 + 11 +133.6885318925 + 21 +42.1627833327 + 31 +0.0 + 0 +ARC + 5 +499 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +133.5720888914 + 20 +42.2443402896 + 30 +0.0 + 40 +0.1421636723032335 +100 +AcDbArc + 50 +180.0071750236 + 51 +324.9925091983 + 0 +LINE + 5 +49A +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +133.4299252202 + 20 +42.2443224868 + 30 +0.0 + 11 +133.4299252202 + 21 +79.6323134383 + 31 +0.0 + 0 +ARC + 5 +49B +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +133.0298319476 + 20 +79.6322623339 + 30 +0.0 + 40 +0.4000932758665615 +100 +AcDbArc + 50 +0.0073184602 + 51 +52.0135000174 + 0 +ARC + 5 +49C +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +133.3499255703 + 20 +80.0421799816 + 30 +0.0 + 40 +0.1199955680613621 +100 +AcDbArc + 50 +44.424867041 + 51 +232.0186299389 + 0 +ARC + 5 +49D +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +133.4927816435 + 20 +80.1822896055 + 30 +0.0 + 40 +0.080100836150903 +100 +AcDbArc + 50 +224.4724320243 + 51 +269.9805674286 + 0 +LINE + 5 +49E +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +133.4927544763 + 20 +80.102188774 + 30 +0.0 + 11 +134.1499254873 + 21 +80.102188774 + 31 +0.0 + 0 +ARC + 5 +49F +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +134.1499294027 + 20 +80.0221932431 + 30 +0.0 + 40 +0.0799955310303124 +100 +AcDbArc + 50 +344.0015913282 + 51 +90.0028043747 + 0 +LINE + 5 +4A0 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.2268266549 + 20 +80.0001456221 + 30 +0.0 + 11 +134.042500781 + 21 +79.3573214492 + 31 +0.0 + 0 +ARC + 5 +4A1 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +134.2347360924 + 20 +79.3021720325 + 30 +0.0 + 40 +0.1999896824440735 +100 +AcDbArc + 50 +163.9926116413 + 51 +245.2696135787 + 0 +LINE + 5 +4A2 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.1510706415 + 20 +79.1205241164 + 30 +0.0 + 11 +137.1502664705 + 21 +77.7388884505 + 31 +0.0 + 0 +ARC + 5 +4A3 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +137.317737162 + 20 +78.1024627412 + 30 +0.0 + 40 +0.4002907660301162 +100 +AcDbArc + 50 +245.2681140451 + 51 +269.98476511 + 0 +LINE + 5 +4A4 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +137.3176307251 + 20 +77.7021719893 + 30 +0.0 + 11 +139.1499255618 + 21 +77.7021719893 + 31 +0.0 + 0 +ARC + 5 +4A5 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +139.1499227005 + 20 +78.1021749165 + 30 +0.0 + 40 +0.4000029271641257 +100 +AcDbArc + 50 +270.0004098464 + 51 +0.0022581337 + 0 +LINE + 5 +4A6 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +139.5499256273 + 20 +78.1021906814 + 30 +0.0 + 11 +139.5499256273 + 21 +78.9021803817 + 31 +0.0 + 0 +ARC + 5 +4A7 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +139.1499227005 + 20 +78.9021961465 + 30 +0.0 + 40 +0.4000029271641541 +100 +AcDbArc + 50 +359.9977418663 + 51 +89.9995901536 + 0 +LINE + 5 +4A8 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +139.1499255618 + 20 +79.3021990737 + 30 +0.0 + 11 +138.9099255969 + 21 +79.3021990737 + 31 +0.0 + 0 +ARC + 5 +4A9 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +138.9099203808 + 20 +79.7021939238 + 30 +0.0 + 40 +0.3999948501927155 +100 +AcDbArc + 50 +89.9992528415 + 51 +270.0007471585 + 0 +LINE + 5 +4AA +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +138.9099255969 + 20 +80.102188774 + 30 +0.0 + 11 +141.3099255843 + 21 +80.102188774 + 31 +0.0 + 0 +ARC + 5 +4AB +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +141.4299255835 + 20 +80.1021688621 + 30 +0.0 + 40 +0.1200000008033507 +100 +AcDbArc + 50 +179.9904927603 + 51 +0.0095072397 + 0 +LINE + 5 +4AC +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +141.5499255826 + 20 +80.102188774 + 30 +0.0 + 11 +144.2299255004 + 21 +80.102188774 + 31 +0.0 + 0 +ARC + 5 +4AD +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +144.2299329932 + 20 +80.2221814513 + 30 +0.0 + 40 +0.1199926775530223 +100 +AcDbArc + 50 +269.9964221996 + 51 +359.9902360528 + 0 +LINE + 5 +4AE +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +144.349925669 + 20 +80.222161003 + 30 +0.0 + 11 +144.349925669 + 21 +80.3821875533 + 31 +0.0 + 0 +ARC + 5 +4AF +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +144.4699183448 + 20 +80.382167105 + 30 +0.0 + 40 +0.1199926775144228 +100 +AcDbArc + 50 +89.9966000615 + 51 +179.9902360605 + 0 +LINE + 5 +4B0 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 99255659 + 21 +158.8450193141 + 31 +0.0 + 0 +ARC + 5 +366 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +144.629912391 + 20 +158.7250059711 + 30 +0.0 + 40 +0.1200133437027802 +100 +AcDbArc + 50 +0.0025547204 + 51 +89.9937101469 + 0 +LINE + 5 +367 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +144.7499257346 + 20 +158.7250113223 + 30 +0.0 + 11 +144.7499257346 + 21 +158.445012543 + 31 +0.0 + 0 +ARC + 5 +368 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +143.9499198813 + 20 +158.445016775 + 30 +0.0 + 40 +0.8000058532867297 +100 +AcDbArc + 50 +270.0004098155 + 51 +359.9996969061 + 0 +LINE + 5 +369 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +143.9499256035 + 20 +157.6450109217 + 30 +0.0 + 11 +143.7099256386 + 21 +157.6450109217 + 31 +0.0 + 0 +ARC + 5 +36A +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +143.7099078321 + 20 +157.2450286629 + 30 +0.0 + 40 +0.3999822592042693 +100 +AcDbArc + 50 +89.9974492852 + 51 +180.0018036581 + 0 +LINE + 5 +36B +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +143.3099255731 + 20 +157.2450160716 + 30 +0.0 + 11 +143.3099255731 + 21 +156.4450144503 + 31 +0.0 + 0 +ARC + 5 +36C +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +143.7099281818 + 20 +156.4450222089 + 30 +0.0 + 40 +0.4000026087843038 +100 +AcDbArc + 50 +180.0011113328 + 51 +269.9996357238 + 0 +LINE + 5 +36D +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +143.7099256386 + 20 +156.0450196002 + 30 +0.0 + 11 +148.7099253406 + 21 +156.0450196002 + 31 +0.0 + 0 +ARC + 5 +36E +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.7099328893 + 20 +156.1650125925 + 30 +0.0 + 40 +0.1199929926174386 +100 +AcDbArc + 50 +269.9963955831 + 51 +0.0014699526 + 0 +LINE + 5 +36F +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.8299258818 + 20 +156.165015671 + 30 +0.0 + 11 +148.8299258818 + 21 +157.5693249438 + 31 +0.0 + 0 +ARC + 5 +370 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.7098943691 + 20 +157.569311977 + 30 +0.0 + 40 +0.1200315134707315 +100 +AcDbArc + 50 +0.0061895736 + 51 +64.4733233418 + 0 +LINE + 5 +371 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.761619704 + 20 +157.6776265834 + 30 +0.0 + 11 +148.4608449807 + 21 +157.8211903308 + 31 +0.0 + 0 +ARC + 5 +372 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5125576602 + 20 +157.9295010743 + 30 +0.0 + 40 +0.1200225744513657 +100 +AcDbArc + 50 +195.0053952559 + 51 +244.4779803301 + 0 +LINE + 5 +373 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.3966276815 + 20 +157.8984260295 + 30 +0.0 + 11 +147.6108663549 + 21 +160.8309268687 + 31 +0.0 + 0 +ARC + 5 +374 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +147.1754788065 + 20 +160.7142774394 + 30 +0.0 + 40 +0.4507431714908047 +100 +AcDbArc + 50 +14.9984882143 + 51 +171.0010622237 + 0 +LINE + 5 +375 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +146.7302837243 + 20 +160.7847809527 + 30 +0.0 + 11 +146.7030935754 + 21 +160.6131076548 + 31 +0.0 + 0 +ARC + 5 +376 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +146.5055559119 + 20 +160.644393989 + 30 +0.0 + 40 +0.1999999080912547 +100 +AcDbArc + 50 +198.0001632172 + 51 +351.0001579124 + 0 +LINE + 5 +377 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +146.3153448721 + 20 +160.5825900767 + 30 +0.0 + 11 +145.8463118245 + 21 +162.0261311267 + 31 +0.0 + 0 +ARC + 5 +378 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +146.1506496208 + 20 +162.1250192095 + 30 +0.0 + 40 +0.3200005424109761 +100 +AcDbArc + 50 +23.0000921291 + 51 +198.0004663253 + 0 +LINE + 5 +379 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +146.4452114721 + 20 +162.2500538562 + 30 +0.0 + 11 +146.5646275153 + 21 +161.9687199328 + 31 +0.0 + 0 +ARC + 5 +37A +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +146.9328278996 + 20 +162.1250205588 + 30 +0.0 + 40 +0.4000017608535774 +100 +AcDbArc + 50 +203.0011649826 + 51 +14.9999803862 + 0 +LINE + 5 +37B +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +147.3191999664 + 20 +162.2285485003 + 30 +0.0 + 11 +147.1380212178 + 21 +162.9047155116 + 31 +0.0 + 0 +ARC + 5 +37C +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +147.2539203196 + 20 +162.9357712365 + 30 +0.0 + 40 +0.1199877487818145 +100 +AcDbArc + 50 +127.997310757 + 51 +195.0003017269 + 0 +LINE + 5 +37D +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +147.1800529232 + 20 +163.03032634 + 30 +0.0 + 11 +147.4331305196 + 21 +163.2280587886 + 31 +0.0 + 0 +ARC + 5 +37E +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +147.482384254 + 20 +163.1650243775 + 30 +0.0 + 40 +0.0799954206548413 +100 +AcDbArc + 50 +14.9903109854 + 51 +128.0033046167 + 0 +LINE + 5 +37F +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +147.5596573969 + 20 +163.1857156489 + 30 +0.0 + 11 +148.8140375187 + 21 +158.5043072436 + 31 +0.0 + 0 +ARC + 5 +380 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.8913172899 + 20 +158.5250198997 + 30 +0.0 + 40 +0.0800073569232727 +100 +AcDbArc + 50 +195.0038763407 + 51 +269.9961833848 + 0 +LINE + 5 +381 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.1546171179 + 20 +157.4790596697 + 30 +0.0 + 11 +137.2058146467 + 21 +156.0562610362 + 31 +0.0 + 0 +LINE + 5 +382 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.7197578718 + 20 +138.1291627619 + 30 +0.0 + 11 +148.1495865454 + 21 +138.0822777484 + 31 +0.0 + 0 +ARC + 5 +383 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.7099336428 + 20 +138.2487521509 + 30 +0.0 + 40 +0.1199922390625343 +100 +AcDbArc + 50 +274.6962840302 + 51 +0.000654307 + 0 +LINE + 5 +384 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.8299258818 + 20 +155.2850126956 + 30 +0.0 + 11 +148.8299258818 + 21 +138.2487535212 + 31 +0.0 + 0 +ARC + 5 +385 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.7099125383 + 20 +155.2850073444 + 30 +0.0 + 40 +0.1200133436339415 +100 +AcDbArc + 50 +0.0025547068 + 51 +89.9938880295 + 0 +LINE + 5 +386 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +143.0699256082 + 20 +155.4050206874 + 30 +0.0 + 11 +148.7099253406 + 21 +155.4050206874 + 31 +0.0 + 0 +ARC + 5 +387 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +143.0699079607 + 20 +155.8050031051 + 30 +0.0 + 40 +0.3999824181675279 +100 +AcDbArc + 50 +179.9982191144 + 51 +270.0025279423 + 0 +LINE + 5 +388 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +142.6699255427 + 20 +157.2450160716 + 30 +0.0 + 11 +142.6699255427 + 21 +155.8050155375 + 31 +0.0 + 0 +ARC + 5 +389 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +142.2699432837 + 20 +157.2450286629 + 30 +0.0 + 40 +0.3999822591972353 +100 +AcDbArc + 50 +359.9981963414 + 51 +90.002537375 + 0 +LINE + 5 +38A +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +141.7499255688 + 20 +157.6450109217 + 30 +0.0 + 11 +142.2699255703 + 21 +157.6450109217 + 31 +0.0 + 0 +ARC + 5 +38B +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +141.6299255748 + 20 +157.645014845 + 30 +0.0 + 40 +0.1199999941223236 +100 +AcDbArc + 50 +180.001873219 + 51 +359.998126781 + 0 +LINE + 5 +38C +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +141.3499255833 + 20 +157.6450109217 + 30 +0.0 + 11 +141.5099255807 + 21 +157.6450109217 + 31 +0.0 + 0 +ARC + 5 +38D +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +141.2299255842 + 20 +157.6450148501 + 30 +0.0 + 40 +0.1199999992156321 +100 +AcDbArc + 50 +180.0018756508 + 51 +359.9981243492 + 0 +LINE + 5 +38E +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +140.5899255836 + 20 +157.6450109217 + 30 +0.0 + 11 +141.109925585 + 21 +157.6450109217 + 31 +0.0 + 0 +ARC + 5 +38F +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +140.5899079826 + 20 +157.245028504 + 30 +0.0 + 40 +0.3999824181641026 +100 +AcDbArc + 50 +89.9974787276 + 51 +180.0017808858 + 0 +LINE + 5 +390 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +140.1899255646 + 20 +155.8050155375 + 30 +0.0 + 11 +140.1899255646 + 21 +157.2450160716 + 31 +0.0 + 0 +ARC + 5 +391 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +139.7899431466 + 20 +155.8050031051 + 30 +0.0 + 40 +0.3999824181605363 +100 +AcDbArc + 50 +269.9974853975 + 51 +0.001780886 + 0 +LINE + 5 +392 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.2699252834 + 20 +155.4050206874 + 30 +0.0 + 11 +139.7899255922 + 21 +155.4050206874 + 31 +0.0 + 0 +ARC + 5 +393 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +134.2699388309 + 20 +155.2850073443 + 30 +0.0 + 40 +0.1200133437736084 +100 +AcDbArc + 50 +90.0064677366 + 51 +179.9974452656 + 0 +LINE + 5 +394 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.1499254873 + 20 +154.7275066111 + 30 +0.0 + 11 +134.1499254873 + 21 +155.2850126956 + 31 +0.0 + 0 +ARC + 5 +395 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +134.2699407901 + 20 +154.7275112492 + 30 +0.0 + 40 +0.1200153029849757 +100 +AcDbArc + 50 +180.0022142501 + 51 +218.9973251432 + 0 +LINE + 5 +396 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.4031833877 + 20 +154.3722629283 + 30 +0.0 + 11 +134.1766678562 + 21 +154.6519875262 + 31 +0.0 + 0 +ARC + 5 +397 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +134.3099758432 + 20 +154.2967623625 + 30 +0.0 + 40 +0.1199499136121352 +100 +AcDbArc + 50 +359.99684824 + 51 +39.0083836716 + 0 +LINE + 5 +398 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.4299257567 + 20 +150.296747658 + 30 +0.0 + 11 +134.4299257567 + 21 +154.2967557643 + 31 +0.0 + 0 +ARC + 5 +399 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +134.3099104538 + 20 +150.2967522961 + 30 +0.0 + 40 +0.12001530298499 +100 +AcDbArc + 50 +321.0026748568 + 51 +359.9977857498 + 0 +LINE + 5 +39A +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.1766678562 + 20 +149.9415039752 + 30 +0.0 + 11 +134.4031833877 + 21 +150.2212285731 + 31 +0.0 + 0 +ARC + 5 +39B +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +134.2698754103 + 20 +149.8660034041 + 30 +0.0 + 40 +0.1199499244803327 +100 +AcDbArc + 50 +140.9916172207 + 51 +180.0088433859 + 0 +LINE + 5 +39C +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.1499254873 + 20 +149.1650104258 + 30 +0.0 + 11 +134.1499254873 + 21 +149.8659848902 + 31 +0.0 + 0 +ARC + 5 +39D +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +134.2699184798 + 20 +149.1650073473 + 30 +0.0 + 40 +0.1199929925413281 +100 +AcDbArc + 50 +179.9985300323 + 51 +270.0032486934 + 0 +LINE + 5 +39E +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.9420049658 + 20 +105.7777046893 + 30 +0.0 + 11 +148.9420049658 + 21 +124.2850184176 + 31 +0.0 + 0 +LINE + 5 +39F +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.1445668807 + 20 +105.7777046893 + 30 +0.0 + 11 +149.1445668807 + 21 +124.2850184176 + 31 +0.0 + 0 +LINE + 5 +3A0 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.0406432023 + 20 +105.7777046893 + 30 +0.0 + 11 +149.0406432023 + 21 +124.2850184176 + 31 +0.0 + 0 +LINE + 5 +3A1 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.0406432023 + 20 +124.2850184176 + 30 +0.0 + 11 +148.9420049658 + 21 +124.2850184176 + 31 +0.0 + 0 +LINE + 5 +3A2 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +133.9137577285 + 20 +105.7777046893 + 30 +0.0 + 11 +133.9137577285 + 21 +124.2850184176 + 31 +0.0 + 0 +LINE + 5 +3A3 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +133.797846066 + 20 +105.7777046893 + 30 +0.0 + 11 +133.797846066 + 21 +124.2850184176 + 31 +0.0 + 0 +LINE + 5 +3A4 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +133.6992078294 + 20 +105.7777046893 + 30 +0.0 + 11 +133.6992078294 + 21 +124.2850184176 + 31 +0.0 + 0 +LINE + 5 +3A5 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +133.797846066 + 20 +124.2850184176 + 30 +0.0 + 11 +133.6992078294 + 21 +124.2850184176 + 31 +0.0 + 0 +LINE + 5 +3A6 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +133.5952848961 + 20 +105.7777046893 + 30 +0.0 + 11 +133.5952848961 + 21 +124.2850184176 + 31 +0.0 + 0 +ARC + 5 +3A7 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.1879091276 + 20 +124.2049907824 + 30 +0.0 + 40 +0.0800276369171186 +100 +AcDbArc + 50 +31.2357600789 + 51 +89.9882535152 + 0 +LINE + 5 +3A8 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.2563360204 + 20 +105.7777046893 + 30 +0.0 + 11 +149.2563360204 + 21 +124.2464899752 + 31 +0.0 + 0 +LINE + 5 +3A9 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.2162960043 + 20 +105.7777046893 + 30 +0.0 + 11 +134.2162960043 + 21 +124.2850184176 + 31 +0.0 + 0 +LINE + 5 +3AA +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.2162960043 + 20 +124.2850184176 + 30 +0.0 + 11 +134.1499254873 + 21 +124.2850184176 + 31 +0.0 + 0 +LINE + 5 +3AB +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +133.4299252202 + 20 +105.7777046893 + 30 +0.0 + 11 +133.4299252202 + 21 +124.2555737231 + 31 +0.0 + 0 +LWPOLYLINE + 5 +3AC +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbPolyline + 90 + 4 + 70 + 128 + 43 +0.0 + 10 +149.2569536736 + 20 +124.2454528544 + 10 +149.2656842639 + 20 +124.2305516932 + 10 +149.2736712863 + 20 +124.2169141505 + 10 +149.2808976044 + 20 +124.204575989 + 0 +LINE + 5 +3AD +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.3099258115 + 20 +105.7777046893 + 30 +0.0 + 11 +149.3099258115 + 21 +124.1757392619 + 31 +0.0 + 0 +LINE + 5 +3AE +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.2563360204 + 20 +124.2464899752 + 30 +0.0 + 11 +149.2569536736 + 21 +124.2454528544 + 31 +0.0 + 0 +LINE + 5 +3AF +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.2299253514 + 20 +105.7777046893 + 30 +0.0 + 11 +134.2299253514 + 21 +124.2850184176 + 31 +0.0 + 0 +LINE + 5 +3B0 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.2299253514 + 20 +124.2850184176 + 30 +0.0 + 11 +134.2162960043 + 21 +124.2850184176 + 31 +0.0 + 0 +LINE + 5 +3B1 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.5099256804 + 20 +105.7777046893 + 30 +0.0 + 11 +148.5099256804 + 21 +123.090755913 + 31 +0.0 + 0 +LINE + 5 +3B2 5 +4FF +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbPoint + 10 +133.4299255838 + 20 +660.3011936068 + 30 +0.0 + 0 +DIMENSION + 5 +500 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D + 10 +195.4299255838 + 20 +41.9821787182 + 30 +0.0 + 11 +195.4299255838 + 21 +34.5771309945 + 31 +0.0 + 70 + 160 + 1 +33 + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE0 +100 +AcDbAlignedDimension + 13 +142.0299255838 + 23 +28.7821787182 + 33 +0.0 + 14 +148.0299255838 + 24 +41.9821787182 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +50D +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_1 + 10 +171.4299255838 + 20 +287.499722104 + 30 +0.0 + 11 +171.4299255838 + 21 +271.6850735678 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +149.4168593775 + 23 +280.0124004364 + 33 +0.0 + 14 +147.8555696261 + 24 +287.499722104 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +51A +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_2 + 10 +171.4299255838 + 20 +210.3073934143 + 30 +0.0 + 11 +171.4299255838 + 21 +194.8678981433 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +149.4168593775 + 23 +202.8200717467 + 33 +0.0 + 14 +147.8555696261 + 24 +210.3073934143 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +526 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_3 + 10 +171.4299255838 + 20 +133.7256838344 + 30 +0.0 + 11 +171.4299255838 + 21 +113.1236101725 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +149.4168593775 + 23 +126.2783621669 + 33 +0.0 + 14 +148.0299255838 + 24 +133.7256838344 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +532 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_4 + 10 +195.4299255838 + 20 +41.9821787182 + 30 +0.0 + 11 +195.4299255838 + 21 +84.1586135498 + 31 +0.0 + 70 + 160 + 1 +675,902 + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +148.0299255838 + 23 +133.7256838344 + 33 +0.0 + 14 +148.0299255838 + 24 +41.9821787182 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +53C +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_5 + 10 +195.3191971725 + 20 +133.7649839595 + 30 +0.0 + 11 +195.2817915125 + 21 +178.7746730971 + 31 +0.0 + 70 + 160 + 1 +524,500 + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +147.8555696261 + 23 +210.3073934143 + 33 +0.0 + 14 +148.0299255838 + 24 +133.7256838344 + 34 +0.0 + 50 +-89.9523838979 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +545 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_6 + 10 +195.2555696261 + 20 +210.3073934143 + 30 +0.0 + 11 +195.2555696261 + 21 +246.0726158741 + 31 +0.0 + 70 + 160 + 1 +524,400 + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +147.8555696261 + 23 +287.499722104 + 33 +0.0 + 14 +147.8555696261 + 24 +210.3073934143 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +54E +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_7 + 10 +195.2555696261 + 20 +397.2202084954 + 30 +0.0 + 11 +195.2555696261 + 21 +357.7845521004 + 31 +0.0 + 70 + 160 + 1 +545,698 + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +147.8555696261 + 23 +287.499722104 + 33 +0.0 + 14 +145.8378589248 + 24 +397.2202084954 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +557 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_8 + 10 +219.4299255838 + 20 +397.2202084954 + 30 +0.0 + 11 +219.4299255838 + 21 +226.31135989 + 31 +0.0 + 70 + 160 + 1 +Kozijnmaat = + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +142.0299255838 + 23 +28.7821787182 + 33 +0.0 + 14 +145.8378589248 + 24 +397.2202084954 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +561 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_9 + 10 +99.2299255838 + 20 +28.7821787182 + 30 +0.0 + 11 +99.2299255838 + 21 +214.5361780403 + 31 +0.0 + 70 + 160 + 1 +DMH = + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +133.4299255838 + 23 +383.8202084954 + 33 +0.0 + 14 +142.0299255838 + 24 +28.7821787182 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +56C +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_10 + 10 +117.2299255838 + 20 +148.4450158005 + 30 +0.0 + 11 +117.2299255838 + 21 +157.3719824392 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +133.5499255838 + 23 +147.8850158005 + 33 +0.0 + 14 +133.5499255838 + 24 +148.4450158005 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +578 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_11 + 10 +117.2299255838 + 20 +224.9867253803 + 30 +0.0 + 11 +117.2299255838 + 21 +236.5334651005 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +133.5499255838 + 23 +224.4267253803 + 33 +0.0 + 14 +133.5499255838 + 24 +224.9867253803 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +584 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_12 + 10 +117.2299255838 + 20 +302.17905407 + 30 +0.0 + 11 +117.2299255838 + 21 +311.8110919194 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +133.5499255838 + 23 +301.61905407 + 33 +0.0 + 14 +133.5499255838 + 24 +302.17905407 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +LINE + 5 +590 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +103.7777066237 + 30 +0.0 + 11 +142.3699255838 + 21 +103.7777066237 + 31 +0.0 + 0 +LINE + 5 +591 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +142.3699255838 + 20 +103.7777066237 + 30 +0.0 + 11 +143.3699255838 + 21 +105.7777066237 + 31 +0.0 + 0 +LINE + 5 +592 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +143.3699255838 + 20 +105.7777066237 + 30 +0.0 + 11 +141.3699255838 + 21 +103.7777066237 + 31 +0.0 + 0 +LINE + 5 +593 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +141.3699255838 + 20 +103.7777066237 + 30 +0.0 + 11 +139.3699255838 + 21 +101.7777066237 + 31 +0.0 + 0 +LINE + 5 +594 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +139.3699255838 + 20 +101.7777066237 + 30 +0.0 + 11 +140.3699255838 + 21 +103.7777066237 + 31 +0.0 + 0 +LINE + 5 +595 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +140.3699255838 + 20 +103.7777066237 + 30 +0.0 + 11 +130.2549255838 + 21 +103.7777066237 + 31 +0.0 + 0 +LINE + 5 +596 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +105.7777066237 + 30 +0.0 + 11 +142.3699255838 + 21 +105.7777066237 + 31 +0.0 + 0 +LINE + 5 +597 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +142.3699255838 + 20 +105.7777066237 + 30 +0.0 + 11 +143.3699255838 + 21 +107.7777066237 + 31 +0.0 + 0 +LINE + 5 +598 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +143.3699255838 + 20 +107.7777066237 + 30 +0.0 + 11 +141.3699255838 + 21 +105.7777066237 + 31 +0.0 + 0 +LINE + 5 +599 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +141.3699255838 + 20 +105.7777066237 + 30 +0.0 + 11 +139.3699255838 + 21 +103.7777066237 + 31 +0.0 + 0 +LINE + 5 +59A +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +139.3699255838 + 20 +103.7777066237 + 30 +0.0 + 11 +140.3699255838 + 21 +105.7777066237 + 31 +0.0 + 0 +LINE + 5 +59B +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +140.3699255838 + 20 +105.7777066237 + 30 +0.0 + 11 +130.2549255838 + 21 +105.7777066237 + 31 +0.0 + 0 +LINE + 5 +59C +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +179.2366515846 + 30 +0.0 + 11 +142.3699255838 + 21 +179.2366515846 + 31 +0.0 + 0 +LINE + 5 +59D +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +142.3699255838 + 20 +179.2366515846 + 30 +0.0 + 11 +143.3699255838 + 21 +181.2366515846 + 31 +0.0 + 0 +LINE + 5 +59E +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +143.3699255838 + 20 +181.2366515846 + 30 +0.0 + 11 +141.3699255838 + 21 +179.2366515846 + 31 +0.0 + 0 +LINE + 5 +59F +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 31 + 7 +100 +AcDbLine + 10 +141.3699255838 + 20 +179.2366515846 + 30 +0.0 + 11 +139.3699255838 + 21 +177.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A0 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +139.3699255838 + 20 +177.2366515846 + 30 +0.0 + 11 +140.3699255838 + 21 +179.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A1 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +140.3699255838 + 20 +179.2366515846 + 30 +0.0 + 11 +130.2549255838 + 21 +179.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A2 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +181.2366515846 + 30 +0.0 + 11 +142.3699255838 + 21 +181.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A3 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +142.3699255838 + 20 +181.2366515846 + 30 +0.0 + 11 +143.3699255838 + 21 +183.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A4 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +143.3699255838 + 20 +183.2366515846 + 30 +0.0 + 11 +141.3699255838 + 21 +181.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A5 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +141.3699255838 + 20 +181.2366515846 + 30 +0.0 + 11 +139.3699255838 + 21 +179.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A6 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +139.3699255838 + 20 +179.2366515846 + 30 +0.0 + 11 +140.3699255838 + 21 +181.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A7 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +140.3699255838 + 20 +181.2366515846 + 30 +0.0 + 11 +130.2549255838 + 21 +181.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A8 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +256.4750445598 + 30 +0.0 + 11 +142.3699255838 + 21 +256.4750445598 + 31 +0.0 + 0 +LINE + 5 +5A9 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +142.3699255838 + 20 +256.4750445598 + 30 +0.0 + 11 +143.3699255838 + 21 +258.4750445598 + 31 +0.0 + 0 +LINE + 5 +5AA +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +143.3699255838 + 20 +258.4750445598 + 30 +0.0 + 11 +141.3699255838 + 21 +256.4750445598 + 31 +0.0 + 0 +LINE + 5 +5AB +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +141.3699255838 + 20 +256.4750445598 + 30 +0.0 + 11 +139.3699255838 + 21 +254.4750445598 + 31 +0.0 + 0 +LINE + 5 +5AC +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +139.3699255838 + 20 +254.4750445598 + 30 +0.0 + 11 +140.3699255838 + 21 +256.4750445598 + 31 +0.0 + 0 +LINE + 5 +5AD +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +140.3699255838 + 20 +256.4750445598 + 30 +0.0 + 11 +130.2549255838 + 21 +256.4750445598 + 31 +0.0 + 0 +LINE + 5 +5AE +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +258.4750445598 + 30 +0.0 + 11 +142.3699255838 + 21 +258.4750445598 + 31 +0.0 + 0 +LINE + 5 +5AF +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +142.3699255838 + 20 +258.4750445598 + 30 +0.0 + 11 +143.3699255838 + 21 +260.4750445598 + 31 +0.0 + 0 +LINE + 5 +5B0 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +143.3699255838 + 20 +260.4750445598 + 30 +0.0 + 11 +141.3699255838 + 21 +258.4750445598 + 31 +0.0 + 0 +LINE + 5 +5B1 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +141.3699255838 + 20 +258.4750445598 + 30 +0.0 + 11 +139.3699255838 + 21 +256.4750445598 + 31 +0.0 + 0 +LINE + 5 +5B2 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +139.3699255838 + 20 +256.4750445598 + 30 +0.0 + 11 +140.3699255838 + 21 +258.4750445598 + 31 +0.0 + 0 +LINE + 5 +5B3 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +140.3699255838 + 20 +258.4750445598 + 30 +0.0 + 11 +130.2549255838 + 21 +258.4750445598 + 31 +0.0 + 0 +LINE + 5 +5B4 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +334.7369117996 + 30 +0.0 + 11 +142.3699255838 + 21 +334.7369117996 + 31 +0.0 + 0 +LINE + 5 +5B5 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +142.3699255838 + 20 +334.7369117996 + 30 +0.0 + 11 +143.3699255838 + 21 +336.7369117996 + 31 +0.0 + 0 +LINE + 5 +5B6 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +143.3699255838 + 20 +336.7369117996 + 30 +0.0 + 11 +141.3699255838 + 21 +334.7369117996 + 31 +0.0 + 0 +LINE + 5 +5B7 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +141.3699255838 + 20 +334.7369117996 + 30 +0.0 + 11 +139.3699255838 + 21 +332.7369117996 + 31 +0.0 + 0 +LINE + 5 +5B8 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +139.3699255838 + 20 +332.7369117996 + 30 +0.0 + 11 +140.3699255838 + 21 +334.7369117996 + 31 +0.0 + 0 +LINE + 5 +5B9 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +140.3699255838 + 20 +334.7369117996 + 30 +0.0 + 11 +130.2549255838 + 21 +334.7369117996 + 31 +0.0 + 0 +LINE + 5 +5BA +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +336.7369117996 + 30 +0.0 + 11 +142.3699255838 + 21 +336.7369117996 + 31 +0.0 + 0 +LINE + 5 +5BB +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +142.3699255838 + 20 +336.7369117996 + 30 +0.0 + 11 +143.3699255838 + 21 +338.7369117996 + 31 +0.0 + 0 +LINE + 5 +5BC +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +143.3699255838 + 20 +338.7369117996 + 30 +0.0 + 11 +141.3699255838 + 21 +336.7369117996 + 31 +0.0 + 0 +LINE + 5 +5BD +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +141.3699255838 + 20 +336.7369117996 + 30 +0.0 + 11 +139.3699255838 + 21 +334.7369117996 + 31 +0.0 + 0 +LINE + 5 +5BE +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +139.3699255838 + 20 +334.7369117996 + 30 +0.0 + 11 +140.3699255838 + 21 +336.7369117996 + 31 +0.0 + 0 +LINE + 5 +5BF +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +140.3699255838 + 20 +336.7369117996 + 30 +0.0 + 11 +130.2549255838 + 21 +336.7369117996 + 31 +0.0 + 0 +ENDSEC + 0 +SECTION + 2 +OBJECTS + 0 +DICTIONARY + 5 +C +330 +0 +100 +AcDbDictionary +281 + 1 + 3 +ACAD_GROUP +350 +D + 3 +ACAD_LAYOUT +350 +1A + 3 +ACAD_MLINESTYLE +350 +17 + 3 +ACAD_PLOTSETTINGS +350 +19 + 3 +ACAD_PLOTSTYLENAME +350 +E + 0 +DICTIONARY + 5 +D +102 +{ACAD_REACTORS +330 +C +102 +} +330 +C +100 +AcDbDictionary +281 + 1 + 0 +DICTIONARY + 5 +1A +102 +{ACAD_REACTORS +330 +C +102 +} +330 +C +100 +AcDbDictionary +281 + 1 + 3 +Layout1 +350 +1E + 3 +Layout2 +350 +26 + 3 +Model +350 +22 + 0 +DICTIONARY + 5 +17 +102 +{ACAD_REACTORS +330 +C +102 +} +330 +C +100 +AcDbDictionary +281 + 1 + 3 +Standard +350 +18 + 0 +DICTIONARY + 5 +19 +102 +{ACAD_REACTORS +330 +C +102 +} +330 +C +100 +AcDbDictionary +281 + 1 + 0 +ACDBDICTIONARYWDFLT + 5 +E +102 +{ACAD_REACTORS +330 +C +102 +} +330 +C +100 +AcDbDictionary +281 + 1 + 3 +Normal +350 +F +100 +AcDbDictionaryWithDefault +340 +F + 0 +LAYOUT + 5 +1E +102 +{ACAD_REACTORS +330 +1A +102 +} +330 +1A +100 +AcDbPlotSettings + 1 + + 2 +none_device + 4 + + 6 + + 40 +0.0 + 41 +0.0 + 42 +0.0 + 43 +0.0 + 44 +0.0 + 45 +0.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +0.0 +140 +0.0 +141 +0.0 +142 +1.0 +143 +1.0 + 70 + 688 + 72 + 0 + 73 + 0 + 74 + 5 + 7 + + 75 + 16 +147 +1.0 +148 +0.0 +149 +0.0 +100 +AcDbLayout + 1 +Layout1 + 70 + 1 + 71 + 1 + 10 +0.0 + 20 +0.0 + 11 +420.0 + 21 +297.0 + 12 +0.0 + 22 +0.0 + 32 +0.0 + 14 +1.0000000000E+20 + 24 +1.0000000000E+20 + 34 +1.0000000000E+20 + 15 +-1.0000000000E+20 + 25 +-1.0000000000E+20 + 35 +-1.0000000000E+20 +146 +0.0 + 13 +0.0 + 23 +0.0 + 33 +0.0 + 16 +1.0 + 26 +0.0 + 36 +0.0 + 17 +0.0 + 27 +1.0 + 37 +0.0 + 76 + 0 +330 +1B + 0 +LAYOUT + 5 +26 +102 +{ACAD_REACTORS +330 +1A +102 +} +330 +1A +100 +AcDbPlotSettings + 1 + + 2 +none_device + 4 + + 6 + + 40 +0.0 + 41 +0.0 + 42 +0.0 + 43 +0.0 + 44 +0.0 + 45 +0.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +0.0 +140 +0.0 +141 +0.0 +142 +1.0 +143 +1.0 + 70 + 688 + 72 + 0 + 73 + 0 + 74 + 5 + 7 + + 75 + 16 +147 +1.0 +148 +0.0 +149 +0.0 +100 +AcDbLayout + 1 +Layout2 + 70 + 1 + 71 + 2 + 10 +0.0 + 20 +0.0 + 11 +0.0 + 21 +0.0 + 12 +0.0 + 22 +0.0 + 32 +0.0 + 14 +0.0 + 24 +0.0 + 34 +0.0 + 15 +0.0 + 25 +0.0 + 35 +0.0 +146 +0.0 + 13 +0.0 + 23 +0.0 + 33 +0.0 + 16 +1.0 + 26 +0.0 + 36 +0.0 + 17 +0.0 + 27 +1.0 + 37 +0.0 + 76 + 0 +330 +23 + 0 +LAYOUT + 5 +22 +102 +{ACAD_REACTORS +330 +1A +102 +} +330 +1A +100 +AcDbPlotSettings + 1 + + 2 +none_device + 4 + + 6 + + 40 +0.0 + 41 +0.0 + 42 +0.0 + 43 +0.0 + 44 +0.0 + 45 +0.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +0.0 +140 +0.0 +141 +0.0 +142 +1.0 +143 +1.0 + 70 + 1712 + 72 + 0 + 73 + 0 + 74 + 0 + 7 + + 75 + 0 +147 +1.0 +148 +0.0 +149 +0.0 +100 +AcDbLayout + 1 +Model + 70 + 1 + 71 + 0 + 10 +0.0 + 20 +0.0 + 11 +297.0 + 21 +420.0 + 12 +0.0 + 22 +0.0 + 32 +0.0 + 14 +0.0 + 24 +0.0 + 34 +0.0 + 15 +297.0 + 25 +420.0 + 35 +0.0 +146 +0.0 + 13 +0.0 + 23 +0.0 + 33 +0.0 + 16 +1.0 + 26 +0.0 + 36 +0.0 + 17 +0.0 + 27 +1.0 + 37 +0.0 + 76 + 0 +330 +1F +331 +29 + 0 +MLINESTYLE + 5 +18 +102 +{ACAD_REACTORS +330 +17 +102 +} +330 +17 +100 +AcDbMlineStyle + 2 +Standard + 70 + 0 + 3 + + 62 + 256 + 51 +90.0 + 52 +90.0 + 71 + 2 + 49 +0.5 + 62 + 256 + 6 +BYLAYER + 49 +-0.5 + 62 + 256 + 6 +BYLAYER + 0 +ACDBPLACEHOLDER + 5 +F +102 +{ACAD_REACTORS +330 +E +102 +} +330 +E + 0 +ENDSEC + 0 +EOF diff --git a/filter/qa/cppunit/data/dxf/pass/loop-2.dxf b/filter/qa/cppunit/data/dxf/pass/loop-2.dxf new file mode 100644 index 0000000000000..961dd35a16242 --- /dev/null +++ b/filter/qa/cppunit/data/dxf/pass/loop-2.dxf @@ -0,0 +1,13974 @@ + 0 +SECTION* + 2 +HEADER + 9 +$ACADVER + 1 +AC1015 + 9 +$ACADMAINTVER + 70 + 6 + 9 +$DWGCODEPAGE + 3 +ANSI_1252 + 9 +$INSBASE + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$EXTMIN + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$EXTMAX + 10 +297.0 + 20 +420.0 + 30 +0.0 + 9 +$LIMMIN + 10 +0.0 + 20 +0.0 + 9 +$LIMMAX + 10 +297.0 + 20 +420.0 + 9 +$ORTHOMODE + 70 + 0 + 9 +$REGENMODE + 70 + 1 + 9 +$FILLODE + 70 + 1 + 9 +$QTEXTMODE + 70 + 0 + 9 +$MIRRTEXT + 70 + 1 + 0 +DIMSTYLE +105 +501 +102 +{ACAD_REACTORS +330 +500 +102 +} +330 +A +100 +AcDbSymbolTableRecord +100 +AcDbDimStyleTableRecord + 2 +SLDDIMSTYLE0 + 70 + 0 + 41 +3.0 + 44 +0.0 + 45 +0.000000001 + 73 + 0 + 74 + 0 + 77 + 1 + 78 + 12 + 79 + 3 +140 +3.5 +144 +2.5 +147 +0.875 +172 + 1 +173 + 1 +178 + 0 +271 + 3 +272 + 3 +276 + 2 +284 + 12 +289 + 0 +340 +54 + 0 +DIMSTYLE +105 +50E +102 +{ACAD_REACTORS +330 +50D +330 +51A +330 +526 +330 +56C +330 +578 +330 +584 +102 +} +330 +A +100 +AcDbSymbolTableRecord +100 +AcDbDimStyleTableRecord + 2 +SLDDIMSTYLE1 + 70 + 0 + 41 +3.0 + 44 +0.0 + 45 +0.000000001 + 73 + 0 + 74 + 0 + 77 + 1 + 78 + 12 + 79 + 3 +140 +3.5 +144 +2.5 +147 +0.875 +172 + 1 +173 + 1 +178 + 0 +271 + 0 +272 + 0 +276 + 2 +284 + 12 +289 + 0 +340 +54 + 0 +DIMSTYLE +105 +533 +102 +{ACAD_REACTORS +330 +532 +330 +53C +330 +545 +330 +54E +330 +557 +330 +561 +102 +} +330 +A +100 +AcDbSymbolTableRecord +100 +AcDbDimStyleTableRecord + 2 +SLDDIMSTYLE2 + 70 + 0 + 41 +3.0 + 44 +0.0 + 45 +0.000000001 + 73 + 0 + 74 + 0 + 77 + 1 + 78 + 12 + 79 + 3 +140 +3.5 +144 +2.5 +147 +0.875 +173 + 1 +178 + 0 +271 + 3 +272 + 3 +276 + 2 +284 + 12 +340 +54 + 0 +ENDTAB + 0 +TABLE + 2 +BLOCK_RECORD + 5 +1 +330 +0 +100 +AcDbSymbolTable + 70 + 15 + 0 +BLOCK_RECORD + 5 +1F +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Model_Space +340 +22 + 0 +BLOCK_RECORD + 5 +1B +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Paper_Space +340 +1E + 0 +BLOCK_RECORD + 5 +23 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Paper_Space0 +340 +26 + 0 +BLOCK_RECORD + 5 +56 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +SW_BROKEN_VIEW_0 +340 +0 +102 +{BLKREFS +331 +59 +102 +} + 0 +BLOCK_RECORD + 5 +502 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D +340 +0 + 0 +BLOCK_RECORD + 5 +50F +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_1 +340 +0 + 0 +BLOCK_RECORD + 5 +51B +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_2 +340 +0 + 0 +BLOCK_RECORD + 5 +527 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_3 +340 +0 + 0 +BLOCK_RECORD + 5 +534 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_4 +340 +0 + 0 +BLOCK_RECORD + 5 +53D +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_5 +340 +0 + 0 +BLOCK_RECORD + 5 +546 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_6 +340 +0 + 0 +BLOCK_RECORD + 5 +54F +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_7 +340 +0 + 0 +BLOCK_RECORD + 5 +558 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_8 +340 +0 + 0 +BLOCK_RECORD + 5 +562 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_9 +340 +0 + 0 +BLOCK_RECORD + 5 +56D +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_10 +340 +0 + 0 +BLOCK_RECORD + 5 +579 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_11 +340 +0 + 0 +BLOCK_RECORD + 5 +585 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_D_12 +340 +0 + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +BLOCKS + 0 +BLOCK + 5 +20 +330 +1F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*Model_Space + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Model_Space + 1 + + 0 +ENDBLK + 5 +21 +330 +1F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +1C +330 +1B +100 +AcDbEntity + 67 + 1 + 8 +0 +100 +AcDbBlockBegin + 2 +*Paper_Space + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Paper_Space + 1 + + 0 +ENDBLK + 5 +1D +330 +1B +100 +AcDbEntity + 67 + 1 + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +24 +330 +23 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*Paper_Space0 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Paper_Space0 + 1 + + 0 +ENDBL + 5 +25 +330 +23 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +57 +330 +56 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +SW_BROKEN_VIEW_0 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +SW_BROKEN_VIEW_0 + 1 + + 0 +ENDBLK + 5 +58 +330 +56 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +503 +330 +502 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D + 1 + + 0 +SOLID + 5 +505 +330 +502 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +195.4299255838 + 20 +28.7821787182 + 30 +0.0 + 11 +194.9299255838 + 21 +25.7821787182 + 31 +0.0 + 12 +195.9299255838 + 22 +25.7821787182 + 32 +0.0 + 13 +195.9299255838 + 23 +25.7821787182 + 33 +0.0 + 0 +SOLID + 5 +506 +330 +502 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +195.4299255838 + 20 +41.9821787182 + 30 +0.0 + 11 +195.9299255838 + 21 +44.9821787182 + 31 +0.0 + 12 +194.9299255838 + 22 +44.9821787182 + 32 +0.0 + 13 +194.9299255838 + 23 +44.9821787182 + 33 +0.0 + 0 +LINE + 5 +507 +330 +502 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +143.0299255838 + 20 +28.7821787182 + 30 +0.0 + 11 +196.4299255838 + 21 +28.7821787182 + 31 +0.0 + 0 +LINE + 5 +508 +330 +502 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +149.0299255838 + 20 +41.9821787182 + 30 +0.0 + 11 +196.4299255838 + 21 +41.9821787182 + 31 +0.0 + 0 +LINE + 5 +509 +330 +502 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +195.4299255838 + 20 +28.7821787182 + 30 +0.0 + 11 +195.4299255838 + 21 +22.7821787182 + 31 +0.0 + 0 +LINE + 5 +50A +330 +502 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +195.4299255838 + 20 +28.7821787182 + 30 +0.0 + 11 +195.4299255838 + 21 +41.9821787182 + 31 +0.0 + 0 +LINE + 5 +50B +330 +502 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +195.4299255838 + 20 +41.9821787182 + 30 +0.0 + 11 +195.4299255838 + 21 +47.9821787182 + 31 +0.0 + 0 +MTEXT + 5 +50C +330 +502 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbMText + 10 +190.9181886692 + 20 +31.991019801 + 30 +0.04 + 40 +3.5 + 41 +0.0 + 71 + 1 + 72 + 1 + 1 +33 + 7 +SLDTEXTSTYLE0 + 11 +6.123233995736766E-17 + 21 +1.0 + 31 +0.0 + 73 + 1 + 44 +1.0 + 0 +ENDBLK + 5 +504 +330 +502 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +510 +330 +50F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_1 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_1 + 1 + + 0 +SOLID + 5 +512 +330 +50F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +171.4299255838 + 20 +280.0124004364 + 30 +0.0 + 11 +170.9299255838 + 21 +277.0124004364 + 31 +0.0 + 12 +171.9299255838 + 22 +277.0124004364 + 32 +0.0 + 13 +171.9299255838 + 23 +277.0124004364 + 33 +0.0 + 0 +SOLID + 5 +513 +330 +50F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +171.4299255838 + 20 +287.499722104 + 30 +0.0 + 11 +171.9299255838 + 21 +290.499722104 + 31 +0.0 + 12 +170.9299255838 + 22 +290.499722104 + 32 +0.0 + 13 +170.9299255838 + 23 +290.499722104 + 33 +0.0 + 0 +LINE + 5 +514 +330 +50F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +150.4168593775 + 20 +280.0124004364 + 30 +0.0 + 11 +172.4299255838 + 21 +280.0124004364 + 31 +0.0 + 0 +LINE + 5 +515 +330 +50F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +148.8555696261 + 20 +287.499722104 + 30 +0.0 + 11 +172.4299255838 + 21 +287.499722104 + 31 +0.0 + 0 +LINE + 5 +516 +330 +50F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +171.4299255838 + 20 +280.0124004364 + 30 +0.0 + 11 +171.4299255838 + 21 +267.6770872868 + 31 +0.0 + 0 +LINE + 5 +517 +330 +50F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +171.4299255838 + 20 +280.0124004364 + 30 +0.0 + 11 +171.4299255838 + 21 +287.499722104 + 31 +0.0 + 0 +LINE + 5 +518 +330 +50F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +171.4299255838 + 20 +287.499722104 + 30 +0.0 + 11 +171.4299255838 + 21 +293.499722104 + 31 +0.0 + 0 +MTEXT + 5 +519 +330 +50F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbMText + 10 +166.9181886692 + 20 +267.6770872868 + 30 +0.04 + 40 +3.5 + 41 +0.0 + 71 + 1 + 72 + 1 + 1 +19 + 7 +SLDTEXTSTYLE0 + 11 +6.123233995736766E-17 + 21 +1.0 + 31 +0.0 + 73 + 1 + 44 +1.0 + 0 +ENDBLK + 5 +511 +330 +50F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +51C +330 +51B +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_2 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_2 + 1 + + 0 +SOLID + 5 +51E +330 +51B +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +171.4299255838 + 20 +202.8200717467 + 30 +0.0 + 11 +170.9299255838 + 21 +199.8200717467 + 31 +0.0 + 12 +1715696261 + 21 +284.499722104 + 31 +0.0 + 12 +195.7555696261 + 22 +284.499722104 + 32 +0.0 + 13 +195.7555696261 + 23 +284.499722104 + 33 +0.0 + 0 +SOLID + 5 +54A +330 +546 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +195.2555696261 + 20 +210.3073934143 + 30 +0.0 + 11 +195.7555696261 + 21 +213.3073934143 + 31 +0.0 + 12 +194.7555696261 + 22 +213.3073934143 + 32 +0.0 + 13 +194.7555696261 + 23 +213.3073934143 + 33 +0.0 + 0 +LINE + 5 +54B +330 +546 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +148.8555696261 + 20 +287.499722104 + 30 +0.0 + 11 +196.2555696261 + 21 +287.499722104 + 31 +0.0 + 0 +LINE + 5 +54C +330 +546 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +148.8555696261 + 20 +210.3073934143 + 30 +0.0 + 11 +196.2555696261 + 21 +210.3073934143 + 31 +0.0 + 0 +LINE + 5 +54D +330 +546 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +195.2555696261 + 20 +287.499722104 + 30 +0.0 + 11 +195.2555696261 + 21 +210.3073934143 + 31 +0.0 + 0 +ENDBLK + 5 +548 +330 +546 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +550 +330 +54F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_7 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_7 + 1 + + 0 +SOLID + 5 +552 +330 +54F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +195.2555696261 + 20 +287.499722104 + 30 +0.0 + 11 +195.7555696261 + 21 +290.499722104 + 31 +0.0 + 12 +194.7555696261 + 22 +290.499722104 + 32 +0.0 + 13 +194.7555696261 + 23 +290.499722104 + 33 +0.0 + 0 +SOLID + 5 +553 +330 +54F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +195.2555696261 + 20 +397.2202084954 + 30 +0.0 + 11 +194.7555696261 + 21 +394.2202084954 + 31 +0.0 + 12 +195.7555696261 + 22 +394.2202084954 + 32 +0.0 + 13 +195.7555696261 + 23 +394.2202084954 + 33 +0.0 + 0 +LINE + 5 +554 +330 +54F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +148.8555696261 + 20 +287.499722104 + 30 +0.0 + 11 +196.2555696261 + 21 +287.499722104 + 31 +0.0 + 0 +LINE + 5 +555 +330 +54F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +146.8378589248 + 20 +397.2202084954 + 30 +0.0 + 11 +196.2555696261 + 21 +397.2202084954 + 31 +0.0 + 0 +LINE + 5 +556 +330 +54F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +195.2555696261 + 20 +287.499722104 + 30 +0.0 + 11 +195.2555696261 + 21 +397.2202084954 + 31 +0.0 + 0 +ENDBLK + 5 +551 +330 +54F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +559 +330 +558 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_8 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_8 + 1 + + 0 +SOLID + 5 +55B +330 +558 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +219.4299255838 + 20 +28.7821787182 + 30 +0.0 + 11 +219.9299255838 + 21 +31.7821787182 + 31 +0.0 + 12 +218.9299255838 + 22 +31.7821787182 + 32 +0.0 + 13 +218.9299255838 + 23 +31.7821787182 + 33 +0.0 + 0 +SOLID + 5 +55C +330 +558 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +219.4299255838 + 20 +397.2202084954 + 30 +0.0 + 11 +218.9299255838 + 21 +394.2202084954 + 31 +0.0 + 12 +219.9299255838 + 22 +394.2202084954 + 32 +0.0 + 13 +219.9299255838 + 23 +394.2202084954 + 33 +0.0 + 0 +LINE + 5 +5527 + 20 +360.4202097011 + 30 +0.0 + 11 +142.6699255427 + 21 +361.9402235103 + 31 +0.0 + 0 +ARC + 5 +7D +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +143.0699283112 + 20 +361.9401917488 + 30 +0.0 + 40 +0.4000027697974622 +100 +AcDbArc + 50 +90.0003871694 + 51 +179.9954505335 + 0 +LINE + 5 +7E +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +143.0699256082 + 20 +362.3401945186 + 30 +0.0 + 11 +148.5899255445 + 21 +362.3401945186 + 31 +0.0 + 0 +ARC + 5 +7F +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5899336175 + 20 +362.4601862448 + 30 +0.0 + 40 +0.1199917263967713 +100 +AcDbArc + 50 +269.9961451292 + 51 +0.0134590356 + 0 +LINE + 5 +80 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.7099253406 + 20 +362.4602144314 + 30 +0.0 + 11 +148.7099253406 + 21 +366.669732864 + 31 +0.0 + 0 +ARC + 5 +81 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5098175737 + 20 +366.669705415 + 30 +0.0 + 40 +0.2001077687858761 +100 +AcDbArc + 50 +0.0078593224 + 51 +46.1736252111 + 0 +ARC + 5 +82 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.229892261 + 20 +367.4202030254 + 30 +0.0 + 40 +0.8399663770856335 +100 +AcDbArc + 50 +133.8120979057 + 51 +226.1879020943 + 0 +ARC + 5 +83 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5098175737 + 20 +368.1707006358 + 30 +0.0 + 40 +0.200107768785933 +100 +AcDbArc + 50 +313.8263747889 + 51 +359.9921406775 + 0 +LINE + 5 +84 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.7099253406 + 20 +368.1706731868 + 30 +0.0 + 11 +148.7099253406 + 21 +370.3305070949 + 31 +0.0 + 0 +ARC + 5 +85 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5900202217 + 20 +370.3305234822 + 30 +0.0 + 40 +0.1199051200450481 +100 +AcDbArc + 50 +359.9921694514 + 51 +45.0183972297 + 0 +LINE + 5 +86 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.6747787168 + 20 +370.4153364254 + 30 +0.0 + 11 +148.5050731172 + 21 +370.58504277 + 31 +0.0 + 0 +ARC + 5 +87 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5900489089 + 20 +370.6699467703 + 30 +0.0 + 40 +0.1201231635795685 +100 +AcDbArc + 50 +180.0128717119 + 51 +224.9757867508 + 0 +LINE + 5 +88 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.4699257483 + 20 +370.669919ontinuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.0299484826 + 20 +72.3821479784 + 30 +0.0 + 40 +0.399977127854635 +100 +AcDbArc + 50 +292.6176918057 + 51 +0.0067619015 + 0 +ARC + 5 +4D2 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.2299252955 + 20 +71.9021632155 + 30 +0.0 + 40 +0.1199998892853113 +100 +AcDbArc + 50 +112.6196870788 + 51 +247.3803129212 + 0 +ARC + 5 +4D3 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.0299484881 + 20 +71.4221784593 + 30 +0.0 + 40 +0.3999771195634846 +100 +AcDbArc + 50 +0.0000677203 + 51 +67.382308554 + 0 +LINE + 5 +4D4 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.4299256077 + 20 +71.4221789321 + 30 +0.0 + 11 +149.4299256077 + 21 +68.8558890304 + 31 +0.0 + 0 +ARC + 5 +4D5 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.3098934248 + 20 +68.8558875882 + 30 +0.0 + 40 +0.1200321828299822 +100 +AcDbArc + 50 +284.0483029705 + 51 +0.0006883757 + 0 +LINE + 5 +4D6 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.3390300145 + 20 +68.7394453963 + 30 +0.0 + 11 +149.2808216085 + 21 +68.724901863 + 31 +0.0 + 0 +ARC + 5 +4D7 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.3099570381 + 20 +68.6084597995 + 30 +0.0 + 40 +0.1200317766406951 +100 +AcDbArc + 50 +104.0477806555 + 51 +179.9779884139 + 0 +LINE + 5 +4D8 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.1899252703 + 20 +68.6085059127 + 30 +0.0 + 11 +149.1899252703 + 21 +67.5958945235 + 31 +0.0 + 0 +ARC + 5 +4D9 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.309957026 + 20 +67.5958929344 + 30 +0.0 + 40 +0.1200317557485991 +100 +AcDbArc + 50 +179.999241474 + 51 +255.952222776 + 0 +LINE + 5 +4DA +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.2808216085 + 20 +67.4794508895 + 30 +0.0 + 11 +149.3390300145 + 21 +67.4649073562 + 31 +0.0 + 0 +ARC + 5 +4DB +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.3098934248 + 20 +67.3484651642 + 30 +0.0 + 40 +0.1200321828298969 +100 +AcDbArc + 50 +359.9993116244 + 51 +75.9516970296 + 0 +LINE + 5 +4DC +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.4299256077 + 20 +67.3484637221 + 30 +0.0 + 11 +149.4299256077 + 21 +64.7821738204 + 31 +0.0 + 0 +ARC + 5 +4DD +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.0299484881 + 20 +64.7821742931 + 30 +0.0 + 40 +0.3999771195634605 +100 +AcDbArc + 50 +292.617691446 + 51 +359.9999322797 + 0 +ARC + 5 +4DE +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.2299252955 + 20 +64.3021895369 + 30 +0.0 + 40 +0.1199998892853769 +100 +AcDbArc + 50 +112.6196870788 + 51 +247.3803129212 + 0 +ARC + 5 +4DF +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.0299484826 + 20 +63.8222047741 + 30 +0.0 + 40 +0.3999771278546918 +100 +AcDbArc + 50 +359.9932380985 + 51 +67.3823081943 + 0 +LINE + 5 +4E0 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.4299256077 + 20 +63.8221575698 + 30 +0.0 + 11 +149.4299256077 + 21 +42.2443224868 + 31 +0.0 + 0 +ARC + 5 +4E1 +330 +1F +100 +AcDbEnt + 21 +254.4750445598 + 31 +0.0 + 0 +LINE + 5 +5AC +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +139.3699255838 + 20 +254.4750445598 + 30 +0.0 + 11 +140.3699255838 + 21 +256.4750445598 + 31 +0.0 + 0 +LINE + 5 +5AD +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +140.3699255838 + 20 +256.4750445598 + 30 +0.0 + 11 +130.2549255838 + 21 +256.4750445598 + 31 +0.0 + 0 +LINE + 5 +5AE +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +258.4750445598 + 30 +0.0 + 11 +142.3699255838 + 21 +258.4750445598 + 31 +0.0 + 0 +LINE + 5 +5AF +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +142.3699255838 + 20 +258.4750445598 + 30 +0.0 + 11 +143.3699255838 + 21 +260.4750445598 + 31 +0.0 + 0 +LINE + 5 +5B0 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +143.3699255838 + 20 +260.4750445598 + 30 +0.0 + 11 +141.3699255838 + 21 +258.4750.9299255838 + 22 +199.8200717467 + 32 +0.0 + 13 +171.9299255838 + 23 +199.8200717467 + 33 +0.0 + 0 +SOLID + 5 +51F +330 +51B +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +171.4299255838 + 20 +210.3073934143 + 30 +0.0 + 11 +171.9299255838 + 21 +213.3073934143 + 31 +0.0 + 12 +170.9299255838 + 22 +213.3073934143 + 32 +0.0 + 13 +170.9299255838 + 23 +213.3073934143 + 33 +0.0 + 0 +LINE + 5 +520 +330 +51B +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +150.4168593775 + 20 +202.8200717467 + 30 +0.0 + 11 +172.4299255838 + 21 +202.8200717467 + 31 +0.0 + 0 +LINE + 5 +521 +330 +51B +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +148.8555696261 + 20 +210.3073934143 + 30 +0.0 + 11 +172.4299255838 + 21 +210.3073934143 + 31 +0.0 + 0 +LINE + 5 +522 +330 +51B +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +171.4299255838 + 20 +202.8200717467 + 30 +0.0 + 11 +171.4299255838 + 21 +190.8599118622 + 31 +0.0 + 0 +LINE + 5 +523 +330 +51B +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +171.4299255838 + 20 +202.8200717467 + 30 +0.0 + 11 +171.4299255838 + 21 +210.3073934143 + 31 +0.0 + 0 +LINE + 5 +524 +330 +51B +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +171.4299255838 + 20 +210.3073934143 + 30 +0.0 + 11 +171.4299255838 + 21 +216.3073934143 + 31 +0.0 + 0 +MTEXT + 5 +525 +330 +51B +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbMText + 10 +166.9181886692 + 20 +190.8599118622 + 30 +0.04 + 40 +3.5 + 41 +0.0 + 71 + 1 + 72 + 1 + 1 +19 + 7 +SLDTEXTSTYLE0 + 11 +6.123233995736766E-17 + 21 +1.0 + 31 +0.0 + 73 + 1 + 44 +1.0 + 0 +ENDBLK + 5 +51D +330 +51B +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +528 +330 +527 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_3 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_3 + 1 + + 0 +SOLID + 5 +52A +330 +527 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +171.4299255838 + 20 +126.2783621669 + 30 +0.0 + 11 +170.9299255838 + 21 +123.2783621669 + 31 +0.0 + 12 +171.9299255838 + 22 +123.2783621669 + 32 +0.0 + 13 +171.9299255838 + 23 +123.2783621669 + 33 +0.0 + 0 +SOLID + 5 +52B +330 +527 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +171.4299255838 + 20 +133.7256838344 + 30 +0.0 + 11 +171.9299255838 + 21 +136.7256838344 + 31 +0.0 + 12 +170.9299255838 + 22 +136.7256838344 + 32 +0.0 + 13 +170.9299255838 + 23 +136.7256838344 + 33 +0.0 + 0 +LINE + 5 +52C +330 +527 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +150.4168593775 + 20 +126.2783621669 + 30 +0.0 + 11 +172.4299255838 + 21 +126.2783621669 + 31 +0.0 + 0 +LINE + 5 +52D +330 +527 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +149.0299255838 + 20 +133.7256838344 + 30 +0.0 + 11 +172.4299255838 + 21 +133.7256838344 + 31 +0.0 + 0 +LINE + 5 +52E +330 +527 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +171.4299255838 + 20 +126.2783621669 + 30 +0.0 + 11 +171.4299255838 + 21 +109.1156238914 + 31 +0.0 + 0 +LINE + 5 +52F +330 +527 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +171.4299255838 + 20 +126.2783621669 + 30 +0.0 + 11 +171.4299255838 + 21 +133.7256838344 + 31 +0.0 + 0 +LINE + 5 +530 +330 +527 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +171.4299255838 + 20 +133.7256838344 + 30 +0.0 + 11 +171.4299255838 + 21 +139.7256838344 + 31 +0.0 + 0 +MTEXT + 5 +531 +330 +527 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbMText + 10 +166.9181886692 + 20 +109.1156238914 + 30 +0.04 + 40 +3.5 + 41 +0.0 + 71 + 1 + 72 + 1 + 1 +19 + 7 +SLDTEXTSTYLE0 + 11 +6.123233995736766E-17 + 21 +1.0 + 31 +0.0 + 73 + 1 + 44 +1.0 + 0 +ENDBLK + 5 +529 +330 +527 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +535 +330 +534 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_4 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_4 + 1 + + 0 +SOLID + 5 +537 +330 +534 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +195.4299255838 + 20 +133.7256838344 + 30 +0.0 + 11 +194.9299255838 + 21 +130.7256838344 + 31 +0.0 + 12 +195.9299255838 + 22 +130.7256838344 + 32 +0.0 + 13 +195.9299255838 + 23 +130.7256838344 + 33 +0.0 + 0 +SOLID + 5 +538 +330 +534 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +195.4299255838 + 20 +41.9821787182 + 30 +0.0 + 11 +195.9299255838 + 21 +44.9821787182 + 31 +0.0 + 12 +194.9299255838 + 22 +44.9821787182 + 32 +0.0 + 13 +194.9299255838 + 23 +44.9821787182 + 33 +0.0 + 0 +LINE + 5 +539 +330 +534 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +149.0299255838 + 20 +133.7256838344 + 30 +0.0 + 11 +196.4299255838 + 21 +133.7256838344 + 31 +0.0 + 0 +LINE + 5 +53A +330 +534 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +149.0299255838 + 20 +41.9821787182 + 30 +0.0 + 11 +196.4299255838 + 21 +41.9821787182 + 31 +0.0 + 0 +LINE + 5 +53B +330 +534 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +195.4299255838 + 20 +133.7256838344 + 30 +0.0 + 11 +195.4299255838 + 21 +41.9821787182 + 31 +0.0 + 0 +ENDBLK + 5 +536 +330 +534 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +53E +330 +53D +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_5 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_5 + 1 + + 0 +SOLID + 5 +540 +330 +53D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +195.2555532575 + 20 +210.3467855475 + 30 +0.0 + 11 +194.7580466032 + 21 +207.3463710546 + 31 +0.0 + 12 +195.7580462578 + 22 +207.3472021123 + 32 +0.0 + 13 +195.7580462578 + 23 +207.3472021123 + 33 +0.0 + 0 +SOLID + 5 +541 +330 +53D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +195.3191971725 + 20 +133.7649839595 + 30 +0.0 + 11 +195.8167038268 + 21 +136.7653984523 + 31 +0.0 + 12 +194.8167041722 + 22 +136.7645673947 + 32 +0.0 + 13 +194.8167041722 + 23 +136.7645673947 + 33 +0.0 + 0 +LINE + 5 +542 +330 +53D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +148.8555692807 + 20 +210.3082244719 + 30 +0.0 + 11 +196.2555529122 + 21 +210.3476166051 + 31 +0.0 + 0 +LINE + 5 +543 +330 +53D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +149.029925238ity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.2877619365 + 20 +42.2443402896 + 30 +0.0 + 40 +0.1421636723032661 +100 +AcDbArc + 50 +215.0074908018 + 51 +359.9928249763 + 0 +LINE + 5 +4E2 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.1713189354 + 20 +42.1627833327 + 30 +0.0 + 11 +148.4940879812 + 21 +43.1299998244 + 31 +0.0 + 0 +ARC + 5 +4E3 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5923363035 + 20 +43.1988138586 + 30 +0.0 + 40 +0.1199504236850504 +100 +AcDbArc + 50 +136.8044484108 + 51 +215.0077544772 + 0 +ARC + 5 +4E4 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +147.6299254989 + 20 +44.1021810107 + 30 +0.0 + 40 +1.200014262087228 +100 +AcDbArc + 50 +316.8133643338 + 51 +223.1866356662 + 0 +ARC + 5 +4E5 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +146.667516349 + 20 +43.1988139771 + 30 +0.0 + 40 +0.1199491362526016 +100 +AcDbArc + 50 +324.9917457236 + 51 +43.1960513885 + 0 +LINE + 5 +4E6 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +146.7657630166 + 20 +43.1299998244 + 30 +0.0 + 11 +146.1655196567 + 21 +42.2727419814 + 31 +0.0 + 0 +ARC + 5 +4E7 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +145.8378250788 + 20 +42.5022486061 + 30 +0.0 + 40 +0.4000712776530942 +100 +AcDbArc + 50 +270.0048248044 + 51 +324.9938514507 + 0 +LINE + 5 +4E8 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +145.8378587683 + 20 +42.1021773299 + 30 +0.0 + 11 +143.9099256714 + 21 +42.1021773299 + 31 +0.0 + 0 +ARC + 5 +4E9 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +143.9098934092 + 20 +42.1821451244 + 30 +0.0 + 40 +0.0799678010352872 +100 +AcDbArc + 50 +179.9674137886 + 51 +270.0231154488 + 0 +LINE + 5 +4EA +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +143.8299256211 + 20 +42.1821906051 + 30 +0.0 + 11 +143.8299256211 + 21 +42.7421881637 + 31 +0.0 + 0 +ARC + 5 +4EB +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +143.9099748178 + 20 +42.7421522491 + 30 +0.0 + 40 +0.080049204801129 +100 +AcDbArc + 50 +90.0351768672 + 51 +179.9742938954 + 0 +LINE + 5 +4EC +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +143.9099256714 + 20 +42.8222014388 + 30 +0.0 + 11 +145.3970798125 + 21 +42.8222014388 + 31 +0.0 + 0 +ARC + 5 +4ED +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +145.3970883777 + 20 +43.2221900281 + 30 +0.0 + 40 +0.3999885893651605 +100 +AcDbArc + 50 +269.9987730963 + 51 +21.5094255355 + 0 +ARC + 5 +4EE +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +147.6299070455 + 20 +44.102180655 + 30 +0.0 + 40 +1.999982807792672 +100 +AcDbArc + 50 +166.3277484711 + 51 +201.510375133 + 0 +ARC + 5 +4EF +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +145.4922360036 + 20 +44.6221751279 + 30 +0.0 + 40 +0.2000244053689678 +100 +AcDbArc + 50 +346.3324477609 + 51 +89.9922055192 + 0 +LINE + 5 +4F0 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +145.4922632148 + 20 +44.8221995315 + 30 +0.0 + 11 +137.3675879856 + 21 +44.8221995315 + 31 +0.0 + 0 +ARC + 5 +4F1 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +137.3676151968 + 20 +44.6221751279 + 30 +0.0 + 40 +0.2000244053689526 +100 +AcDbArc + 50 +90.0077944808 + 51 +193.6675522391 + 0 +ARC + 5 +4F2 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +135.2299441549 + 20 +44.102180655 + 30 +0.0 + 40 +1.999982807792147 +100 +AcDbArc + 50 +338.489624867 + 51 +13.672251529 + 0 +ARC + 5 +4F3 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +137.4627628227 + 20 +43.2221900281 + 30 +0.0 + 40 +0.399988589365143 +100 +AcDbArc + 50 +158.4905744645 + 51 +270.0012269037 + 0 +LINE + 5 +4F4 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 8 +370 + 0 +100 +AcDbLine + 10 +148.8260940482 + 20 +80.1358534774 + 30 +0.0 + 11 +148.8260940482 + 21 +103.7777020415 + 31 +0.0 + 0 +LINE + 5 +4F5 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 8 +370 + 0 +100 +AcDbLine + 10 +133.4835157563 + 20 +80.1027132949 + 30 +0.0 + 11 +133.4835157563 + 21 +103.7777020415 + 31 +0.0 + 0 +LINE + 5 +4F6 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 8 +370 + 0 +100 +AcDbLine + 10 +148.5235550275 + 20 +81.2455489119 + 30 +0.0 + 11 +148.5235550275 + 21 +103.7777020415 + 31 +0.0 + 0 +LINE + 5 +4F7 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 8 +370 + 0 +100 +AcDbLine + 10 +148.1099256148 + 20 +82.7892615279 + 30 +0.0 + 11 +148.1099256148 + 21 +103.7777020415 + 31 +0.0 + 0 +POINT + 5 +4F8 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbPoint + 10 +142.0299255838 + 20 +-247.6988063932 + 30 +0.0 + 0 +POINT + 5 +4F9 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbPoint + 10 +149.4168593775 + 20 +447.9345399732 + 30 +0.0 + 0 +POINT + 5 +4FA +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbPoint + 10 +149.4168593775 + 20 +238.1745399732 + 30 +0.0 + 0 +POINT + 5 +4FB +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbPoint + 10 +147.8555696261 + 20 +245.6618616408 + 30 +0.0 + 0 +POINT + 5 +4FC +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbPoint + 10 +147.8555696261 + 20 +455.4218616408 + 30 +0.0 + 0 +POINT + 5 +4FD +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbPoint + 10 +148.0299255838 + 20 +35.8618616408 + 30 +0.0 + 0 +POINT + 5 +4FE +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbPoint + 10 +149.4168593775 + 20 +28.4145399732 + 30 +0.0 + 0 +POINT + 5 +4FF +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbPoint + 10 +133.4299255838 + 20 +660.3011936068 + 30 +0.0 + 0 +DIMENSION + 5 +500 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D + 10 +195.4299255838 + 20 +41.9821787182 + 30 +0.0 + 11 +195.4299255838 + 21 +34.5771309945 + 31 +0.0 + 70 + 160 + 1 +33 + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE0 +100 +AcDbAlignedDimension + 13 +142.0299255838 + 23 +28.7821787182 + 33 +0.0 + 14 +148.0299255838 + 24 +41.9821787182 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +50D +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_1 + 10 +171.4299255838 + 20 +287.499722104 + 30 +0.0 + 11 +171.4299255838 + 21 +271.6850735678 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +149.4168593775 + 23 +280.0124004364 + 33 +0.0 + 14 +147.8555696261 + 24 +287.499722104 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +51A +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_2 + 10 +171.4299255838 + 20 +210.3073934143 + 30 +0.0 + 11 +171.4299255838 + 21 +194.8678981433 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +149.4168593775 + 23 +202.8200717467 + 33 +0.0 + 14 +147.8555696261 + 24 +210.3073934143 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +526 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_3 + 10 +171.4299255838 + 20 +133.7256838344 + 30 +0.0 + 11 +171.4299255838 + 21 +113.1236101725 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +149.4168593775 + 23 +126.2783621669 + 33 +0.0 + 14 +148.0299255838 + 24 +133.7256838344 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +532 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_4 + 10 +195.4299255838 + 20 +41.9821787182 + 30 +0.0 + 11 +195.4299255838 + 21 +84.1586135498 + 31 +0.0 + 70 + 160 + 1 +675,902 + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +148.0299255838 + 23 +133.7256838344 + 33 +0.0 + 14 +148.0299255838 + 24 +41.9821787182 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +53C +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_5 + 10 +195.3191971725 + 20 +133.7649839595 + 30 +0.0 + 11 +195.2817915125 + 21 +178.7746730971 + 31 +0.0 + 70 + 160 + 1 +524,500 + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +147.8555696261 + 23 +210.3073934143 + 33 +0.0 + 14 +148.0299255838 + 24 +133.7256838344 + 34 +0.0 + 50 +-89.9523838979 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +545 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_6 + 10 +195.2555696261 + 20 +210.3073934143 + 30 +0.0 + 11 +195.2555696261 + 21 +246.0726158741 + 31 +0.0 + 70 + 160 + 1 +524,400 + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +147.8555696261 + 23 +287.499722104 + 33 +0.0 + 14 +147.8555696261 + 24 +210.3073934143 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +54E +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_7 + 10 +195.2555696261 + 20 +397.2202084954 + 30 +0.0 + 11 +195.2555696261 + 21 +357.7845521004 + 31 +0.0 + 70 + 160 + 1 +545,698 + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +147.8555696261 + 23 +287.499722104 + 33 +0.0 + 14 +145.8378589248 + 24 +397.2202084954 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +557 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_8 + 10 +219.4299255838 + 20 +397.2202084954 + 30 +0.0 + 11 +219.4299255838 + 21 +226.31135989 + 31 +0.0 + 70 + 160 + 1 +Kozijnmaat = + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +142.0299255838 + 23 +28.7821787182 + 33 +0.0 + 14 +145.8378589248 + 24 +397.2202084954 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +561 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_9 + 10 +99.2299255838 + 20 +28.7821787182 + 30 +0.0 + 11 +99.2299255838 + 21 +214.5361780403 + 31 +0.0 + 70 + 160 + 1 +DMH = + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +133.4299255838 + 23 +383.8202084954 + 33 +0.0 + 14 +142.0299255838 + 24 +28.7821787182 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +56C +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_10 + 10 +117.2299255838 + 20 +148.4450158005 + 30 +0.0 + 11 +117.2299255838 + 21 +157.3719824392 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +133.5499255838 + 23 +147.8850158005 + 33 +0.0 + 14 +133.5499255838 + 24 +148.4450158005 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +578 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_11 + 10 +117.2299255838 + 20 +224.9867253803 + 30 +0.0 + 11 +117.2299255838 + 21 +236.5334651005 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +133.5499255838 + 23 +224.4267253803 + 33 +0.0 + 14 +133.5499255838 + 24 +224.9867253803 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +584 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_12 + 10 +117.2299255838 + 20 +302.17905407 + 30 +0.0 + 11 +117.2299255838 + 21 +311.8110919194 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +133.5499255838 + 23 +301.61905407 + 33 +0.0 + 14 +133.5499255838 + 24 +302.17905407 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +LINE + 5 +590 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +103.7777066237 + 30 +0.0 + 11 +142.3699255838 + 21 +103.7777066237 + 31 +0.0 + 0 +LINE + 5 +591 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +142.3699255838 + 20 +103.7777066237 + 30 +0.0 + 11 +143.3699255838 + 21 +105.7777066237 + 31 +0.0 + 0 +LINE + 5 +592 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +143.3699255838 + 20 +105.7777066237 + 30 +0.0 + 11 +141.3699255838 + 21 +103.7777066237 + 31 +0.0 + 0 +LINE + 5 +593 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +141.3699255838 + 20 +103.7777066237 + 30 +0.0 + 11 +139.3699255838 + 21 +101.7777066237 + 31 +0.0 + 0 +LINE + 5 +594 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +139.3699255838 + 20 +101.7777066237 + 30 +0.0 + 11 +140.3699255838 + 21 +103.7777066237 + 31 +0.0 + 0 +LINE + 5 +595 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +140.3699255838 + 20 +103.7777066237 + 30 +0.0 + 11 +130.2549255838 + 21 +103.7777066237 + 31 +0.0 + 0 +LINE + 5 +596 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +105.7777066237 + 30 +0.0 + 11 +142.3699255838 + 21 +105.7777066237 + 31 +0.0 + 0 +LINE + 5 +597 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +142.3699255838 + 20 +105.7777066237 + 30 +0.0 + 11 +143.3699255838 + 21 +107.7777066237 + 31 +0.0 + 0 +LINE + 5 +598 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +143.3699255838 + 20 +107.7777066237 + 30 +0.0 + 11 +141.3699255838 + 21 +105.7777066237 + 31 +0.0 + 0 +LINE + 5 +599 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +141.3699255838 + 20 +105.7777066237 + 30 +0.0 + 11 +139.3699255838 + 21 +103.7777066237 + 31 +0.0 + 0 +LINE + 5 +59A +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +139.3699255838 + 20 +103.7777066237 + 30 +0.0 + 11 +140.3699255838 + 21 +105.7777066237 + 31 +0.0 + 0 +LINE + 5 +59B +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +140.3699255838 + 20 +105.7777066237 + 30 +0.0 + 11 +130.2549255838 + 21 +105.7777066237 + 31 +0.0 + 0 +LINE + 5 +59C +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +179.2366515846 + 30 +0.0 + 11 +142.3699255838 + 21 +179.2366515846 + 31 +0.0 + 0 +LINE + 5 +59D +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +142.3699255838 + 20 +179.2366515846 + 30 +0.0 + 11 +143.3699255838 + 21 +181.2366515846 + 31 +0.0 + 0 +LINE + 5 +59E +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +143.3699255838 + 20 +181.2366515846 + 30 +0.0 + 11 +141.3699255838 + 21 +179.2366515846 + 31 +0.0 + 0 +LINE + 5 +59F +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +141.3699255838 + 20 +179.2366515846 + 30 +0.0 + 11 +139.3699255838 + 21 +177.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A0 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +139.3699255838 + 20 +177.2366515846 + 30 +0.0 + 11 +140.3699255838 + 21 +179.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A1 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +140.3699255838 + 20 +179.2366515846 + 30 +0.0 + 11 +130.2549255838 + 21 +179.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A2 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +181.2366515846 + 30 +0.0 + 11 +142.3699255838 + 21 +181.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A3 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +142.3699255838 + 20 +181.2366515846 + 30 +0.0 + 11 +143.3699255838 + 21 +183.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A4 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +143.3699255838 + 20 +183.2366515846 + 30 +0.0 + 11 +141.3699255838 + 21 +181.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A5 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +141.3699255838 + 20 +181.2366515846 + 30 +0.0 + 11 +139.3699255838 + 21 +179.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A6 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +139.3699255838 + 20 +179.2366515846 + 30 +0.0 + 11 +140.3699255838 + 21 +181.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A7 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +140.3699255838 + 20 +181.2366515846 + 30 +0.0 + 11 +130.2549255838 + 21 +181.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A8 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +256.4750445598 + 30 +0.0 + 11 +142.3699255838 + 21 +256.4750445598 + 31 +0.0 + 0 +LINE + 5 +5A9 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +142.3699255838 + 20 +256.4750445598 + 30 +0.0 + 11 +143.3699255838 + 21 +258.4750445598 + 31 +0.0 + 0 +LINE + 5 +5AA +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +143.3699255838 + 20 +258.4750445598 + 30 +0.0 + 11 +141.3699255838 + 21 +256.4750445598 + 31 +0.0 + 0 +LINE + 5 +5AB +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +141.3699255838 + 20 +256.4750445598 + 30 +0.0 + 11 +139.3699255838 + 21 +254.4750445598 + 31 +0.0 + 0 +LINE + 5 +5AC +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +139.3699255838 + 20 +254.4750445598 + 30 +0.0 + 11 +140.3699255838 + 21 +256.4750445598 + 31 +0.0 + 0 +LINE + 5 +5AD +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +140.3699255838 + 20 +256.4750445598 + 30 +0.0 + 11 +130.2549255838 + 21 +256.4750445598 + 31 +0.0 + 0 +LINE + 5 +5AE +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +258.4750445598 + 30 +0.0 + 11 +142.3699255838 + 21 +258.4750445598 + 31 +0.0 + 0 +LINE + 5 +5AF +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +142.3699255838 + 20 +258.4750445598 + 30 +0.0 + 11 +143.3699255838 + 21 +260.4750445598 + 31 +0.0 + 0 +LINE + 5 +5B0 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +143.3699255838 + 20 +260.4750445598 + 30 +0.0 + 11 +141.3699255838 + 21 +258.4750.9299255838 + 22 +199.8200717467 + 32 +0.0 + 13 +171.9299255838 + 23 +199.8200717467 + 33 +0.0 + 0 +SOLID + 5 +51F +330 +51B +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +171.4299255838 + 20 +210.3073934143 + 30 +0.0 + 11 +171.9299255838 + 21 +213.3073934143 + 31 +0.0 + 12 +170.9299255838 + 22 +213.3073934143 + 32 +0.0 + 13 +170.9299255838 + 23 +213.3073934143 + 33 +0.0 + 0 +LINE + 5 +520 +330 +51B +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +150.4168593775 + 20 +202.8200717467 + 30 +0.0 + 11 +172.4299255838 + 21 +202.8200717467 + 31 +0.0 + 0 +LINE + 5 +521 +330 +51B +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +148.8555696261 + 20 +210.3073934143 + 30 +0.0 + 11 +172.4299255838 + 21 +210.3073934143 + 31 +0.0 + 0 +LINE + 5 +522 +330 +51B +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +171.4299255838 + 20 +202.8200717467 + 30 +0.0 + 11 +171.4299255838 + 21 +190.8599118622 + 31 +0.0 + 0 +LINE + 5 +523 +330 +51B +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +171.4299255838 + 20 +202.8200717467 + 30 +0.0 + 11 +171.4299255838 + 21 +210.3073934143 + 31 +0.0 + 0 +LINE + 5 +524 +330 +51B +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +171.4299255838 + 20 +210.3073934143 + 30 +0.0 + 11 +171.4299255838 + 21 +216.3073934143 + 31 +0.0 + 0 +MTEXT + 5 +525 +330 +51B +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbMText + 10 +166.9181886692 + 20 +190.8599118622 + 30 +0.04 + 40 +3.5 + 41 +0.0 + 71 + 1 + 72 + 1 + 1 +19 + 7 +SLDTEXTSTYLE0 + 11 +6.123233995736766E-17 + 21 +1.0 + 31 +0.0 + 73 + 1 + 44 +1.0 + 0 +ENDBLK + 5 +51D +330 +51B +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +528 +330 +527 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_3 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_3 + 1 + + 0 +SOLID + 5 +52A +330 +527 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +171.4299255838 + 20 +126.2783621669 + 30 +0.0 + 11 +170.9299255838 + 21 +123.2783621669 + 31 +0.0 + 12 +171.9299255838 + 22 +123.2783621669 + 32 +0.0 + 13 +171.9299255838 + 23 +123.2783621669 + 33 +0.0 + 0 +SOLID + 5 +52B +330 +527 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +171.4299255838 + 20 +133.7256838344 + 30 +0.0 + 11 +171.9299255838 + 21 +136.7256838344 + 31 +0.0 + 12 +170.9299255838 + 22 +136.7256838344 + 32 +0.0 + 13 +170.9299255838 + 23 +136.7256838344 + 33 +0.0 + 0 +LINE + 5 +52C +330 +527 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +150.4168593775 + 20 +126.2783621669 + 30 +0.0 + 11 +172.4299255838 + 21 +126.2783621669 + 31 +0.0 + 0 +LINE + 5 +52D +330 +527 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +149.0299255838 + 20 +133.7256838344 + 30 +0.0 + 11 +172.4299255838 + 21 +133.7256838344 + 31 +0.0 + 0 +LINE + 5 +52E +330 +527 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +171.4299255838 + 20 +126.2783621669 + 30 +0.0 + 11 +171.4299255838 + 21 +109.1156238914 + 31 +0.0 + 0 +LINE + 5 +52F +330 +527 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +171.4299255838 + 20 +126.2783621669 + 30 +0.0 + 11 +171.4299255838 + 21 +133.7256838344 + 31 +0.0 + 0 +LINE + 5 +530 +330 +527 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +171.4299255838 + 20 +133.7256838344 + 30 +0.0 + 11 +171.4299255838 + 21 +139.7256838344 + 31 +0.0 + 0 +MTEXT + 5 +531 +330 +527 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbMText + 10 +166.9181886692 + 20 +109.1156238914 + 30 +0.04 + 40 +3.5 + 41 +0.0 + 71 + 1 + 72 + 1 + 1 +19 + 7 +SLDTEXTSTYLE0 + 11 +6.123233995736766E-17 + 21 +1.0 + 31 +0.0 + 73 + 1 + 44 +1.0 + 0 +ENDBLK + 5 +529 +330 +527 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +535 +330 +534 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_4 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_4 + 1 + + 0 +SOLID + 5 +537 +330 +534 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +195.4299255838 + 20 +133.7256838344 + 30 +0.0 + 11 +194.9299255838 + 21 +130.7256838344 + 31 +0.0 + 12 +195.9299255838 + 22 +130.7256838344 + 32 +0.0 + 13 +195.9299255838 + 23 +130.7256838344 + 33 +0.0 + 0 +SOLID + 5 +538 +330 +534 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +195.4299255838 + 20 +41.9821787182 + 30 +0.0 + 11 +195.9299255838 + 21 +44.9821787182 + 31 +0.0 + 12 +194.9299255838 + 22 +44.9821787182 + 32 +0.0 + 13 +194.9299255838 + 23 +44.9821787182 + 33 +0.0 + 0 +LINE + 5 +539 +330 +534 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +149.0299255838 + 20 +133.7256838344 + 30 +0.0 + 11 +196.4299255838 + 21 +133.7256838344 + 31 +0.0 + 0 +LINE + 5 +53A +330 +534 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +149.0299255838 + 20 +41.9821787182 + 30 +0.0 + 11 +196.4299255838 + 21 +41.9821787182 + 31 +0.0 + 0 +LINE + 5 +53B +330 +534 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +195.4299255838 + 20 +133.7256838344 + 30 +0.0 + 11 +195.4299255838 + 21 +41.9821787182 + 31 +0.0 + 0 +ENDBLK + 5 +536 +330 +534 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +53E +330 +53D +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_5 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_5 + 1 + + 0 +SOLID + 5 +540 +330 +53D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +195.2555532575 + 20 +210.3467855475 + 30 +0.0 + 11 +194.7580466032 + 21 +207.3463710546 + 31 +0.0 + 12 +195.7580462578 + 22 +207.3472021123 + 32 +0.0 + 13 +195.7580462578 + 23 +207.3472021123 + 33 +0.0 + 0 +SOLID + 5 +541 +330 +53D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +195.3191971725 + 20 +133.7649839595 + 30 +0.0 + 11 +195.8167038268 + 21 +136.7653984523 + 31 +0.0 + 12 +194.8167041722 + 22 +136.7645673947 + 32 +0.0 + 13 +194.8167041722 + 23 +136.7645673947 + 33 +0.0 + 0 +LINE + 5 +542 +330 +53D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +148.8555692807 + 20 +210.3082244719 + 30 +0.0 + 11 +196.2555529122 + 21 +210.3476166051 + 31 +0.0 + 0 +LINE + 5 +543 +330 +53D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +149.0299252385 + 20 +133.7265148921 + 30 +0.0 + 11 +196.3191968272 + 21 +133.7658150172 + 31 +0.0 + 0 +LINE + 5 +544 +330 +53D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +195.2555532575 + 20 +210.3467855475 + 30 +0.0 + 11 +195.3191971725 + 21 +133.7649839595 + 31 +0.0 + 0 +ENDBLK + 5 +53F +330 +53D +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +547 +330 +546 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_6 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_6 + 1 + + 0 +SOLID + 5 +549 +330 +546 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +195.2555696261 + 20 +287.499722104 + 30 +0.0 + 11 +194.7555696261 + 21 +284.499722104 + 31 +0.0 + 12 +195.7555696261 + 22 +284.499722104 + 32 +0.0 + 13 +195.7555696261 + 23 +284.499722104 + 33 +0.0 + 0 +SOLID + 5 +54A +330 +546 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +195.2555696261 + 20 +210.3073934143 + 30 +0.0 + 11 +195.7555696261 + 21 +213.3073934143 + 31 +0.0 + 12 +194.7555696261 + 22 +213.3073934143 + 32 +0.0 + 13 +194.7555696261 + 23 +213.3073934143 + 33 +0.0 + 0 +LINE + 5 +54B +330 +546 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +148.8555696261 + 20 +287.499722104 + 30 +0.0 + 11 +196.2555696261 + 21 +287.499722104 + 31 +0.0 + 0 +LINE + 5 +54C +330 +546 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +148.8555696261 + 20 +210.3073934143 + 30 +0.0 + 11 +196.2555696261 + 21 +210.3073934143 + 31 +0.0 + 0 +LINE + 5 +54D +330 +546 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +195.2555696261 + 20 +287.499722104 + 30 +0.0 + 11 +195.2555696261 + 21 +210.3073934143 + 31 +0.0 + 0 +ENDBLK + 5 +548 +330 +546 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +550 +330 +54F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_7 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_7 + 1 + + 0 +SOLID + 5 +552 +330 +54F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +195.2555696261 + 20 +287.499722104 + 30 +0.0 + 11 +195.7555696261 + 21 +290.499722104 + 31 +0.0 + 12 +194.7555696261 + 22 +290.499722104 + 32 +0.0 + 13 +194.7555696261 + 23 +290.499722104 + 33 +0.0 + 0 +SOLID + 5 +553 +330 +54F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +195.2555696261 + 20 +397.2202084954 + 30 +0.0 + 11 +194.7555696261 + 21 +394.2202084954 + 31 +0.0 + 12 +195.7555696261 + 22 +394.2202084954 + 32 +0.0 + 13 +195.7555696261 + 23 +394.2202084954 + 33 +0.0 + 0 +LINE + 5 +554 +330 +54F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +148.8555696261 + 20 +287.499722104 + 30 +0.0 + 11 +196.2555696261 + 21 +287.499722104 + 31 +0.0 + 0 +LINE + 5 +555 +330 +54F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +146.8378589248 + 20 +397.2202084954 + 30 +0.0 + 11 +196.2555696261 + 21 +397.2202084954 + 31 +0.0 + 0 +LINE + 5 +556 +330 +54F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +195.2555696261 + 20 +287.499722104 + 30 +0.0 + 11 +195.2555696261 + 21 +397.2202084954 + 31 +0.0 + 0 +ENDBLK + 5 +551 +330 +54F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +559 +330 +558 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_8 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_8 + 1 + + 0 +SOLID + 5 +55B +330 +558 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +219.4299255838 + 20 +28.7821787182 + 30 +0.0 + 11 +219.9299255838 + 21 +31.7821787182 + 31 +0.0 + 12 +218.9299255838 + 22 +31.7821787182 + 32 +0.0 + 13 +218.9299255838 + 23 +31.7821787182 + 33 +0.0 + 0 +SOLID + 5 +55C +330 +558 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +219.4299255838 + 20 +397.2202084954 + 30 +0.0 + 11 +218.9299255838 + 21 +394.2202084954 + 31 +0.0 + 12 +219.9299255838 + 22 +394.2202084954 + 32 +0.0 + 13 +219.9299255838 + 23 +394.2202084954 + 33 +0.0 + 0 +LINE + 5 +55D +330 +558 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +143.0299255838 + 20 +28.7821787182 + 30 +0.0 + 11 +220.4299255838 + 21 +28.7821787182 + 31 +0.0 + 0 +LINE + 5 +55E +330 +558 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +146.8378589248 + 20 +397.2202084954 + 30 +0.0 + 11 +220.4299255838 + 21 +397.2202084954 + 31 +0.0 + 0 +LINE + 5 +55F +330 +558 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +219.4299255838 + 20 +28.7821787182 + 30 +0.0 + 11 +219.4299255838 + 21 +397.2202084954 + 31 +0.0 + 0 +MTEXT + 5 +560 +330 +558 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbMText + 10 +214.9181886692 + 20 +211.8228183688 + 30 +0.04 + 40 +3.5 + 41 +0.0 + 71 + 1 + 72 + 1 + 1 +Kozijnmaat = + 7 +SLDTEXTSTYLE0 + 11 +6.123233995736766E-17 + 21 +1.0 + 31 +0.0 + 73 + 1 + 44 +1.0 + 0 +ENDBLK + 5 +55A +330 +558 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +563 +330 +562 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_9 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_9 + 1 + + 0 +SOLID + 5 +565 +330 +562 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +99.2299255838 + 20 +383.8202084954 + 30 +0.0 + 11 +98.7299255838 + 21 +380.8202084954 + 31 +0.0 + 12 +99.7299255838 + 22 +380.8202084954 + 32 +0.0 + 13 +99.7299255838 + 23 +380.8202084954 + 33 +0.0 + 0 +SOLID + 5 +566 +330 +562 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +99.2299255838 + 20 +28.7821787182 + 30 +0.0 + 11 +99.7299255838 + 21 +31.7821787182 + 31 +0.0 + 12 +98.7299255838 + 22 +31.7821787182 + 32 +0.0 + 13 +98.7299255838 + 23 +31.7821787182 + 33 +0.0 + 0 +LINE + 5 +567 +330 +562 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +132.4299255838 + 20 +383.8202084954 + 30 +0.0 + 11 +98.2299255838 + 21 +383.8202084954 + 31 +0.0 + 0 +LINE + 5 +568 +330 +562 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +141.0299255838 + 20 +28.7821787182 + 30 +0.0 + 11 +98.2299255838 + 21 +28.7821787182 + 31 +0.0 + 0 +LINE + 5 +569 +330 +562 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +99.2299255838 + 20 +383.8202084954 + 30 +0.0 + 11 +99.2299255838 + 21 +28.7821787182 + 31 +0.0 + 0 +MTEXT + 5 +56B +330 +562 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbMText + 10 +94.7181886692 + 20 +207.001456174 + 30 +0.04 + 40 +3.5 + 41 +0.0 + 71 + 1 + 72 + 1 + 1 +DMH = + 7 +SLDTEXTSTYLE1 + 11 +-7.044195017643634E-15 + 21 +1.0 + 31 +0.0 + 73 + 1 + 44 +1.0 + 0 +ENDBLK + 5 +564 +330 +562 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +56E +330 +56D +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_10 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_10 + 1 + + 0 +SOLID + 5 +570 +330 +56D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +117.2299255838 + 20 +147.8850158005 + 30 +0.0 + 11 +116.7299255838 + 21 +144.8850158005 + 31 +0.0 + 12 +117.7299255838 + 22 +144.8850158005 + 32 +0.0 + 13 +117.7299255838 + 23 +144.8850158005 + 33 +0.0 + 0 +SOLID + 5 +571 +330 +56D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +117.2299255838 + 20 +148.4450158005 + 30 +0.0 + 11 +117.7299255838 + 21 +151.4450158005 + 31 +0.0 + 12 +116.7299255838 + 22 +151.4450158005 + 32 +0.0 + 13 +116.7299255838 + 23 +151.4450158005 + 33 +0.0 + 0 +LINE + 5 +572 +330 +56D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +132.5499255838 + 20 +147.8850158005 + 30 +0.0 + 11 +116.2299255838 + 21 +147.8850158005 + 31 +0.0 + 0 +LINE + 5 +573 +330 +56D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +132.5499255838 + 20 +148.4450158005 + 30 +0.0 + 11 +116.2299255838 + 21 +148.4450158005 + 31 +0.0 + 0 +LINE + 5 +574 +330 +56D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +117.2299255838 + 20 +147.8850158005 + 30 +0.0 + 11 +117.2299255838 + 21 +141.8850158005 + 31 +0.0 + 0 +LINE + 5 +575 +330 +56D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +117.2299255838 + 20 +147.8850158005 + 30 +0.0 + 11 +117.2299255838 + 21 +148.4450158005 + 31 +0.0 + 0 +LINE + 5 +576 +330 +56D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +117.2299255838 + 20 +148.4450158005 + 30 +0.0 + 11 +117.2299255838 + 21 +160.0869130071 + 31 +0.0 + 0 +MTEXT + 5 +577 +330 +56D +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbMText + 10 +112.7181886692 + 20 +154.6570518713 + 30 +0.04 + 40 +3.5 + 41 +0.0 + 71 + 1 + 72 + 1 + 1 +1 + 7 +SLDTEXTSTYLE0 + 11 +-7.044195017643634E-15 + 21 +1.0 + 31 +0.0 + 73 + 1 + 44 +1.0 + 0 +ENDBLK + 5 +56F +330 +56D +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +57A +330 +579 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_11 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_11 + 1 + + 0 +SOLID + 5 +57C +330 +579 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +117.2299255838 + 20 +224.4267253803 + 30 +0.0 + 11 +116.7299255838 + 21 +221.4267253803 + 31 +0.0 + 12 +117.7299255838 + 22 +221.4267253803 + 32 +0.0 + 13 +117.7299255838 + 23 +221.4267253803 + 33 +0.0 + 0 +SOLID + 5 +57D +330 +579 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +117.2299255838 + 20 +224.9867253803 + 30 +0.0 + 11 +117.7299255838 + 21 +227.9867253803 + 31 +0.0 + 12 +116.7299255838 + 22 +227.9867253803 + 32 +0.0 + 13 +116.7299255838 + 23 +227.9867253803 + 33 +0.0 + 0 +LINE + 5 +57E +330 +579 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +132.5499255838 + 20 +224.4267253803 + 30 +0.0 + 11 +116.2299255838 + 21 +224.4267253803 + 31 +0.0 + 0 +LINE + 5 +57F +330 +579 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +132.5499255838 + 20 +224.9867253803 + 30 +0.0 + 11 +116.2299255838 + 21 +224.9867253803 + 31 +0.0 + 0 +LINE + 5 +580 +330 +579 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +117.2299255838 + 20 +224.4267253803 + 30 +0.0 + 11 +117.2299255838 + 21 +218.4267253803 + 31 +0.0 + 0 +LINE + 5 +581 +330 +579 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +117.2299255838 + 20 +224.4267253803 + 30 +0.0 + 11 +117.2299255838 + 21 +224.9867253803 + 31 +0.0 + 0 +LINE + 5 +582 +330 +579 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +117.2299255838 + 20 +224.9867253803 + 30 +0.0 + 11 +117.2299255838 + 21 +239.2483956684 + 31 +0.0 + 0 +MTEXT + 5 +583 +330 +579 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbMText + 10 +112.7181886692 + 20 +233.8185345326 + 30 +0.04 + 40 +3.5 + 41 +0.0 + 71 + 1 + 72 + 1 + 1 +1 + 7 +SLDTEXTSTYLE0 + 11 +-7.044195017643634E-15 + 21 +1.0 + 31 +0.0 + 73 + 1 + 44 +1.0 + 0 +ENDBLK + 5 +57B +330 +579 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +586 +330 +585 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_D_12 + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +_D_12 + 1 + + 0 +SOLID + 5 +588 +330 +585 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +117.2299255838 + 20 +301.61905407 + 30 +0.0 + 11 +116.7299255838 + 21 +298.61905407 + 31 +0.0 + 12 +117.7299255838 + 22 +298.61905407 + 32 +0.0 + 13 +117.7299255838 + 23 +298.61905407 + 33 +0.0 + 0 +SOLID + 5 +589 +330 +585 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbTrace + 10 +117.2299255838 + 20 +302.17905407 + 30 +0.0 + 11 +117.7299255838 + 21 +305.17905407 + 31 +0.0 + 12 +116.7299255838 + 22 +305.17905407 + 32 +0.0 + 13 +116.7299255838 + 23 +305.17905407 + 33 +0.0 + 0 +LINE + 5 +58A +330 +585 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +132.5499255838 + 20 +301.61905407 + 30 +0.0 + 11 +116.2299255838 + 21 +301.61905407 + 31 +0.0 + 0 +LINE + 5 +58B +330 +585 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +132.5499255838 + 20 +302.17905407 + 30 +0.0 + 11 +116.2299255838 + 21 +302.17905407 + 31 +0.0 + 0 +LINE + 5 +58C +330 +585 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +117.2299255838 + 20 +301.61905407 + 30 +0.0 + 11 +117.2299255838 + 21 +295.61905407 + 31 +0.0 + 0 +LINE + 5 +58D +330 +585 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +117.2299255838 + 20 +301.61905407 + 30 +0.0 + 11 +117.2299255838 + 21 +302.17905407 + 31 +0.0 + 0 +LINE + 5 +58E +330 +585 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +117.2299255838 + 20 +302.17905407 + 30 +0.0 + 11 +117.2299255838 + 21 +314.5260224873 + 31 +0.0 + 0 +MTEXT + 5 +58F +330 +585 +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbMText + 10 +112.7181886692 + 20 +309.0961613515 + 30 +0.04 + 40 +3.5 + 41 +0.0 + 71 + 1 + 72 + 1 + 1 +1 + 7 +SLDTEXTSTYLE0 + 11 +-7.044195017643634E-15 + 21 +1.0 + 31 +0.0 + 73 + 1 + 44 +1.0 + 0 +ENDBLK + 5 +587 +330 +585 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +LINE + 5 +4B +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbLine + 10 +123.9140543182 + 20 +383.8493547742 + 30 +0.0 + 11 +160.598524565 + 21 +383.8493547742 + 31 +0.0 + 0 +LINE + 5 +4C +330 +1F +100 +AcDbEntity + 8 +STUKLIJST +100 +AcDbLine + 10 +10.3087825773 + 20 +9.2198227322 + 30 +0.0 + 11 +10.3087825773 + 21 +409.2698227322 + 31 +0.0 + 0 +LINE + 5 +4D +330 +1F +100 +AcDbEntity + 8 +STUKLIJST +100 +AcDbLine + 10 +10.3087825773 + 20 +9.2198227322 + 30 +0.0 + 11 +287.198438446 + 21 +9.2198227322 + 31 +0.0 + 0 +LINE + 5 +4E +330 +1F +100 +AcDbEntity + 8 +STUKLIJST +100 +AcDbLine + 10 +287.198438446 + 20 +409.2698227322 + 30 +0.0 + 11 +287.198438446 + 21 +9.2198227322 + 31 +0.0 + 0 +LINE + 5 +4F +330 +1F +100 +AcDbEntity + 8 +STUKLIJST +100 +AcDbLine + 10 +287.198438446 + 20 +409.2698227322 + 30 +0.0 + 11 +10.3087825773 + 21 +409.2698227322 + 31 +0.0 + 0 +LINE + 5 +50 +330 +1F +100 +AcDbEntity + 8 +MAATLIJN +100 +AcDbLine + 10 +4.3087825773 + 20 +3.2198227322 + 30 +0.0 + 11 +4.3087825773 + 21 +415.2698227322 + 31 +0.0 + 0 +LINE + 5 +51 +330 +1F +100 +AcDbEntity + 8 +MAATLIJN +100 +AcDbLine + 10 +4.3087825773 + 20 +415.2698227322 + 30 +0.0 + 11 +293.4090035115 + 21 +415.2698227322 + 31 +0.0 + 0 +LINE + 5 +52 +330 +1F +100 +AcDbEntity + 8 +MAATLIJN +100 +AcDbLine + 10 +293.4090035115 + 20 +415.2698227322 + 30 +0.0 + 11 +293.4090035115 + 21 +3.2198227322 + 31 +0.0 + 0 +LINE + 5 +53 +330 +1F +100 +AcDbEntity + 8 +MAATLIJN +100 +AcDbLine + 10 +293.4090035115 + 20 +3.2198227322 + 30 +0.0 + 11 +4.3087825773 + 21 +3.2198227322 + 31 +0.0 + 0 +MTEXT + 5 +55 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbMText + 10 +211.9617900851 + 20 +18.9651870984 + 30 +0.0 + 40 +4.2333333333 + 41 +0.0 + 71 + 1 + 72 + 1 + 1 +Alum. deurblad - 4 secties + 7 +SLDTEXTSTYLE0 + 73 + 1 + 44 +1.0 + 0 +INSERT + 5 +59 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +100 +AcDbBlockReference + 2 +SW_BROKEN_VIEW_0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 0 +LINE + 5 +5A +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.9420049658 + 20 +336.7369001461 + 30 +0.0 + 11 +148.9420049658 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +5B +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.1445668807 + 20 +336.7369001461 + 30 +0.0 + 11 +149.1445668807 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +5C +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.0406432023 + 20 +336.7369001461 + 30 +0.0 + 11 +149.0406432023 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +5D +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.0406432023 + 20 +359.2202013088 + 30 +0.0 + 11 +148.9420049658 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +5E +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +133.9137577285 + 20 +336.7369001461 + 30 +0.0 + 11 +133.9137577285 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +5F +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +133.797846066 + 20 +336.7369001461 + 30 +0.0 + 11 +133.797846066 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +60 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +133.6992078294 + 20 +336.7369001461 + 30 +0.0 + 11 +133.6992078294 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +61 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +133.797846066 + 20 +359.2202013088 + 30 +0.0 + 11 +133.6992078294 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +62 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +133.5952848961 + 20 +336.7369001461 + 30 +0.0 + 11 +133.5952848961 + 21 +359.2202013088 + 31 +0.0 + 0 +ARC + 5 +63 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.1879324767 + 20 +359.1402151319 + 30 +0.0 + 40 +0.0799861772139263 +100 +AcDbArc + 50 +31.2190407028 + 51 +90.0049728915 + 0 +LINE + 5 +64 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.2563360204 + 20 +336.7369001461 + 30 +0.0 + 11 +149.2563360204 + 21 +359.1816728664 + 31 +0.0 + 0 +LINE + 5 +65 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.2162960043 + 20 +336.7369001461 + 30 +0.0 + 11 +134.2162960043 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +66 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.2162960043 + 20 +359.2202013088 + 30 +0.0 + 11 +134.1499254873 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +67 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +133.4299252202 + 20 +336.7369001461 + 30 +0.0 + 11 +133.4299252202 + 21 +359.1907804561 + 31 +0.0 + 0 +ARC + 5 +68 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +127.793914781 + 20 +346.5773729462 + 30 +0.0 + 40 +24.8898367051569 +100 +AcDbArc + 50 +30.3127339119 + 51 +30.4217624082 + 0 +LINE + 5 +69 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.3099258115 + 20 +336.7369001461 + 30 +0.0 + 11 +149.3099258115 + 21 +359.1109102321 + 31 +0.0 + 0 +LINE + 5 +6A +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.2563360204 + 20 +359.1816728664 + 30 +0.0 + 11 +149.2569536736 + 21 +359.1806238247 + 31 +0.0 + 0 +LINE + 5 +6B +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.2299253514 + 20 +336.7369001461 + 30 +0.0 + 11 +134.2299253514 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +6C +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.2299253514 + 20 +359.2202013088 + 30 +0.0 + 11 +134.2162960043 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +6D +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.5099256804 + 20 +336.7369001461 + 30 +0.0 + 11 +148.5099256804 + 21 +358.0259626461 + 31 +0.0 + 0 +LINE + 5 +6E +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.6299254169 + 20 +336.7369001461 + 30 +0.0 + 11 +134.6299254169 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +6F +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +134.6299254169 + 20 +359.2202013088 + 30 +0.0 + 11 +134.2299253514 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +70 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +143.0299256762 + 20 +359.2202013088 + 30 +0.0 + 11 +143.0299256762 + 21 +353.6202257229 + 31 +0.0 + 0 +LINE + 5 +71 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +143.0299256762 + 20 +353.6202257229 + 30 +0.0 + 11 +147.3280240615 + 21 +353.6202257229 + 31 +0.0 + 0 +LINE + 5 +72 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +147.3280240615 + 20 +353.6202257229 + 30 +0.0 + 11 +147.5545917471 + 21 +354.4657533718 + 31 +0.0 + 0 +LINE + 5 +73 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +141.5499255826 + 20 +359.2202013088 + 30 +0.0 + 11 +141.3099255843 + 21 +359.2202013088 + 31 +0.0 + 0 +LINE + 5 +74 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +138.9099255969 + 20 +359.2202013088 + 30 +0.0 + 11 +134.6299254169 + 21 +359.2202013088 + 31 +0.0 + 0 +ARC + 5 +75 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +137.1595398236 + 20 +361.9409267861 + 30 +0.0 + 40 +0.3992677940247622 +100 +AcDbArc + 50 +89.9681903289 + 51 +114.7477262168 + 0 +LINE + 5 +76 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +137.1597614904 + 20 +362.3401945186 + 30 +0.0 + 11 +139.7899255922 + 21 +362.3401945186 + 31 +0.0 + 0 +ARC + 5 +77 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +139.7899227961 + 20 +361.9401917488 + 30 +0.0 + 40 +0.4000027697985571 +100 +AcDbArc + 50 +0.0045494665 + 51 +89.9995994903 + 0 +LINE + 5 +78 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +140.1899255646 + 20 +361.9402235103 + 30 +0.0 + 11 +140.1899255646 + 21 +360.4202097011 + 31 +0.0 + 0 +ARC + 5 +79 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +140.5899283325 + 20 +360.4201937773 + 30 +0.0 + 40 +0.4000027681863966 +100 +AcDbArc + 50 +179.9977190938 + 51 +269.999606256 + 0 +LINE + 5 +7A +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +140.5899255836 + 20 +360.0201910091 + 30 +0.0 + 11 +142.2699255703 + 21 +360.0201910091 + 31 +0.0 + 0 +ARC + 5 +7B +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +142.2699229338 + 20 +360.4201936183 + 30 +0.0 + 40 +0.4000026092087915 +100 +AcDbArc + 50 +270.0003776416 + 51 +0.0023036787 + 0 +LINE + 5 +7C +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +142.6699255427 + 20 +360.4202097011 + 30 +0.0 + 11 +142.6699255427 + 21 +361.9402235103 + 31 +0.0 + 0 +ARC + 5 +7D +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +143.0699283112 + 20 +361.9401917488 + 30 +0.0 + 40 +0.4000027697974622 +100 +AcDbArc + 50 +90.0003871694 + 51 +179.9954505335 + 0 +LINE + 5 +7E +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +143.0699256082 + 20 +362.3401945186 + 30 +0.0 + 11 +148.5899255445 + 21 +362.3401945186 + 31 +0.0 + 0 +ARC + 5 +7F +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5899336175 + 20 +362.4601862448 + 30 +0.0 + 40 +0.1199917263967713 +100 +AcDbArc + 50 +269.9961451292 + 51 +0.0134590356 + 0 +LINE + 5 +80 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.7099253406 + 20 +362.4602144314 + 30 +0.0 + 11 +148.7099253406 + 21 +366.669732864 + 31 +0.0 + 0 +ARC + 5 +81 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5098175737 + 20 +366.669705415 + 30 +0.0 + 40 +0.2001077687858761 +100 +AcDbArc + 50 +0.0078593224 + 51 +46.1736252111 + 0 +ARC + 5 +82 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.229892261 + 20 +367.4202030254 + 30 +0.0 + 40 +0.8399663770856335 +100 +AcDbArc + 50 +133.8120979057 + 51 +226.1879020943 + 0 +ARC + 5 +83 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5098175737 + 20 +368.1707006358 + 30 +0.0 + 40 +0.200107768785933 +100 +AcDbArc + 50 +313.8263747889 + 51 +359.9921406775 + 0 +LINE + 5 +84 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.7099253406 + 20 +368.1706731868 + 30 +0.0 + 11 +148.7099253406 + 21 +370.3305070949 + 31 +0.0 + 0 +ARC + 5 +85 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5900202217 + 20 +370.3305234822 + 30 +0.0 + 40 +0.1199051200450481 +100 +AcDbArc + 50 +359.9921694514 + 51 +45.0183972297 + 0 +LINE + 5 +86 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.6747787168 + 20 +370.4153364254 + 30 +0.0 + 11 +148.5050731172 + 21 +370.58504277 + 31 +0.0 + 0 +ARC + 5 +87 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5900489089 + 20 +370.6699467703 + 30 +0.0 + 40 +0.1201231635795685 +100 +AcDbArc + 50 +180.0128717119 + 51 +224.9757867508 + 0 +LINE + 5 +88 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +148.4699257483 + 20 +370.669919ontinuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.0299484826 + 20 +72.3821479784 + 30 +0.0 + 40 +0.399977127854635 +100 +AcDbArc + 50 +292.6176918057 + 51 +0.0067619015 + 0 +ARC + 5 +4D2 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.2299252955 + 20 +71.9021632155 + 30 +0.0 + 40 +0.1199998892853113 +100 +AcDbArc + 50 +112.6196870788 + 51 +247.3803129212 + 0 +ARC + 5 +4D3 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.0299484881 + 20 +71.4221784593 + 30 +0.0 + 40 +0.3999771195634846 +100 +AcDbArc + 50 +0.0000677203 + 51 +67.382308554 + 0 +LINE + 5 +4D4 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.4299256077 + 20 +71.4221789321 + 30 +0.0 + 11 +149.4299256077 + 21 +68.8558890304 + 31 +0.0 + 0 +ARC + 5 +4D5 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.3098934248 + 20 +68.8558875882 + 30 +0.0 + 40 +0.1200321828299822 +100 +AcDbArc + 50 +284.0483029705 + 51 +0.0006883757 + 0 +LINE + 5 +4D6 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.3390300145 + 20 +68.7394453963 + 30 +0.0 + 11 +149.2808216085 + 21 +68.724901863 + 31 +0.0 + 0 +ARC + 5 +4D7 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.3099570381 + 20 +68.6084597995 + 30 +0.0 + 40 +0.1200317766406951 +100 +AcDbArc + 50 +104.0477806555 + 51 +179.9779884139 + 0 +LINE + 5 +4D8 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.1899252703 + 20 +68.6085059127 + 30 +0.0 + 11 +149.1899252703 + 21 +67.5958945235 + 31 +0.0 + 0 +ARC + 5 +4D9 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.309957026 + 20 +67.5958929344 + 30 +0.0 + 40 +0.1200317557485991 +100 +AcDbArc + 50 +179.999241474 + 51 +255.952222776 + 0 +LINE + 5 +4DA +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.2808216085 + 20 +67.4794508895 + 30 +0.0 + 11 +149.3390300145 + 21 +67.4649073562 + 31 +0.0 + 0 +ARC + 5 +4DB +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.3098934248 + 20 +67.3484651642 + 30 +0.0 + 40 +0.1200321828298969 +100 +AcDbArc + 50 +359.9993116244 + 51 +75.9516970296 + 0 +LINE + 5 +4DC +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.4299256077 + 20 +67.3484637221 + 30 +0.0 + 11 +149.4299256077 + 21 +64.7821738204 + 31 +0.0 + 0 +ARC + 5 +4DD +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.0299484881 + 20 +64.7821742931 + 30 +0.0 + 40 +0.3999771195634605 +100 +AcDbArc + 50 +292.617691446 + 51 +359.9999322797 + 0 +ARC + 5 +4DE +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.2299252955 + 20 +64.3021895369 + 30 +0.0 + 40 +0.1199998892853769 +100 +AcDbArc + 50 +112.6196870788 + 51 +247.3803129212 + 0 +ARC + 5 +4DF +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.0299484826 + 20 +63.8222047741 + 30 +0.0 + 40 +0.3999771278546918 +100 +AcDbArc + 50 +359.9932380985 + 51 +67.3823081943 + 0 +LINE + 5 +4E0 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.4299256077 + 20 +63.8221575698 + 30 +0.0 + 11 +149.4299256077 + 21 +42.2443224868 + 31 +0.0 + 0 +ARC + 5 +4E1 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +149.2877619365 + 20 +42.2443402896 + 30 +0.0 + 40 +0.1421636723032661 +100 +AcDbArc + 50 +215.0074908018 + 51 +359.9928249763 + 0 +LINE + 5 +4E2 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +149.1713189354 + 20 +42.1627833327 + 30 +0.0 + 11 +148.4940879812 + 21 +43.1299998244 + 31 +0.0 + 0 +ARC + 5 +4E3 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +148.5923363035 + 20 +43.1988138586 + 30 +0.0 + 40 +0.1199504236850504 +100 +AcDbArc + 50 +136.8044484108 + 51 +215.0077544772 + 0 +ARC + 5 +4E4 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +147.6299254989 + 20 +44.1021810107 + 30 +0.0 + 40 +1.200014262087228 +100 +AcDbArc + 50 +316.8133643338 + 51 +223.1866356662 + 0 +ARC + 5 +4E5 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +146.667516349 + 20 +43.1988139771 + 30 +0.0 + 40 +0.1199491362526016 +100 +AcDbArc + 50 +324.9917457236 + 51 +43.1960513885 + 0 +LINE + 5 +4E6 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +146.7657630166 + 20 +43.1299998244 + 30 +0.0 + 11 +146.1655196567 + 21 +42.2727419814 + 31 +0.0 + 0 +ARC + 5 +4E7 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +145.8378250788 + 20 +42.5022486061 + 30 +0.0 + 40 +0.4000712776530942 +100 +AcDbArc + 50 +270.0048248044 + 51 +324.9938514507 + 0 +LINE + 5 +4E8 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +145.8378587683 + 20 +42.1021773299 + 30 +0.0 + 11 +143.9099256714 + 21 +42.1021773299 + 31 +0.0 + 0 +ARC + 5 +4E9 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +143.9098934092 + 20 +42.1821451244 + 30 +0.0 + 40 +0.0799678010352872 +100 +AcDbArc + 50 +179.9674137886 + 51 +270.0231154488 + 0 +LINE + 5 +4EA +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +143.8299256211 + 20 +42.1821906051 + 30 +0.0 + 11 +143.8299256211 + 21 +42.7421881637 + 31 +0.0 + 0 +ARC + 5 +4EB +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +143.9099748178 + 20 +42.7421522491 + 30 +0.0 + 40 +0.080049204801129 +100 +AcDbArc + 50 +90.0351768672 + 51 +179.9742938954 + 0 +LINE + 5 +4EC +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +143.9099256714 + 20 +42.8222014388 + 30 +0.0 + 11 +145.3970798125 + 21 +42.8222014388 + 31 +0.0 + 0 +ARC + 5 +4ED +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +145.3970883777 + 20 +43.2221900281 + 30 +0.0 + 40 +0.3999885893651605 +100 +AcDbArc + 50 +269.9987730963 + 51 +21.5094255355 + 0 +ARC + 5 +4EE +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +147.6299070455 + 20 +44.102180655 + 30 +0.0 + 40 +1.999982807792672 +100 +AcDbArc + 50 +166.3277484711 + 51 +201.510375133 + 0 +ARC + 5 +4EF +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +145.4922360036 + 20 +44.6221751279 + 30 +0.0 + 40 +0.2000244053689678 +100 +AcDbArc + 50 +346.3324477609 + 51 +89.9922055192 + 0 +LINE + 5 +4F0 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbLine + 10 +145.4922632148 + 20 +44.8221995315 + 30 +0.0 + 11 +137.3675879856 + 21 +44.8221995315 + 31 +0.0 + 0 +ARC + 5 +4F1 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +137.3676151968 + 20 +44.6221751279 + 30 +0.0 + 40 +0.2000244053689526 +100 +AcDbArc + 50 +90.0077944808 + 51 +193.6675522391 + 0 +ARC + 5 +4F2 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +135.2299441549 + 20 +44.102180655 + 30 +0.0 + 40 +1.999982807792147 +100 +AcDbArc + 50 +338.489624867 + 51 +13.672251529 + 0 +ARC + 5 +4F3 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 7 +370 + 0 +100 +AcDbCircle + 10 +137.4627628227 + 20 +43.2221900281 + 30 +0.0 + 40 +0.399988589365143 +100 +AcDbArc + 50 +158.4905744645 + 51 +270.0012269037 + 0 +LINE + 5 +4F4 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 8 +370 + 0 +100 +AcDbLine + 10 +148.8260940482 + 20 +80.1358534774 + 30 +0.0 + 11 +148.8260940482 + 21 +103.7777020415 + 31 +0.0 + 0 +LINE + 5 +4F5 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 8 +370 + 0 +100 +AcDbLine + 10 +133.4835157563 + 20 +80.1027132949 + 30 +0.0 + 11 +133.4835157563 + 21 +103.7777020415 + 31 +0.0 + 0 +LINE + 5 +4F6 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 8 +370 + 0 +100 +AcDbLine + 10 +148.5235550275 + 20 +81.2455489119 + 30 +0.0 + 11 +148.5235550275 + 21 +103.7777020415 + 31 +0.0 + 0 +LINE + 5 +4F7 +330 +1F +100 +AcDbEntity + 8 +0 + 6 +Continuous + 62 + 8 +370 + 0 +100 +AcDbLine + 10 +148.1099256148 + 20 +82.7892615279 + 30 +0.0 + 11 +148.1099256148 + 21 +103.7777020415 + 31 +0.0 + 0 +POINT + 5 +4F8 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbPoint + 10 +142.0299255838 + 20 +-247.6988063932 + 30 +0.0 + 0 +POINT + 5 +4F9 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbPoint + 10 +149.4168593775 + 20 +447.9345399732 + 30 +0.0 + 0 +POINT + 5 +4FA +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbPoint + 10 +149.4168593775 + 20 +238.1745399732 + 30 +0.0 + 0 +POINT + 5 +4FB +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbPoint + 10 +147.8555696261 + 20 +245.6618616408 + 30 +0.0 + 0 +POINT + 5 +4FC +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbPoint + 10 +147.8555696261 + 20 +455.4218616408 + 30 +0.0 + 0 +POINT + 5 +4FD +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbPoint + 10 +148.0299255838 + 20 +35.8618616408 + 30 +0.0 + 0 +POINT + 5 +4FE +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbPoint + 10 +149.4168593775 + 20 +28.4145399732 + 30 +0.0 + 0 +POINT + 5 +4FF +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbPoint + 10 +133.4299255838 + 20 +660.3011936068 + 30 +0.0 + 0 +DIMENSION + 5 +500 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D + 10 +195.4299255838 + 20 +41.9821787182 + 30 +0.0 + 11 +195.4299255838 + 21 +34.5771309945 + 31 +0.0 + 70 + 160 + 1 +33 + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE0 +100 +AcDbAlignedDimension + 13 +142.0299255838 + 23 +28.7821787182 + 33 +0.0 + 14 +148.0299255838 + 24 +41.9821787182 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +50D +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_1 + 10 +171.4299255838 + 20 +287.499722104 + 30 +0.0 + 11 +171.4299255838 + 21 +271.6850735678 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +149.4168593775 + 23 +280.0124004364 + 33 +0.0 + 14 +147.8555696261 + 24 +287.499722104 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +51A +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_2 + 10 +171.4299255838 + 20 +210.3073934143 + 30 +0.0 + 11 +171.4299255838 + 21 +194.8678981433 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +149.4168593775 + 23 +202.8200717467 + 33 +0.0 + 14 +147.8555696261 + 24 +210.3073934143 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +526 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_3 + 10 +171.4299255838 + 20 +133.7256838344 + 30 +0.0 + 11 +171.4299255838 + 21 +113.1236101725 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +149.4168593775 + 23 +126.2783621669 + 33 +0.0 + 14 +148.0299255838 + 24 +133.7256838344 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +532 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_4 + 10 +195.4299255838 + 20 +41.9821787182 + 30 +0.0 + 11 +195.4299255838 + 21 +84.1586135498 + 31 +0.0 + 70 + 160 + 1 +675,902 + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +148.0299255838 + 23 +133.7256838344 + 33 +0.0 + 14 +148.0299255838 + 24 +41.9821787182 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +53C +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_5 + 10 +195.3191971725 + 20 +133.7649839595 + 30 +0.0 + 11 +195.2817915125 + 21 +178.7746730971 + 31 +0.0 + 70 + 160 + 1 +524,500 + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +147.8555696261 + 23 +210.3073934143 + 33 +0.0 + 14 +148.0299255838 + 24 +133.7256838344 + 34 +0.0 + 50 +-89.9523838979 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +545 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_6 + 10 +195.2555696261 + 20 +210.3073934143 + 30 +0.0 + 11 +195.2555696261 + 21 +246.0726158741 + 31 +0.0 + 70 + 160 + 1 +524,400 + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +147.8555696261 + 23 +287.499722104 + 33 +0.0 + 14 +147.8555696261 + 24 +210.3073934143 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +54E +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_7 + 10 +195.2555696261 + 20 +397.2202084954 + 30 +0.0 + 11 +195.2555696261 + 21 +357.7845521004 + 31 +0.0 + 70 + 160 + 1 +545,698 + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +147.8555696261 + 23 +287.499722104 + 33 +0.0 + 14 +145.8378589248 + 24 +397.2202084954 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +557 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_8 + 10 +219.4299255838 + 20 +397.2202084954 + 30 +0.0 + 11 +219.4299255838 + 21 +226.31135989 + 31 +0.0 + 70 + 160 + 1 +Kozijnmaat = + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +142.0299255838 + 23 +28.7821787182 + 33 +0.0 + 14 +145.8378589248 + 24 +397.2202084954 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +561 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_9 + 10 +99.2299255838 + 20 +28.7821787182 + 30 +0.0 + 11 +99.2299255838 + 21 +214.5361780403 + 31 +0.0 + 70 + 160 + 1 +DMH = + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE2 +100 +AcDbAlignedDimension + 13 +133.4299255838 + 23 +383.8202084954 + 33 +0.0 + 14 +142.0299255838 + 24 +28.7821787182 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +56C +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_10 + 10 +117.2299255838 + 20 +148.4450158005 + 30 +0.0 + 11 +117.2299255838 + 21 +157.3719824392 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +133.5499255838 + 23 +147.8850158005 + 33 +0.0 + 14 +133.5499255838 + 24 +148.4450158005 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +578 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_11 + 10 +117.2299255838 + 20 +224.9867253803 + 30 +0.0 + 11 +117.2299255838 + 21 +236.5334651005 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +133.5499255838 + 23 +224.4267253803 + 33 +0.0 + 14 +133.5499255838 + 24 +224.9867253803 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +584 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN +100 +AcDbDimension + 2 +_D_12 + 10 +117.2299255838 + 20 +302.17905407 + 30 +0.0 + 11 +117.2299255838 + 21 +311.8110919194 + 31 +0.0 + 70 + 160 + 1 +<> + 71 + 2 + 42 +-1.0 + 3 +SLDDIMSTYLE1 +100 +AcDbAlignedDimension + 13 +133.5499255838 + 23 +301.61905407 + 33 +0.0 + 14 +133.5499255838 + 24 +302.17905407 + 34 +0.0 + 50 +90.0 +100 +AcDbRotatedDimension + 0 +LINE + 5 +590 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +103.7777066237 + 30 +0.0 + 11 +142.3699255838 + 21 +103.7777066237 + 31 +0.0 + 0 +LINE + 5 +591 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +142.3699255838 + 20 +103.7777066237 + 30 +0.0 + 11 +143.3699255838 + 21 +105.7777066237 + 31 +0.0 + 0 +LINE + 5 +592 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +143.3699255838 + 20 +105.7777066237 + 30 +0.0 + 11 +141.3699255838 + 21 +103.7777066237 + 31 +0.0 + 0 +LINE + 5 +593 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +141.3699255838 + 20 +103.7777066237 + 30 +0.0 + 11 +139.3699255838 + 21 +101.7777066237 + 31 +0.0 + 0 +LINE + 5 +594 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +139.3699255838 + 20 +101.7777066237 + 30 +0.0 + 11 +140.3699255838 + 21 +103.7777066237 + 31 +0.0 + 0 +LINE + 5 +595 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +140.3699255838 + 20 +103.7777066237 + 30 +0.0 + 11 +130.2549255838 + 21 +103.7777066237 + 31 +0.0 + 0 +LINE + 5 +596 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +105.7777066237 + 30 +0.0 + 11 +142.3699255838 + 21 +105.7777066237 + 31 +0.0 + 0 +LINE + 5 +597 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +142.3699255838 + 20 +105.7777066237 + 30 +0.0 + 11 +143.3699255838 + 21 +107.7777066237 + 31 +0.0 + 0 +LINE + 5 +598 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +143.3699255838 + 20 +107.7777066237 + 30 +0.0 + 11 +141.3699255838 + 21 +105.7777066237 + 31 +0.0 + 0 +LINE + 5 +599 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +141.3699255838 + 20 +105.7777066237 + 30 +0.0 + 11 +139.3699255838 + 21 +103.7777066237 + 31 +0.0 + 0 +LINE + 5 +59A +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +139.3699255838 + 20 +103.7777066237 + 30 +0.0 + 11 +140.3699255838 + 21 +105.7777066237 + 31 +0.0 + 0 +LINE + 5 +59B +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +140.3699255838 + 20 +105.7777066237 + 30 +0.0 + 11 +130.2549255838 + 21 +105.7777066237 + 31 +0.0 + 0 +LINE + 5 +59C +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +179.2366515846 + 30 +0.0 + 11 +142.3699255838 + 21 +179.2366515846 + 31 +0.0 + 0 +LINE + 5 +59D +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +142.3699255838 + 20 +179.2366515846 + 30 +0.0 + 11 +143.3699255838 + 21 +181.2366515846 + 31 +0.0 + 0 +LINE + 5 +59E +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +143.3699255838 + 20 +181.2366515846 + 30 +0.0 + 11 +141.3699255838 + 21 +179.2366515846 + 31 +0.0 + 0 +LINE + 5 +59F +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +141.3699255838 + 20 +179.2366515846 + 30 +0.0 + 11 +139.3699255838 + 21 +177.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A0 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +139.3699255838 + 20 +177.2366515846 + 30 +0.0 + 11 +140.3699255838 + 21 +179.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A1 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +140.3699255838 + 20 +179.2366515846 + 30 +0.0 + 11 +130.2549255838 + 21 +179.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A2 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +181.2366515846 + 30 +0.0 + 11 +142.3699255838 + 21 +181.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A3 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +142.3699255838 + 20 +181.2366515846 + 30 +0.0 + 11 +143.3699255838 + 21 +183.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A4 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +143.3699255838 + 20 +183.2366515846 + 30 +0.0 + 11 +141.3699255838 + 21 +181.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A5 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +141.3699255838 + 20 +181.2366515846 + 30 +0.0 + 11 +139.3699255838 + 21 +179.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A6 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +139.3699255838 + 20 +179.2366515846 + 30 +0.0 + 11 +140.3699255838 + 21 +181.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A7 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +140.3699255838 + 20 +181.2366515846 + 30 +0.0 + 11 +130.2549255838 + 21 +181.2366515846 + 31 +0.0 + 0 +LINE + 5 +5A8 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +256.4750445598 + 30 +0.0 + 11 +142.3699255838 + 21 +256.4750445598 + 31 +0.0 + 0 +LINE + 5 +5A9 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +142.3699255838 + 20 +256.4750445598 + 30 +0.0 + 11 +143.3699255838 + 21 +258.4750445598 + 31 +0.0 + 0 +LINE + 5 +5AA +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +143.3699255838 + 20 +258.4750445598 + 30 +0.0 + 11 +141.3699255838 + 21 +256.4750445598 + 31 +0.0 + 0 +LINE + 5 +5AB +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +141.3699255838 + 20 +256.4750445598 + 30 +0.0 + 11 +139.3699255838 + 21 +254.4750445598 + 31 +0.0 + 0 +LINE + 5 +5AC +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +139.3699255838 + 20 +254.4750445598 + 30 +0.0 + 11 +140.3699255838 + 21 +256.4750445598 + 31 +0.0 + 0 +LINE + 5 +5AD +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +140.3699255838 + 20 +256.4750445598 + 30 +0.0 + 11 +130.2549255838 + 21 +256.4750445598 + 31 +0.0 + 0 +LINE + 5 +5AE +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +258.4750445598 + 30 +0.0 + 11 +142.3699255838 + 21 +258.4750445598 + 31 +0.0 + 0 +LINE + 5 +5AF +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +142.3699255838 + 20 +258.4750445598 + 30 +0.0 + 11 +143.3699255838 + 21 +260.4750445598 + 31 +0.0 + 0 +LINE + 5 +5B0 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +143.3699255838 + 20 +260.4750445598 + 30 +0.0 + 11 +141.3699255838 + 21 +258.4750445598 + 31 +0.0 + 0 +LINE + 5 +5B1 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +141.3699255838 + 20 +258.4750445598 + 30 +0.0 + 11 +139.3699255838 + 21 +256.4750445598 + 31 +0.0 + 0 +LINE + 5 +5B2 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +139.3699255838 + 20 +256.4750445598 + 30 +0.0 + 11 +140.3699255838 + 21 +258.4750445598 + 31 +0.0 + 0 +LINE + 5 +5B3 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +140.3699255838 + 20 +258.4750445598 + 30 +0.0 + 11 +130.2549255838 + 21 +258.4750445598 + 31 +0.0 + 0 +LINE + 5 +5B4 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +334.7369117996 + 30 +0.0 + 11 +142.3699255838 + 21 +334.7369117996 + 31 +0.0 + 0 +LINE + 5 +5B5 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +142.3699255838 + 20 +334.7369117996 + 30 +0.0 + 11 +143.3699255838 + 21 +336.7369117996 + 31 +0.0 + 0 +LINE + 5 +5B6 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +143.3699255838 + 20 +336.7369117996 + 30 +0.0 + 11 +141.3699255838 + 21 +334.7369117996 + 31 +0.0 + 0 +LINE + 5 +5B7 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +141.3699255838 + 20 +334.7369117996 + 30 +0.0 + 11 +139.3699255838 + 21 +332.7369117996 + 31 +0.0 + 0 +LINE + 5 +5B8 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +139.3699255838 + 20 +332.7369117996 + 30 +0.0 + 11 +140.3699255838 + 21 +334.7369117996 + 31 +0.0 + 0 +LINE + 5 +5B9 +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +140.3699255838 + 20 +334.7369117996 + 30 +0.0 + 11 +130.2549255838 + 21 +334.7369117996 + 31 +0.0 + 0 +LINE + 5 +5BA +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +152.4849255838 + 20 +336.7369117996 + 30 +0.0 + 11 +142.3699255838 + 21 +336.7369117996 + 31 +0.0 + 0 +LINE + 5 +5BB +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +142.3699255838 + 20 +336.7369117996 + 30 +0.0 + 11 +143.3699255838 + 21 +338.7369117996 + 31 +0.0 + 0 +LINE + 5 +5BC +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +143.3699255838 + 20 +338.7369117996 + 30 +0.0 + 11 +141.3699255838 + 21 +336.7369117996 + 31 +0.0 + 0 +LINE + 5 +5BD +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +141.3699255838 + 20 +336.7369117996 + 30 +0.0 + 11 +139.3699255838 + 21 +334.7369117996 + 31 +0.0 + 0 +LINE + 5 +5BE +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +139.3699255838 + 20 +334.7369117996 + 30 +0.0 + 11 +140.3699255838 + 21 +336.7369117996 + 31 +0.0 + 0 +LINE + 5 +5BF +330 +1F +100 +AcDbEntity + 8 +HARTLIJN + 62 + 7 +100 +AcDbLine + 10 +140.3699255838 + 20 +336.7369117996 + 30 +0.0 + 11 +130.2549255838 + 21 +336.7369117996 + 31 +0.0 + 0 +ENDSEC + 0 +SECTION + 2 +OBJECTS + 0 +DICTIONARY + 5 +C +330 +0 +100 +AcDbDictionary +281 + 1 + 3 +ACAD_GROUP +350 +D + 3 +ACAD_LAYOUT +350 +1A + 3 +ACAD_MLINESTYLE +350 +17 + 3 +ACAD_PLOTSETTINGS +350 +19 + 3 +ACAD_PLOTSTYLENAME +350 +E + 0 +DICTIONARY + 5 +D +102 +{ACAD_REACTORS +330 +C +102 +} +330 +C +100 +AcDbDictionary +281 + 1 + 0 +DICTIONARY + 5 +1A +102 +{ACAD_REACTORS +330 +C +102 +} +330 +C +100 +AcDbDictionary +281 + 1 + 3 +Layout1 +350 +1E + 3 +Layout2 +350 +26 + 3 +Model +350 +22 + 0 +DICTIONARY + 5 +17 +102 +{ACAD_REACTORS +330 +C +102 +} +330 +C +100 +AcDbDictionary +281 + 1 + 3 +Standard +350 +18 + 0 +DICTIONARY + 5 +19 +102 +{ACAD_REACTORS +330 +C +102 +} +330 +C +100 +AcDbDictionary +281 + 1 + 0 +ACDBDICTIONARYWDFLT + 5 +E +102 +{ACAD_REACTORS +330 +C +102 +} +330 +C +100 +AcDbDictionary +281 + 1 + 3 +Normal +350 +F +100 +AcDbDictionaryWithDefault +340 +F + 0 +LAYOUT + 5 +1E +102 +{ACAD_REACTORS +330 +1A +102 +} +330 +1A +100 +AcDbPlotSettings + 1 + + 2 +none_device + 4 + + 6 + + 40 +0.0 + 41 +0.0 + 42 +0.0 + 43 +0.0 + 44 +0.0 + 45 +0.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +0.0 +140 +0.0 +141 +0.0 +142 +1.0 +143 +1.0 + 70 + 688 + 72 + 0 + 73 + 0 + 74 + 5 + 7 + + 75 + 16 +147 +1.0 +148 +0.0 +149 +0.0 +100 +AcDbLayout + 1 +Layout1 + 70 + 1 + 71 + 1 + 10 +0.0 + 20 +0.0 + 11 +420.0 + 21 +297.0 + 12 +0.0 + 22 +0.0 + 32 +0.0 + 14 +1.0000000000E+20 + 24 +1.0000000000E+20 + 34 +1.0000000000E+20 + 15 +-1.0000000000E+20 + 25 +-1.0000000000E+20 + 35 +-1.0000000000E+20 +146 +0.0 + 13 +0.0 + 23 +0.0 + 33 +0.0 + 16 +1.0 + 26 +0.0 + 36 +0.0 + 17 +0.0 + 27 +1.0 + 37 +0.0 + 76 + 0 +330 +1B + 0 +LAYOUT + 5 +26 +102 +{ACAD_REACTORS +330 +1A +102 +} +330 +1A +100 +AcDbPlotSettings + 1 + + 2 +none_device + 4 + + 6 + + 40 +0.0 + 41 +0.0 + 42 +0.0 + 43 +0.0 + 44 +0.0 + 45 +0.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +0.0 +140 +0.0 +141 +0.0 +142 +1.0 +143 +1.0 + 70 + 688 + 72 + 0 + 73 + 0 + 74 + 5 + 7 + + 75 + 16 +147 +1.0 +148 +0.0 +149 +0.0 +100 +AcDbLayout + 1 +Layout2 + 70 + 1 + 71 + 2 + 10 +0.0 + 20 +0.0 + 11 +0.0 + 21 +0.0 + 12 +0.0 + 22 +0.0 + 32 +0.0 + 14 +0.0 + 24 +0.0 + 34 +0.0 + 15 +0.0 + 25 +0.0 + 35 +0.0 +146 +0.0 + 13 +0.0 + 23 +0.0 + 33 +0.0 + 16 +1.0 + 26 +0.0 + 36 +0.0 + 17 +0.0 + 27 +1.0 + 37 +0.0 + 76 + 0 +330 +23 + 0 +LAYOUT + 5 +22 +102 +{ACAD_REACTORS +330 +1A +102 +} +330 +1A +100 +AcDbPlotSettings + 1 + + 2 +none_device + 4 + + 6 + + 40 +0.0 + 41 +0.0 + 42 +0.0 + 43 +0.0 + 44 +0.0 + 45 +0.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +0.0 +140 +0.0 +141 +0.0 +142 +1.0 +143 +1.0 + 70 + 1712 + 72 + 0 + 73 + 0 + 74 + 0 + 7 + + 75 + 0 +147 +1.0 +148 +0.0 +149 +0.0 +100 +AcDbLayout + 1 +Model + 70 + 1 + 71 + 0 + 10 +0.0 + 20 +0.0 + 11 +297.0 + 21 +420.0 + 12 +0.0 + 22 +0.0 + 32 +0.0 + 14 +0.0 + 24 +0.0 + 34 +0.0 + 15 +297.0 + 25 +420.0 + 35 +0.0 +146 +0.0 + 13 +0.0 + 23 +0.0 + 33 +0.0 + 16 +1.0 + 26 +0.0 + 36 +0.0 + 17 +0.0 + 27 +1.0 + 37 +0.0 + 76 + 0 +330 +1F +331 +29 + 0 +MLINESTYLE + 5 +18 +102 +{ACAD_REACTORS +330 +17 +102 +} +330 +17 +100 +AcDbMlineStyle + 2 +Standard + 70 + 0 + 3 + + 62 + 256 + 51 +90.0 + 52 +90.0 + 71 + 2 + 49 +0.5 + 62 + 256 + 6 +BYLAYER + 49 +-0.5 + 62 + 256 + 6 +BYLAYER + 0 +ACDBPLACEHOLDER + 5 +F +102 +{ACAD_REACTORS +330 +E +102 +} +330 +E + 0 +ENDSEC + 0 +EOF diff --git a/filter/source/graphicfilter/icgm/cgm.cxx b/filter/source/graphicfilter/icgm/cgm.cxx index 00d3ceca35676..7cdac8fadd540 100644 --- a/filter/source/graphicfilter/icgm/cgm.cxx +++ b/filter/source/graphicfilter/icgm/cgm.cxx @@ -101,7 +101,7 @@ sal_uInt32 CGM::GetBackGroundColor() sal_uInt32 CGM::ImplGetUI16( sal_uInt32 /*nAlign*/ ) { sal_uInt8* pSource = mpSource + mnParaSize; - if (pSource + 2 > mpEndValidSource) + if (mpEndValidSource - pSource < 2) throw css::uno::Exception("attempt to read past end of input", nullptr); mnParaSize += 2; return ( pSource[ 0 ] << 8 ) + pSource[ 1 ]; @@ -115,7 +115,7 @@ sal_uInt8 CGM::ImplGetByte( sal_uInt32 nSource, sal_uInt32 nPrecision ) sal_Int32 CGM::ImplGetI( sal_uInt32 nPrecision ) { sal_uInt8* pSource = mpSource + mnParaSize; - if (pSource + nPrecision > mpEndValidSource) + if (static_cast(mpEndValidSource - pSource) < nPrecision) throw css::uno::Exception("attempt to read past end of input", nullptr); mnParaSize += nPrecision; switch( nPrecision ) @@ -147,7 +147,7 @@ sal_Int32 CGM::ImplGetI( sal_uInt32 nPrecision ) sal_uInt32 CGM::ImplGetUI( sal_uInt32 nPrecision ) { sal_uInt8* pSource = mpSource + mnParaSize; - if (pSource + nPrecision > mpEndValidSource) + if (static_cast(mpEndValidSource - pSource) < nPrecision) throw css::uno::Exception("attempt to read past end of input", nullptr); mnParaSize += nPrecision; switch( nPrecision ) @@ -202,7 +202,7 @@ double CGM::ImplGetFloat( RealPrecision eRealPrecision, sal_uInt32 nRealSize ) const bool bCompatible = false; #endif - if (mpSource + mnParaSize + nRealSize > mpEndValidSource) + if (static_cast(mpEndValidSource - (mpSource + mnParaSize)) < nRealSize) throw css::uno::Exception("attempt to read past end of input", nullptr); if ( bCompatible ) diff --git a/filter/source/graphicfilter/icgm/class1.cxx b/filter/source/graphicfilter/icgm/class1.cxx index 641355924f747..895dd8247d0b9 100644 --- a/filter/source/graphicfilter/icgm/class1.cxx +++ b/filter/source/graphicfilter/icgm/class1.cxx @@ -176,8 +176,11 @@ void CGM::ImplDoClass1() { while ( mnParaSize < mnElementSize ) { - sal_uInt32 nSize; - nSize = ImplGetUI( 1 ); + sal_uInt32 nSize = ImplGetUI(1); + + if (static_cast(mpEndValidSource - (mpSource + mnParaSize)) < nSize) + throw css::uno::Exception("attempt to read past end of input", nullptr); + pElement->aFontList.InsertName( mpSource + mnParaSize, nSize ); mnParaSize += nSize; } @@ -187,10 +190,12 @@ void CGM::ImplDoClass1() { while ( mnParaSize < mnElementSize ) { - sal_uInt32 nCharSetType; - sal_uInt32 nSize; - nCharSetType = ImplGetUI16(); - nSize = ImplGetUI( 1 ); + sal_uInt32 nCharSetType = ImplGetUI16(); + sal_uInt32 nSize = ImplGetUI(1); + + if (static_cast(mpEndValidSource - (mpSource + mnParaSize)) < nSize) + throw css::uno::Exception("attempt to read past end of input", nullptr); + pElement->aFontList.InsertCharSet( (CharSetType)nCharSetType, mpSource + mnParaSize, nSize ); mnParaSize += nSize; } diff --git a/filter/source/graphicfilter/icgm/class2.cxx b/filter/source/graphicfilter/icgm/class2.cxx index 93b3679381b66..bedcd2e37de20 100644 --- a/filter/source/graphicfilter/icgm/class2.cxx +++ b/filter/source/graphicfilter/icgm/class2.cxx @@ -147,7 +147,10 @@ void CGM::ImplDoClass2() aTempLineBundle.eLineType = (LineType)ImplGetI( pElement->nIndexPrecision ); aTempLineBundle.nLineWidth = ImplGetFloat( pElement->eRealPrecision, pElement->nRealSize ); aTempLineBundle.SetColor( ImplGetBitmapColor() ); + const bool bUpdateLineBundle = aTempLineBundle.GetIndex() == pElement->pLineBundle->GetIndex(); CGMElements::InsertBundle( pElement->aLineList, aTempLineBundle ); + if (bUpdateLineBundle) + pElement->pLineBundle = static_cast(CGMElements::GetBundleIndex(aTempLineBundle.GetIndex(), pElement->aLineList, pElement->aLineBundle)); } break; case 0x0c : /*Marker Representation*/ @@ -157,7 +160,10 @@ void CGM::ImplDoClass2() aTempMarkerBundle.eMarkerType = (MarkerType)ImplGetI( pElement->nIndexPrecision ); aTempMarkerBundle.nMarkerSize = ImplGetFloat( pElement->eRealPrecision, pElement->nRealSize ); aTempMarkerBundle.SetColor( ImplGetBitmapColor() ); + const bool bUpdateMarkerBundle = aTempMarkerBundle.GetIndex() == pElement->pMarkerBundle->GetIndex(); CGMElements::InsertBundle( pElement->aMarkerList, aTempMarkerBundle ); + if (bUpdateMarkerBundle) + pElement->pMarkerBundle = static_cast(CGMElements::GetBundleIndex(aTempMarkerBundle.GetIndex(), pElement->aMarkerList, pElement->aMarkerBundle)); } break; case 0x0d : /*Text Representation*/ @@ -169,7 +175,10 @@ void CGM::ImplDoClass2() aTempTextBundle.nCharacterSpacing = ImplGetFloat( pElement->eRealPrecision, pElement->nRealSize ); aTempTextBundle.nCharacterExpansion = ImplGetFloat( pElement->eRealPrecision, pElement->nRealSize ); aTempTextBundle.SetColor( ImplGetBitmapColor() ); + const bool bUpdateTextBundle = aTempTextBundle.GetIndex() == pElement->pTextBundle->GetIndex(); CGMElements::InsertBundle( pElement->aTextList, aTempTextBundle ); + if (bUpdateTextBundle) + pElement->pTextBundle = static_cast(CGMElements::GetBundleIndex(aTempTextBundle.GetIndex(), pElement->aTextList, pElement->aTextBundle)); } break; case 0x0e : /*Fill Representation*/ @@ -180,7 +189,10 @@ void CGM::ImplDoClass2() aTempFillBundle.SetColor( ImplGetBitmapColor() ); aTempFillBundle.nFillPatternIndex = ImplGetI( pElement->nIndexPrecision ); aTempFillBundle.nFillHatchIndex = ImplGetI( pElement->nIndexPrecision ); + const bool bUpdateFillBundle = aTempFillBundle.GetIndex() == pElement->pFillBundle->GetIndex(); CGMElements::InsertBundle( pElement->aFillList, aTempFillBundle ); + if (bUpdateFillBundle) + pElement->pFillBundle = static_cast(CGMElements::GetBundleIndex(aTempFillBundle.GetIndex(), pElement->aFillList, pElement->aFillBundle)); } break; case 0x0f : /*Edge Representation*/ @@ -190,7 +202,10 @@ void CGM::ImplDoClass2() aTempEdgeBundle.eEdgeType = (EdgeType)ImplGetI( pElement->nIndexPrecision ); aTempEdgeBundle.nEdgeWidth = ImplGetFloat( pElement->eRealPrecision, pElement->nRealSize ); aTempEdgeBundle.SetColor( ImplGetBitmapColor() ); + const bool bUpdateEdgeBundle = aTempEdgeBundle.GetIndex() == pElement->pEdgeBundle->GetIndex(); CGMElements::InsertBundle( pElement->aEdgeList, aTempEdgeBundle ); + if (bUpdateEdgeBundle) + pElement->pEdgeBundle = static_cast(CGMElements::GetBundleIndex(aTempEdgeBundle.GetIndex(), pElement->aEdgeList, pElement->aEdgeBundle)); } break; case 0x10 : /*Interior Style Specification Mode */break; // NS diff --git a/filter/source/graphicfilter/icgm/class4.cxx b/filter/source/graphicfilter/icgm/class4.cxx index 442f10dc087d3..e97781d314e7d 100644 --- a/filter/source/graphicfilter/icgm/class4.cxx +++ b/filter/source/graphicfilter/icgm/class4.cxx @@ -178,15 +178,18 @@ void CGM::ImplDoClass4() case 0x04 : /*Text*/ { FloatPoint aFloatPoint; - sal_uInt32 nType, nSize; if ( mbFigure ) mpOutAct->CloseRegion(); ImplGetPoint ( aFloatPoint, true ); - nType = ImplGetUI16( 4 ); - nSize = ImplGetUI( 1 ); - mpSource[ mnParaSize + nSize ] = 0; + sal_uInt32 nType = ImplGetUI16( 4 ); + sal_uInt32 nSize = ImplGetUI( 1 ); + + if (static_cast(mpEndValidSource - (mpSource + mnParaSize)) <= nSize) + throw css::uno::Exception("attempt to read past end of input", nullptr); + + mpSource[mnParaSize + nSize] = 0; awt::Size aSize; awt::Point aPoint( (long)aFloatPoint.X, (long)aFloatPoint.Y ); @@ -200,7 +203,6 @@ void CGM::ImplDoClass4() { double dx, dy; FloatPoint aFloatPoint; - sal_uInt32 nType, nSize; if ( mbFigure ) mpOutAct->CloseRegion(); @@ -219,8 +221,11 @@ void CGM::ImplDoClass4() ImplMapDouble( dy ); ImplGetPoint ( aFloatPoint, true ); - nType = ImplGetUI16( 4 ); - nSize = ImplGetUI( 1 ); + sal_uInt32 nType = ImplGetUI16(4); + sal_uInt32 nSize = ImplGetUI(1); + + if (static_cast(mpEndValidSource - (mpSource + mnParaSize)) <= nSize) + throw css::uno::Exception("attempt to read past end of input", nullptr); mpSource[ mnParaSize + nSize ] = 0; @@ -234,10 +239,12 @@ void CGM::ImplDoClass4() case 0x06 : /*Append Text*/ { - sal_uInt32 nSize; sal_uInt32 nType = ImplGetUI16( 4 ); + sal_uInt32 nSize = ImplGetUI( 1 ); + + if (static_cast(mpEndValidSource - (mpSource + mnParaSize)) <= nSize) + throw css::uno::Exception("attempt to read past end of input", nullptr); - nSize = ImplGetUI( 1 ); mpSource[ mnParaSize + nSize ] = 0; mpOutAct->AppendText( reinterpret_cast(mpSource) + mnParaSize, nSize, (FinalFlag)nType ); diff --git a/filter/source/graphicfilter/idxf/dxf2mtf.cxx b/filter/source/graphicfilter/idxf/dxf2mtf.cxx index 8c2db883b9dba..9255fb9f5ec2b 100644 --- a/filter/source/graphicfilter/idxf/dxf2mtf.cxx +++ b/filter/source/graphicfilter/idxf/dxf2mtf.cxx @@ -680,6 +680,10 @@ void DXF2GDIMetaFile::DrawDimensionEntity(const DXFDimensionEntity & rE, const D void DXF2GDIMetaFile::DrawEntities(const DXFEntities & rEntities, const DXFTransform & rTransform) { + if (rEntities.mbBeingDrawn) + return; + rEntities.mbBeingDrawn = true; + sal_uLong nCount=0; DXFTransform aET; const DXFTransform * pT; @@ -745,6 +749,8 @@ void DXF2GDIMetaFile::DrawEntities(const DXFEntities & rEntities, pE=pE->pSucc; nCount++; } + + rEntities.mbBeingDrawn = false; } diff --git a/filter/source/graphicfilter/idxf/dxfentrd.cxx b/filter/source/graphicfilter/idxf/dxfentrd.cxx index 85508ac2d1ccb..d4f7e30e6d086 100644 --- a/filter/source/graphicfilter/idxf/dxfentrd.cxx +++ b/filter/source/graphicfilter/idxf/dxfentrd.cxx @@ -422,8 +422,11 @@ void DXFLWPolyLineEntity::EvaluateGroup( DXFGroupReader & rDGR ) case 90 : { nCount = rDGR.GetI(); - if ( nCount ) + // limit alloc to max reasonable size based on remaining data in stream + if (nCount > 0 && static_cast(nCount) <= rDGR.remainingSize()) pP = new DXFVector[ nCount ]; + else + nCount = 0; } break; case 70: nFlags = rDGR.GetI(); break; @@ -600,8 +603,11 @@ bool DXFBoundaryPathData::EvaluateGroup( DXFGroupReader & rDGR ) case 93 : { nPointCount = rDGR.GetI(); - if ( nPointCount ) + // limit alloc to max reasonable size based on remaining data in stream + if (nPointCount > 0 && static_cast(nPointCount) <= rDGR.remainingSize()) pP = new DXFVector[ nPointCount ]; + else + nPointCount = 0; } break; case 72 : nHasBulgeFlag = rDGR.GetI(); break; @@ -679,8 +685,11 @@ void DXFHatchEntity::EvaluateGroup( DXFGroupReader & rDGR ) { bIsInBoundaryPathContext = true; nBoundaryPathCount = rDGR.GetI(); - if ( nBoundaryPathCount ) + // limit alloc to max reasonable size based on remaining data in stream + if (nBoundaryPathCount > 0 && static_cast(nBoundaryPathCount) <= rDGR.remainingSize()) pBoundaryPathData = new DXFBoundaryPathData[ nBoundaryPathCount ]; + else + nBoundaryPathCount = 0; } break; case 75 : diff --git a/filter/source/graphicfilter/idxf/dxfentrd.hxx b/filter/source/graphicfilter/idxf/dxfentrd.hxx index 63b69b86eb463..bfeffc481924e 100644 --- a/filter/source/graphicfilter/idxf/dxfentrd.hxx +++ b/filter/source/graphicfilter/idxf/dxfentrd.hxx @@ -511,10 +511,19 @@ class DXFEntities { public: - DXFEntities(); - ~DXFEntities(); + DXFEntities() + : pFirst(nullptr) + , mbBeingDrawn(false) + { + } + + ~DXFEntities() + { + Clear(); + } DXFBasicEntity * pFirst; // list of entities, READ ONLY! + mutable bool mbBeingDrawn; // guard for loop in entity parsing void Read(DXFGroupReader & rDGR); // read entities per rGDR of a DXF file until a @@ -525,18 +534,6 @@ public: // deletes all entities }; -inline DXFEntities::DXFEntities() -{ - pFirst=nullptr; -} - - -inline DXFEntities::~DXFEntities() -{ - Clear(); -} - - #endif diff --git a/filter/source/graphicfilter/idxf/dxfgrprd.cxx b/filter/source/graphicfilter/idxf/dxfgrprd.cxx index caa2c4263bf2b..a6c02a408c7cd 100644 --- a/filter/source/graphicfilter/idxf/dxfgrprd.cxx +++ b/filter/source/graphicfilter/idxf/dxfgrprd.cxx @@ -217,5 +217,9 @@ void DXFGroupReader::ReadS() S = DXFReadLine(rIS); } +sal_uInt64 DXFGroupReader::remainingSize() const +{ + return rIS.remainingSize(); +} /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/filter/source/graphicfilter/idxf/dxfgrprd.hxx b/filter/source/graphicfilter/idxf/dxfgrprd.hxx index c936b33b428b4..09bbcd3676e4b 100644 --- a/filter/source/graphicfilter/idxf/dxfgrprd.hxx +++ b/filter/source/graphicfilter/idxf/dxfgrprd.hxx @@ -59,6 +59,7 @@ public: // This read must have returned a group code for datatype String. // If not NULL is returend + sal_uInt64 remainingSize() const; private: long ReadI(); diff --git a/filter/source/graphicfilter/idxf/dxfreprd.cxx b/filter/source/graphicfilter/idxf/dxfreprd.cxx index 4373e51a16986..93847e53acc4e 100644 --- a/filter/source/graphicfilter/idxf/dxfreprd.cxx +++ b/filter/source/graphicfilter/idxf/dxfreprd.cxx @@ -132,11 +132,11 @@ void DXFPalette::SetColor(sal_uInt8 nIndex, sal_uInt8 nRed, sal_uInt8 nGreen, sa DXFRepresentation::DXFRepresentation() : mEnc(RTL_TEXTENCODING_DONTKNOW) + , mbInCalc(false) { setGlobalLineTypeScale(1.0); } - DXFRepresentation::~DXFRepresentation() { } @@ -293,6 +293,10 @@ void DXFRepresentation::ReadHeader(DXFGroupReader & rDGR) void DXFRepresentation::CalcBoundingBox(const DXFEntities & rEntities, DXFBoundingBox & rBox) { + if (mbInCalc) + return; + mbInCalc = true; + DXFBasicEntity * pBE=rEntities.pFirst; while (pBE!=nullptr) { switch (pBE->eType) { @@ -437,6 +441,7 @@ void DXFRepresentation::CalcBoundingBox(const DXFEntities & rEntities, } pBE=pBE->pSucc; } + mbInCalc = false; } namespace { diff --git a/filter/source/graphicfilter/idxf/dxfreprd.hxx b/filter/source/graphicfilter/idxf/dxfreprd.hxx index a7e15b274a336..2f8fc7af90e39 100644 --- a/filter/source/graphicfilter/idxf/dxfreprd.hxx +++ b/filter/source/graphicfilter/idxf/dxfreprd.hxx @@ -92,6 +92,8 @@ public: double mfGlobalLineTypeScale; // $LTSCALE + bool mbInCalc; // guard for self-recursive bounding box calc + DXFRepresentation(); ~DXFRepresentation(); diff --git a/filter/source/graphicfilter/ieps/ieps.cxx b/filter/source/graphicfilter/ieps/ieps.cxx index f50f9968cab0b..817a0efada761 100644 --- a/filter/source/graphicfilter/ieps/ieps.cxx +++ b/filter/source/graphicfilter/ieps/ieps.cxx @@ -69,17 +69,19 @@ static sal_uInt8* ImplSearchEntry( sal_uInt8* pSource, sal_uInt8 const * pDest, // SecurityCount is the buffersize of the buffer in which we will parse for a number -static long ImplGetNumber( sal_uInt8 **pBuf, sal_uInt32& nSecurityCount ) +static long ImplGetNumber(sal_uInt8* &rBuf, sal_uInt32& nSecurityCount) { bool bValid = true; bool bNegative = false; long nRetValue = 0; - while ( ( --nSecurityCount ) && ( ( **pBuf == ' ' ) || ( **pBuf == 0x9 ) ) ) - (*pBuf)++; - sal_uInt8 nByte = **pBuf; - while ( nSecurityCount && ( nByte != ' ' ) && ( nByte != 0x9 ) && ( nByte != 0xd ) && ( nByte != 0xa ) ) + while (nSecurityCount && (*rBuf == ' ' || *rBuf == 0x9)) { - switch ( nByte ) + ++rBuf; + --nSecurityCount; + } + while ( nSecurityCount && ( *rBuf != ' ' ) && ( *rBuf != 0x9 ) && ( *rBuf != 0xd ) && ( *rBuf != 0xa ) ) + { + switch ( *rBuf ) { case '.' : // we'll only use the integer format @@ -89,17 +91,17 @@ static long ImplGetNumber( sal_uInt8 **pBuf, sal_uInt32& nSecurityCount ) bNegative = true; break; default : - if ( ( nByte < '0' ) || ( nByte > '9' ) ) + if ( ( *rBuf < '0' ) || ( *rBuf > '9' ) ) nSecurityCount = 1; // error parsing the bounding box values else if ( bValid ) { nRetValue *= 10; - nRetValue += nByte - '0'; + nRetValue += *rBuf - '0'; } break; } nSecurityCount--; - nByte = *(++(*pBuf)); + ++rBuf; } if ( bNegative ) nRetValue = -nRetValue; @@ -399,6 +401,15 @@ static bool RenderAsBMP(const sal_uInt8* pBuf, sal_uInt32 nBytesRead, Graphic &r return RenderAsBMPThroughConvert(pBuf, nBytesRead, rGraphic); } +namespace +{ + bool checkSeek(SvStream &rSt, sal_uInt32 nOffset) + { + const sal_uInt64 nMaxSeek(rSt.Tell() + rSt.remainingSize()); + return (nOffset <= nMaxSeek && rSt.Seek(nOffset) == nOffset); + } +} + // this method adds a replacement action containing the original wmf or tiff replacement, // so the original eps can be written when storing to ODF. void CreateMtfReplacementAction( GDIMetaFile& rMtf, SvStream& rStrm, sal_uInt32 nOrigPos, sal_uInt32 nPSSize, @@ -416,17 +427,15 @@ void CreateMtfReplacementAction( GDIMetaFile& rMtf, SvStream& rStrm, sal_uInt32 aReplacement.WriteUInt32( nMagic ).WriteUInt32( nPPos ).WriteUInt32( nPSSize ) .WriteUInt32( nWPos ).WriteUInt32( nSizeWMF ) .WriteUInt32( nTPos ).WriteUInt32( nSizeTIFF ); - if ( nSizeWMF ) + if (nSizeWMF && checkSeek(rStrm, nOrigPos + nPosWMF) && rStrm.remainingSize() >= nSizeWMF) { std::unique_ptr pBuf(new sal_uInt8[ nSizeWMF ]); - rStrm.Seek( nOrigPos + nPosWMF ); rStrm.ReadBytes(pBuf.get(), nSizeWMF); aReplacement.WriteBytes(pBuf.get(), nSizeWMF); } - if ( nSizeTIFF ) + if (nSizeTIFF && checkSeek(rStrm, nOrigPos + nPosTIFF) && rStrm.remainingSize() >= nSizeTIFF) { std::unique_ptr pBuf(new sal_uInt8[ nSizeTIFF ]); - rStrm.Seek( nOrigPos + nPosTIFF ); rStrm.ReadBytes(pBuf.get(), nSizeTIFF); aReplacement.WriteBytes(pBuf.get(), nSizeTIFF); } @@ -450,7 +459,6 @@ void MakePreview(sal_uInt8* pBuf, sal_uInt32 nBytesRead, pVDev->SetFillColor(); aFont.SetColor( COL_LIGHTRED ); -// aFont.SetSize( Size( 0, 32 ) ); pVDev->Push( PushFlags::FONT ); pVDev->SetFont( aFont ); @@ -461,51 +469,77 @@ void MakePreview(sal_uInt8* pBuf, sal_uInt32 nBytesRead, OUString aString; int nLen; sal_uInt8* pDest = ImplSearchEntry( pBuf, reinterpret_cast("%%Title:"), nBytesRead - 32, 8 ); - if ( pDest ) + sal_uInt32 nRemainingBytes = pDest ? (nBytesRead - (pDest - pBuf)) : 0; + if (nRemainingBytes >= 8) { pDest += 8; - if ( *pDest == ' ' ) - pDest++; - nLen = ImplGetLen( pDest, 32 ); - sal_uInt8 aOldValue(pDest[ nLen ]); pDest[ nLen ] = 0; - if ( strcmp( reinterpret_cast(pDest), "none" ) != 0 ) + nRemainingBytes -= 8; + if (nRemainingBytes && *pDest == ' ') + { + ++pDest; + --nRemainingBytes; + } + nLen = ImplGetLen(pDest, std::min(nRemainingBytes, 32)); + if (static_cast(nLen) < nRemainingBytes) { - aString += " Title:" + OUString::createFromAscii( reinterpret_cast(pDest) ) + "\n"; + sal_uInt8 aOldValue(pDest[ nLen ]); pDest[ nLen ] = 0; + if ( strcmp( reinterpret_cast(pDest), "none" ) != 0 ) + { + aString += " Title:" + OUString::createFromAscii( reinterpret_cast(pDest) ) + "\n"; + } + pDest[ nLen ] = aOldValue; } - pDest[ nLen ] = aOldValue; } pDest = ImplSearchEntry( pBuf, reinterpret_cast("%%Creator:"), nBytesRead - 32, 10 ); - if ( pDest ) + nRemainingBytes = pDest ? (nBytesRead - (pDest - pBuf)) : 0; + if (nRemainingBytes >= 10) { pDest += 10; - if ( *pDest == ' ' ) - pDest++; - nLen = ImplGetLen( pDest, 32 ); - sal_uInt8 aOldValue(pDest[ nLen ]); pDest[ nLen ] = 0; - aString += " Creator:" + OUString::createFromAscii( reinterpret_cast(pDest) ) + "\n"; - pDest[ nLen ] = aOldValue; + nRemainingBytes -= 10; + if (nRemainingBytes && *pDest == ' ') + { + ++pDest; + --nRemainingBytes; + } + nLen = ImplGetLen(pDest, std::min(nRemainingBytes, 32)); + if (static_cast(nLen) < nRemainingBytes) + { + sal_uInt8 aOldValue(pDest[nLen]); pDest[nLen] = 0; + aString += " Creator:" + OUString::createFromAscii( reinterpret_cast(pDest) ) + "\n"; + pDest[nLen] = aOldValue; + } } pDest = ImplSearchEntry( pBuf, reinterpret_cast("%%CreationDate:"), nBytesRead - 32, 15 ); - if ( pDest ) + nRemainingBytes = pDest ? (nBytesRead - (pDest - pBuf)) : 0; + if (nRemainingBytes >= 15) { pDest += 15; - if ( *pDest == ' ' ) - pDest++; - nLen = ImplGetLen( pDest, 32 ); - sal_uInt8 aOldValue(pDest[ nLen ]); pDest[ nLen ] = 0; - if ( strcmp( reinterpret_cast(pDest), "none" ) != 0 ) + nRemainingBytes -= 15; + if (nRemainingBytes && *pDest == ' ') { - aString += " CreationDate:" + OUString::createFromAscii( reinterpret_cast(pDest) ) + "\n"; + ++pDest; + --nRemainingBytes; + } + nLen = ImplGetLen(pDest, std::min(nRemainingBytes, 32)); + if (static_cast(nLen) < nRemainingBytes) + { + sal_uInt8 aOldValue(pDest[ nLen ]); pDest[ nLen ] = 0; + if ( strcmp( reinterpret_cast(pDest), "none" ) != 0 ) + { + aString += " CreationDate:" + OUString::createFromAscii( reinterpret_cast(pDest) ) + "\n"; + } + pDest[ nLen ] = aOldValue; } - pDest[ nLen ] = aOldValue; } pDest = ImplSearchEntry( pBuf, reinterpret_cast("%%LanguageLevel:"), nBytesRead - 4, 16 ); - if ( pDest ) + nRemainingBytes = pDest ? (nBytesRead - (pDest - pBuf)) : 0; + if (nRemainingBytes >= 16) { pDest += 16; - sal_uInt32 nCount = 4; - long nNumber = ImplGetNumber( &pDest, nCount ); - if ( nCount && ( (sal_uInt32)nNumber < 10 ) ) + nRemainingBytes -= 16; + sal_uInt32 nCount = std::min(nRemainingBytes, 4U); + sal_uInt32 nNumber = ImplGetNumber(pDest, nCount); + if (nCount && nNumber < 10) { aString += " LanguageLevel:" + OUString::number( nNumber ); } @@ -519,7 +553,6 @@ void MakePreview(sal_uInt8* pBuf, sal_uInt32 nBytesRead, rGraphic = aMtf; } - //================== GraphicImport - the exported function ================ @@ -532,7 +565,7 @@ ipsGraphicImport( SvStream & rStream, Graphic & rGraphic, FilterConfigItem* ) Graphic aGraphic; bool bRetValue = false; bool bHasPreview = false; - sal_uInt32 nSignature, nPSStreamPos, nPSSize; + sal_uInt32 nSignature = 0, nPSStreamPos, nPSSize = 0; sal_uInt32 nSizeWMF = 0; sal_uInt32 nPosWMF = 0; sal_uInt32 nSizeTIFF = 0; @@ -549,10 +582,9 @@ ipsGraphicImport( SvStream & rStream, Graphic & rGraphic, FilterConfigItem* ) if ( nSizeWMF ) { - if ( nPosWMF != 0 ) + if (nPosWMF && checkSeek(rStream, nOrigPos + nPosWMF)) { - rStream.Seek( nOrigPos + nPosWMF ); - if ( GraphicConverter::Import( rStream, aGraphic, ConvertDataFormat::WMF ) == ERRCODE_NONE ) + if (GraphicConverter::Import(rStream, aGraphic, ConvertDataFormat::WMF) == ERRCODE_NONE) bHasPreview = bRetValue = true; } } @@ -562,9 +594,8 @@ ipsGraphicImport( SvStream & rStream, Graphic & rGraphic, FilterConfigItem* ) // else we have to get the tiff grafix - if ( nPosTIFF && nSizeTIFF ) + if (nPosTIFF && nSizeTIFF && checkSeek(rStream, nOrigPos + nPosTIFF)) { - rStream.Seek( nOrigPos + nPosTIFF ); if ( GraphicConverter::Import( rStream, aGraphic, ConvertDataFormat::TIF ) == ERRCODE_NONE ) { MakeAsMeta(aGraphic); @@ -579,13 +610,20 @@ ipsGraphicImport( SvStream & rStream, Graphic & rGraphic, FilterConfigItem* ) nPSStreamPos = nOrigPos; // no preview available _>so we must get the size manually nPSSize = rStream.Seek( STREAM_SEEK_TO_END ) - nOrigPos; } + std::unique_ptr pHeader( new sal_uInt8[ 22 ] ); rStream.Seek( nPSStreamPos ); rStream.ReadBytes(pHeader.get(), 22); // check PostScript header - if ( ImplSearchEntry( pHeader.get(), reinterpret_cast("%!PS-Adobe"), 10, 10 ) && - ImplSearchEntry( &pHeader[ 15 ], reinterpret_cast("EPS"), 3, 3 ) ) + bool bOk = ImplSearchEntry(pHeader.get(), reinterpret_cast("%!PS-Adobe"), 10, 10) && + ImplSearchEntry(&pHeader[ 15 ], reinterpret_cast("EPS"), 3, 3); + if (bOk) + { + rStream.Seek(nPSStreamPos); + bOk = rStream.remainingSize() >= nPSSize; + SAL_WARN_IF(!bOk, "filter.eps", "eps claims to be: " << nPSSize << " in size, but only " << rStream.remainingSize() << " remains"); + } + if (bOk) { - rStream.Seek( nPSStreamPos ); std::unique_ptr pBuf( new sal_uInt8[ nPSSize ] ); sal_uInt32 nBufStartPos = rStream.Tell(); @@ -598,15 +636,17 @@ ipsGraphicImport( SvStream & rStream, Graphic & rGraphic, FilterConfigItem* ) if (!bHasPreview && nBytesRead >= nSecurityCount) { sal_uInt8* pDest = ImplSearchEntry( pBuf.get(), reinterpret_cast("%%BeginPreview:"), nBytesRead - nSecurityCount, 15 ); - if ( pDest ) + sal_uInt32 nRemainingBytes = pDest ? (nBytesRead - (pDest - pBuf.get())) : 0; + if (nRemainingBytes >= 15) { pDest += 15; - long nWidth = ImplGetNumber( &pDest, nSecurityCount ); - long nHeight = ImplGetNumber( &pDest, nSecurityCount ); - long nBitDepth = ImplGetNumber( &pDest, nSecurityCount ); - long nScanLines = ImplGetNumber( &pDest, nSecurityCount ); - pDest = ImplSearchEntry( pDest, reinterpret_cast("%"), 16, 1 ); // go to the first Scanline - if ( nSecurityCount && pDest && nWidth && nHeight && ( ( nBitDepth == 1 ) || ( nBitDepth == 8 ) ) && nScanLines ) + nSecurityCount = nRemainingBytes - 15; + long nWidth = ImplGetNumber(pDest, nSecurityCount); + long nHeight = ImplGetNumber(pDest, nSecurityCount); + long nBitDepth = ImplGetNumber(pDest, nSecurityCount); + long nScanLines = ImplGetNumber(pDest, nSecurityCount); + pDest = ImplSearchEntry(pDest, reinterpret_cast("%"), nSecurityCount, 1); // go to the first Scanline + if (pDest && nWidth && nHeight && ( ( nBitDepth == 1 ) || ( nBitDepth == 8 ) ) && nScanLines) { rStream.Seek( nBufStartPos + ( pDest - pBuf.get() ) ); @@ -698,15 +738,16 @@ ipsGraphicImport( SvStream & rStream, Graphic & rGraphic, FilterConfigItem* ) } sal_uInt8* pDest = ImplSearchEntry( pBuf.get(), reinterpret_cast("%%BoundingBox:"), nBytesRead, 14 ); - if ( pDest ) + sal_uInt32 nRemainingBytes = pDest ? (nBytesRead - (pDest - pBuf.get())) : 0; + if (nRemainingBytes >= 14) { - nSecurityCount = 100; + pDest += 14; + nSecurityCount = std::min(nRemainingBytes - 14, 100); long nNumb[4]; nNumb[0] = nNumb[1] = nNumb[2] = nNumb[3] = 0; - pDest += 14; for ( int i = 0; ( i < 4 ) && nSecurityCount; i++ ) { - nNumb[ i ] = ImplGetNumber( &pDest, nSecurityCount ); + nNumb[ i ] = ImplGetNumber(pDest, nSecurityCount); } if ( nSecurityCount) { diff --git a/filter/source/graphicfilter/ios2met/ios2met.cxx b/filter/source/graphicfilter/ios2met/ios2met.cxx index 6e09ee464b2ba..19c37f3c4ea5b 100644 --- a/filter/source/graphicfilter/ios2met/ios2met.cxx +++ b/filter/source/graphicfilter/ios2met/ios2met.cxx @@ -510,7 +510,7 @@ void OS2METReader::AddPointsToArea(const tools::Polygon & rPoly) else { tools::Polygon aLastPoly(pPP->GetObject(pPP->Count()-1)); nOldSize=aLastPoly.GetSize(); - if (aLastPoly.GetPoint(nOldSize-1)==rPoly.GetPoint(0)) nOldSize--; + if (nOldSize && aLastPoly.GetPoint(nOldSize-1)==rPoly.GetPoint(0)) nOldSize--; nNewSize=nOldSize+rPoly.GetSize(); aLastPoly.SetSize(nNewSize); for (i=nOldSize; iGetObject(pPP->Count()-1)); nOldSize=aLastPoly.GetSize(); - if (aLastPoly.GetPoint(nOldSize-1)!=rPoly.GetPoint(0)) pPP->Insert(rPoly); + if (nOldSize && aLastPoly.GetPoint(nOldSize-1)!=rPoly.GetPoint(0)) pPP->Insert(rPoly); else { nOldSize--; nNewSize=nOldSize+rPoly.GetSize(); diff --git a/filter/source/graphicfilter/ipsd/ipsd.cxx b/filter/source/graphicfilter/ipsd/ipsd.cxx index a1cd3ab260079..3a9ad60c4d89d 100644 --- a/filter/source/graphicfilter/ipsd/ipsd.cxx +++ b/filter/source/graphicfilter/ipsd/ipsd.cxx @@ -279,17 +279,17 @@ bool PSDReader::ImplReadHeader() // this is a loop over the resource entries to get the resolution info while( m_rPSD.Tell() < nLayerPos ) { - sal_uInt8 n8; - sal_uInt32 nType, nPStringLen, nResEntryLen; - sal_uInt16 nUniqueID; - - m_rPSD.ReadUInt32( nType ).ReadUInt16( nUniqueID ).ReadUChar( n8 ); - nPStringLen = n8; - if ( nType != 0x3842494d ) + sal_uInt32 nType(0); + sal_uInt16 nUniqueID(0); + sal_uInt8 n8(0); + m_rPSD.ReadUInt32(nType).ReadUInt16(nUniqueID).ReadUChar(n8); + if (nType != 0x3842494d) break; + sal_uInt32 nPStringLen = n8; if ( ! ( nPStringLen & 1 ) ) nPStringLen++; m_rPSD.SeekRel( nPStringLen ); // skipping the pstring + sal_uInt32 nResEntryLen(0); m_rPSD.ReadUInt32( nResEntryLen ); if ( nResEntryLen & 1 ) nResEntryLen++; // the resource entries are padded diff --git a/filter/source/graphicfilter/itiff/ccidecom.cxx b/filter/source/graphicfilter/itiff/ccidecom.cxx index 1cb7d7d534481..4fcb6b9a32abf 100644 --- a/filter/source/graphicfilter/itiff/ccidecom.cxx +++ b/filter/source/graphicfilter/itiff/ccidecom.cxx @@ -627,7 +627,9 @@ void CCIDecompressor::StartDecompression( SvStream & rIStream ) bool CCIDecompressor::DecompressScanline( sal_uInt8 * pTarget, sal_uLong nTargetBits, bool bLastLine ) { - bool b2D; + //Read[1|2]DScanlineData take a sal_uInt16, so its either limit here or expand there + if (nTargetBits > SAL_MAX_UINT16) + return false; if ( nEOLCount >= 5 ) // RTC (Return To Controller) return true; @@ -682,6 +684,7 @@ bool CCIDecompressor::DecompressScanline( sal_uInt8 * pTarget, sal_uLong nTarget if ( nOptions & CCI_OPTION_BYTEALIGNROW ) nInputBitsBufSize &= 0xfff8; + bool b2D; // is it a 2D row? if ( nOptions & CCI_OPTION_2D ) { diff --git a/filter/source/graphicfilter/itiff/itiff.cxx b/filter/source/graphicfilter/itiff/itiff.cxx index f7956310a646f..7031d7daee305 100644 --- a/filter/source/graphicfilter/itiff/itiff.cxx +++ b/filter/source/graphicfilter/itiff/itiff.cxx @@ -52,6 +52,7 @@ class TIFFReader Bitmap aBitmap; BitmapWriteAccess* pAcc; sal_uInt16 nDstBitsPerPixel; + int nLargestPixelIndex; AlphaMask* pAlphaMask; BitmapWriteAccess* pMaskAcc; @@ -67,7 +68,7 @@ class TIFFReader sal_uLong nSubFile; sal_Int32 nImageWidth; // picture width in pixels sal_Int32 nImageLength; // picture height in pixels - sal_uLong nBitsPerSample; // bits per pixel per layer + sal_uInt32 nBitsPerSample; // bits per pixel per layer sal_uLong nCompression; // kind of compression sal_uLong nPhotometricInterpretation; sal_uLong nThresholding; @@ -77,7 +78,7 @@ class TIFFReader sal_uLong* pStripOffsets; // field of offsets to the Bitmap-Data-"Strips" sal_uLong nNumStripOffsets; // size of the field above sal_uLong nOrientation; - sal_uLong nSamplesPerPixel; // number of layers + sal_uInt32 nSamplesPerPixel; // number of layers sal_uLong nRowsPerStrip; // if it's not compressed: number of rows per Strip sal_uLong* pStripByteCounts; // if compressed (in a certain way): size of the strips sal_uLong nNumStripByteCounts; // number of entries in the field above @@ -93,9 +94,9 @@ class TIFFReader sal_uLong* pColorMap; // color palette sal_uLong nNumColors; // number of colors within the color palette - sal_uLong nPlanes; // number of layers within the Tiff file + sal_uInt32 nPlanes; // number of layers within the Tiff file sal_uLong nStripsPerPlane; // number of Strips per layer - sal_uLong nBytesPerRow; // Bytes per line per Layer in the Tiff file ( uncompressed ) + sal_uInt32 nBytesPerRow; // Bytes per line per Layer in the Tiff file ( uncompressed ) sal_uInt8* pMap[ 4 ]; // temporary Scanline @@ -120,6 +121,9 @@ class TIFFReader // converts a Scanline to the Windows-BMP format bool HasAlphaChannel() const; + + void SetPixelIndex(BitmapWriteAccess *pAcc, long nY, long nX, sal_uInt8 cIndex); + public: TIFFReader() @@ -127,6 +131,7 @@ class TIFFReader , pTIFF(nullptr) , pAcc(nullptr) , nDstBitsPerPixel(0) + , nLargestPixelIndex(-1) , pAlphaMask(nullptr) , pMaskAcc(nullptr) , nOrigPos(0) @@ -783,10 +788,15 @@ sal_uLong TIFFReader::GetBits( const sal_uInt8 * pSrc, sal_uLong nBitsPos, sal_u return nRes; } +void TIFFReader::SetPixelIndex(BitmapWriteAccess *pWriteAcc, long nY, long nX, sal_uInt8 cIndex) +{ + pWriteAcc->SetPixelIndex(nY, nX, cIndex); + nLargestPixelIndex = std::max(nLargestPixelIndex, cIndex); +} bool TIFFReader::ConvertScanline(sal_Int32 nY) { - sal_uInt32 nRed, nGreen, nBlue, ns, nVal, nByteCount; + sal_uInt32 nRed, nGreen, nBlue, ns, nVal; sal_uInt8 nByteVal; if ( nDstBitsPerPixel == 24 ) @@ -927,12 +937,16 @@ bool TIFFReader::ConvertScanline(sal_Int32 nY) { sal_uLong nMinMax = ( ( 1 << nDstBitsPerPixel ) - 1 ) / ( nMaxSampleValue - nMinSampleValue ); sal_uInt8* pt = pMap[ 0 ]; + sal_uInt8* ptend = pt + nBytesPerRow; sal_uInt8 nShift; switch ( nDstBitsPerPixel ) { case 8 : { + if (pt + nImageWidth > ptend) + return false; + if ( bByteSwap ) { if ( nPredictor == 2 ) @@ -941,7 +955,7 @@ bool TIFFReader::ConvertScanline(sal_Int32 nY) for (sal_Int32 nx = 0; nx < nImageWidth; ++nx) { nLast += nx == 0 ? BYTESWAP( (sal_uInt8)*pt++ ) : *pt++; - pAcc->SetPixelIndex( nY, nx, nLast ); + SetPixelIndex(pAcc, nY, nx, nLast); } } else @@ -949,7 +963,7 @@ bool TIFFReader::ConvertScanline(sal_Int32 nY) for (sal_Int32 nx = 0; nx < nImageWidth; ++nx) { sal_uInt8 nLast = *pt++; - pAcc->SetPixelIndex( nY, nx, static_cast( (BYTESWAP((sal_uLong)nLast) - nMinSampleValue) * nMinMax ) ); + SetPixelIndex(pAcc, nY, nx, static_cast( (BYTESWAP((sal_uLong)nLast) - nMinSampleValue) * nMinMax )); } } } @@ -961,15 +975,14 @@ bool TIFFReader::ConvertScanline(sal_Int32 nY) for (sal_Int32 nx = 0; nx < nImageWidth; ++nx) { nLast += *pt++; - pAcc->SetPixelIndex( nY, nx, nLast ); + SetPixelIndex(pAcc, nY, nx, nLast); } } else { for (sal_Int32 nx = 0; nx < nImageWidth; ++nx) { - pAcc->SetPixelIndex( nY, nx, static_cast( ((sal_uLong)*pt++ - nMinSampleValue) * nMinMax ) ); - + SetPixelIndex(pAcc, nY, nx, static_cast( ((sal_uLong)*pt++ - nMinSampleValue) * nMinMax )); } } } @@ -986,42 +999,49 @@ bool TIFFReader::ConvertScanline(sal_Int32 nY) for (sal_Int32 nx = 0; nx < nImageWidth; ++nx) { nVal = ( GetBits( pt, nx * nBitsPerSample, nBitsPerSample ) - nMinSampleValue ) * nMinMax; - pAcc->SetPixelIndex( nY, nx, static_cast(nVal)); + SetPixelIndex(pAcc, nY, nx, static_cast(nVal)); } } break; case 1 : { + sal_uInt32 nByteCount = nImageWidth >> 3; + + sal_uInt32 nBytesNeeded = nByteCount; + if (nImageWidth & 7) + ++nBytesNeeded; + if (pt + nBytesNeeded > ptend) + return false; + if ( bByteSwap ) { sal_Int32 nx = 0; - nByteCount = ( nImageWidth >> 3 ) + 1; - while ( --nByteCount ) + while (nByteCount--) { nByteVal = *pt++; - pAcc->SetPixelIndex( nY, nx++, nByteVal & 1 ); + SetPixelIndex(pAcc, nY, nx++, nByteVal & 1); nByteVal >>= 1; - pAcc->SetPixelIndex( nY, nx++, nByteVal & 1 ); + SetPixelIndex(pAcc, nY, nx++, nByteVal & 1); nByteVal >>= 1; - pAcc->SetPixelIndex( nY, nx++, nByteVal & 1 ); + SetPixelIndex(pAcc, nY, nx++, nByteVal & 1); nByteVal >>= 1; - pAcc->SetPixelIndex( nY, nx++, nByteVal & 1 ); + SetPixelIndex(pAcc, nY, nx++, nByteVal & 1); nByteVal >>= 1; - pAcc->SetPixelIndex( nY, nx++, nByteVal & 1 ); + SetPixelIndex(pAcc, nY, nx++, nByteVal & 1); nByteVal >>= 1; - pAcc->SetPixelIndex( nY, nx++, nByteVal & 1 ); + SetPixelIndex(pAcc, nY, nx++, nByteVal & 1); nByteVal >>= 1; - pAcc->SetPixelIndex( nY, nx++, nByteVal & 1 ); + SetPixelIndex(pAcc, nY, nx++, nByteVal & 1); nByteVal >>= 1; - pAcc->SetPixelIndex( nY, nx++, nByteVal ); + SetPixelIndex(pAcc, nY, nx++, nByteVal); } if ( nImageWidth & 7 ) { nByteVal = *pt++; while ( nx < nImageWidth ) { - pAcc->SetPixelIndex( nY, nx++, nByteVal & 1 ); + SetPixelIndex(pAcc, nY, nx++, nByteVal & 1); nByteVal >>= 1; } } @@ -1029,25 +1049,24 @@ bool TIFFReader::ConvertScanline(sal_Int32 nY) else { sal_Int32 nx = 7; - nByteCount = ( nImageWidth >> 3 ) + 1; - while ( --nByteCount ) + while (nByteCount--) { nByteVal = *pt++; - pAcc->SetPixelIndex( nY, nx, nByteVal & 1 ); + SetPixelIndex(pAcc, nY, nx, nByteVal & 1); nByteVal >>= 1; - pAcc->SetPixelIndex( nY, --nx, nByteVal & 1 ); + SetPixelIndex(pAcc, nY, --nx, nByteVal & 1); nByteVal >>= 1; - pAcc->SetPixelIndex( nY, --nx, nByteVal & 1 ); + SetPixelIndex(pAcc, nY, --nx, nByteVal & 1); nByteVal >>= 1; - pAcc->SetPixelIndex( nY, --nx, nByteVal & 1 ); + SetPixelIndex(pAcc, nY, --nx, nByteVal & 1); nByteVal >>= 1; - pAcc->SetPixelIndex( nY, --nx, nByteVal & 1 ); + SetPixelIndex(pAcc, nY, --nx, nByteVal & 1); nByteVal >>= 1; - pAcc->SetPixelIndex( nY, --nx, nByteVal & 1 ); + SetPixelIndex(pAcc, nY, --nx, nByteVal & 1); nByteVal >>= 1; - pAcc->SetPixelIndex( nY, --nx, nByteVal & 1 ); + SetPixelIndex(pAcc, nY, --nx, nByteVal & 1); nByteVal >>= 1; - pAcc->SetPixelIndex( nY, --nx, nByteVal ); + SetPixelIndex(pAcc, nY, --nx, nByteVal); nx += 15; } if ( nImageWidth & 7 ) @@ -1057,7 +1076,7 @@ bool TIFFReader::ConvertScanline(sal_Int32 nY) nShift = 7; while ( nx < nImageWidth ) { - pAcc->SetPixelIndex( nY, nx++, ( nByteVal >> nShift ) & 1); + SetPixelIndex(pAcc, nY, nx++, ( nByteVal >> nShift ) & 1); } } } @@ -1078,7 +1097,7 @@ bool TIFFReader::ConvertScanline(sal_Int32 nY) sal_uInt8* pt = pMap[ 0 ]; for (sal_Int32 nx = 0; nx < nImageWidth; nx++, pt += 2 ) { - pAcc->SetPixelIndex( nY, nx, static_cast( ((sal_uLong)*pt - nMinSampleValue) * nMinMax) ); + SetPixelIndex(pAcc, nY, nx, static_cast( ((sal_uLong)*pt - nMinSampleValue) * nMinMax)); } } } @@ -1092,7 +1111,7 @@ void TIFFReader::MakePalCol() { if ( nDstBitsPerPixel <= 8 ) { - sal_uLong i, nVal, n0RGB; + sal_uLong nVal, n0RGB; if ( pColorMap == nullptr ) pColorMap = new sal_uLong[ 256 ]; if ( nPhotometricInterpretation <= 1 ) @@ -1100,8 +1119,13 @@ void TIFFReader::MakePalCol() nNumColors = (sal_uLong)1 << nBitsPerSample; if ( nNumColors > 256 ) nNumColors = 256; - pAcc->SetPaletteEntryCount( (sal_uInt16)nNumColors ); - for ( i = 0; i < nNumColors; i++ ) + if (nLargestPixelIndex >= static_cast(nNumColors)) + { + SAL_WARN("filter.tiff", "palette has less entries that largest index used. Expanding palette to match"); + nNumColors = nLargestPixelIndex + 1; + } + + for (sal_uLong i = 0; i < nNumColors; ++i) { nVal = ( i * 255 / ( nNumColors - 1 ) ) & 0xff; n0RGB = nVal | ( nVal << 8 ) | ( nVal << 16 ); @@ -1111,7 +1135,8 @@ void TIFFReader::MakePalCol() pColorMap[ nNumColors - i - 1 ] = n0RGB; } } - for ( i = 0; i < nNumColors; i++ ) + pAcc->SetPaletteEntryCount(std::max(nNumColors, pAcc->GetPaletteEntryCount())); + for (sal_uLong i = 0; i < nNumColors; ++i) { pAcc->SetPaletteColor( (sal_uInt16)i, BitmapColor( (sal_uInt8)( pColorMap[ i ] >> 16 ), (sal_uInt8)( pColorMap[ i ] >> 8 ), (sal_uInt8)pColorMap[ i ] ) ); @@ -1330,6 +1355,7 @@ bool TIFFReader::ReadTIFF(SvStream & rTIFF, Graphic & rGraphic ) bStatus = false; if ( bStatus ) { + nLargestPixelIndex = -1; if ( nMaxSampleValue == 0 ) { if ( nBitsPerSample == 32 ) // sj: i93300, compiler bug, 1 << 32 gives 1 one 32bit windows platforms, @@ -1364,8 +1390,18 @@ bool TIFFReader::ReadTIFF(SvStream & rTIFF, Graphic & rGraphic ) if (bStatus) { - nBytesPerRow = ( nImageWidth * nSamplesPerPixel / nPlanes * nBitsPerSample + 7 ) >> 3; + sal_uInt64 nRowSize = (static_cast(nImageWidth) * nSamplesPerPixel / nPlanes * nBitsPerSample + 7) >> 3; + if (nRowSize > SAL_MAX_INT32 / SAL_N_ELEMENTS(pMap)) + { + SAL_WARN("filter.tiff", "Ludicrous row size of: " << nRowSize << " required"); + bStatus = false; + } + else + nBytesPerRow = nRowSize; + } + if (bStatus) + { for (sal_uInt8*& j : pMap) { try diff --git a/filter/source/msfilter/escherex.cxx b/filter/source/msfilter/escherex.cxx index dea7097c60185..4285bcd04c140 100644 --- a/filter/source/msfilter/escherex.cxx +++ b/filter/source/msfilter/escherex.cxx @@ -1059,8 +1059,7 @@ void EscherPropertyContainer::CreateLineProperties( AddOpt( ESCHER_Prop_lineDashing, eDash ); } } - break; - + SAL_FALLTHROUGH; case css::drawing::LineStyle_SOLID : default: { @@ -3471,7 +3470,8 @@ void EscherPropertyContainer::CreateCustomShapeProperties( const MSO_SPT eShapeT case drawing::TextHorizontalAdjust_BLOCK: { SdrFitToSizeType eFTS( static_cast(pCustoShape->GetMergedItem( SDRATTR_TEXT_FITTOSIZE )).GetValue() ); - if ( eFTS == SdrFitToSizeType::AllLines) + if (eFTS == SdrFitToSizeType::AllLines || + eFTS == SdrFitToSizeType::Proportional) { gTextAlign = mso_alignTextStretch; } diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx index 8c017ec260df6..aa7008070aef9 100644 --- a/filter/source/msfilter/msdffimp.cxx +++ b/filter/source/msfilter/msdffimp.cxx @@ -1935,9 +1935,8 @@ void DffPropertyReader::ApplyCustomShapeGeometryAttributes( SvStream& rIn, SfxIt for ( sal_uInt16 i = 0; i < nNumElem; i++ ) { PropVec aHandlePropVec; - sal_uInt32 nFlagsTmp; - SvxMSDffHandleFlags nFlags; - sal_Int32 nPositionX, nPositionY, nCenterX, nCenterY, nRangeXMin, nRangeXMax, nRangeYMin, nRangeYMax; + sal_uInt32 nFlagsTmp(0); + sal_Int32 nPositionX(0), nPositionY(0), nCenterX(0), nCenterY(0), nRangeXMin(0), nRangeXMax(0), nRangeYMin(0), nRangeYMax(0); rIn.ReadUInt32( nFlagsTmp ) .ReadInt32( nPositionX ) .ReadInt32( nPositionY ) @@ -1947,7 +1946,7 @@ void DffPropertyReader::ApplyCustomShapeGeometryAttributes( SvStream& rIn, SfxIt .ReadInt32( nRangeXMax ) .ReadInt32( nRangeYMin ) .ReadInt32( nRangeYMax ); - nFlags = static_cast(nFlagsTmp); + SvxMSDffHandleFlags nFlags = static_cast(nFlagsTmp); if ( nPositionX == 2 ) // replacing center position with absolute value nPositionX = nCoordWidth / 2; if ( nPositionY == 2 ) @@ -2204,7 +2203,6 @@ void DffPropertyReader::ApplyCustomShapeGeometryAttributes( SvStream& rIn, SfxIt { css::uno::Sequence< css::drawing::EnhancedCustomShapeSegment > aSegments; - sal_uInt16 i, nTmp; sal_uInt16 nNumElemSeg = 0; if ( SeekToContent( DFF_Prop_pSegmentInfo, rIn ) ) @@ -2221,14 +2219,13 @@ void DffPropertyReader::ApplyCustomShapeGeometryAttributes( SvStream& rIn, SfxIt } if ( nNumElemSeg ) { - sal_Int16 nCommand; - sal_Int16 nCnt; aSegments.realloc( nNumElemSeg ); - for ( i = 0; i < nNumElemSeg; i++ ) + for (sal_uInt16 i = 0; i < nNumElemSeg; ++i) { + sal_uInt16 nTmp(0); rIn.ReadUInt16( nTmp ); - nCommand = EnhancedCustomShapeSegmentCommand::UNKNOWN; - nCnt = (sal_Int16)( nTmp & 0x1fff );//Last 13 bits for segment points number + sal_Int16 nCommand = EnhancedCustomShapeSegmentCommand::UNKNOWN; + sal_Int16 nCnt = (sal_Int16)( nTmp & 0x1fff );//Last 13 bits for segment points number switch( nTmp >> 13 )//First 3 bits for command type { case 0x0: @@ -3198,7 +3195,7 @@ bool SvxMSDffManager::SeekToShape( SvStream& rSt, void* /* pClientData */, sal_u if ( !maFidcls.empty() ) { sal_uInt32 nMerk = rSt.Tell(); - sal_uInt32 nShapeId, nSec = ( nId >> 10 ) - 1; + sal_uInt32 nSec = ( nId >> 10 ) - 1; if ( nSec < mnIdClusters ) { OffsetMap::const_iterator it = maDgOffsetTable.find( maFidcls[ nSec ].dgid ); @@ -3221,6 +3218,7 @@ bool SvxMSDffManager::SeekToShape( SvStream& rSt, void* /* pClientData */, sal_u DffRecordHeader aShapeHd; if ( SeekToRec( rSt, DFF_msofbtSp, aEscherObjListHd.GetRecEndFilePos(), &aShapeHd ) ) { + sal_uInt32 nShapeId(0); rSt.ReadUInt32( nShapeId ); if ( nId == nShapeId ) { @@ -4229,7 +4227,7 @@ SdrObject* SvxMSDffManager::ImportShape( const DffRecordHeader& rHd, SvStream& r aObjData.bChildAnchor = maShapeRecords.SeekToContent( rSt, DFF_msofbtChildAnchor, SEEK_FROM_CURRENT_AND_RESTART ); if ( aObjData.bChildAnchor ) { - sal_Int32 l, o, r, u; + sal_Int32 l(0), o(0), r(0), u(0); rSt.ReadInt32( l ).ReadInt32( o ).ReadInt32( r ).ReadInt32( u ); Scale( l ); Scale( o ); @@ -4861,14 +4859,14 @@ Rectangle SvxMSDffManager::GetGlobalChildAnchor( const DffRecordHeader& rHd, SvS { if ( GetSvxMSDffSettings() & SVXMSDFF_SETTINGS_IMPORT_PPT ) { - sal_Int32 l, t, r, b; + sal_Int32 l(0), t(0), r(0), b(0); if ( aShapeAtom.nRecLen == 16 ) { rSt.ReadInt32( l ).ReadInt32( t ).ReadInt32( r ).ReadInt32( b ); } else { - sal_Int16 ls, ts, rs, bs; + sal_Int16 ls(0), ts(0), rs(0), bs(0); rSt.ReadInt16( ts ).ReadInt16( ls ).ReadInt16( rs ).ReadInt16( bs ); // the order of coordinates is a bit strange... l = ls; t = ts; @@ -4894,7 +4892,7 @@ Rectangle SvxMSDffManager::GetGlobalChildAnchor( const DffRecordHeader& rHd, SvS } else if ( aShapeAtom.nRecType == DFF_msofbtChildAnchor ) { - sal_Int32 l, o, r, u; + sal_Int32 l(0), o(0), r(0), u(0); rSt.ReadInt32( l ).ReadInt32( o ).ReadInt32( r ).ReadInt32( u ); Scale( l ); Scale( o ); @@ -4940,7 +4938,7 @@ void SvxMSDffManager::GetGroupAnchors( const DffRecordHeader& rHd, SvStream& rSt break; if ( aShapeAtom.nRecType == DFF_msofbtChildAnchor ) { - sal_Int32 l, o, r, u; + sal_Int32 l(0), o(0), r(0), u(0); rSt.ReadInt32( l ).ReadInt32( o ).ReadInt32( r ).ReadInt32( u ); Scale( l ); Scale( o ); @@ -6057,12 +6055,13 @@ bool SvxMSDffManager::GetShapeContainerData( SvStream& rSt, // We've found the Property Table: // search for the Blip Property! sal_uLong nPropRead = 0; - sal_uInt16 nPropId; - sal_uInt32 nPropVal; nLenShapePropTbl = nLength; long nStartShapePropTbl = rSt.Tell(); do { + sal_uInt16 nPropId(0); + sal_uInt32 nPropVal(0); + rSt.ReadUInt16( nPropId ) .ReadUInt32( nPropVal ); nPropRead += 6; @@ -6351,7 +6350,7 @@ bool SvxMSDffManager::GetBLIPDirect( SvStream& rBLIPStream, Graphic& rData, Rect rBLIPStream.SeekRel( nSkip + 20 ); // read in size of metafile in EMUS - sal_Int32 width, height; + sal_Int32 width(0), height(0); rBLIPStream.ReadInt32( width ).ReadInt32( height ); aMtfSize100.Width() = width; aMtfSize100.Height() = height; @@ -6717,16 +6716,16 @@ bool SvxMSDffManager::ConvertToOle2( SvStream& rStm, sal_uInt32 nReadLen, if( xOle10Stm->GetError() ) return false; - sal_uInt32 nType; - sal_uInt32 nRecType; - sal_uInt32 nStrLen; OUString aSvrName; sal_uInt32 nDummy0; sal_uInt32 nDummy1; - sal_uInt32 nDataLen; sal_uInt32 nBytesRead = 0; do { + sal_uInt32 nType(0); + sal_uInt32 nRecType(0); + sal_uInt32 nStrLen(0); + rStm.ReadUInt32( nType ); rStm.ReadUInt32( nRecType ); rStm.ReadUInt32( nStrLen ); @@ -6743,6 +6742,7 @@ bool SvxMSDffManager::ConvertToOle2( SvStream& rStm, sal_uInt32 nReadLen, } rStm.ReadUInt32( nDummy0 ); rStm.ReadUInt32( nDummy1 ); + sal_uInt32 nDataLen(0); rStm.ReadUInt32( nDataLen ); nBytesRead += 6 * sizeof( sal_uInt32 ) + nStrLen + nDataLen; @@ -7162,7 +7162,7 @@ SdrOle2Obj* SvxMSDffManager::CreateSdrOLEFromStorage( } else if( pDataStrm ) { - sal_uInt32 nLen, nDummy; + sal_uInt32 nLen(0), nDummy(0); pDataStrm->ReadUInt32( nLen ).ReadUInt32( nDummy ); if( SVSTREAM_OK != pDataStrm->GetError() || // Id in BugDoc - exist there other Ids? diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx index 74054409fe973..efbb46db0c899 100644 --- a/filter/source/msfilter/svdfppt.cxx +++ b/filter/source/msfilter/svdfppt.cxx @@ -2905,7 +2905,20 @@ void SdrPowerPointImport::ImportPage( SdrPage* pRet, const PptSlidePersistEntry* // obsolete here, too. pRet->getSdrPageProperties().ClearItem(); pRet->getSdrPageProperties().PutItemSet(rSlidePersist.pBObj->GetMergedItemSet()); - SdrObject::Free( rSlidePersist.pBObj ); + if (rSlidePersist.pSolverContainer) + { + for (SvxMSDffConnectorRule* pPtr : rSlidePersist.pSolverContainer->aCList) + { + // check connections to the group object + if (pPtr->pAObj == rSlidePersist.pBObj) + pPtr->pAObj = nullptr; + if (pPtr->pBObj == rSlidePersist.pBObj) + pPtr->pBObj = nullptr; + if (pPtr->pCObj == rSlidePersist.pBObj) + pPtr->pCObj = nullptr; + } + } + SdrObject::Free(rSlidePersist.pBObj); } } } @@ -5888,6 +5901,14 @@ bool PPTParagraphObj::GetAttrib( sal_uInt32 nAttr, sal_uInt32& rRetValue, TSS_Ty bool bIsHardAttribute = ( ( pParaSet->mnAttrSet & nMask ) != 0 ); + sal_uInt16 nDepth = pParaSet->mnDepth; + + if (nDepth >= nMaxPPTLevels) + { + SAL_WARN("filter.ms", "Para Style Sheet depth " << nDepth << " but " << nMaxPPTLevels - 1 << " is max possible"); + nDepth = nMaxPPTLevels - 1; + } + if ( bIsHardAttribute ) { if ( nAttr == PPT_ParaAttr_BulletColor ) @@ -5896,7 +5917,7 @@ bool PPTParagraphObj::GetAttrib( sal_uInt32 nAttr, sal_uInt32& rRetValue, TSS_Ty if ( pParaSet->mnAttrSet & ( 1 << PPT_ParaAttr_BuHardColor ) ) bHardBulletColor = pParaSet->mpArry[ PPT_ParaAttr_BuHardColor ] != 0; else - bHardBulletColor = ( mrStyleSheet.mpParaSheet[ mnInstance ]->maParaLevel[ pParaSet->mnDepth ].mnBuFlags + bHardBulletColor = ( mrStyleSheet.mpParaSheet[ mnInstance ]->maParaLevel[nDepth].mnBuFlags & ( 1 << PPT_ParaAttr_BuHardColor ) ) != 0; if ( bHardBulletColor ) rRetValue = pParaSet->mnBulletColor; @@ -5912,7 +5933,7 @@ bool PPTParagraphObj::GetAttrib( sal_uInt32 nAttr, sal_uInt32& rRetValue, TSS_Ty } else { - rRetValue = mrStyleSheet.mpCharSheet[ nDestinationInstance ]->maCharLevel[ pParaSet->mnDepth ].mnFontColor; + rRetValue = mrStyleSheet.mpCharSheet[ nDestinationInstance ]->maCharLevel[nDepth].mnFontColor; } } } @@ -5923,7 +5944,7 @@ bool PPTParagraphObj::GetAttrib( sal_uInt32 nAttr, sal_uInt32& rRetValue, TSS_Ty if ( pParaSet->mnAttrSet & ( 1 << PPT_ParaAttr_BuHardFont ) ) bHardBuFont = pParaSet->mpArry[ PPT_ParaAttr_BuHardFont ] != 0; else - bHardBuFont = ( mrStyleSheet.mpParaSheet[ mnInstance ]->maParaLevel[ pParaSet->mnDepth ].mnBuFlags + bHardBuFont = ( mrStyleSheet.mpParaSheet[ mnInstance ]->maParaLevel[nDepth].mnBuFlags & ( 1 << PPT_ParaAttr_BuHardFont ) ) != 0; if ( bHardBuFont ) rRetValue = pParaSet->mpArry[ PPT_ParaAttr_BulletFont ]; @@ -5940,7 +5961,7 @@ bool PPTParagraphObj::GetAttrib( sal_uInt32 nAttr, sal_uInt32& rRetValue, TSS_Ty } else { - rRetValue = mrStyleSheet.mpCharSheet[ nDestinationInstance ]->maCharLevel[ pParaSet->mnDepth ].mnFont; + rRetValue = mrStyleSheet.mpCharSheet[ nDestinationInstance ]->maCharLevel[nDepth].mnFont; } } } @@ -5950,14 +5971,14 @@ bool PPTParagraphObj::GetAttrib( sal_uInt32 nAttr, sal_uInt32& rRetValue, TSS_Ty } else { - const PPTParaLevel& rParaLevel = mrStyleSheet.mpParaSheet[ mnInstance ]->maParaLevel[ pParaSet->mnDepth ]; + const PPTParaLevel& rParaLevel = mrStyleSheet.mpParaSheet[ mnInstance ]->maParaLevel[nDepth]; PPTParaLevel* pParaLevel = nullptr; if ( ( nDestinationInstance == TSS_Type::Unknown ) - || ( pParaSet->mnDepth && ( ( mnInstance == TSS_Type::Subtitle ) || ( mnInstance == TSS_Type::TextInShape ) ) ) ) + || ( nDepth && ( ( mnInstance == TSS_Type::Subtitle ) || ( mnInstance == TSS_Type::TextInShape ) ) ) ) bIsHardAttribute = true; else if ( nDestinationInstance != mnInstance ) - pParaLevel = &mrStyleSheet.mpParaSheet[ nDestinationInstance ]->maParaLevel[ pParaSet->mnDepth ]; + pParaLevel = &mrStyleSheet.mpParaSheet[ nDestinationInstance ]->maParaLevel[nDepth]; switch ( nAttr ) { case PPT_ParaAttr_BulletOn : @@ -6005,7 +6026,7 @@ bool PPTParagraphObj::GetAttrib( sal_uInt32 nAttr, sal_uInt32& rRetValue, TSS_Ty } else { - rRetValue = mrStyleSheet.mpCharSheet[ mnInstance ]->maCharLevel[ pParaSet->mnDepth ].mnFont; + rRetValue = mrStyleSheet.mpCharSheet[ mnInstance ]->maCharLevel[nDepth].mnFont; bIsHardAttribute = true; } } @@ -6041,7 +6062,7 @@ bool PPTParagraphObj::GetAttrib( sal_uInt32 nAttr, sal_uInt32& rRetValue, TSS_Ty if( rPortion.mbHardHylinkOrigColor ) rRetValue = rPortion.mnHylinkOrigColor; else - rRetValue = mrStyleSheet.mpCharSheet[ mnInstance ]->maCharLevel[ pParaSet->mnDepth ].mnFontColor; + rRetValue = mrStyleSheet.mpCharSheet[ mnInstance ]->maCharLevel[nDepth].mnFontColor; bIsHardAttribute = true; } else @@ -6051,7 +6072,7 @@ bool PPTParagraphObj::GetAttrib( sal_uInt32 nAttr, sal_uInt32& rRetValue, TSS_Ty } else { - rRetValue = mrStyleSheet.mpCharSheet[ mnInstance ]->maCharLevel[ pParaSet->mnDepth ].mnFontColor; + rRetValue = mrStyleSheet.mpCharSheet[ mnInstance ]->maCharLevel[nDepth].mnFontColor; bIsHardAttribute = true; } } @@ -7562,6 +7583,10 @@ SdrObject* SdrPowerPointImport::CreateTable( SdrObject* pGroup, sal_uInt32* pTab aColumns.insert( aSnapRect.Left() ); } } + + if (aRows.empty()) + return pRet; + sdr::table::SdrTableObj* pTable = new sdr::table::SdrTableObj( pSdrModel ); pTable->uno_lock(); Reference< XTable > xTable( pTable->getTable() ); diff --git a/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl b/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl index 7e9eb59734dbe..34bb181db5699 100644 --- a/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl +++ b/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl @@ -1222,7 +1222,7 @@ - + @@ -1416,14 +1416,24 @@ + + - + + + + + + + + + diff --git a/filter/source/xsltfilter/OleHandler.cxx b/filter/source/xsltfilter/OleHandler.cxx index 6564d2ea88a97..2f2bd04f9eefc 100644 --- a/filter/source/xsltfilter/OleHandler.cxx +++ b/filter/source/xsltfilter/OleHandler.cxx @@ -117,8 +117,14 @@ namespace XSLT { return "Can not read the length."; } - int oleLength = (aLength[0] << 0) + (aLength[1] << 8) - + (aLength[2] << 16) + (aLength[3] << 24); + sal_Int32 const oleLength = (static_cast(aLength[0]) << 0U) + | (static_cast(aLength[1]) << 8U) + | (static_cast(aLength[2]) << 16U) + | (static_cast(aLength[3]) << 24U); + if (oleLength < 0) + { + return "invalid oleLength"; + } Sequence content(oleLength); //Read all bytes. The compressed length should less then the uncompressed length readbytes = subStream->readBytes(content, oleLength); diff --git a/forms/source/component/FormComponent.cxx b/forms/source/component/FormComponent.cxx index 80e85758801c9..743f4d47986b1 100644 --- a/forms/source/component/FormComponent.cxx +++ b/forms/source/component/FormComponent.cxx @@ -1981,7 +1981,17 @@ void OBoundControlModel::initFromField( const Reference< XRowSet >& _rxRowSet ) // but only if the rowset is positioned on a valid record if ( hasField() && _rxRowSet.is() ) { - if ( !_rxRowSet->isBeforeFirst() && !_rxRowSet->isAfterLast() ) + bool shouldTransfer(!_rxRowSet->isBeforeFirst() && !_rxRowSet->isAfterLast()); + if (!shouldTransfer) + { + const Reference< XPropertySet > xPS(_rxRowSet, UNO_QUERY); + if (xPS.is()) + { + assert(!shouldTransfer); + xPS->getPropertyValue("IsNew") >>= shouldTransfer; + } + } + if ( shouldTransfer ) transferDbValueToControl(); else // reset the field if the row set is empty diff --git a/forms/source/component/ListBox.cxx b/forms/source/component/ListBox.cxx index 00e1e7afafb70..b875eef1d15c0 100644 --- a/forms/source/component/ListBox.cxx +++ b/forms/source/component/ListBox.cxx @@ -421,8 +421,8 @@ namespace frm Any _rCurrentValue = getCurrentSingleValue(); if (_rCurrentValue != _rValue) { - _rOldValue = _rValue; - _rConvertedValue = _rCurrentValue; + _rOldValue = _rCurrentValue; + _rConvertedValue = _rValue; bModified = true; } break; @@ -1070,7 +1070,9 @@ namespace frm sal_Int32 OListBoxModel::getValueType() const { - return (m_nBoundColumnType != css::sdbc::DataType::SQLNULL) ? m_nBoundColumnType : getFieldType(); + return (m_nBoundColumnType != css::sdbc::DataType::SQLNULL) ? + m_nBoundColumnType : + ( hasField() ? getFieldType() : DataType::VARCHAR); } ValueList OListBoxModel::impl_getValues() const diff --git a/forms/source/misc/InterfaceContainer.cxx b/forms/source/misc/InterfaceContainer.cxx index e8973e7d60007..e90880f46612b 100644 --- a/forms/source/misc/InterfaceContainer.cxx +++ b/forms/source/misc/InterfaceContainer.cxx @@ -660,13 +660,15 @@ throw (css::uno::RuntimeException, std::exception) { if (evt.PropertyName == PROPERTY_NAME) { ::osl::MutexGuard aGuard( m_rMutex ); - OInterfaceMap::iterator i = m_aMap.find(::comphelper::getString(evt.OldValue)); - if (i != m_aMap.end() && (*i).second != evt.Source) - { - css::uno::Reference xCorrectType((*i).second); - m_aMap.erase(i); - m_aMap.insert(::std::pair >(::comphelper::getString(evt.NewValue),xCorrectType)); - } + auto range = m_aMap.equal_range(::comphelper::getString(evt.OldValue)); + for (auto it = range.first; it != range.second; ++it) + if (it->second == evt.Source) + { + css::uno::Reference xCorrectType(it->second); + m_aMap.erase(it); + m_aMap.insert(::std::pair >(::comphelper::getString(evt.NewValue),xCorrectType)); + break; + } } } diff --git a/forms/source/richtext/clipboarddispatcher.cxx b/forms/source/richtext/clipboarddispatcher.cxx index e8fe2321369b8..9d068b428f262 100644 --- a/forms/source/richtext/clipboarddispatcher.cxx +++ b/forms/source/richtext/clipboarddispatcher.cxx @@ -137,7 +137,8 @@ namespace frm // initial state TransferableDataHelper aDataHelper( TransferableDataHelper::CreateFromSystemClipboard( _rView.GetWindow() ) ); - m_bPastePossible = ( aDataHelper.HasFormat( SotClipboardFormatId::STRING ) || aDataHelper.HasFormat( SotClipboardFormatId::RTF ) ); + m_bPastePossible = ( aDataHelper.HasFormat( SotClipboardFormatId::STRING ) || + aDataHelper.HasFormat( SotClipboardFormatId::RTF ) || aDataHelper.HasFormat( SotClipboardFormatId::RICHTEXT ) ); } @@ -155,7 +156,8 @@ namespace frm { OSL_ENSURE( _pDataHelper, "OPasteClipboardDispatcher::OnClipboardChanged: ooops!" ); m_bPastePossible = _pDataHelper->HasFormat( SotClipboardFormatId::STRING ) - || _pDataHelper->HasFormat( SotClipboardFormatId::RTF ); + || _pDataHelper->HasFormat( SotClipboardFormatId::RTF ) + || _pDataHelper->HasFormat( SotClipboardFormatId::RICHTEXT ); invalidate(); } diff --git a/formula/source/core/api/FormulaCompiler.cxx b/formula/source/core/api/FormulaCompiler.cxx index b0a2adaa813f1..d251dc7c17c27 100644 --- a/formula/source/core/api/FormulaCompiler.cxx +++ b/formula/source/core/api/FormulaCompiler.cxx @@ -1185,6 +1185,18 @@ FormulaError FormulaCompiler::GetErrorConstant( const OUString& rName ) const ; // nothing } } + else + { + // Per convention recognize detailed "#ERRxxx!" constants, always + // untranslated. Error numbers are sal_uInt16 so at most 5 decimal + // digits. + if (rName.startsWithIgnoreAsciiCase("#ERR") && rName.getLength() <= 10 && rName[rName.getLength()-1] == '!') + { + sal_uInt32 nErr = rName.copy( 4, rName.getLength() - 5).toUInt32(); + if (0 < nErr && nErr <= SAL_MAX_UINT16 && isPublishedFormulaError(static_cast(nErr))) + nError = static_cast(nErr); + } + } return nError; } @@ -1203,7 +1215,6 @@ void FormulaCompiler::AppendErrorConstant( OUStringBuffer& rBuffer, FormulaError OpCode eOp; switch (nError) { - default: case FormulaError::NoCode: eOp = ocErrNull; break; @@ -1225,6 +1236,15 @@ void FormulaCompiler::AppendErrorConstant( OUStringBuffer& rBuffer, FormulaError case FormulaError::NotAvailable: eOp = ocErrNA; break; + default: + { + // Per convention create detailed "#ERRxxx!" constants, always + // untranslated. + rBuffer.append("#ERR"); + rBuffer.append(static_cast(nError)); + rBuffer.append('!'); + return; + } } rBuffer.append( mxSymbols->getSymbol( eOp)); } @@ -1243,7 +1263,7 @@ bool FormulaCompiler::GetToken() if ( nRecursion > nRecursionMax ) { SetError( FormulaError::StackOverflow ); - mpToken = new FormulaByteToken( ocStop ); + mpLastToken = mpToken = new FormulaByteToken( ocStop ); return false; } if ( bAutoCorrect && !pStack ) @@ -1256,7 +1276,6 @@ bool FormulaCompiler::GetToken() bStop = true; else { - FormulaTokenRef pCurrToken = mpToken; FormulaTokenRef pSpacesToken; short nWasColRowName; if ( pArr->nIndex > 0 && pArr->pCode[ pArr->nIndex-1 ]->GetOpCode() == ocColRowName ) @@ -1282,6 +1301,9 @@ bool FormulaCompiler::GetToken() if( pStack ) { PopTokenArray(); + // mpLastToken was popped as well and corresponds to the + // then current last token during PushTokenArray(), e.g. for + // HandleRange(). return GetToken(); } else @@ -1291,17 +1313,17 @@ bool FormulaCompiler::GetToken() { if ( nWasColRowName >= 2 && mpToken->GetOpCode() == ocColRowName ) { // convert an ocSpaces to ocIntersect in RPN - mpToken = new FormulaByteToken( ocIntersect ); + mpLastToken = mpToken = new FormulaByteToken( ocIntersect ); pArr->nIndex--; // we advanced to the second ocColRowName, step back } else if (pSpacesToken && FormulaGrammar::isExcelSyntax( meGrammar) && - pCurrToken && mpToken && - isPotentialRangeType( pCurrToken.get(), false, false) && + mpLastToken && mpToken && + isPotentialRangeType( mpLastToken.get(), false, false) && isPotentialRangeType( mpToken.get(), false, true)) { // Let IntersectionLine() <- Factor() decide how to treat this, // once the actual arguments are determined in RPN. - mpToken = pSpacesToken; + mpLastToken = mpToken = pSpacesToken; pArr->nIndex--; // step back from next non-spaces token return true; } @@ -1309,9 +1331,14 @@ bool FormulaCompiler::GetToken() } if( bStop ) { - mpToken = new FormulaByteToken( ocStop ); + mpLastToken = mpToken = new FormulaByteToken( ocStop ); return false; } + + // Remember token for next round and any PushTokenArray() calls that may + // occur in handlers. + mpLastToken = mpToken; + if ( mpToken->IsExternalRef() ) { return HandleExternalReference(*mpToken); @@ -1484,7 +1511,7 @@ void FormulaCompiler::Factor() } else SetError( FormulaError::PairExpected); - sal_uInt8 nSepCount = 0; + sal_uInt32 nSepCount = 0; const sal_uInt16 nSepPos = pArr->nIndex - 1; // separator position, if any if( !bNoParam ) { @@ -1494,6 +1521,8 @@ void FormulaCompiler::Factor() NextToken(); CheckSetForceArrayParameter( mpToken, nSepCount); nSepCount++; + if (nSepCount > FORMULA_MAXPARAMS) + SetError( FormulaError::CodeOverflow); eOp = Expression(); } } @@ -1590,7 +1619,7 @@ void FormulaCompiler::Factor() } else SetError( FormulaError::PairExpected); - sal_uInt8 nSepCount = 0; + sal_uInt32 nSepCount = 0; if( !bNoParam ) { nSepCount++; @@ -1599,6 +1628,8 @@ void FormulaCompiler::Factor() NextToken(); CheckSetForceArrayParameter( mpToken, nSepCount); nSepCount++; + if (nSepCount > FORMULA_MAXPARAMS) + SetError( FormulaError::CodeOverflow); eOp = Expression(); } } @@ -2040,6 +2071,7 @@ void FormulaCompiler::PopTokenArray() if( p->bTemp ) delete pArr; pArr = p->pArr; + mpLastToken = p->mpLastToken; delete p; } } @@ -2121,20 +2153,36 @@ const FormulaToken* FormulaCompiler::CreateStringFromToken( OUStringBuffer& rBuf if( eOp == ocSpaces ) { - bool bIntersectionOp = mxSymbols->isODFF(); - if (bIntersectionOp) + bool bWriteSpaces = true; + if (mxSymbols->isODFF()) { const FormulaToken* p = pArr->PeekPrevNoSpaces(); - bIntersectionOp = (p && p->GetOpCode() == ocColRowName); + bool bIntersectionOp = (p && p->GetOpCode() == ocColRowName); if (bIntersectionOp) { p = pArr->PeekNextNoSpaces(); bIntersectionOp = (p && p->GetOpCode() == ocColRowName); } + if (bIntersectionOp) + { + rBuffer.append( "!!"); + bWriteSpaces = false; + } } - if (bIntersectionOp) - rBuffer.append( "!!"); - else + else if (mxSymbols->isOOXML()) + { + // ECMA-376-1:2016 18.17.2 Syntax states "that no space characters + // shall separate a function-name from the left parenthesis (() + // that follows it." and Excel even chokes on it. + const FormulaToken* p = pArr->PeekPrevNoSpaces(); + if (p && p->isFunction()) + { + p = pArr->PeekNextNoSpaces(); + if (p && p->GetOpCode() == ocOpen) + bWriteSpaces = false; + } + } + if (bWriteSpaces) { // most times it's just one blank sal_uInt8 n = t->GetByte(); @@ -2581,6 +2629,7 @@ void FormulaCompiler::PushTokenArray( FormulaTokenArray* pa, bool bTemp ) FormulaArrayStack* p = new FormulaArrayStack; p->pNext = pStack; p->pArr = pArr; + p->mpLastToken = mpLastToken; p->bTemp = bTemp; pStack = p; pArr = pa; diff --git a/fpicker/source/win32/filepicker/VistaFilePicker.cxx b/fpicker/source/win32/filepicker/VistaFilePicker.cxx index c3e95b51ac1bc..a3e906be01155 100644 --- a/fpicker/source/win32/filepicker/VistaFilePicker.cxx +++ b/fpicker/source/win32/filepicker/VistaFilePicker.cxx @@ -110,6 +110,8 @@ void SAL_CALL VistaFilePicker::disposing(const css::lang::EventObject& /*aEvent* void SAL_CALL VistaFilePicker::setMultiSelectionMode(sal_Bool bMode) throw(css::uno::RuntimeException) { + ensureInit(); + RequestRef rRequest(new Request()); rRequest->setRequest (VistaFilePickerImpl::E_SET_MULTISELECTION_MODE); rRequest->setArgument(PROP_MULTISELECTION_MODE, bMode); @@ -120,6 +122,8 @@ void SAL_CALL VistaFilePicker::setMultiSelectionMode(sal_Bool bMode) void SAL_CALL VistaFilePicker::setTitle(const OUString& sTitle) throw(css::uno::RuntimeException) { + ensureInit(); + RequestRef rRequest(new Request()); rRequest->setRequest (VistaFilePickerImpl::E_SET_TITLE); rRequest->setArgument(PROP_TITLE, sTitle); @@ -178,6 +182,8 @@ void SAL_CALL VistaFilePicker::appendFilterGroup(const OUString& void SAL_CALL VistaFilePicker::setDefaultName(const OUString& sName ) throw(css::uno::RuntimeException) { + ensureInit(); + RequestRef rRequest(new Request()); rRequest->setRequest (VistaFilePickerImpl::E_SET_DEFAULT_NAME); rRequest->setArgument(PROP_FILENAME, sName); @@ -189,6 +195,8 @@ void SAL_CALL VistaFilePicker::setDisplayDirectory(const OUString& sDirectory) throw (css::lang::IllegalArgumentException, css::uno::RuntimeException ) { + ensureInit(); + bool bChanged = officecfg::Office::Common::Path::Info::WorkPathChanged::get( comphelper::getComponentContext(m_xSMGR)); if (bChanged ) @@ -212,6 +220,8 @@ void SAL_CALL VistaFilePicker::setDisplayDirectory(const OUString& sDirectory) OUString SAL_CALL VistaFilePicker::getDisplayDirectory() throw(css::uno::RuntimeException) { + ensureInit(); + RequestRef rRequest(new Request()); rRequest->setRequest (VistaFilePickerImpl::E_GET_DIRECTORY); m_aAsyncExecute.triggerRequestThreadAware(rRequest, AsyncRequests::BLOCKED); @@ -246,8 +256,7 @@ css::uno::Sequence< OUString > SAL_CALL VistaFilePicker::getSelectedFiles() return lFiles; } -::sal_Int16 SAL_CALL VistaFilePicker::execute() - throw(css::uno::RuntimeException) +void VistaFilePicker::ensureInit() { bool bInitialized(false); { @@ -262,6 +271,12 @@ ::sal_Int16 SAL_CALL VistaFilePicker::execute() aInitArguments[0] <<= nTemplateDescription; initialize(aInitArguments); } +} + +::sal_Int16 SAL_CALL VistaFilePicker::execute() + throw(css::uno::RuntimeException) +{ + ensureInit(); RequestRef rRequest(new Request()); rRequest->setRequest (VistaFilePickerImpl::E_SHOW_DIALOG_MODAL); diff --git a/fpicker/source/win32/filepicker/VistaFilePicker.hxx b/fpicker/source/win32/filepicker/VistaFilePicker.hxx index deb15ef6ee3eb..31e239403aa7d 100644 --- a/fpicker/source/win32/filepicker/VistaFilePicker.hxx +++ b/fpicker/source/win32/filepicker/VistaFilePicker.hxx @@ -249,6 +249,8 @@ public: using WeakComponentImplHelperBase::disposing; + void ensureInit(); + private: diff --git a/framework/Library_fwk.mk b/framework/Library_fwk.mk index e6d0ae2b31109..2246286b0348b 100644 --- a/framework/Library_fwk.mk +++ b/framework/Library_fwk.mk @@ -41,6 +41,8 @@ $(eval $(call gb_Library_use_libraries,fwk,\ comphelper \ cppu \ cppuhelper \ + $(call gb_Helper_optional,BREAKPAD, \ + crashreport) \ fwe \ fwi \ i18nlangtag \ diff --git a/framework/inc/services/desktop.hxx b/framework/inc/services/desktop.hxx index 8aa56efaf9a85..2c88e32c501f1 100644 --- a/framework/inc/services/desktop.hxx +++ b/framework/inc/services/desktop.hxx @@ -455,6 +455,8 @@ class Desktop : private cppu::BaseMutex, css::uno::Reference< css::frame::XUntitledNumbers > m_xTitleNumberGenerator; + std::vector> m_xComponentDllListeners; + }; // class Desktop } // namespace framework diff --git a/framework/source/fwe/classes/addonsoptions.cxx b/framework/source/fwe/classes/addonsoptions.cxx index c3013e4a2532d..fc11b4e4c803d 100644 --- a/framework/source/fwe/classes/addonsoptions.cxx +++ b/framework/source/fwe/classes/addonsoptions.cxx @@ -475,7 +475,7 @@ bool AddonsOptions_Impl::GetMergeToolbarInstructions( static Image ScaleImage( const Image &rImage, bool bBig ) { - Size aSize = ToolBox::GetDefaultImageSize(bBig); + Size aSize = ToolBox::GetDefaultImageSize(bBig ? ToolBoxButtonSize::Large : ToolBoxButtonSize::Small); BitmapEx aScaleBmp(rImage.GetBitmapEx()); SAL_INFO("fwk", "Addons: expensive scale image from " << aScaleBmp.GetSizePixel() << " to " << aSize); diff --git a/framework/source/layoutmanager/toolbarlayoutmanager.cxx b/framework/source/layoutmanager/toolbarlayoutmanager.cxx index b770fd8a86e09..2e28756a7bd0a 100644 --- a/framework/source/layoutmanager/toolbarlayoutmanager.cxx +++ b/framework/source/layoutmanager/toolbarlayoutmanager.cxx @@ -506,6 +506,17 @@ bool ToolbarLayoutManager::createToolbar( const OUString& rResourceURL ) SolarMutexClearableGuard aWriteLock; UIElement& rElement = impl_findToolbar( rResourceURL ); + if (rElement.m_xUIElement.is()) + { + // somebody else must have created it while we released + // the SolarMutex - just dispose our new instance and + // do nothing. (We have to dispose either the new or the + // existing m_xUIElement.) + aWriteLock.clear(); + uno::Reference const xC(xUIElement, uno::UNO_QUERY); + xC->dispose(); + return false; + } if ( !rElement.m_aName.isEmpty() ) { // Reuse a local entry so we are able to use the latest diff --git a/framework/source/services/autorecovery.cxx b/framework/source/services/autorecovery.cxx index dec1ee8392ba9..222f4eaa0780e 100644 --- a/framework/source/services/autorecovery.cxx +++ b/framework/source/services/autorecovery.cxx @@ -381,6 +381,7 @@ class AutoRecovery : private cppu::BaseMutex /** @short the timer, which is used to be informed about the next saving time ... + @remark must lock SolarMutex to use */ Timer m_aTimer; @@ -1252,12 +1253,13 @@ void AutoRecovery::initListeners() // establish callback for our internal used timer. // Note: Its only active, if the timer will be started ... + SolarMutexGuard g; m_aTimer.SetTimeoutHdl(LINK(this, AutoRecovery, implts_timerExpired)); } AutoRecovery::~AutoRecovery() { - disposing(); + assert(!m_aTimer.IsActive()); } void AutoRecovery::disposing() @@ -1295,7 +1297,7 @@ void SAL_CALL AutoRecovery::dispatch(const css::util::URL& bool bAsync; DispatchParams aParams; /* SAFE */ { - osl::MutexGuard g(cppu::WeakComponentImplHelperBase::rBHelper.rMutex); + osl::ClearableMutexGuard g(cppu::WeakComponentImplHelperBase::rBHelper.rMutex); // still running operation ... ignoring AUTO_SAVE. // All other requests has higher prio! @@ -1331,6 +1333,7 @@ void SAL_CALL AutoRecovery::dispatch(const css::util::URL& // don't enable AutoSave hardly ! // reload configuration to know the current state. implts_readAutoSaveConfig(); + g.clear(); implts_updateTimer(); // can it happen that might be the listener was stopped ? .-) // make sure it runs always ... even if AutoSave itself was disabled temporarly. @@ -2145,21 +2148,28 @@ void AutoRecovery::implts_startListening() css::uno::Reference< css::util::XChangesNotifier > xCFG; css::uno::Reference< css::frame::XGlobalEventBroadcaster > xBroadcaster; bool bListenForDocEvents; + bool bListenForConfigChanges; /* SAFE */ { osl::MutexGuard g(cppu::WeakComponentImplHelperBase::rBHelper.rMutex); xCFG.set (m_xRecoveryCFG, css::uno::UNO_QUERY); xBroadcaster = m_xNewDocBroadcaster; bListenForDocEvents = m_bListenForDocEvents; + bListenForConfigChanges = m_bListenForConfigChanges; } /* SAFE */ if ( ( xCFG.is() ) && - (! m_bListenForConfigChanges) + (! bListenForConfigChanges) ) { - m_xRecoveryCFGListener = new WeakChangesListener(this); - xCFG->addChangesListener(m_xRecoveryCFGListener); + css::uno::Reference const xListener( + new WeakChangesListener(this)); + xCFG->addChangesListener(xListener); + /* SAFE */ { + osl::MutexGuard g2(cppu::WeakComponentImplHelperBase::rBHelper.rMutex); + m_xRecoveryCFGListener = xListener; m_bListenForConfigChanges = true; + } /* SAFE */ } if (!xBroadcaster.is()) @@ -2176,10 +2186,12 @@ void AutoRecovery::implts_startListening() (! bListenForDocEvents) ) { - m_xNewDocBroadcasterListener = new WeakDocumentEventListener(this); - xBroadcaster->addDocumentEventListener(m_xNewDocBroadcasterListener); + css::uno::Reference const + xListener(new WeakDocumentEventListener(this)); + xBroadcaster->addDocumentEventListener(xListener); /* SAFE */ { osl::MutexGuard g2(cppu::WeakComponentImplHelperBase::rBHelper.rMutex); + m_xNewDocBroadcasterListener = xListener; m_bListenForDocEvents = true; } /* SAFE */ } @@ -2249,6 +2261,8 @@ void AutoRecovery::implts_updateTimer() { implts_stopTimer(); + sal_Int32 nMilliSeconds = 0; + /* SAFE */ { osl::MutexGuard g(cppu::WeakComponentImplHelperBase::rBHelper.rMutex); @@ -2258,7 +2272,6 @@ void AutoRecovery::implts_updateTimer() ) return; - sal_Int32 nMilliSeconds = 0; if (m_eTimerType == AutoRecovery::E_NORMAL_AUTOSAVE_INTERVALL) { nMilliSeconds = (m_nAutoSaveTimeIntervall*60000); // [min] => 60.000 ms @@ -2270,15 +2283,17 @@ void AutoRecovery::implts_updateTimer() else if (m_eTimerType == AutoRecovery::E_POLL_TILL_AUTOSAVE_IS_ALLOWED) nMilliSeconds = 300; // there is a minimum time frame, where the user can lose some key input data! - m_aTimer.SetTimeout(nMilliSeconds); - m_aTimer.Start(); } /* SAFE */ + + SolarMutexGuard g; + m_aTimer.SetTimeout(nMilliSeconds); + m_aTimer.Start(); } void AutoRecovery::implts_stopTimer() { - osl::MutexGuard g(cppu::WeakComponentImplHelperBase::rBHelper.rMutex); + SolarMutexGuard g; if (!m_aTimer.IsActive()) return; @@ -2326,13 +2341,14 @@ IMPL_LINK_NOARG(AutoRecovery, implts_timerExpired, Timer *, void) // If we poll for an user idle period, may be we must // do nothing here and start the timer again. /* SAFE */ { - osl::MutexGuard g(cppu::WeakComponentImplHelperBase::rBHelper.rMutex); + osl::ClearableMutexGuard g(cppu::WeakComponentImplHelperBase::rBHelper.rMutex); if (m_eTimerType == AutoRecovery::E_POLL_FOR_USER_IDLE) { bool bUserIdle = (Application::GetLastInputInterval()>MIN_TIME_FOR_USER_IDLE); if (!bUserIdle) { + g.clear(); implts_updateTimer(); return; } diff --git a/framework/source/services/desktop.cxx b/framework/source/services/desktop.cxx index c8bf51fe6a8eb..20afab1ef700a 100644 --- a/framework/source/services/desktop.cxx +++ b/framework/source/services/desktop.cxx @@ -62,6 +62,8 @@ #include #include #include +#include +#include #include #include @@ -317,11 +319,16 @@ sal_Bool SAL_CALL Desktop::terminate() // see dispose() for further information. /* SAFE AREA --------------------------------------------------------------------------------------- */ SolarMutexClearableGuard aWriteLock; + CrashReporter::AddKeyValue("ShutDown", OUString::boolean(true)); m_bIsTerminated = true; aWriteLock.clear(); /* UNSAFE AREA ------------------------------------------------------------------------------------- */ impl_sendNotifyTerminationEvent(); + { + SolarMutexGuard aGuard; + Scheduler::ProcessEventsToIdle(); + } if( ( bAskQuickStart ) && @@ -340,6 +347,14 @@ sal_Bool SAL_CALL Desktop::terminate() if ( xPipeTerminator.is() ) xPipeTerminator->notifyTermination( aEvent ); + // we need a copy here as the notifyTermination call might cause a removeTerminateListener call + std::vector< css::uno::Reference > xComponentDllListeners = m_xComponentDllListeners; + for (auto& xListener : xComponentDllListeners) + { + xListener->notifyTermination(aEvent); + } + m_xComponentDllListeners.clear(); + // Must be really the last listener to be called. // Because it shutdown the whole process asynchronous ! if ( xSfxTerminator.is() ) @@ -417,6 +432,11 @@ void SAL_CALL Desktop::addTerminateListener( const css::uno::Reference< css::fra m_xSWThreadManager = xListener; return; } + else if ( sImplementationName == "com.sun.star.comp.ComponentDLLListener" ) + { + m_xComponentDllListeners.push_back(xListener); + return; + } } // No lock required ... container is threadsafe by itself. @@ -464,6 +484,13 @@ void SAL_CALL Desktop::removeTerminateListener( const css::uno::Reference< css:: m_xSWThreadManager.clear(); return; } + else if (sImplementationName == "com.sun.star.comp.ComponentDLLListener") + { + m_xComponentDllListeners.erase( + std::remove(m_xComponentDllListeners.begin(), m_xComponentDllListeners.end(), xListener), + m_xComponentDllListeners.end()); + return; + } } // No lock required ... container is threadsafe by itself. @@ -1093,6 +1120,15 @@ void SAL_CALL Desktop::disposing() m_xQuickLauncher.clear(); m_xStarBasicQuitGuard.clear(); m_xSWThreadManager.clear(); + + // we need a copy because the notifyTermination might call the removeEventListener method + std::vector< css::uno::Reference > xComponentDllListeners = m_xComponentDllListeners; + for (auto& xListener: xComponentDllListeners) + { + xListener->notifyTermination(aEvent); + } + xComponentDllListeners.clear(); + m_xComponentDllListeners.clear(); m_xSfxTerminator.clear(); m_xCommandOptions.reset(); diff --git a/framework/source/services/frame.cxx b/framework/source/services/frame.cxx index 09e5104652f69..88de578a07ba1 100644 --- a/framework/source/services/frame.cxx +++ b/framework/source/services/frame.cxx @@ -1947,7 +1947,18 @@ void SAL_CALL Frame::setLayoutManager(const css::uno::Reference xOldLayoutManager = m_xLayoutManager; + css::uno::Reference xNewLayoutManager(p1, css::uno::UNO_QUERY); + + if (xOldLayoutManager != xNewLayoutManager) + { + m_xLayoutManager = xNewLayoutManager; + if (xOldLayoutManager.is()) + disableLayoutManager(xOldLayoutManager); + if (xNewLayoutManager.is()) + lcl_enableLayoutManager(xNewLayoutManager, this); + } } css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL Frame::getPropertySetInfo() diff --git a/framework/source/uielement/menubarmanager.cxx b/framework/source/uielement/menubarmanager.cxx index 530df3e77fcd1..0a50c024e31e3 100644 --- a/framework/source/uielement/menubarmanager.cxx +++ b/framework/source/uielement/menubarmanager.cxx @@ -1172,11 +1172,6 @@ void MenuBarManager::FillMenuManager( Menu* pMenu, const Reference< XFrame >& rF { sal_uInt16 nItemId = FillItemCommand(aItemCommand,pMenu, i ); - // Command can be just an alias to another command. - OUString aRealCommand = vcl::CommandInfoProvider::Instance().GetRealCommandForCommand( aItemCommand, m_xFrame ); - if ( !aRealCommand.isEmpty() ) - aItemCommand = aRealCommand; - // Set module identifier when provided from outside if ( !rModuleIdentifier.isEmpty() ) { @@ -1191,6 +1186,11 @@ void MenuBarManager::FillMenuManager( Menu* pMenu, const Reference< XFrame >& rF pMenu->SetItemText( nItemId, RetrieveLabelFromCommand( aItemCommand )); } + // Command can be just an alias to another command. + OUString aRealCommand = vcl::CommandInfoProvider::Instance().GetRealCommandForCommand( aItemCommand, m_xFrame ); + if ( !aRealCommand.isEmpty() ) + aItemCommand = aRealCommand; + Reference< XDispatch > xDispatch; Reference< XStatusListener > xStatusListener; VclPtr pPopup = pMenu->GetPopupMenu( nItemId ); diff --git a/framework/source/uielement/toolbarmanager.cxx b/framework/source/uielement/toolbarmanager.cxx index 4c330b3e64ce8..489ad878715a1 100644 --- a/framework/source/uielement/toolbarmanager.cxx +++ b/framework/source/uielement/toolbarmanager.cxx @@ -200,7 +200,7 @@ ToolBarManager::ToolBarManager( const Reference< XComponentContext >& rxContext, ToolBarManager::~ToolBarManager() { assert(!m_aAsyncUpdateControllersTimer.IsActive()); - OSL_ASSERT( !m_pToolBar ); + assert(!m_pToolBar); // must be disposed by ToolbarLayoutManager OSL_ASSERT( !m_bAddedToTaskPaneList ); } diff --git a/helpcontent2 b/helpcontent2 index b429143c2cbed..0df61eb0f1129 160000 --- a/helpcontent2 +++ b/helpcontent2 @@ -1 +1 @@ -Subproject commit b429143c2cbedbc28b9b8c9cc07cd76cd69b68c6 +Subproject commit 0df61eb0f112955ec3ea5e060df80fc8fbe9f62d diff --git a/hwpfilter/qa/cppunit/data/fail/cslist-1.hwp b/hwpfilter/qa/cppunit/data/fail/cslist-1.hwp new file mode 100644 index 0000000000000..d491f7b4c04d0 Binary files /dev/null and b/hwpfilter/qa/cppunit/data/fail/cslist-1.hwp differ diff --git a/hwpfilter/qa/cppunit/data/fail/skipblock-1.hwp b/hwpfilter/qa/cppunit/data/fail/skipblock-1.hwp new file mode 100644 index 0000000000000..8fd8e7abf9fcd Binary files /dev/null and b/hwpfilter/qa/cppunit/data/fail/skipblock-1.hwp differ diff --git a/hwpfilter/qa/cppunit/test_hwpfilter.cxx b/hwpfilter/qa/cppunit/test_hwpfilter.cxx index f497d12ec3e68..040c98edb1b78 100644 --- a/hwpfilter/qa/cppunit/test_hwpfilter.cxx +++ b/hwpfilter/qa/cppunit/test_hwpfilter.cxx @@ -24,7 +24,6 @@ namespace , public test::BootstrapFixture { public: - virtual void setUp() override; virtual bool load(const OUString &, const OUString &rURL, const OUString &, @@ -35,26 +34,19 @@ namespace CPPUNIT_TEST_SUITE(HwpFilterTest); CPPUNIT_TEST(test); CPPUNIT_TEST_SUITE_END(); - private: - uno::Reference m_xFilter; }; - void HwpFilterTest::setUp() - { - test::BootstrapFixture::setUp(); - - m_xFilter.set(m_xSFactory->createInstance("com.sun.comp.hwpimport.HwpImportFilter"), - uno::UNO_QUERY_THROW); - } - bool HwpFilterTest::load(const OUString &, const OUString &rURL, const OUString &, SfxFilterFlags, SotClipboardFormatId, unsigned int) { + uno::Reference xFilter(m_xSFactory->createInstance("com.sun.comp.hwpimport.HwpImportFilter"), + uno::UNO_QUERY_THROW); + uno::Sequence< beans::PropertyValue > aDescriptor(1); aDescriptor[0].Name = "URL"; aDescriptor[0].Value <<= rURL; - return m_xFilter->filter(aDescriptor); + return xFilter->filter(aDescriptor); } void HwpFilterTest::test() diff --git a/hwpfilter/source/drawing.h b/hwpfilter/source/drawing.h index 00eef6335571a..52a67be5365d8 100644 --- a/hwpfilter/source/drawing.h +++ b/hwpfilter/source/drawing.h @@ -107,14 +107,14 @@ static bool SkipPrivateBlock(int type) { if (!hmem->read4b(n)) return false; - if (hmem->state() || hmem->skipBlock(n) != n) + if (hmem->state() || hmem->skipBlock(n) != static_cast(n)) return false; } if (!hmem->read4b(n)) return false; if (hmem->state()) return false; - return hmem->skipBlock(n) == n; + return hmem->skipBlock(n) == static_cast(n); } static int SizeExpected; @@ -318,8 +318,6 @@ static bool LoadCommonHeader(HWPDrawingObject * hdo, unsigned short * link_info) static HWPDrawingObject *LoadDrawingObject(void) { - fprintf(stderr, "LoadDrawingObject\n"); - HWPDrawingObject *hdo, *head, *prev; unsigned short link_info; diff --git a/hwpfilter/source/hbox.cxx b/hwpfilter/source/hbox.cxx index da9e206440f36..0cde055d73455 100644 --- a/hwpfilter/source/hbox.cxx +++ b/hwpfilter/source/hbox.cxx @@ -77,18 +77,13 @@ hchar_string HBox::GetString() // skip block SkipData::SkipData(hchar hch) : HBox(hch) - , data_block_len(0) - , dummy(0) - , data_block(nullptr) { } SkipData::~SkipData() { - delete[]data_block; } - // FieldCode [5] FieldCode::FieldCode() : HBox(CH_FIELD) @@ -337,8 +332,6 @@ FBox::FBox(hchar hch) , pgy(0) , pgno(0) , showpg(0) - , prev(nullptr) - , next(nullptr) { } diff --git a/hwpfilter/source/hbox.h b/hwpfilter/source/hbox.h index 3832c76171748..b642665dc5202 100644 --- a/hwpfilter/source/hbox.h +++ b/hwpfilter/source/hbox.h @@ -1,21 +1,21 @@ /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ +* This file is part of the LibreOffice project. +* +* This Source Code Form is subject to the terms of the Mozilla Public +* License, v. 2.0. If a copy of the MPL was not distributed with this +* file, You can obtain one at http://mozilla.org/MPL/2.0/. +* +* This file incorporates work covered by the following license notice: +* +* Licensed to the Apache Software Foundation (ASF) under one or more +* contributor license agreements. See the NOTICE file distributed +* with this work for additional information regarding copyright +* ownership. The ASF licenses this file to you under the Apache +* License, Version 2.0 (the "License"); you may not use this file +* except in compliance with the License. You may obtain a copy of +* the License at http://www.apache.org/licenses/LICENSE-2.0 . +*/ #ifndef INCLUDED_HWPFILTER_SOURCE_HBOX_H #define INCLUDED_HWPFILTER_SOURCE_HBOX_H @@ -32,53 +32,50 @@ #include "hpara.h" /** - * The HBox class is the base class for all date classes in hwp document. - * For example, there are special character, table, image, etc. - * It has one character. The ascii code value of special characters are smaller than 32. General character is greater than 32. - * - * @short Base class for characters - */ +* The HBox class is the base class for all date classes in hwp document. +* For example, there are special character, table, image, etc. +* It has one character. The ascii code value of special characters are smaller than 32. General character is greater than 32. +* +* @short Base class for characters +*/ struct HBox { - public: - hchar hh; +public: + hchar hh; /** - * Construct a HBox object with parameter hch. - * @param hch 16bit character being able to have Korean character. - */ - explicit HBox( hchar hch ); - virtual ~HBox(); +* Construct a HBox object with parameter hch. +* @param hch 16bit character being able to have Korean character. +*/ + explicit HBox( hchar hch ); + virtual ~HBox(); /** - * @returns The Size of HBox object - */ - int WSize(); +* @returns The Size of HBox object +*/ + int WSize(); /** - * Read properties from HIODevice object like stream, file, memory. - * - * @param hwpf HWPFile Object having all information for a hwp file. - * @returns True if reading from stream is successful. - */ - virtual bool Read(HWPFile &hwpf); +* Read properties from HIODevice object like stream, file, memory. +* +* @param hwpf HWPFile Object having all information for a hwp file. +* @returns True if reading from stream is successful. +*/ + virtual bool Read(HWPFile &hwpf); - virtual hchar_string GetString(); - private: - static int boxCount; + virtual hchar_string GetString(); +private: + static int boxCount; }; /** - * @short Class for saving data to be skipped. - */ +* @short Class for skipping data. +*/ struct SkipData: public HBox { - uint data_block_len; - hchar dummy; - char *data_block; - explicit SkipData(hchar); virtual ~SkipData() override; virtual bool Read(HWPFile &hwpf) override; }; + struct DateCode; struct FieldCode : public HBox { @@ -319,8 +316,6 @@ struct FBox: public HBox short pgx, pgy; // physical xpos, ypos short pgno, showpg; // pageno where code is - FBox *prev, *next; - explicit FBox( hchar hch ); virtual ~FBox() override; }; diff --git a/hwpfilter/source/hgzip.cxx b/hwpfilter/source/hgzip.cxx index 81dda52e60f1d..d4adc69614312 100644 --- a/hwpfilter/source/hgzip.cxx +++ b/hwpfilter/source/hgzip.cxx @@ -148,17 +148,17 @@ static int destroy(gz_stream * s) Reads the given number of uncompressed bytes from the compressed file. gz_read returns the number of bytes actually read (0 for end of file). */ -int gz_read(gz_stream * file, voidp buf, unsigned len) +size_t gz_read(gz_stream * file, voidp buf, unsigned len) { //printf("@@ gz_read : len : %d\t",len); gz_stream *s = file; Bytef *start = static_cast(buf); /* starting point for crc computation */ Byte *next_out; /* == stream.next_out but not forced far (for MSDOS) */ if (s == nullptr) - return Z_STREAM_ERROR; + return 0; if (s->z_err == Z_DATA_ERROR || s->z_err == Z_ERRNO) - return -1; + return 0; if (s->z_err == Z_STREAM_END) return 0; /* EOF */ @@ -201,7 +201,7 @@ int gz_read(gz_stream * file, voidp buf, unsigned len) break; } s->crc = crc32(s->crc, start, (uInt) (s->stream.next_out - start)); - return (int) (len - s->stream.avail_out); + return len - s->stream.avail_out; } /* =========================================================================== diff --git a/hwpfilter/source/hgzip.h b/hwpfilter/source/hgzip.h index 4cff263ed390f..40260a99dcc76 100644 --- a/hwpfilter/source/hgzip.h +++ b/hwpfilter/source/hgzip.h @@ -80,7 +80,7 @@ int gz_close ( gz_stream *file ); * @param len Length of data to be read * @returns The number of bytes actually read */ -int gz_read ( gz_stream *file, voidp buf, unsigned len ); +size_t gz_read ( gz_stream *file, voidp buf, unsigned len ); /** * Flushes all pending output into the compressed file * gz_flush should be called only when strictly necessary because it can diff --git a/hwpfilter/source/hinfo.cxx b/hwpfilter/source/hinfo.cxx index 2e5d4b1c9a163..26e2847ff0480 100644 --- a/hwpfilter/source/hinfo.cxx +++ b/hwpfilter/source/hinfo.cxx @@ -194,6 +194,24 @@ bool HWPSummary::Read(HWPFile & hwpf) return (!hwpf.State()); } +ParaShape::ParaShape() + : index(0) + , left_margin(0) + , right_margin(0) + , indent(0) + , lspacing(0) + , pspacing_prev(0) + , pspacing_next(0) + , condense(0) + , arrange_type(0) + , shade(0) + , outline(0) + , outline_continue(0) + , pagebreak(0) +{ + reserved[0] = 0; + reserved[1] = 0; +} void ParaShape::Read(HWPFile & hwpf) { diff --git a/hwpfilter/source/hinfo.h b/hwpfilter/source/hinfo.h index d16da5d090138..590b5f962e7c4 100644 --- a/hwpfilter/source/hinfo.h +++ b/hwpfilter/source/hinfo.h @@ -23,6 +23,9 @@ #include "hwplib.h" #include "string.h" +#include +#include + #define CHAIN_MAX_PATH 40 #define ANNOTATION_LEN 24 @@ -77,7 +80,7 @@ struct PaperBackInfo int range; /* 0-????, 1-????????, 3-??????, 4-?????? */ char reserved3[27]; int size; - char *data; // image data + std::vector data; // image data bool isset; PaperBackInfo() : type(0) @@ -87,7 +90,6 @@ struct PaperBackInfo , flag(0) , range(0) , size(0) - , data(nullptr) , isset(false) { memset(reserved1, 0, sizeof(reserved1)); @@ -240,23 +242,37 @@ struct CharShape /** * @short Tab properties */ -typedef struct +struct TabSet { unsigned char type; unsigned char dot_continue; hunit position; -} TabSet; + TabSet() + : type(0) + , dot_continue(0) + , position(0) + { + } +}; /** * @short Column properties */ -typedef struct +struct ColumnDef { unsigned char ncols; unsigned char separator; hunit spacing; hunit columnlen, columnlen0; -} ColumnDef; + ColumnDef() + : ncols(0) + , separator(0) + , spacing(0) + , columnlen(0) + , columnlen0(0) + { + } +}; /** * @short Style of paragraph @@ -281,11 +297,12 @@ struct ParaShape unsigned char outline; unsigned char outline_continue; unsigned char reserved[2]; - CharShape *cshape; - unsigned char pagebreak; + std::shared_ptr cshape; + unsigned char pagebreak; void Read(HWPFile &); -// virtual ~ParaShape(); + + ParaShape(); }; #endif // INCLUDED_HWPFILTER_SOURCE_HINFO_H diff --git a/hwpfilter/source/hiodev.cxx b/hwpfilter/source/hiodev.cxx index 98001e99a6a80..da02aadc800ed 100644 --- a/hwpfilter/source/hiodev.cxx +++ b/hwpfilter/source/hiodev.cxx @@ -34,7 +34,7 @@ #include "hwpfile.h" #include "hstream.hxx" -const int BUFSIZE = 1024; +const size_t BUFSIZE = 1024; static uchar rBuf[BUFSIZE]; // HIODev abstract class @@ -55,14 +55,14 @@ void HIODev::init() } -int HIODev::read1b(void *ptr, int nmemb) +size_t HIODev::read1b(void *ptr, size_t nmemb) { uchar *p = static_cast(ptr); - int ii; if (state()) - return -1; - for (ii = 0; ii < nmemb; ii++) + return 0; + size_t ii; + for (ii = 0; ii < nmemb; ++ii) { if (!read1b(p[ii])) break; @@ -72,14 +72,14 @@ int HIODev::read1b(void *ptr, int nmemb) return ii; } -int HIODev::read2b(void *ptr, int nmemb) +size_t HIODev::read2b(void *ptr, size_t nmemb) { ushort *p = static_cast(ptr); - int ii; if (state()) - return -1; - for (ii = 0; ii < nmemb; ii++) + return 0; + size_t ii; + for (ii = 0; ii < nmemb; ++ii) { if (!read2b(p[ii])) break; @@ -89,14 +89,14 @@ int HIODev::read2b(void *ptr, int nmemb) return ii; } -int HIODev::read4b(void *ptr, int nmemb) +size_t HIODev::read4b(void *ptr, size_t nmemb) { uint *p = static_cast(ptr); - int ii; if (state()) - return -1; - for (ii = 0; ii < nmemb; ii++) + return 0; + size_t ii; + for (ii = 0; ii < nmemb; ++ii) { if (!read4b(p[ii])) break; @@ -174,7 +174,7 @@ bool HStreamIODev::setCompressed(bool flag) bool HStreamIODev::read1b(unsigned char &out) { - int res = (compressed) ? GZREAD(rBuf, 1) : _stream->readBytes(rBuf, 1); + size_t res = (compressed) ? GZREAD(rBuf, 1) : _stream->readBytes(rBuf, 1); if (res < 1) return false; @@ -194,7 +194,7 @@ bool HStreamIODev::read1b(char &out) bool HStreamIODev::read2b(unsigned short &out) { - int res = (compressed) ? GZREAD(rBuf, 2) : _stream->readBytes(rBuf, 2); + size_t res = (compressed) ? GZREAD(rBuf, 2) : _stream->readBytes(rBuf, 2); if (res < 2) return false; @@ -205,7 +205,7 @@ bool HStreamIODev::read2b(unsigned short &out) bool HStreamIODev::read4b(unsigned int &out) { - int res = (compressed) ? GZREAD(rBuf, 4) : _stream->readBytes(rBuf, 4); + size_t res = (compressed) ? GZREAD(rBuf, 4) : _stream->readBytes(rBuf, 4); if (res < 4) return false; @@ -224,9 +224,9 @@ bool HStreamIODev::read4b(int &out) return true; } -int HStreamIODev::readBlock(void *ptr, int size) +size_t HStreamIODev::readBlock(void *ptr, size_t size) { - int count = + size_t count = (compressed) ? GZREAD(ptr, size) : _stream->readBytes(static_cast(ptr), size); @@ -234,16 +234,20 @@ int HStreamIODev::readBlock(void *ptr, int size) return count; } -int HStreamIODev::skipBlock(int size) +size_t HStreamIODev::skipBlock(size_t size) { if (compressed){ if( size <= BUFSIZE ) return GZREAD(rBuf, size); else{ - int remain = size; + size_t remain = size; while(remain){ - if( remain > BUFSIZE ) - remain -= GZREAD(rBuf, BUFSIZE); + if( remain > BUFSIZE ) { + size_t read = GZREAD(rBuf, BUFSIZE); + remain -= read; + if (read != BUFSIZE) + break; + } else{ remain -= GZREAD(rBuf, remain); break; @@ -256,7 +260,7 @@ int HStreamIODev::skipBlock(int size) } -HMemIODev::HMemIODev(char *s, int len) +HMemIODev::HMemIODev(char *s, size_t len) { init(); ptr = reinterpret_cast(s); @@ -304,9 +308,10 @@ bool HMemIODev::setCompressed(bool ) bool HMemIODev::read1b(unsigned char &out) { + ++pos; if (pos <= length) { - out = ptr[pos++]; + out = ptr[pos - 1]; return true; } return false; @@ -353,7 +358,7 @@ bool HMemIODev::read4b(int &out) return true; } -int HMemIODev::readBlock(void *p, int size) +size_t HMemIODev::readBlock(void *p, size_t size) { if (length < pos + size) size = length - pos; @@ -362,7 +367,7 @@ int HMemIODev::readBlock(void *p, int size) return size; } -int HMemIODev::skipBlock(int size) +size_t HMemIODev::skipBlock(size_t size) { if (length < pos + size) return 0; diff --git a/hwpfilter/source/hiodev.h b/hwpfilter/source/hiodev.h index 7c20e1ffa6999..af49703c34824 100644 --- a/hwpfilter/source/hiodev.h +++ b/hwpfilter/source/hiodev.h @@ -56,12 +56,12 @@ class DLLEXPORT HIODev virtual bool read2b(unsigned short &out) = 0; virtual bool read4b(unsigned int &out) = 0; virtual bool read4b(int &out) = 0; - virtual int readBlock( void *ptr, int size ) = 0; - virtual int skipBlock( int size ) = 0; + virtual size_t readBlock( void *ptr, size_t size ) = 0; + virtual size_t skipBlock( size_t size ) = 0; - int read1b( void *ptr, int nmemb ); - int read2b( void *ptr, int nmemb ); - int read4b( void *ptr, int nmemb ); + size_t read1b( void *ptr, size_t nmemb ); + size_t read2b( void *ptr, size_t nmemb ); + size_t read4b( void *ptr, size_t nmemb ); }; struct gz_stream; @@ -117,11 +117,11 @@ class HStreamIODev final: public HIODev /** * Read some bytes from stream to given pointer as amount of size */ - virtual int readBlock( void *ptr, int size ) override; + virtual size_t readBlock( void *ptr, size_t size ) override; /** * Move current pointer of stream as amount of size */ - virtual int skipBlock( int size ) override; + virtual size_t skipBlock( size_t size ) override; private: /** * Initialize this object @@ -137,9 +137,9 @@ class HStreamIODev final: public HIODev class HMemIODev final: public HIODev { uchar *ptr; - int pos, length; + size_t pos, length; public: - HMemIODev(char *s, int len); + HMemIODev(char *s, size_t len); virtual ~HMemIODev() override; virtual bool open() override; @@ -155,8 +155,8 @@ class HMemIODev final: public HIODev using HIODev::read4b; virtual bool read4b(unsigned int &out) override; virtual bool read4b(int &out) override; - virtual int readBlock( void *ptr, int size ) override; - virtual int skipBlock( int size ) override; + virtual size_t readBlock( void *ptr, size_t size ) override; + virtual size_t skipBlock( size_t size ) override; private: virtual void init() override; }; diff --git a/hwpfilter/source/hpara.cxx b/hwpfilter/source/hpara.cxx index 96b2729c86989..42baa6814956d 100644 --- a/hwpfilter/source/hpara.cxx +++ b/hwpfilter/source/hpara.cxx @@ -57,10 +57,10 @@ void LineInfo::Read(HWPFile & hwpf, HWPPara *pPara) if( pex >> 15 & 0x01 ) { - if( pex & 0x01 ) - hwpf.AddPage(); - pPara->pshape.reserved[0] = sal::static_int_cast(pex & 0x01); - pPara->pshape.reserved[1] = sal::static_int_cast(pex & 0x02); + if (pex & 0x01) + hwpf.AddPage(); + pPara->pshape->reserved[0] = sal::static_int_cast(pex & 0x01); + pPara->pshape->reserved[1] = sal::static_int_cast(pex & 0x02); } } @@ -75,31 +75,18 @@ HWPPara::HWPPara() , etcflag(0) , ctrlflag(0) , pstyno(0) + , cshape(new CharShape) + , pshape(new ParaShape) , linfo(nullptr) - , cshapep(nullptr) - , hhstr(nullptr) { - memset(&cshape, 0, sizeof(cshape)); - memset(&pshape, 0, sizeof(pshape)); + memset(cshape.get(), 0, sizeof(CharShape)); } HWPPara::~HWPPara() { delete[] linfo; - delete[] cshapep; - if (hhstr) - { -// virtual destructor -/* C++은 null에 대해서도 동작한다. */ - for (int ii = 0; ii < nch; ++ii) - delete hhstr[ii]; - - delete[]hhstr; - } - } - bool HWPPara::Read(HWPFile & hwpf, unsigned char flag) { unsigned char same_cshape; @@ -114,18 +101,17 @@ bool HWPPara::Read(HWPFile & hwpf, unsigned char flag) hwpf.Read4b(&ctrlflag, 1); hwpf.Read1b(&pstyno, 1); - /* Paragraph representative character */ - cshape.Read(hwpf); + cshape->Read(hwpf); if (nch > 0) - hwpf.AddCharShape(&cshape); + hwpf.AddCharShape(cshape); /* Paragraph paragraphs shape */ if (nch && !reuse_shape) { - pshape.Read(hwpf); - pshape.cshape = &cshape; - pshape.pagebreak = etcflag; + pshape->Read(hwpf); + pshape->cshape = cshape; + pshape->pagebreak = etcflag; } linfo = ::comphelper::newArray_null(nline); @@ -139,8 +125,8 @@ bool HWPPara::Read(HWPFile & hwpf, unsigned char flag) } if (nch && !reuse_shape){ - if( pshape.coldef.ncols > 1 ){ - hwpf.SetColumnDef( &pshape.coldef ); + if( pshape->coldef.ncols > 1 ) { + hwpf.SetColumnDef(&(pshape->coldef)); } } @@ -156,22 +142,19 @@ bool HWPPara::Read(HWPFile & hwpf, unsigned char flag) if (contain_cshape) { - cshapep = ::comphelper::newArray_null(nch); - if (!cshapep) - { - perror("Memory Allocation: cshape\n"); - return false; - } + cshapep.resize(nch); for (ii = 0; ii < nch; ii++) { + cshapep[ii].reset(new CharShape); + memset(cshapep[ii].get(), 0, sizeof(CharShape)); hwpf.Read1b(&same_cshape, 1); if (!same_cshape) { - cshapep[ii].Read(hwpf); + cshapep[ii]->Read(hwpf); if (nch > 1) - hwpf.AddCharShape(&cshapep[ii]); + hwpf.AddCharShape(cshapep[ii]); } else if (ii == 0) cshapep[ii] = cshape; @@ -180,120 +163,116 @@ bool HWPPara::Read(HWPFile & hwpf, unsigned char flag) } } // read string - hhstr = ::comphelper::newArray_null(nch); - if (!hhstr) { return false; } - for (ii = 0; ii < nch; ii++) - hhstr[ii] = nullptr; + hhstr.resize(nch); ii = 0; while (ii < nch) { - if (nullptr == (hhstr[ii] = readHBox(hwpf))) + hhstr[ii] = readHBox(hwpf); + if (!hhstr[ii]) return false; if (hhstr[ii]->hh == CH_END_PARA) break; if( hhstr[ii]->hh < CH_END_PARA ) - pshape.reserved[0] = 0; + pshape->reserved[0] = 0; ii += hhstr[ii]->WSize(); } return nch && !hwpf.State(); } - CharShape *HWPPara::GetCharShape(int pos) { if (contain_cshape == 0) - return &cshape; - return cshapep + pos; + return cshape.get(); + return cshapep[pos].get(); } - -HBox *HWPPara::readHBox(HWPFile & hwpf) +std::unique_ptr HWPPara::readHBox(HWPFile & hwpf) { + std::unique_ptr hbox; + hchar hh; if (!hwpf.Read2b(hh)) - return nullptr; - - HBox *hbox = nullptr; + return hbox; if (hwpf.State() != HWP_NoError) - return nullptr; + return hbox; if (hh > 31 || hh == CH_END_PARA) - hbox = new HBox(hh); + hbox.reset(new HBox(hh)); else if (IS_SP_SKIP_BLOCK(hh)) - hbox = new SkipData(hh); + hbox.reset(new SkipData(hh)); else { switch (hh) { case CH_FIELD: // 5 - hbox = new FieldCode; + hbox.reset(new FieldCode); break; case CH_BOOKMARK: // 6 - hbox = new Bookmark; + hbox.reset(new Bookmark); break; case CH_DATE_FORM: // 7 - hbox = new DateFormat; + hbox.reset(new DateFormat); break; case CH_DATE_CODE: // 8 - hbox = new DateCode; + hbox.reset(new DateCode); break; case CH_TAB: // 9 - hbox = new Tab; + hbox.reset(new Tab); break; case CH_TEXT_BOX: // 10 - hbox = new TxtBox; + hbox.reset(new TxtBox); break; case CH_PICTURE: // 11 - hbox = new Picture; + hbox.reset(new Picture); break; case CH_LINE: // 14 - hbox = new Line; + hbox.reset(new Line); break; case CH_HIDDEN: // 15 - hbox = new Hidden; + hbox.reset(new Hidden); break; case CH_HEADER_FOOTER: // 16 - hbox = new HeaderFooter; + hbox.reset(new HeaderFooter); break; case CH_FOOTNOTE: // 17 - hbox = new Footnote; + hbox.reset(new Footnote); break; case CH_AUTO_NUM: // 18 - hbox = new AutoNum; + hbox.reset(new AutoNum); break; case CH_NEW_NUM: // 19 - hbox = new NewNum; + hbox.reset(new NewNum); break; case CH_SHOW_PAGE_NUM: // 20 - hbox = new ShowPageNum; + hbox.reset(new ShowPageNum); break; case CH_PAGE_NUM_CTRL: // 21 - hbox = new PageNumCtrl; + hbox.reset(new PageNumCtrl); break; case CH_MAIL_MERGE: // 22 - hbox = new MailMerge; + hbox.reset(new MailMerge); break; case CH_COMPOSE: // 23 - hbox = new Compose; + hbox.reset(new Compose); break; case CH_HYPHEN: // 24 - hbox = new Hyphen; + hbox.reset(new Hyphen); break; case CH_TOC_MARK: // 25 - hbox = new TocMark; + hbox.reset(new TocMark); break; case CH_INDEX_MARK: // 26 - hbox = new IndexMark; + hbox.reset(new IndexMark); break; case CH_OUTLINE: // 28 - hbox = new Outline; + hbox.reset(new Outline); break; case CH_KEEP_SPACE: // 30 - hbox = new KeepSpace; + hbox.reset(new KeepSpace); break; case CH_FIXED_SPACE: // 31 - hbox = new FixedSpace; + hbox.reset(new FixedSpace); break; default: break; @@ -301,13 +280,12 @@ HBox *HWPPara::readHBox(HWPFile & hwpf) } if (!hbox || !hbox->Read(hwpf)) { - delete hbox; - - return nullptr; + hbox.reset(); + return hbox; } if( hh == CH_TEXT_BOX || hh == CH_PICTURE || hh == CH_LINE ) { - FBox *fbox = static_cast(hbox); + FBox *fbox = static_cast(hbox.get()); if( ( fbox->style.anchor_type == 1) && ( fbox->pgy >= begin_ypos) ) { //strange construct to compile without warning diff --git a/hwpfilter/source/hpara.h b/hwpfilter/source/hpara.h index afb9f5a50b91f..9810853e4245a 100644 --- a/hwpfilter/source/hpara.h +++ b/hwpfilter/source/hpara.h @@ -23,6 +23,7 @@ #include #include #include +#include struct HBox; @@ -102,15 +103,15 @@ class DLLEXPORT HWPPara */ unsigned long ctrlflag; unsigned char pstyno; - CharShape cshape; /* When characters are all the same shape */ - ParaShape pshape; /* if reuse flag is 0, */ + std::shared_ptr cshape; /* When characters are all the same shape */ + std::shared_ptr pshape; /* if reuse flag is 0, */ LineInfo *linfo; - CharShape *cshapep; + std::vector> cshapep; /** * Box object list */ - HBox **hhstr; + std::vector> hhstr; HWPPara(void); ~HWPPara(void); @@ -127,7 +128,7 @@ class DLLEXPORT HWPPara /** * Returns the style of paragraph. */ - ParaShape& GetParaShape(void) { return pshape;} + ParaShape& GetParaShape(void) { return *pshape; } /** * Returns next paragraph. @@ -135,7 +136,7 @@ class DLLEXPORT HWPPara HWPPara *Next(void) { return _next;} private: - HBox *readHBox(HWPFile &); + std::unique_ptr readHBox(HWPFile &); }; #endif // INCLUDED_HWPFILTER_SOURCE_HPARA_H diff --git a/hwpfilter/source/hstream.cxx b/hwpfilter/source/hstream.cxx index 6a0d59f48048b..6b5bf98cb35dd 100644 --- a/hwpfilter/source/hstream.cxx +++ b/hwpfilter/source/hstream.cxx @@ -22,38 +22,37 @@ #include "hstream.hxx" HStream::HStream() - : size(0) - , pos(0) + : pos(0) { } -void HStream::addData(const byte *buf, int aToAdd) +void HStream::addData(const byte *buf, size_t aToAdd) { - seq.resize(size + aToAdd); - memcpy(seq.data() + size, buf, aToAdd); - size += aToAdd; + seq.insert(seq.end(), buf, buf + aToAdd); } -int HStream::readBytes(byte * buf, int aToRead) +size_t HStream::readBytes(byte * buf, size_t aToRead) { + auto size = seq.size(); if (aToRead >= (size - pos)) aToRead = size - pos; - for (int i = 0; i < aToRead; i++) + for (size_t i = 0; i < aToRead; ++i) buf[i] = seq[pos++]; return aToRead; } -int HStream::skipBytes(int aToSkip) +size_t HStream::skipBytes(size_t aToSkip) { + auto size = seq.size(); if (aToSkip >= (size - pos)) aToSkip = size - pos; pos += aToSkip; return aToSkip; } -int HStream::available() const +size_t HStream::available() const { - return size - pos; + return seq.size() - pos; } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/hwpfilter/source/hstream.hxx b/hwpfilter/source/hstream.hxx index 4374b92674e32..e6654f707dde1 100644 --- a/hwpfilter/source/hstream.hxx +++ b/hwpfilter/source/hstream.hxx @@ -34,24 +34,23 @@ class HStream /** * */ - void addData( const byte *buf, int aToAdd); + void addData( const byte *buf, size_t aToAdd); /** * Read some byte to buf as given size */ - int readBytes( byte *buf, int aToRead); + size_t readBytes( byte *buf, size_t aToRead); /** * Skip some byte from stream as given size */ - int skipBytes( int aToSkip ); + size_t skipBytes( size_t aToSkip ); /** * @returns Size of remained stream */ - int available() const; + size_t available() const; private: - int size; std::vector seq; - int pos; + size_t pos; }; #endif diff --git a/hwpfilter/source/hstyle.cxx b/hwpfilter/source/hstyle.cxx index 6c29a500d2b54..d43b3c8fc785f 100644 --- a/hwpfilter/source/hstyle.cxx +++ b/hwpfilter/source/hstyle.cxx @@ -108,7 +108,7 @@ void HWPStyle::SetParaShape(int n, ParaShape * pshapep) if (pshapep) DATA[n].pshape = *pshapep; else - memset(&DATA[n].pshape, 0, sizeof(ParaShape)); + DATA[n].pshape = ParaShape(); } } diff --git a/hwpfilter/source/hwpfile.cxx b/hwpfilter/source/hwpfile.cxx index 3abfcac3086bd..326c428d98f75 100644 --- a/hwpfilter/source/hwpfile.cxx +++ b/hwpfilter/source/hwpfile.cxx @@ -19,6 +19,7 @@ #include "precompile.h" +#include #include #include #include @@ -70,7 +71,7 @@ HWPFile::~HWPFile() for (; it != plist.end(); ++it) delete *it; - std::list < Table* >::iterator tbl = tables.begin(); + std::vector< Table* >::iterator tbl = tables.begin(); for (; tbl != tables.end(); ++tbl) delete *tbl; @@ -124,7 +125,7 @@ int HWPFile::Open(HStream * stream) char idstr[HWPIDLen]; - if (ReadBlock(idstr, HWPIDLen) <= 0 + if (ReadBlock(idstr, HWPIDLen) < HWPIDLen || HWP_V30 != (version = detect_hwp_version(idstr))) { return SetState(HWP_UNSUPPORTED_VERSION); @@ -241,9 +242,9 @@ void HWPFile::ParaListRead() bool HWPFile::ReadParaList(std::list < HWPPara* > &aplist, unsigned char flag) { - HWPPara *spNode = new HWPPara; - unsigned char tmp_etcflag; - unsigned char prev_etcflag = 0; + std::unique_ptr spNode( new HWPPara ); + unsigned char tmp_etcflag; + unsigned char prev_etcflag = 0; while (spNode->Read(*this, flag)) { if( !(spNode->etcflag & 0x04) ){ @@ -261,16 +262,15 @@ bool HWPFile::ReadParaList(std::list < HWPPara* > &aplist, unsigned char flag) spNode->reuse_shape = 0; } } - spNode->pshape.pagebreak = spNode->etcflag; - if( spNode->nch ) - AddParaShape( &spNode->pshape ); + spNode->pshape->pagebreak = spNode->etcflag; + if (spNode->nch) + AddParaShape(spNode->pshape); if (!aplist.empty()) - aplist.back()->SetNext(spNode); - aplist.push_back(spNode); - spNode = new HWPPara; + aplist.back()->SetNext(spNode.get()); + aplist.push_back(spNode.release()); + spNode.reset( new HWPPara ); } - delete spNode; return true; } @@ -348,8 +348,30 @@ void HWPFile::TagsRead() if (!Read4b(_hwpInfo.back_info.size)) return; - _hwpInfo.back_info.data = new char[(unsigned int)_hwpInfo.back_info.size]; - ReadBlock(_hwpInfo.back_info.data, _hwpInfo.back_info.size); + if (_hwpInfo.back_info.size < 0) + { + _hwpInfo.back_info.size = 0; + return; + } + + _hwpInfo.back_info.data.clear(); + + //read potentially compressed data in blocks as its more + //likely large values are simply broken and we'll run out + //of data before we need to realloc + for (int i = 0; i < _hwpInfo.back_info.size; i+= SAL_MAX_UINT16) + { + int nOldSize = _hwpInfo.back_info.data.size(); + size_t nBlock = std::min(SAL_MAX_UINT16, _hwpInfo.back_info.size - nOldSize); + _hwpInfo.back_info.data.resize(nOldSize + nBlock); + size_t nReadBlock = ReadBlock(_hwpInfo.back_info.data.data() + nOldSize, nBlock); + if (nBlock != nReadBlock) + { + _hwpInfo.back_info.data.resize(nOldSize + nReadBlock); + break; + } + } + _hwpInfo.back_info.size = _hwpInfo.back_info.data.size(); if( _hwpInfo.back_info.size > 0 ) _hwpInfo.back_info.type = 2; @@ -442,110 +464,61 @@ EmPicture *HWPFile::GetEmPictureByName(char * name) return nullptr; } - void HWPFile::AddBox(FBox * box) { -// LATER if we don't use box->next(), -// AddBox() and GetBoxHead() are useless; - if (!blist.empty()) - { - box->prev = blist.back(); - box->prev->next = box; - } - else - box->prev = nullptr; blist.push_back(box); } - ParaShape *HWPFile::getParaShape(int index) { - std::list::iterator it = pslist.begin(); - - for( int i = 0; it != pslist.end(); ++it, i++ ){ - if( i == index ) - break; - } - - return it != pslist.end() ? *it : nullptr; + if (index < 0 || static_cast(index) >= pslist.size()) + return nullptr; + return pslist[index].get(); } - CharShape *HWPFile::getCharShape(int index) { - std::list::iterator it = cslist.begin(); - - for( int i = 0; it != cslist.end(); ++it, i++ ){ - if( i == index ) - break; - } - - return it != cslist.end() ? *it : nullptr; + if (index < 0 || static_cast(index) >= cslist.size()) + return nullptr; + return cslist[index].get(); } - FBoxStyle *HWPFile::getFBoxStyle(int index) { - std::list::iterator it = fbslist.begin(); - - for( int i = 0; it != fbslist.end(); ++it, i++ ){ - if( i == index ) - break; - } - - return it != fbslist.end() ? *it : nullptr; + if (index < 0 || static_cast(index) >= fbslist.size()) + return nullptr; + return fbslist[index]; } DateCode *HWPFile::getDateCode(int index) { - std::list::iterator it = datecodes.begin(); - - for( int i = 0; it != datecodes.end(); ++it, i++ ){ - if( i == index ) - break; - } - - return it != datecodes.end() ? *it : nullptr; + if (index < 0 || static_cast(index) >= datecodes.size()) + return nullptr; + return datecodes[index]; } HeaderFooter *HWPFile::getHeaderFooter(int index) { - std::list::iterator it = headerfooters.begin(); - - for( int i = 0; it != headerfooters.end(); ++it, i++ ){ - if( i == index ) - break; - } - - return it != headerfooters.end() ? *it : nullptr; + if (index < 0 || static_cast(index) >= headerfooters.size()) + return nullptr; + return headerfooters[index]; } ShowPageNum *HWPFile::getPageNumber(int index) { - std::list::iterator it = pagenumbers.begin(); - - for( int i = 0; it != pagenumbers.end(); ++it, i++ ){ - if( i == index ) - break; - } - - return it != pagenumbers.end() ? *it : nullptr; - + if (index < 0 || static_cast(index) >= pagenumbers.size()) + return nullptr; + return pagenumbers[index]; } Table *HWPFile::getTable(int index) { - std::list::iterator it = tables.begin(); - - for( int i = 0; it != tables.end(); ++it, i++ ){ - if( i == index ) - break; - } - - return it != tables.end() ? *it : nullptr; + if (index < 0 || static_cast(index) >= tables.size()) + return nullptr; + return tables[index]; } -void HWPFile::AddParaShape(ParaShape * pshape) +void HWPFile::AddParaShape(std::shared_ptr& pshape) { int nscount = 0; for(int j = 0 ; j < MAXTABS-1 ; j++) @@ -566,7 +539,7 @@ void HWPFile::AddParaShape(ParaShape * pshape) if( nscount ) pshape->tabs[MAXTABS-1].type = sal::static_int_cast(nscount); - int value = compareParaShape(pshape); + int value = compareParaShape(pshape.get()); if( value == 0 || nscount ) { @@ -577,11 +550,10 @@ void HWPFile::AddParaShape(ParaShape * pshape) pshape->index = value; } - -void HWPFile::AddCharShape(CharShape * cshape) +void HWPFile::AddCharShape(std::shared_ptr& cshape) { - int value = compareCharShape(cshape); - if( value == 0 ) + int value = compareCharShape(cshape.get()); + if (value == 0) { cshape->index = ++ccount; cslist.push_back(cshape); diff --git a/hwpfilter/source/hwpfile.h b/hwpfilter/source/hwpfile.h index 793354e4c5088..d58faa569a7b3 100644 --- a/hwpfilter/source/hwpfile.h +++ b/hwpfilter/source/hwpfile.h @@ -26,6 +26,7 @@ #define INCLUDED_HWPFILTER_SOURCE_HWPFILE_H #include +#include #include #include #include @@ -211,8 +212,8 @@ class DLLEXPORT HWPFile void AddPage(){ m_nCurrentPage++;} void AddColumnInfo(); void SetColumnDef(ColumnDef *coldef); - void AddParaShape(ParaShape *); - void AddCharShape(CharShape *); + void AddParaShape(std::shared_ptr&); + void AddCharShape(std::shared_ptr&); void AddFBoxStyle(FBoxStyle *); void AddDateFormat(DateCode *); void AddHeaderFooter(HeaderFooter *); @@ -282,13 +283,13 @@ class DLLEXPORT HWPFile std::list emblist; std::list hyperlist; int currenthyper; - std::list pslist; /* 스타오피스의 구조상 필요 */ - std::list cslist; - std::list fbslist; - std::list datecodes; - std::list headerfooters; - std::list pagenumbers; - std::list tables; + std::vector> pslist; /* 스타오피스의 구조상 필요 */ + std::vector> cslist; + std::vector fbslist; + std::vector datecodes; + std::vector headerfooters; + std::vector pagenumbers; + std::vector tables; // for global document handling static HWPFile *cur_doc; diff --git a/hwpfilter/source/hwpread.cxx b/hwpfilter/source/hwpread.cxx index 377c13ee203c9..72aee0f3974a3 100644 --- a/hwpfilter/source/hwpread.cxx +++ b/hwpfilter/source/hwpread.cxx @@ -45,19 +45,19 @@ bool HBox::Read(HWPFile & ) bool SkipData::Read(HWPFile & hwpf) { + uint data_block_len; hwpf.Read4b(&data_block_len, 1); + + hchar dummy; hwpf.Read2b(&dummy, 1); if (!(IS_SP_SKIP_BLOCK(hh) && (hh == dummy))){ return hwpf.SetState(HWP_InvalidFileFormat); - } - - data_block = new char[data_block_len]; + } - return hwpf.Read1b(data_block, data_block_len); + return hwpf.SkipBlock(data_block_len); } - // Field code(5) bool FieldCode::Read(HWPFile & hwpf) { @@ -221,6 +221,7 @@ bool TxtBox::Read(HWPFile & hwpf) hwpf.AddBox(this); hwpf.Read2b(&style.cap_len, 1); hwpf.Read2b(&dummy1, 1); + unsigned short next; hwpf.Read2b(&next, 1); hwpf.Read2b(&dummy2, 1); @@ -430,6 +431,13 @@ bool Picture::Read(HWPFile & hwpf) UpdateBBox(this); if( pictype != PICTYPE_DRAW ) style.cell = reserved3; + else + { + //picinfo.picun read above is unioned with + //picinfo.picdraw and so wrote to the hdo pointer + //value, which is definitely not useful to us + picinfo.picdraw.hdo = nullptr; + } if (follow_block_size != 0) { diff --git a/hwpfilter/source/hwpreader.cxx b/hwpfilter/source/hwpreader.cxx index 02348731913b7..54ec8f5508429 100644 --- a/hwpfilter/source/hwpreader.cxx +++ b/hwpfilter/source/hwpreader.cxx @@ -42,7 +42,7 @@ #define rstartEl(x,y) do { if (m_rxDocumentHandler.is()) m_rxDocumentHandler->startElement(x,y); } while(false) #define rendEl(x) do { if (m_rxDocumentHandler.is()) m_rxDocumentHandler->endElement(x); } while(false) #define rchars(x) do { if (m_rxDocumentHandler.is()) m_rxDocumentHandler->characters(x); } while(false) -#define padd(x,y,z) pList->addAttribute(x,y,z) +#define padd(x,y,z) mxList->addAttribute(x,y,z) #define Double2Str(x) OUString::number((double)(x)) #define WTI(x) ((double)(x) / 1800.) // unit => inch #define WTMM(x) ((double)(x) / 1800. * 25.4) // unit => mm @@ -54,14 +54,14 @@ #define sXML_CDATA "CDATA" #define STARTP padd( "text:style-name", "CDATA", ascii(getPStyleName(((ParaShape &)para->GetParaShape()).index,buf))); \ - rstartEl( "text:p",rList ); \ - pList->clear(); \ + rstartEl( "text:p",mxList.get() ); \ + mxList->clear(); \ pstart = true #define STARTT \ curr = para->GetCharShape(n > 0 ? n-1 : 0)->index; \ padd( "text:style-name", "CDATA" , ascii( getTStyleName(curr, buf) ) ); \ - rstartEl( "text:span",rList ); \ - pList->clear(); \ + rstartEl( "text:span",mxList.get() ); \ + mxList->clear(); \ tstart = true #define ENDP \ rendEl("text:p"); \ @@ -107,15 +107,13 @@ struct HwpReaderPrivate HwpReader::HwpReader() { - pList = new AttributeListImpl; - rList = static_cast(pList); + mxList = new AttributeListImpl; d = new HwpReaderPrivate; } HwpReader::~HwpReader() { - rList = nullptr; delete d; } @@ -188,8 +186,8 @@ sal_Bool HwpReader::filter(const Sequence< PropertyValue >& rDescriptor) throw(R padd("xmlns:form", "CDATA", "http://openoffice.org/2000/form"); padd("xmlns:script", "CDATA", "http://openoffice.org/2000/script"); - rstartEl("office:document", rList); - pList->clear(); + rstartEl("office:document", mxList.get()); + mxList->clear(); makeMeta(); makeStyles(); @@ -210,7 +208,7 @@ sal_Bool HwpReader::filter(const Sequence< PropertyValue >& rDescriptor) throw(R */ void HwpReader::makeBody() { - rstartEl("office:body", rList); + rstartEl("office:body", mxList.get()); makeTextDecls(); HWPPara *hwppara = hwpfile.GetFirstPara(); d->bInBody = true; @@ -225,26 +223,26 @@ void HwpReader::makeBody() */ void HwpReader::makeTextDecls() { - rstartEl("text:sequence-decls", rList); + rstartEl("text:sequence-decls", mxList.get()); padd("text:display-outline-level", sXML_CDATA, "0"); padd("text:name", sXML_CDATA, "Illustration"); - rstartEl("text:sequence-decl", rList); - pList->clear(); + rstartEl("text:sequence-decl", mxList.get()); + mxList->clear(); rendEl("text:sequence-decl"); padd("text:display-outline-level", sXML_CDATA, "0"); padd("text:name", sXML_CDATA, "Table"); - rstartEl("text:sequence-decl", rList); - pList->clear(); + rstartEl("text:sequence-decl", mxList.get()); + mxList->clear(); rendEl("text:sequence-decl"); padd("text:display-outline-level", sXML_CDATA, "0"); padd("text:name", sXML_CDATA, "Text"); - rstartEl("text:sequence-decl", rList); - pList->clear(); + rstartEl("text:sequence-decl", mxList.get()); + mxList->clear(); rendEl("text:sequence-decl"); padd("text:display-outline-level", sXML_CDATA, "0"); padd("text:name", sXML_CDATA, "Drawing"); - rstartEl("text:sequence-decl", rList); - pList->clear(); + rstartEl("text:sequence-decl", mxList.get()); + mxList->clear(); rendEl("text:sequence-decl"); rendEl("text:sequence-decls"); } @@ -259,25 +257,25 @@ void HwpReader::makeMeta() { HWPInfo& hwpinfo = hwpfile.GetHWPInfo(); - rstartEl("office:meta", rList); + rstartEl("office:meta", mxList.get()); if (hwpinfo.summary.title[0]) { - rstartEl("dc:title", rList); + rstartEl("dc:title", mxList.get()); rchars(reinterpret_cast(hconv(hwpinfo.summary.title))); rendEl("dc:title"); } if (hwpinfo.summary.subject[0]) { - rstartEl("dc:subject", rList); + rstartEl("dc:subject", mxList.get()); rchars(reinterpret_cast(hconv(hwpinfo.summary.subject))); rendEl("dc:subject"); } if (hwpinfo.summary.author[0]) { - rstartEl("meta:initial-creator", rList); + rstartEl("meta:initial-creator", mxList.get()); rchars(reinterpret_cast(hconv(hwpinfo.summary.author))); rendEl("meta:initial-creator"); } @@ -341,41 +339,41 @@ void HwpReader::makeMeta() } sprintf(buf,"%d-%02d-%02dT%02d:%02d:00",year,month,day,hour,minute); - rstartEl( "meta:creation-date", rList ); + rstartEl( "meta:creation-date", mxList.get() ); rchars( ascii(buf)); rendEl( "meta:creation-date" ); } if (hwpinfo.summary.keyword[0][0] || hwpinfo.summary.etc[0][0]) { - rstartEl("meta:keywords", rList); + rstartEl("meta:keywords", mxList.get()); if (hwpinfo.summary.keyword[0][0]) { - rstartEl("meta:keyword", rList); + rstartEl("meta:keyword", mxList.get()); rchars(reinterpret_cast(hconv(hwpinfo.summary.keyword[0]))); rendEl("meta:keyword"); } if (hwpinfo.summary.keyword[1][0]) { - rstartEl("meta:keyword", rList); + rstartEl("meta:keyword", mxList.get()); rchars(reinterpret_cast(hconv(hwpinfo.summary.keyword[1]))); rendEl("meta:keyword"); } if (hwpinfo.summary.etc[0][0]) { - rstartEl("meta:keyword", rList); + rstartEl("meta:keyword", mxList.get()); rchars(reinterpret_cast(hconv(hwpinfo.summary.etc[0]))); rendEl("meta:keyword"); } if (hwpinfo.summary.etc[1][0]) { - rstartEl("meta:keyword", rList); + rstartEl("meta:keyword", mxList.get()); rchars(reinterpret_cast(hconv(hwpinfo.summary.etc[1]))); rendEl("meta:keyword"); } if (hwpinfo.summary.etc[2][0]) { - rstartEl("meta:keyword", rList); + rstartEl("meta:keyword", mxList.get()); rchars(reinterpret_cast(hconv(hwpinfo.summary.etc[2]))); rendEl("meta:keyword"); } @@ -450,8 +448,8 @@ void HwpReader::makeDrawMiscStyle( HWPDrawingObject *hdo ) padd( "draw:dots2-length", sXML_CDATA, Double2Str( LineStyle[prop->line_pstyle].dots2 * WTMM(prop->line_width)) + "cm"); } padd( "draw:distance", sXML_CDATA, Double2Str( LineStyle[prop->line_pstyle].distance * WTMM(prop->line_width)) + "cm"); - rstartEl( "draw:stroke-dash", rList); - pList->clear(); + rstartEl( "draw:stroke-dash", mxList.get()); + mxList->clear(); rendEl( "draw:stroke-dash" ); } @@ -478,8 +476,8 @@ void HwpReader::makeDrawMiscStyle( HWPDrawingObject *hdo ) padd("svg:viewBox", sXML_CDATA, "0 0 30 30"); padd("svg:d", sXML_CDATA, "m0 0h30v30h-30z"); } - rstartEl("draw:marker", rList); - pList->clear(); + rstartEl("draw:marker", mxList.get()); + mxList->clear(); rendEl("draw:marker"); } if( prop->line_hstyle && !ArrowShape[prop->line_hstyle].bMade) @@ -502,8 +500,8 @@ void HwpReader::makeDrawMiscStyle( HWPDrawingObject *hdo ) padd("svg:viewBox", sXML_CDATA, "0 0 20 20"); padd("svg:d", sXML_CDATA, "m0 0h20v20h-20z"); } - rstartEl("draw:marker", rList); - pList->clear(); + rstartEl("draw:marker", mxList.get()); + mxList->clear(); rendEl("draw:marker"); } } @@ -567,8 +565,8 @@ void HwpReader::makeDrawMiscStyle( HWPDrawingObject *hdo ) padd( "xlink:show", sXML_CDATA, "embed"); padd( "xlink:actuate", sXML_CDATA, "onLoad"); - rstartEl( "draw:fill-image", rList); - pList->clear(); + rstartEl( "draw:fill-image", mxList.get()); + mxList->clear(); rendEl( "draw:fill-image"); } /* If there is a gradient, when a bitmap file is present, this is the first. */ @@ -649,8 +647,8 @@ void HwpReader::makeDrawMiscStyle( HWPDrawingObject *hdo ) padd( "draw:angle", sXML_CDATA, ascii(Int2Str( angle, "%d", buf))); } - rstartEl( "draw:gradient", rList ); - pList->clear(); + rstartEl( "draw:gradient", mxList.get() ); + mxList->clear(); rendEl( "draw:gradient"); } /* hatch */ @@ -686,8 +684,8 @@ void HwpReader::makeDrawMiscStyle( HWPDrawingObject *hdo ) padd( "draw:rotation", sXML_CDATA, "450"); break; } - rstartEl( "draw:hatch", rList); - pList->clear(); + rstartEl( "draw:hatch", mxList.get()); + mxList->clear(); rendEl( "draw:hatch"); } } @@ -700,7 +698,7 @@ void HwpReader::makeStyles() { HWPStyle& hwpstyle = hwpfile.GetHWPStyle(); - rstartEl("office:styles", rList); + rstartEl("office:styles", mxList.get()); int i; for (i = 0; i < hwpfile.getFBoxStyleCount(); i++) @@ -714,21 +712,21 @@ void HwpReader::makeStyles() padd("style:name", sXML_CDATA, "Standard"); padd("style:family", sXML_CDATA, "paragraph"); padd("style:class", sXML_CDATA, "text"); - rstartEl("style:style", rList); - pList->clear(); + rstartEl("style:style", mxList.get()); + mxList->clear(); padd("fo:line-height", sXML_CDATA, "160%"); padd("fo:text-align", sXML_CDATA, "justify"); - rstartEl("style:properties", rList); - pList->clear(); - rstartEl("style:tab-stops", rList); + rstartEl("style:properties", mxList.get()); + mxList->clear(); + rstartEl("style:tab-stops", mxList.get()); for( i = 1 ; i < 40 ; i++) { padd("style:position", sXML_CDATA, Double2Str( WTI(1000 * i)) + "inch"); - rstartEl("style:tab-stop", rList); - pList->clear(); + rstartEl("style:tab-stop", mxList.get()); + mxList->clear(); rendEl("style:tab-stop"); } rendEl("style:tab-stops"); @@ -743,15 +741,15 @@ void HwpReader::makeStyles() padd("style:family", sXML_CDATA, "paragraph"); padd("style:parent-style-name", sXML_CDATA, "Standard"); - rstartEl("style:style", rList); + rstartEl("style:style", mxList.get()); - pList->clear(); + mxList->clear(); parseCharShape(hwpstyle.GetCharShape(ii)); parseParaShape(hwpstyle.GetParaShape(ii)); - rstartEl("style:properties", rList); - pList->clear(); + rstartEl("style:properties", mxList.get()); + mxList->clear(); rendEl("style:properties"); rendEl("style:style"); @@ -762,8 +760,8 @@ void HwpReader::makeStyles() padd( "style:family", sXML_CDATA, "paragraph"); padd( "style:parent-style-name", sXML_CDATA, "Standard"); padd( "style:class", sXML_CDATA, "extra"); - rstartEl("style:style", rList); - pList->clear(); + rstartEl("style:style", mxList.get()); + mxList->clear(); rendEl("style:style"); } @@ -772,8 +770,8 @@ void HwpReader::makeStyles() padd( "style:family", sXML_CDATA, "paragraph"); padd( "style:parent-style-name", sXML_CDATA, "Standard"); padd( "style:class", sXML_CDATA, "extra"); - rstartEl("style:style", rList); - pList->clear(); + rstartEl("style:style", mxList.get()); + mxList->clear(); rendEl("style:style"); } @@ -784,8 +782,8 @@ void HwpReader::makeStyles() padd( "style:family", sXML_CDATA, "paragraph"); padd( "style:parent-style-name", sXML_CDATA, "Standard"); padd( "style:class", sXML_CDATA, "html"); - rstartEl( "style:style", rList); - pList->clear(); + rstartEl( "style:style", mxList.get()); + mxList->clear(); padd( "fo:font-size", sXML_CDATA, "6pt"); padd( "fo:margin-top", sXML_CDATA, "0cm"); padd( "fo:margin-bottom", sXML_CDATA, "0cm"); @@ -795,8 +793,8 @@ void HwpReader::makeStyles() padd( "text:number-lines", sXML_CDATA, "false"); padd( "text:line-number", sXML_CDATA, "0"); padd("fo:line-height", sXML_CDATA, "100%"); - rstartEl( "style:properties", rList); - pList->clear(); + rstartEl( "style:properties", mxList.get()); + mxList->clear(); rendEl( "style:properties"); rendEl( "style:style"); } @@ -807,8 +805,8 @@ void HwpReader::makeStyles() padd("text:num-format", sXML_CDATA, "1"); if( hwpinfo.beginfnnum != 1) padd("text:offset", sXML_CDATA, ascii(Int2Str(hwpinfo.beginfnnum -1, "%d", buf))); - rstartEl("text:footnotes-configuration", rList); - pList->clear(); + rstartEl("text:footnotes-configuration", mxList.get()); + mxList->clear(); rendEl("text:footnotes-configuration"); rendEl("office:styles"); @@ -824,7 +822,7 @@ void HwpReader::makeAutoStyles() { int i; - rstartEl("office:automatic-styles", rList); + rstartEl("office:automatic-styles", mxList.get()); for (i = 0; i < hwpfile.getParaShapeCount(); i++) makePStyle(hwpfile.getParaShape(i)); @@ -878,23 +876,23 @@ void HwpReader::makeAutoStyles() ascii(Int2Str(i,"PNPara%d", buf))); padd("style:family", sXML_CDATA, "paragraph"); padd("style:parent-style-name", sXML_CDATA, "Standard"); - rstartEl("style:style", rList); - pList->clear(); + rstartEl("style:style", mxList.get()); + mxList->clear(); if( i == 1 ) padd("fo:text-align", sXML_CDATA, "start"); else if ( i == 2 ) padd("fo:text-align", sXML_CDATA, "center"); else if ( i == 3 ) padd("fo:text-align", sXML_CDATA, "end"); - rstartEl("style:properties", rList); - pList->clear(); + rstartEl("style:properties", mxList.get()); + mxList->clear(); rendEl( "style:properties"); rendEl( "style:style"); padd("style:name", sXML_CDATA, ascii(Int2Str(i,"PNBox%d",buf))); padd("style:family", sXML_CDATA, "graphics"); - rstartEl("style:style", rList); - pList->clear(); + rstartEl("style:style", mxList.get()); + mxList->clear(); padd("fo:margin-top", sXML_CDATA, "0cm"); padd("fo:margin-bottom", sXML_CDATA, "0cm"); @@ -911,8 +909,8 @@ void HwpReader::makeAutoStyles() padd("style:horizontal-rel", sXML_CDATA, "paragraph"); padd("fo:padding", sXML_CDATA, "0cm"); padd("stylefamily", sXML_CDATA, "graphics"); - rstartEl("style:properties", rList); - pList->clear(); + rstartEl("style:properties", mxList.get()); + mxList->clear(); rendEl("style:properties"); rendEl("style:style"); } @@ -951,7 +949,7 @@ struct PageSetting void HwpReader::makeMasterStyles() { - rstartEl("office:master-styles", rList); + rstartEl("office:master-styles", mxList.get()); int i; int nMax = hwpfile.getMaxSettedPage(); @@ -1044,8 +1042,8 @@ void HwpReader::makeMasterStyles() ascii(Int2Str(i+1, "p%d", buf))); padd("draw:style-name", sXML_CDATA, ascii(Int2Str(i, "master%d", buf))); - rstartEl("style:master-page", rList); - pList->clear(); + rstartEl("style:master-page", mxList.get()); + mxList->clear(); if( aSet[i].bIsSet ) /* If you've changed the current setting */ { @@ -1095,17 +1093,17 @@ void HwpReader::makeMasterStyles() } else /* If the previous settings doesn't exist, set to the default settings */ { - rstartEl("style:header", rList); + rstartEl("style:header", mxList.get()); padd("text:style-name", sXML_CDATA, "Standard"); - rstartEl("text:p", rList); - pList->clear(); + rstartEl("text:p", mxList.get()); + mxList->clear(); rendEl("text:p"); rendEl("style:header"); - rstartEl("style:footer", rList); + rstartEl("style:footer", mxList.get()); padd("text:style-name", sXML_CDATA, "Standard"); - rstartEl("text:p", rList); - pList->clear(); + rstartEl("text:p", mxList.get()); + mxList->clear(); rendEl("text:p"); rendEl("style:footer"); @@ -1116,7 +1114,7 @@ void HwpReader::makeMasterStyles() // header if( pPage->header ) { - rstartEl("style:header", rList); + rstartEl("style:header", mxList.get()); if( pPage->pagenumber && pPage->pagenumber->where < 4 ) { d->bInHeader = true; @@ -1129,7 +1127,7 @@ void HwpReader::makeMasterStyles() } if( pPage->header_even ) { - rstartEl("style:header", rList); + rstartEl("style:header", mxList.get()); if( pPage->pagenumber && ( pPage->pagenumber->where < 4 || pPage->pagenumber->where == 7 ) ) { @@ -1146,10 +1144,10 @@ void HwpReader::makeMasterStyles() /* Will be the default. */ else if( pPage->header_odd && !pPage->header_even ) { - rstartEl("style:header", rList); + rstartEl("style:header", mxList.get()); padd("text:style-name", sXML_CDATA, "Standard"); - rstartEl("text:p", rList); - pList->clear(); + rstartEl("text:p", mxList.get()); + mxList->clear(); if( pPage->pagenumber && ( pPage->pagenumber->where < 4 || pPage->pagenumber->where == 7 ) ) { @@ -1164,7 +1162,7 @@ void HwpReader::makeMasterStyles() } if( pPage->header_odd ) { - rstartEl("style:header-left", rList); + rstartEl("style:header-left", mxList.get()); if( pPage->pagenumber && ( pPage->pagenumber->where < 4 || pPage->pagenumber->where == 7 ) ) { @@ -1181,10 +1179,10 @@ void HwpReader::makeMasterStyles() /* Will be the default. */ else if( pPage->header_even && !pPage->header_odd ) { - rstartEl("style:header-left", rList); + rstartEl("style:header-left", mxList.get()); padd("text:style-name", sXML_CDATA, "Standard"); - rstartEl("text:p", rList); - pList->clear(); + rstartEl("text:p", mxList.get()); + mxList->clear(); if( pPage->pagenumber && ( pPage->pagenumber->where < 4 || pPage->pagenumber->where == 7 ) ) { @@ -1199,10 +1197,10 @@ void HwpReader::makeMasterStyles() } if( !pPage->header && !pPage->header_even && !pPage->header_odd ) { - rstartEl("style:header", rList); + rstartEl("style:header", mxList.get()); padd("text:style-name", sXML_CDATA, "Standard"); - rstartEl("text:p", rList); - pList->clear(); + rstartEl("text:p", mxList.get()); + mxList->clear(); if( pPage->pagenumber && (pPage->pagenumber->where < 4 || pPage->pagenumber->where == 7 ) ) { @@ -1216,7 +1214,7 @@ void HwpReader::makeMasterStyles() // footer if( pPage->footer ) { - rstartEl("style:footer", rList); + rstartEl("style:footer", mxList.get()); if( pPage->pagenumber && pPage->pagenumber->where >= 4 && pPage->pagenumber->where != 7 ) { @@ -1230,7 +1228,7 @@ void HwpReader::makeMasterStyles() } if( pPage->footer_even ) { - rstartEl("style:footer", rList); + rstartEl("style:footer", mxList.get()); if( pPage->pagenumber && pPage->pagenumber->where >= 4 && pPage->pagenumber->where != 7 ) { @@ -1247,10 +1245,10 @@ void HwpReader::makeMasterStyles() /* Will be the default. */ else if( pPage->footer_odd && !pPage->footer_even ) { - rstartEl("style:footer", rList); + rstartEl("style:footer", mxList.get()); padd("text:style-name", sXML_CDATA, "Standard"); - rstartEl("text:p", rList); - pList->clear(); + rstartEl("text:p", mxList.get()); + mxList->clear(); if( pPage->pagenumber && pPage->pagenumber->where >= 4 && pPage->pagenumber->where != 7 ) { @@ -1265,7 +1263,7 @@ void HwpReader::makeMasterStyles() } if( pPage->footer_odd ) { - rstartEl("style:footer-left", rList); + rstartEl("style:footer-left", mxList.get()); if( pPage->pagenumber && pPage->pagenumber->where >= 4 && pPage->pagenumber->where != 7 ) { @@ -1282,10 +1280,10 @@ void HwpReader::makeMasterStyles() /* Will be the default. */ else if( pPage->footer_even && !pPage->footer_odd ) { - rstartEl("style:footer-left", rList); + rstartEl("style:footer-left", mxList.get()); padd("text:style-name", sXML_CDATA, "Standard"); - rstartEl("text:p", rList); - pList->clear(); + rstartEl("text:p", mxList.get()); + mxList->clear(); if( pPage->pagenumber && pPage->pagenumber->where >= 4 && pPage->pagenumber->where != 7 ) { @@ -1300,10 +1298,10 @@ void HwpReader::makeMasterStyles() } if( !pPage->footer && !pPage->footer_even && !pPage->footer_odd ) { - rstartEl("style:footer", rList); + rstartEl("style:footer", mxList.get()); padd("text:style-name", sXML_CDATA, "Standard"); - rstartEl("text:p", rList); - pList->clear(); + rstartEl("text:p", mxList.get()); + mxList->clear(); if( pPage->pagenumber && pPage->pagenumber->where >= 4 && pPage->pagenumber->where != 7 ) { @@ -1476,17 +1474,17 @@ void HwpReader::makePStyle(ParaShape * pshape) padd("style:name", sXML_CDATA, ascii(Int2Str(pshape->index, "P%d", buf))); padd("style:family", sXML_CDATA, "paragraph"); - rstartEl("style:style", rList); - pList->clear(); + rstartEl("style:style", mxList.get()); + mxList->clear(); parseParaShape(pshape); - parseCharShape(pshape->cshape); - rstartEl("style:properties", rList); - pList->clear(); + parseCharShape(pshape->cshape.get()); + rstartEl("style:properties", mxList.get()); + mxList->clear(); if( nscount ) { unsigned char tf = 0; - rstartEl("style:tab-stops",rList); + rstartEl("style:tab-stops",mxList.get()); int tab_margin = pshape->left_margin + pshape->indent; if( tab_margin < 0 ) @@ -1521,8 +1519,8 @@ void HwpReader::makePStyle(ParaShape * pshape) tf = 1; padd("style:leader-char", sXML_CDATA, "."); } - rstartEl( "style:tab-stop", rList); - pList->clear(); + rstartEl( "style:tab-stop", mxList.get()); + mxList->clear(); rendEl( "style:tab-stop" ); if( (pshape->tabs[i].position != 1000 * i ) || tf ) @@ -1548,8 +1546,8 @@ void HwpReader::makePageStyle() for( int i = 0 ; i < pmCount ; i++ ){ padd("style:name", sXML_CDATA, ascii(Int2Str(i + 1, "pm%d", buf))); - rstartEl("style:page-master",rList); - pList->clear(); + rstartEl("style:page-master",mxList.get()); + mxList->clear(); switch( hwpinfo.paper.paper_kind ) @@ -1712,8 +1710,8 @@ void HwpReader::makePageStyle() } } - rstartEl("style:properties",rList); - pList->clear(); + rstartEl("style:properties",mxList.get()); + mxList->clear(); /* background image */ if( hwpinfo.back_info.isset && hwpinfo.back_info.type > 0 ) @@ -1735,12 +1733,12 @@ void HwpReader::makePageStyle() padd("style:repeat", sXML_CDATA, "no-repeat"); padd("style:position", sXML_CDATA, "center"); } - rstartEl("style:background-image",rList); + rstartEl("style:background-image",mxList.get()); if( hwpinfo.back_info.type == 2 ){ - rstartEl("office:binary-data", rList); - pList->clear(); - std::shared_ptr pStr(base64_encode_string(reinterpret_cast(hwpinfo.back_info.data), hwpinfo.back_info.size ), Free()); + rstartEl("office:binary-data", mxList.get()); + mxList->clear(); + std::shared_ptr pStr(base64_encode_string(reinterpret_cast(hwpinfo.back_info.data.data()), hwpinfo.back_info.size ), Free()); rchars(ascii(pStr.get())); rendEl("office:binary-data"); } @@ -1752,35 +1750,35 @@ void HwpReader::makePageStyle() rendEl("style:properties"); /* header style */ - rstartEl("style:header-style", rList); + rstartEl("style:header-style", mxList.get()); padd("svg:height", sXML_CDATA, Double2Str(WTI(hwpinfo.paper.header_length)) + "inch"); padd("fo:margin-bottom", sXML_CDATA, "0mm"); - rstartEl("style:properties",rList); - pList->clear(); + rstartEl("style:properties",mxList.get()); + mxList->clear(); rendEl("style:properties"); rendEl("style:header-style"); /* footer style */ - rstartEl("style:footer-style", rList); + rstartEl("style:footer-style", mxList.get()); padd("svg:height", sXML_CDATA, Double2Str(WTI(hwpinfo.paper.footer_length)) + "inch"); padd("fo:margin-top", sXML_CDATA, "0mm"); - rstartEl("style:properties",rList); - pList->clear(); + rstartEl("style:properties",mxList.get()); + mxList->clear(); rendEl("style:properties"); rendEl("style:footer-style"); /* Footnote style, but it fell in the dtd, the specification has been defined. REALKING */ - rstartEl("style:footnote-layout", rList); + rstartEl("style:footnote-layout", mxList.get()); padd("style:distance-before-sep", sXML_CDATA, Double2Str(WTI(hwpinfo.splinetext)) + "inch"); padd("style:distance-after-sep", sXML_CDATA, Double2Str(WTI(hwpinfo.splinefn)) + "inch"); - rstartEl("style:properties",rList); - pList->clear(); + rstartEl("style:properties",mxList.get()); + mxList->clear(); rendEl("style:properties"); if ( hwpinfo.fnlinetype == 2 ) padd("style:width", sXML_CDATA, "15cm"); @@ -1791,8 +1789,8 @@ void HwpReader::makePageStyle() else padd("style:width", sXML_CDATA, "5cm"); - rstartEl("style:footnote-sep",rList); - pList->clear(); + rstartEl("style:footnote-sep",mxList.get()); + mxList->clear(); rendEl("style:footnote-sep"); rendEl("style:footnote-layout"); @@ -1805,8 +1803,8 @@ void HwpReader::makeColumns(ColumnDef *coldef) { if( !coldef ) return; padd("fo:column-count", sXML_CDATA, ascii(Int2Str(coldef->ncols, "%d", buf))); - rstartEl("style:columns",rList); - pList->clear(); + rstartEl("style:columns",mxList.get()); + mxList->clear(); if( coldef->separator != 0 ) { switch( coldef->separator ) @@ -1827,8 +1825,8 @@ void HwpReader::makeColumns(ColumnDef *coldef) padd("style:style", sXML_CDATA, "none"); break; } - rstartEl("style:column-sep",rList); - pList->clear(); + rstartEl("style:column-sep",mxList.get()); + mxList->clear(); rendEl("style:column-sep"); } double spacing = WTI(coldef->spacing)/ 2. ; @@ -1844,8 +1842,8 @@ void HwpReader::makeColumns(ColumnDef *coldef) else padd("fo:margin-right", sXML_CDATA, Double2Str( spacing) + "inch"); - rstartEl("style:column",rList); - pList->clear(); + rstartEl("style:column",mxList.get()); + mxList->clear(); rendEl("style:column"); } rendEl("style:columns"); @@ -1856,11 +1854,11 @@ void HwpReader::makeTStyle(CharShape * cshape) padd("style:name", sXML_CDATA, ascii(Int2Str(cshape->index, "T%d", buf))); padd("style:family", sXML_CDATA, "text"); - rstartEl("style:style", rList); - pList->clear(); + rstartEl("style:style", mxList.get()); + mxList->clear(); parseCharShape(cshape); - rstartEl("style:properties", rList); - pList->clear(); + rstartEl("style:properties", mxList.get()); + mxList->clear(); rendEl("style:properties"); rendEl("style:style"); } @@ -1874,14 +1872,14 @@ void HwpReader::makeTableStyle(Table *tbl) padd("style:name", sXML_CDATA, ascii(Int2Str(hbox->style.boxnum, "Table%d", buf))); padd("style:family", sXML_CDATA,"table"); - rstartEl("style:style", rList); - pList->clear(); + rstartEl("style:style", mxList.get()); + mxList->clear(); padd("style:width", sXML_CDATA, Double2Str(WTMM(hbox->box_xs)) + "mm"); padd("table:align", sXML_CDATA,"left"); padd("fo:keep-with-next", sXML_CDATA,"false"); - rstartEl("style:properties", rList); - pList->clear(); + rstartEl("style:properties", mxList.get()); + mxList->clear(); rendEl("style:properties"); rendEl("style:style"); @@ -1891,12 +1889,12 @@ void HwpReader::makeTableStyle(Table *tbl) sprintf(buf,"Table%d.%c",hbox->style.boxnum, static_cast('A'+i)); padd("style:name", sXML_CDATA, ascii( buf )); padd("style:family", sXML_CDATA,"table-column"); - rstartEl("style:style", rList); - pList->clear(); + rstartEl("style:style", mxList.get()); + mxList->clear(); padd("style:column-width", sXML_CDATA, Double2Str(WTMM(tbl->columns.data[i+1] - tbl->columns.data[i])) + "mm"); - rstartEl("style:properties", rList); - pList->clear(); + rstartEl("style:properties", mxList.get()); + mxList->clear(); rendEl("style:properties"); rendEl("style:style"); } @@ -1907,12 +1905,12 @@ void HwpReader::makeTableStyle(Table *tbl) sprintf(buf,"Table%d.row%" SAL_PRI_SIZET "u",hbox->style.boxnum, i + 1); padd("style:name", sXML_CDATA, ascii( buf )); padd("style:family", sXML_CDATA,"table-row"); - rstartEl("style:style", rList); - pList->clear(); + rstartEl("style:style", mxList.get()); + mxList->clear(); padd("style:row-height", sXML_CDATA, Double2Str(WTMM(tbl->rows.data[i+1] - tbl->rows.data[i])) + "mm"); - rstartEl("style:properties", rList); - pList->clear(); + rstartEl("style:properties", mxList.get()); + mxList->clear(); rendEl("style:properties"); rendEl("style:style"); } @@ -1924,8 +1922,8 @@ void HwpReader::makeTableStyle(Table *tbl) sprintf(buf,"Table%d.%c%d",hbox->style.boxnum, 'A'+ tcell->nColumnIndex, tcell->nRowIndex +1); padd("style:name", sXML_CDATA, ascii( buf )); padd("style:family", sXML_CDATA,"table-cell"); - rstartEl("style:style", rList); - pList->clear(); + rstartEl("style:style", mxList.get()); + mxList->clear(); Cell *cl = tcell->pCell; if( cl->ver_align == 1 ) padd("fo:vertical-align", sXML_CDATA,"middle"); @@ -2012,8 +2010,8 @@ void HwpReader::makeTableStyle(Table *tbl) ascii(hcolor2str(sal::static_int_cast(cl->color), sal::static_int_cast(cl->shade), buf))); - rstartEl("style:properties", rList); - pList->clear(); + rstartEl("style:properties", mxList.get()); + mxList->clear(); rendEl("style:properties"); rendEl("style:style"); @@ -2029,8 +2027,8 @@ void HwpReader::makeDrawStyle( HWPDrawingObject * hdo, FBoxStyle * fstyle) ascii(Int2Str(hdo->index, "Draw%d", buf))); padd("style:family", sXML_CDATA, "graphics"); - rstartEl("style:style", rList); - pList->clear(); + rstartEl("style:style", mxList.get()); + mxList->clear(); switch (fstyle->txtflow) { @@ -2196,8 +2194,8 @@ void HwpReader::makeDrawStyle( HWPDrawingObject * hdo, FBoxStyle * fstyle) padd("style:vertical-rel", sXML_CDATA, "baseline"); } - rstartEl("style:properties", rList); - pList->clear(); + rstartEl("style:properties", mxList.get()); + mxList->clear(); rendEl("style:properties"); rendEl("style:style"); @@ -2215,8 +2213,8 @@ void HwpReader::makeCaptionStyle(FBoxStyle * fstyle) padd("style:name", sXML_CDATA, ascii(Int2Str(fstyle->boxnum, "CapBox%d", buf))); padd("style:family", sXML_CDATA, "graphics"); - rstartEl("style:style", rList); - pList->clear(); + rstartEl("style:style", mxList.get()); + mxList->clear(); padd("fo:margin-left", sXML_CDATA, "0cm"); padd("fo:margin-right", sXML_CDATA, "0cm"); padd("fo:margin-top", sXML_CDATA, "0cm"); @@ -2283,8 +2281,8 @@ void HwpReader::makeCaptionStyle(FBoxStyle * fstyle) padd("style:horizontal-rel", sXML_CDATA, "page-content"); } } - rstartEl("style:properties", rList); - pList->clear(); + rstartEl("style:properties", mxList.get()); + mxList->clear(); rendEl("style:properties"); rendEl("style:style"); if( fstyle->boxtype == 'G' ) @@ -2299,8 +2297,8 @@ void HwpReader::makeCaptionStyle(FBoxStyle * fstyle) } padd("style:family", sXML_CDATA, "graphics"); - rstartEl("style:style", rList); - pList->clear(); + rstartEl("style:style", mxList.get()); + mxList->clear(); padd("fo:margin-left", sXML_CDATA, "0cm"); padd("fo:margin-right", sXML_CDATA, "0cm"); @@ -2415,8 +2413,8 @@ void HwpReader::makeCaptionStyle(FBoxStyle * fstyle) sal::static_int_cast(cell->color), sal::static_int_cast(cell->shade), buf))); } - rstartEl("style:properties", rList); - pList->clear(); + rstartEl("style:properties", mxList.get()); + mxList->clear(); rendEl("style:properties"); rendEl("style:style"); } @@ -2456,8 +2454,8 @@ void HwpReader::makeFStyle(FBoxStyle * fstyle) break; } - rstartEl("style:style", rList); - pList->clear(); + rstartEl("style:style", mxList.get()); + mxList->clear(); if ( fstyle->boxtype == 'T') { @@ -2676,8 +2674,8 @@ void HwpReader::makeFStyle(FBoxStyle * fstyle) padd("draw:color-mode", sXML_CDATA, "mono"); } - rstartEl("style:properties", rList); - pList->clear(); + rstartEl("style:properties", mxList.get()); + mxList->clear(); rendEl("style:properties"); rendEl("style:style"); } @@ -2716,8 +2714,8 @@ void HwpReader::make_text_p0(HWPPara * para, bool bParaStart) { padd("text:style-name", sXML_CDATA, ascii(getPStyleName(para->GetParaShape().index, buf))); - rstartEl("text:p", rList); - pList->clear(); + rstartEl("text:p", mxList.get()); + mxList->clear(); } if( d->bFirstPara && d->bInBody ) { @@ -2728,8 +2726,8 @@ void HwpReader::make_text_p0(HWPPara * para, bool bParaStart) // U+C758 HANGUL SYLLABLE YI, U+CC98 HANGUL SYLLABLE CEO, // U+C74C HANGUL SYLLABLE EUM: "Begin of Document" padd("text:name", sXML_CDATA, OUString(buf, strlen(buf), RTL_TEXTENCODING_UTF8)); - rstartEl("text:bookmark", rList); - pList->clear(); + rstartEl("text:bookmark", mxList.get()); + mxList->clear(); rendEl("text:bookmark"); d->bFirstPara = false; } @@ -2739,9 +2737,9 @@ void HwpReader::make_text_p0(HWPPara * para, bool bParaStart) d->bInHeader = false; } padd("text:style-name", sXML_CDATA, - ascii(getTStyleName(para->cshape.index, buf))); - rstartEl("text:span", rList); - pList->clear(); + ascii(getTStyleName(para->cshape->index, buf))); + rstartEl("text:span", mxList.get()); + mxList->clear(); for (n = 0; n < para->nch && para->hhstr[n]->hh; n += para->hhstr[n]->WSize()) @@ -2749,7 +2747,7 @@ void HwpReader::make_text_p0(HWPPara * para, bool bParaStart) if (para->hhstr[n]->hh == CH_SPACE && !firstspace) { makeChars(str); - rstartEl("text:s", rList); + rstartEl("text:s", mxList.get()); rendEl("text:s"); } else if (para->hhstr[n]->hh == CH_END_PARA) @@ -2783,16 +2781,16 @@ void HwpReader::make_text_p1(HWPPara * para,bool bParaStart) hchar_string str; int n; int res; - hchar dest[3]; - int curr = para->cshape.index; + hchar dest[3]; + int curr = para->cshape->index; unsigned char firstspace = 0; if( !bParaStart ) { padd("text:style-name", sXML_CDATA, ascii(getPStyleName(para->GetParaShape().index, buf))); - rstartEl("text:p", rList); - pList->clear(); + rstartEl("text:p", mxList.get()); + mxList->clear(); } if( d->bFirstPara && d->bInBody ) { @@ -2804,8 +2802,8 @@ void HwpReader::make_text_p1(HWPPara * para,bool bParaStart) // U+C758 HANGUL SYLLABLE YI, U+CC98 HANGUL SYLLABLE CEO, // U+C74C HANGUL SYLLABLE EUM: "Begin of Document" padd("text:name", sXML_CDATA, OUString(buf, strlen(buf), RTL_TEXTENCODING_UTF8)); - rstartEl("text:bookmark", rList); - pList->clear(); + rstartEl("text:bookmark", mxList.get()); + mxList->clear(); rendEl("text:bookmark"); d->bFirstPara = false; } @@ -2816,8 +2814,8 @@ void HwpReader::make_text_p1(HWPPara * para,bool bParaStart) } padd("text:style-name", sXML_CDATA, ascii(getTStyleName(curr, buf))); - rstartEl("text:span", rList); - pList->clear(); + rstartEl("text:span", mxList.get()); + mxList->clear(); for (n = 0; n < para->nch && para->hhstr[n]->hh; n += para->hhstr[n]->WSize()) @@ -2829,13 +2827,13 @@ void HwpReader::make_text_p1(HWPPara * para,bool bParaStart) curr = para->GetCharShape(n)->index; padd("text:style-name", sXML_CDATA, ascii(getTStyleName(curr, buf))); - rstartEl("text:span", rList); - pList->clear(); + rstartEl("text:span", mxList.get()); + mxList->clear(); } if (para->hhstr[n]->hh == CH_SPACE && !firstspace) { makeChars(str); - rstartEl("text:s", rList); + rstartEl("text:s", mxList.get()); rendEl("text:s"); } else if (para->hhstr[n]->hh == CH_END_PARA) @@ -2888,8 +2886,8 @@ void HwpReader::make_text_p3(HWPPara * para,bool bParaStart) // U+C758 HANGUL SYLLABLE YI, U+CC98 HANGUL SYLLABLE CEO, // U+C74C HANGUL SYLLABLE EUM: "Begin of Document" padd("text:name", sXML_CDATA, OUString(buf, strlen(buf), RTL_TEXTENCODING_UTF8)); - rstartEl("text:bookmark", rList); - pList->clear(); + rstartEl("text:bookmark", mxList.get()); + mxList->clear(); rendEl("text:bookmark"); d->bFirstPara = false; } @@ -2923,8 +2921,8 @@ void HwpReader::make_text_p3(HWPPara * para,bool bParaStart) if( !pstart ) {STARTP;} if( !tstart ) {STARTT;} makeChars(str); - rstartEl("text:s", rList); - pList->clear(); + rstartEl("text:s", mxList.get()); + mxList->clear(); rendEl("text:s"); } else if ( para->hhstr[n]->hh >= CH_SPACE ) @@ -2949,7 +2947,7 @@ void HwpReader::make_text_p3(HWPPara * para,bool bParaStart) } else if (para->hhstr[n]->hh == CH_FIELD) { - FieldCode *hbox = static_cast(para->hhstr[n]); + FieldCode *hbox = static_cast(para->hhstr[n].get()); if( hbox->location_info == 1) { if( !pstart ) {STARTP;} @@ -2985,7 +2983,7 @@ void HwpReader::make_text_p3(HWPPara * para,bool bParaStart) if( !pstart ) {STARTP;} if( !tstart ) {STARTT;} makeChars(str); - makeBookmark(static_cast(para->hhstr[n])); + makeBookmark(static_cast(para->hhstr[n].get())); break; case CH_DATE_FORM: // 7 break; @@ -2993,7 +2991,7 @@ void HwpReader::make_text_p3(HWPPara * para,bool bParaStart) if( !pstart ) {STARTP;} if( !tstart ) {STARTT;} makeChars(str); - makeDateCode(static_cast(para->hhstr[n])); + makeDateCode(static_cast(para->hhstr[n].get())); break; case CH_TAB: // 9 if( !pstart ) {STARTP;} @@ -3002,12 +3000,12 @@ void HwpReader::make_text_p3(HWPPara * para,bool bParaStart) if( !tstart ) {STARTT;} makeChars(str); } - makeTab(static_cast(para->hhstr[n])); + makeTab(static_cast(para->hhstr[n].get())); break; case CH_TEXT_BOX: /* 10 - ordered by Table/text box/formula/button/hypertext */ { -/* produce tables first, and treat formula as being in text:p. */ - TxtBox *hbox = static_cast(para->hhstr[n]); + /* produce tables first, and treat formula as being in text:p. */ + TxtBox *hbox = static_cast(para->hhstr[n].get()); if( hbox->style.anchor_type == 0 ) { @@ -3041,7 +3039,7 @@ void HwpReader::make_text_p3(HWPPara * para,bool bParaStart) } case CH_PICTURE: // 11 { - Picture *hbox = static_cast(para->hhstr[n]); + Picture *hbox = static_cast(para->hhstr[n].get()); if( hbox->style.anchor_type == 0 ) { if( !pstart ) {STARTP;} @@ -3063,7 +3061,7 @@ void HwpReader::make_text_p3(HWPPara * para,bool bParaStart) } case CH_LINE: // 14 { - Line *hbox = static_cast(para->hhstr[n]); + Line *hbox = static_cast(para->hhstr[n].get()); if (str.size() > 0) { if( !pstart ) {STARTP;} @@ -3080,19 +3078,19 @@ void HwpReader::make_text_p3(HWPPara * para,bool bParaStart) if( !pstart ) {STARTP;} if( !tstart ) {STARTT;} makeChars(str); - makeHidden(static_cast(para->hhstr[n])); + makeHidden(static_cast(para->hhstr[n].get())); break; case CH_FOOTNOTE: // 17 if( !pstart ) {STARTP;} if( !tstart ) {STARTT;} makeChars(str); - makeFootnote(static_cast(para->hhstr[n])); + makeFootnote(static_cast(para->hhstr[n].get())); break; case CH_AUTO_NUM: // 18 if( !pstart ) {STARTP;} if( !tstart ) {STARTT;} makeChars(str); - makeAutoNum(static_cast(para->hhstr[n])); + makeAutoNum(static_cast(para->hhstr[n].get())); break; case CH_NEW_NUM: // 19 -skip break; @@ -3102,7 +3100,7 @@ void HwpReader::make_text_p3(HWPPara * para,bool bParaStart) if( !pstart ) {STARTP;} if( !tstart ) {STARTT;} makeChars(str); - makeMailMerge(static_cast(para->hhstr[n])); + makeMailMerge(static_cast(para->hhstr[n].get())); break; case CH_COMPOSE: /* 23 - overlapping letters */ break; @@ -3122,7 +3120,7 @@ void HwpReader::make_text_p3(HWPPara * para,bool bParaStart) if( !pstart ) {STARTP;} if( !tstart ) {STARTT;} makeChars(str); - makeOutline(static_cast(para->hhstr[n])); + makeOutline(static_cast(para->hhstr[n].get())); break; case CH_FIXED_SPACE: case CH_KEEP_SPACE: @@ -3142,8 +3140,8 @@ void HwpReader::makeFieldCode(hchar_string & rStr, FieldCode *hbox) padd("text:placeholder-type", sXML_CDATA, "text"); if( field ) padd("text:description", sXML_CDATA, reinterpret_cast(hconv(field))); - rstartEl( "text:placeholder", rList); - pList->clear(); + rstartEl( "text:placeholder", mxList.get()); + mxList->clear(); rchars( reinterpret_cast(rStr.c_str()) ); rendEl( "text:placeholder" ); } @@ -3152,25 +3150,25 @@ void HwpReader::makeFieldCode(hchar_string & rStr, FieldCode *hbox) { if (OUString(reinterpret_cast(hconv(hbox->str3))) == "title") { - rstartEl( "text:title", rList ); + rstartEl( "text:title", mxList.get() ); rchars( reinterpret_cast(hconv(hbox->str2)) ); rendEl( "text:title" ); } else if (OUString(reinterpret_cast(hconv(hbox->str3))) == "subject") { - rstartEl( "text:subject", rList ); + rstartEl( "text:subject", mxList.get() ); rchars( reinterpret_cast(hconv(hbox->str2)) ); rendEl( "text:subject" ); } else if (OUString(reinterpret_cast(hconv(hbox->str3))) == "author") { - rstartEl( "text:author-name", rList ); + rstartEl( "text:author-name", mxList.get() ); rchars( reinterpret_cast(hconv(hbox->str2)) ); rendEl( "text:author-name" ); } else if (OUString(reinterpret_cast(hconv(hbox->str3))) == "keywords") { - rstartEl( "text:keywords", rList ); + rstartEl( "text:keywords", mxList.get() ); rchars( reinterpret_cast(hconv(hbox->str2)) ); rendEl( "text:keywords" ); } @@ -3180,61 +3178,61 @@ void HwpReader::makeFieldCode(hchar_string & rStr, FieldCode *hbox) { if (OUString(reinterpret_cast(hconv(hbox->str3))) == "User") { - rstartEl( "text:sender-lastname", rList ); + rstartEl( "text:sender-lastname", mxList.get() ); rchars( reinterpret_cast(hconv(hbox->str2)) ); rendEl( "text:sender-lastname" ); } else if (OUString(reinterpret_cast(hconv(hbox->str3))) == "Company") { - rstartEl( "text:sender-company", rList ); + rstartEl( "text:sender-company", mxList.get() ); rchars( reinterpret_cast(hconv(hbox->str2)) ); rendEl( "text:sender-company" ); } else if (OUString(reinterpret_cast(hconv(hbox->str3))) == "Position") { - rstartEl( "text:sender-title", rList ); + rstartEl( "text:sender-title", mxList.get() ); rchars( reinterpret_cast(hconv(hbox->str2)) ); rendEl( "text:sender-title" ); } else if (OUString(reinterpret_cast(hconv(hbox->str3))) == "Division") { - rstartEl( "text:sender-position", rList ); + rstartEl( "text:sender-position", mxList.get() ); rchars( reinterpret_cast(hconv(hbox->str2)) ); rendEl( "text:sender-position" ); } else if (OUString(reinterpret_cast(hconv(hbox->str3))) == "Fax") { - rstartEl( "text:sender-fax", rList ); + rstartEl( "text:sender-fax", mxList.get() ); rchars( reinterpret_cast(hconv(hbox->str2)) ); rendEl( "text:sender-fax" ); } else if (OUString(reinterpret_cast(hconv(hbox->str3))) == "Pager") { - rstartEl( "text:phone-private", rList ); + rstartEl( "text:phone-private", mxList.get() ); rchars( reinterpret_cast(hconv(hbox->str2)) ); rendEl( "text:phone-private" ); } else if (OUString(reinterpret_cast(hconv(hbox->str3))) == "E-mail") { - rstartEl( "text:sender-email", rList ); + rstartEl( "text:sender-email", mxList.get() ); rchars( reinterpret_cast(hconv(hbox->str2)) ); rendEl( "text:sender-email" ); } else if (OUString(reinterpret_cast(hconv(hbox->str3))) == "Zipcode(office)") { - rstartEl( "text:sender-postal-code", rList ); + rstartEl( "text:sender-postal-code", mxList.get() ); rchars( reinterpret_cast(hconv(hbox->str2)) ); rendEl( "text:sender-postal-code" ); } else if (OUString(reinterpret_cast(hconv(hbox->str3))) == "Phone(office)") { - rstartEl( "text:sender-phone-work", rList ); + rstartEl( "text:sender-phone-work", mxList.get() ); rchars( reinterpret_cast(hconv(hbox->str2)) ); rendEl( "text:sender-phone-work" ); } else if (OUString(reinterpret_cast(hconv(hbox->str3))) == "Address(office)") { - rstartEl( "text:sender-street", rList ); + rstartEl( "text:sender-street", mxList.get() ); rchars( reinterpret_cast(hconv(hbox->str2)) ); rendEl( "text:sender-street" ); } @@ -3245,8 +3243,8 @@ void HwpReader::makeFieldCode(hchar_string & rStr, FieldCode *hbox) if( hbox->m_pDate ) padd("style:data-style-name", sXML_CDATA, ascii(Int2Str(hbox->m_pDate->key, "N%d", buf))); - rstartEl( "text:creation-date", rList ); - pList->clear(); + rstartEl( "text:creation-date", mxList.get() ); + mxList->clear(); rchars( reinterpret_cast(hconv(hbox->str2)) ); rendEl( "text:creation-date" ); } @@ -3262,22 +3260,22 @@ void HwpReader::makeBookmark(Bookmark * hbox) if (hbox->type == 0) { padd("text:name", sXML_CDATA, reinterpret_cast(hconv(hbox->id))); - rstartEl("text:bookmark", rList); - pList->clear(); + rstartEl("text:bookmark", mxList.get()); + mxList->clear(); rendEl("text:bookmark"); } else if (hbox->type == 1) /* Block bookmarks days begin and end there if */ { padd("text:name", sXML_CDATA, reinterpret_cast(hconv(hbox->id))); - rstartEl("text:bookmark-start", rList); - pList->clear(); + rstartEl("text:bookmark-start", mxList.get()); + mxList->clear(); rendEl("text:bookmark-start"); } else if (hbox->type == 2) { padd("text:name", sXML_CDATA, reinterpret_cast(hconv(hbox->id))); - rstartEl("text:bookmark-end", rList); - pList->clear(); + rstartEl("text:bookmark-end", mxList.get()); + mxList->clear(); rendEl("text:bookmark-end"); } } @@ -3291,8 +3289,8 @@ void HwpReader::makeDateFormat(DateCode * hbox) padd("number:language", sXML_CDATA,"ko"); padd("number:country", sXML_CDATA,"KR"); - rstartEl("number:date-style", rList); - pList->clear(); + rstartEl("number:date-style", mxList.get()); + mxList->clear(); bool add_zero = false; int zero_check = 0; @@ -3317,67 +3315,67 @@ void HwpReader::makeDateFormat(DateCode * hbox) break; case '1': padd("number:style", sXML_CDATA, "long"); - rstartEl("number:year", rList); - pList->clear(); + rstartEl("number:year", mxList.get()); + mxList->clear(); rendEl("number:year"); break; case '!': - rstartEl("number:year", rList); - pList->clear(); + rstartEl("number:year", mxList.get()); + mxList->clear(); rendEl("number:year"); break; case '2': if( add_zero ) padd("number:style", sXML_CDATA, "long"); - rstartEl("number:month", rList); - pList->clear(); + rstartEl("number:month", mxList.get()); + mxList->clear(); rendEl("number:month"); break; case '@': padd("number:textual", sXML_CDATA, "true"); - rstartEl("number:month", rList); - pList->clear(); + rstartEl("number:month", mxList.get()); + mxList->clear(); rendEl("number:month"); break; case '*': padd("number:textual", sXML_CDATA, "true"); padd("number:style", sXML_CDATA, "long"); - rstartEl("number:month", rList); - pList->clear(); + rstartEl("number:month", mxList.get()); + mxList->clear(); rendEl("number:month"); break; case '3': if( add_zero ) padd("number:style", sXML_CDATA, "long"); - rstartEl("number:day", rList); - pList->clear(); + rstartEl("number:day", mxList.get()); + mxList->clear(); rendEl("number:day"); break; case '#': if( add_zero ) padd("number:style", sXML_CDATA, "long"); - rstartEl("number:day", rList); - pList->clear(); + rstartEl("number:day", mxList.get()); + mxList->clear(); rendEl("number:day"); switch( hbox->date[DateCode::DAY] % 10) { case 1: - rstartEl("number:text", rList); + rstartEl("number:text", mxList.get()); rchars("st"); rendEl("number:text"); break; case 2: - rstartEl("number:text", rList); + rstartEl("number:text", mxList.get()); rchars("nd"); rendEl("number:text"); break; case 3: - rstartEl("number:text", rList); + rstartEl("number:text", mxList.get()); rchars("rd"); rendEl("number:text"); break; default: - rstartEl("number:text", rList); + rstartEl("number:text", mxList.get()); rchars("th"); rendEl("number:text"); break; @@ -3387,16 +3385,16 @@ void HwpReader::makeDateFormat(DateCode * hbox) case '$': if( add_zero ) padd("number:style", sXML_CDATA, "long"); - rstartEl("number:hours", rList); - pList->clear(); + rstartEl("number:hours", mxList.get()); + mxList->clear(); rendEl("number:hours"); break; case '5': case '%': if( add_zero ) padd("number:style", sXML_CDATA, "long"); - rstartEl("number:minutes", rList); - pList->clear(); + rstartEl("number:minutes", mxList.get()); + mxList->clear(); rendEl("number:minutes"); break; case '_': @@ -3404,15 +3402,15 @@ void HwpReader::makeDateFormat(DateCode * hbox) SAL_FALLTHROUGH; case '6': case '^': - rstartEl("number:day-of-week", rList); - pList->clear(); + rstartEl("number:day-of-week", mxList.get()); + mxList->clear(); rendEl("number:day-of-week"); break; case '7': case '&': case '+': - rstartEl("number:am-pm", rList); - pList->clear(); + rstartEl("number:am-pm", mxList.get()); + mxList->clear(); rendEl("number:am-pm"); break; case '~': // Chinese Locale @@ -3421,13 +3419,13 @@ void HwpReader::makeDateFormat(DateCode * hbox) hchar sbuf[2]; sbuf[0] = *fmt; sbuf[1] = 0; - rstartEl("number:text", rList); + rstartEl("number:text", mxList.get()); rchars(reinterpret_cast(hconv(sbuf))); rendEl("number:text"); break; } } - pList->clear(); + mxList->clear(); rendEl("number:date-style"); } @@ -3436,8 +3434,8 @@ void HwpReader::makeDateCode(DateCode * hbox) { padd("style:data-style-name", sXML_CDATA, ascii(Int2Str(hbox->key, "N%d", buf))); - rstartEl( "text:date", rList ); - pList->clear(); + rstartEl( "text:date", mxList.get() ); + mxList->clear(); hchar_string const boxstr = hbox->GetString(); rchars(reinterpret_cast(hconv(boxstr.c_str()))); rendEl( "text:date" ); @@ -3446,7 +3444,7 @@ void HwpReader::makeDateCode(DateCode * hbox) void HwpReader::makeTab(Tab * ) /*hbox */ { - rstartEl("text:tab-stop", rList); + rstartEl("text:tab-stop", mxList.get()); rendEl("text:tab-stop"); } @@ -3457,8 +3455,8 @@ void HwpReader::makeTable(TxtBox * hbox) ascii(Int2Str(hbox->style.boxnum, "Table%d", buf))); padd("table:style-name", sXML_CDATA, ascii(Int2Str(hbox->style.boxnum, "Table%d", buf))); - rstartEl("table:table", rList); - pList->clear(); + rstartEl("table:table", mxList.get()); + mxList->clear(); Table *tbl = hbox->m_pTable; // column @@ -3466,8 +3464,8 @@ void HwpReader::makeTable(TxtBox * hbox) { sprintf(buf,"Table%d.%c",hbox->style.boxnum, static_cast('A'+i)); padd("table:style-name", sXML_CDATA, ascii( buf )); - rstartEl("table:table-column", rList); - pList->clear(); + rstartEl("table:table-column", mxList.get()); + mxList->clear(); rendEl("table:table-column"); } @@ -3486,8 +3484,8 @@ void HwpReader::makeTable(TxtBox * hbox) // row sprintf(buf,"Table%d.row%d",hbox->style.boxnum, tcell->nRowIndex + 1); padd("table:style-name", sXML_CDATA, ascii( buf )); - rstartEl("table:table-row", rList); - pList->clear(); + rstartEl("table:table-row", mxList.get()); + mxList->clear(); j = tcell->nRowIndex; } @@ -3502,8 +3500,8 @@ void HwpReader::makeTable(TxtBox * hbox) padd("table:value-type", sXML_CDATA,"string"); if( tcell->pCell->protect ) padd("table:protected", sXML_CDATA,"true"); - rstartEl("table:table-cell", rList); - pList->clear(); + rstartEl("table:table-cell", mxList.get()); + mxList->clear(); parsePara(hbox->plists[tcell->pCell->key].front()); rendEl("table:table-cell"); } @@ -3556,15 +3554,15 @@ void HwpReader::makeTextBox(TxtBox * hbox) Double2Str(WTMM(( hbox->box_xs + hbox->cap_xs) )) + "mm"); padd("fo:min-height", sXML_CDATA, Double2Str(WTMM(( hbox->box_ys + hbox->cap_ys) )) + "mm"); - rstartEl("draw:text-box", rList); - pList->clear(); + rstartEl("draw:text-box", mxList.get()); + mxList->clear(); if( hbox->cap_pos % 2 ) /* The caption is on the top */ { parsePara(hbox->caption.front()); } padd( "text:style-name", sXML_CDATA, "Standard"); - rstartEl("text:p", rList); - pList->clear(); + rstartEl("text:p", mxList.get()); + mxList->clear(); } else{ padd("draw:z-index", sXML_CDATA, @@ -3623,8 +3621,8 @@ void HwpReader::makeTextBox(TxtBox * hbox) if( hbox->type != EQU_TYPE ) { - rstartEl("draw:text-box", rList); - pList->clear(); + rstartEl("draw:text-box", mxList.get()); + mxList->clear(); /* If captions are present and it is on the top */ if( hbox->style.cap_len > 0 && (hbox->cap_pos % 2) && hbox->type == TBL_TYPE ) { @@ -3657,8 +3655,8 @@ void HwpReader::makeTextBox(TxtBox * hbox) } else // is Formula { - rstartEl("draw:object", rList); - pList->clear(); + rstartEl("draw:object", mxList.get()); + mxList->clear(); makeFormula(hbox); rendEl("draw:object"); } @@ -3712,7 +3710,7 @@ void HwpReader::makeFormula(TxtBox * hbox) Formula *form = new Formula(mybuf); form->setDocumentHandler(m_rxDocumentHandler); - form->setAttributeListImpl(pList); + form->setAttributeListImpl(mxList.get()); form->parse(); delete form; @@ -3759,8 +3757,8 @@ void HwpReader::makeHyperText(TxtBox * hbox) padd("xlink:href", sXML_CDATA, OUString(tmp.c_str(), tmp.size()+1, RTL_TEXTENCODING_EUC_KR)); } - rstartEl("draw:a", rList); - pList->clear(); + rstartEl("draw:a", mxList.get()); + mxList->clear(); makeTextBox(hbox); rendEl("draw:a"); } @@ -3815,15 +3813,15 @@ void HwpReader::makePicture(Picture * hbox) Double2Str(WTMM( hbox->box_xs + hbox->style.margin[1][0] + hbox->style.margin[1][1] )) + "mm"); padd("fo:min-height", sXML_CDATA, Double2Str(WTMM( hbox->box_ys + hbox->style.margin[1][2] + hbox->style.margin[1][3] + hbox->cap_ys )) + "mm"); - rstartEl("draw:text-box", rList); - pList->clear(); + rstartEl("draw:text-box", mxList.get()); + mxList->clear(); if( hbox->cap_pos % 2 ) /* Caption is on the top */ { parsePara(hbox->caption.front()); } padd( "text:style-name", sXML_CDATA, "Standard"); - rstartEl("text:p", rList); - pList->clear(); + rstartEl("text:p", mxList.get()); + mxList->clear(); } if( hbox->ishyper ) { @@ -3841,8 +3839,8 @@ void HwpReader::makePicture(Picture * hbox) padd("xlink:href", sXML_CDATA, reinterpret_cast(hconv(kstr2hstr(reinterpret_cast(urltounix(reinterpret_cast(hbox->follow + 5)).c_str())).c_str()))); #endif - rstartEl("draw:a", rList); - pList->clear(); + rstartEl("draw:a", mxList.get()); + mxList->clear(); } padd("draw:style-name", sXML_CDATA, ascii(Int2Str(hbox->style.boxnum, "G%d", buf))); @@ -3902,14 +3900,14 @@ void HwpReader::makePicture(Picture * hbox) } if( hbox->pictype == PICTYPE_OLE ) - rstartEl("draw:object-ole", rList); + rstartEl("draw:object-ole", mxList.get()); else - rstartEl("draw:image", rList); - pList->clear(); + rstartEl("draw:image", mxList.get()); + mxList->clear(); if (hbox->pictype == PICTYPE_EMBED || hbox->pictype == PICTYPE_OLE) { - rstartEl("office:binary-data", rList); - pList->clear(); + rstartEl("office:binary-data", mxList.get()); + mxList->clear(); if( hbox->pictype == PICTYPE_EMBED ){ EmPicture *emp = hwpfile.GetEmPicture(hbox); if( emp ) @@ -4019,8 +4017,8 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox) if (drawobj->type == HWPDO_CONTAINER) { - rstartEl("draw:g", rList); - pList->clear(); + rstartEl("draw:g", mxList.get()); + mxList->clear(); makePictureDRAW(drawobj->child, hbox); rendEl("draw:g"); } @@ -4131,8 +4129,8 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox) Double2Str (WTMM(y + b + drawobj->offset2.y + drawobj->extent.h)) + "mm"); } - rstartEl("draw:line", rList); - pList->clear(); + rstartEl("draw:line", mxList.get()); + mxList->clear(); rendEl("draw:line"); break; case HWPDO_RECT: /* rectangle - the starting position, vertical/horizontal */ @@ -4162,8 +4160,8 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox) Double2Str (WTMM( value / 2)) + "mm"); } - rstartEl("draw:rect", rList); - pList->clear(); + rstartEl("draw:rect", mxList.get()); + mxList->clear(); if( (drawobj->property.flag & HWPDO_FLAG_AS_TEXTBOX) && drawobj->property.pPara ) // As Textbox { @@ -4210,8 +4208,8 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox) padd("draw:end-angle", sXML_CDATA, Double2Str(end_angle)); } } - rstartEl("draw:ellipse", rList); - pList->clear(); + rstartEl("draw:ellipse", mxList.get()); + mxList->clear(); if( drawobj->property.flag >> 19 & 0x01 && drawobj->property.pPara ) // As Textbox { @@ -4320,8 +4318,8 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox) padd("draw:end-angle", sXML_CDATA, "180"); } } - rstartEl("draw:ellipse", rList); - pList->clear(); + rstartEl("draw:ellipse", mxList.get()); + mxList->clear(); if( drawobj->property.flag >> 19 & 0x01 && drawobj->property.pPara ) // As Textbox { @@ -4437,8 +4435,8 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox) padd("svg:d", sXML_CDATA, oustr); - rstartEl("draw:path", rList); - pList->clear(); + rstartEl("draw:path", mxList.get()); + mxList->clear(); // As Textbox if( drawobj->property.flag >> 19 & 0x01 && drawobj->property.pPara ) { @@ -4500,8 +4498,8 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox) if(bIsPolygon) { - rstartEl("draw:polygon", rList); - pList->clear(); + rstartEl("draw:polygon", mxList.get()); + mxList->clear(); if( drawobj->property.flag >> 19 & 0x01 && // As Textbox drawobj->property.pPara ) @@ -4518,8 +4516,8 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox) } else { - rstartEl("draw:polyline", rList); - pList->clear(); + rstartEl("draw:polyline", mxList.get()); + mxList->clear(); if( drawobj->property.flag >> 19 & 0x01 && // As Textbox drawobj->property.pPara ) @@ -4563,8 +4561,8 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox) Double2Str (WTMM( value / 2)) + "mm"); } - rstartEl("draw:text-box", rList); - pList->clear(); + rstartEl("draw:text-box", mxList.get()); + mxList->clear(); HWPPara *pPara = drawobj->u.textbox.h; //parsePara(pPara); @@ -4578,7 +4576,7 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox) break; } } - pList->clear(); + mxList->clear(); drawobj = drawobj->next; } } @@ -4590,8 +4588,8 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox) void HwpReader::makeLine(Line * ) { padd("text:style-name", sXML_CDATA, "Horizontal Line"); - rstartEl( "text:p", rList); - pList->clear(); + rstartEl( "text:p", mxList.get()); + mxList->clear(); } @@ -4607,8 +4605,8 @@ void HwpReader::makeHidden(Hidden * hbox) padd("text:condition", sXML_CDATA, ""); padd("text:string-value", sXML_CDATA, ""); - rstartEl("text:hidden-text", rList); - pList->clear(); + rstartEl("text:hidden-text", mxList.get()); + mxList->clear(); HWPPara *para = hbox->plist.front(); while (para) @@ -4638,15 +4636,15 @@ void HwpReader::makeFootnote(Footnote * hbox) { padd("text:id", sXML_CDATA, ascii(Int2Str(hbox->number, "edn%d", buf))); - rstartEl("text:endnote", rList); - pList->clear(); + rstartEl("text:endnote", mxList.get()); + mxList->clear(); padd("text:label", sXML_CDATA, ascii(Int2Str(hbox->number, "%d", buf))); - rstartEl("text:endnote-citation", rList); - pList->clear(); + rstartEl("text:endnote-citation", mxList.get()); + mxList->clear(); rchars(ascii(Int2Str(hbox->number, "%d", buf))); rendEl("text:endnote-citation"); - rstartEl("text:endnote-body", rList); + rstartEl("text:endnote-body", mxList.get()); parsePara(hbox->plist.front()); rendEl("text:endnote-body"); rendEl("text:endnote"); @@ -4655,15 +4653,15 @@ void HwpReader::makeFootnote(Footnote * hbox) { padd("text:id", sXML_CDATA, ascii(Int2Str(hbox->number, "ftn%d", buf))); - rstartEl("text:footnote", rList); - pList->clear(); + rstartEl("text:footnote", mxList.get()); + mxList->clear(); padd("text:label", sXML_CDATA, ascii(Int2Str(hbox->number, "%d", buf))); - rstartEl("text:footnote-citation", rList); - pList->clear(); + rstartEl("text:footnote-citation", mxList.get()); + mxList->clear(); rchars(ascii(Int2Str(hbox->number, "%d", buf))); rendEl("text:footnote-citation"); - rstartEl("text:footnote-body", rList); + rstartEl("text:footnote-body", mxList.get()); parsePara(hbox->plist.front()); rendEl("text:footnote-body"); rendEl("text:footnote"); @@ -4679,7 +4677,7 @@ void HwpReader::makeAutoNum(AutoNum * hbox) switch (hbox->type) { case PGNUM_AUTO: - rstartEl("text:page-number", rList); + rstartEl("text:page-number", mxList.get()); rchars(ascii(Int2Str(hbox->number, "%d", buf))); rendEl("text:page-number"); break; @@ -4693,7 +4691,7 @@ void HwpReader::makeAutoNum(AutoNum * hbox) ascii(Int2Str(hbox->number, "refIllustration%d", buf))); padd("text:name",sXML_CDATA, "Illustration"); padd("style:num-format",sXML_CDATA, "1"); - rstartEl("text:sequence", rList); + rstartEl("text:sequence", mxList.get()); rchars(ascii(Int2Str(hbox->number, "%d", buf))); rendEl("text:sequence"); break; @@ -4702,7 +4700,7 @@ void HwpReader::makeAutoNum(AutoNum * hbox) ascii(Int2Str(hbox->number, "refTable%d", buf))); padd("text:name",sXML_CDATA, "Table"); padd("style:num-format",sXML_CDATA, "1"); - rstartEl("text:sequence", rList); + rstartEl("text:sequence", mxList.get()); rchars(ascii(Int2Str(hbox->number, "%d", buf))); rendEl("text:sequence"); break; @@ -4736,13 +4734,13 @@ void HwpReader::makeShowPageNum() padd("svg:y", sXML_CDATA, "0cm"); padd("svg:width", sXML_CDATA, "2.0cm"); padd("fo:min-height", sXML_CDATA, "0.5cm"); - rstartEl("draw:text-box", rList); - pList->clear(); + rstartEl("draw:text-box", mxList.get()); + mxList->clear(); padd("text:style-name", sXML_CDATA, ascii(Int2Str(nPos, "PNPara%d", buf))); - rstartEl("text:p", rList); - pList->clear(); + rstartEl("text:p", mxList.get()); + mxList->clear(); if( hbox->shape > 2 ) rchars("- "); if( hbox->shape % 3 == 0 ) @@ -4752,8 +4750,8 @@ void HwpReader::makeShowPageNum() else padd("style:num-format", sXML_CDATA, "i"); padd("text:select-page", sXML_CDATA, "current"); - rstartEl("text:page-number", rList); - pList->clear(); + rstartEl("text:page-number", mxList.get()); + mxList->clear(); rchars("2"); rendEl("text:page-number"); if( hbox->shape > 2 ) @@ -4792,8 +4790,8 @@ void HwpReader::parsePara(HWPPara * para) { padd("text:style-name", sXML_CDATA, ascii(getPStyleName(para->GetParaShape().index, buf))); - rstartEl( "text:p",rList); - pList->clear(); + rstartEl( "text:p",mxList.get()); + mxList->clear(); } if( d->bFirstPara && d->bInBody ) { @@ -4806,8 +4804,8 @@ void HwpReader::parsePara(HWPPara * para) // U+C758 HANGUL SYLLABLE YI, U+CC98 HANGUL SYLLABLE CEO, // U+C74C HANGUL SYLLABLE EUM: "Begin of Document" padd("text:name", sXML_CDATA, OUString(buf, strlen(buf), RTL_TEXTENCODING_UTF8)); - rstartEl("text:bookmark", rList); - pList->clear(); + rstartEl("text:bookmark", mxList.get()); + mxList->clear(); rendEl("text:bookmark"); d->bFirstPara = false; } diff --git a/hwpfilter/source/hwpreader.hxx b/hwpfilter/source/hwpreader.hxx index fa0a2430e1e13..7f71c46ec1bb1 100644 --- a/hwpfilter/source/hwpreader.hxx +++ b/hwpfilter/source/hwpreader.hxx @@ -22,6 +22,7 @@ #include #include #include +#include #include #include @@ -90,8 +91,7 @@ public: } private: Reference< XDocumentHandler > m_rxDocumentHandler; - Reference< XAttributeList > rList; - AttributeListImpl *pList; + rtl::Reference mxList; HWPFile hwpfile; HwpReaderPrivate *d; private: diff --git a/hwpfilter/source/solver.cxx b/hwpfilter/source/solver.cxx index 144e11c3858aa..f297160159f19 100644 --- a/hwpfilter/source/solver.cxx +++ b/hwpfilter/source/solver.cxx @@ -18,6 +18,7 @@ */ #include +#include #include "solver.h" @@ -63,18 +64,15 @@ double* mgcLinearSystemD::NewVector (int N) int mgcLinearSystemD::Solve (int n, double** a, double* b) { - int* indxc = new int[n]; + std::unique_ptr indxc( new int[n] ); if ( !indxc ) return 0; - int* indxr = new int[n]; + std::unique_ptr indxr( new int[n] ); if ( !indxr ) { - delete[] indxc; return 0; } - int* ipiv = new int[n]; + std::unique_ptr ipiv( new int[n] ); if ( !ipiv ) { - delete[] indxc; - delete[] indxr; return 0; } @@ -93,26 +91,23 @@ int mgcLinearSystemD::Solve (int n, double** a, double* b) { if ( ipiv[j] != 1 ) { - for (k = 0; k < n; k++) - { - if ( ipiv[k] == 0 ) - { - if ( fabs(a[j][k]) >= big ) + for (k = 0; k < n; k++) { - big = fabs(a[j][k]); - irow = j; - icol = k; + if ( ipiv[k] == 0 ) + { + if ( fabs(a[j][k]) >= big ) + { + big = fabs(a[j][k]); + irow = j; + icol = k; + } + } + else if ( ipiv[k] > 1 ) + { + return 0; + } } } - else if ( ipiv[k] > 1 ) - { - delete[] ipiv; - delete[] indxr; - delete[] indxc; - return 0; - } - } - } } ipiv[icol]++; @@ -131,9 +126,6 @@ int mgcLinearSystemD::Solve (int n, double** a, double* b) indxc[i] = icol; if ( a[icol][icol] == 0 ) { - delete[] ipiv; - delete[] indxr; - delete[] indxc; return 0; } @@ -162,16 +154,13 @@ int mgcLinearSystemD::Solve (int n, double** a, double* b) { for (k = 0; k < n; k++) { - save = a[k][indxr[j]]; - a[k][indxr[j]] = a[k][indxc[j]]; - a[k][indxc[j]] = save; + save = a[k][indxr[j]]; + a[k][indxr[j]] = a[k][indxc[j]]; + a[k][indxc[j]] = save; } } } - delete[] ipiv; - delete[] indxr; - delete[] indxc; return 1; } diff --git a/i18npool/Library_localedata_others.mk b/i18npool/Library_localedata_others.mk index b485379792b62..b447d061c4d19 100644 --- a/i18npool/Library_localedata_others.mk +++ b/i18npool/Library_localedata_others.mk @@ -50,6 +50,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,localedata_others,\ CustomTarget/i18npool/localedata/localedata_ebo_CG \ CustomTarget/i18npool/localedata/localedata_ee_GH \ CustomTarget/i18npool/localedata/localedata_en_IN \ + CustomTarget/i18npool/localedata/localedata_en_MY \ CustomTarget/i18npool/localedata/localedata_eo \ CustomTarget/i18npool/localedata/localedata_fa_IR \ CustomTarget/i18npool/localedata/localedata_gu_IN \ diff --git a/i18npool/inc/transliteration_Ignore.hxx b/i18npool/inc/transliteration_Ignore.hxx index e6573b6adfaaa..3b67d64120e75 100644 --- a/i18npool/inc/transliteration_Ignore.hxx +++ b/i18npool/inc/transliteration_Ignore.hxx @@ -21,6 +21,7 @@ #include #include +#include typedef sal_Unicode (*TransFunc)(const sal_Unicode); @@ -91,9 +92,25 @@ TRANSLITERATION_IGNORE(Space_ja_JP) TRANSLITERATION_IGNORE(TraditionalKana_ja_JP) TRANSLITERATION_IGNORE(TraditionalKanji_ja_JP) TRANSLITERATION_IGNORE(ZiZu_ja_JP) -TRANSLITERATION_IGNORE(Diacritics_CTL) TRANSLITERATION_IGNORE(Kashida_CTL) +class ignoreDiacritics_CTL : public transliteration_Ignore +{ + icu::Transliterator* m_transliterator; + +public: + ignoreDiacritics_CTL(); + + OUString SAL_CALL + folding(const OUString& rInStr, sal_Int32 nStartPos, sal_Int32 nCount, css::uno::Sequence& rOffset) + throw(css::uno::RuntimeException, std::exception) override; + + sal_Unicode SAL_CALL + transliterateChar2Char(sal_Unicode nInChar) + throw(css::uno::RuntimeException, + css::i18n::MultipleCharsOutputException, std::exception) override; +}; + #undef TRANSLITERATION_IGNORE #define TRANSLITERATION_IGNORE( name ) \ diff --git a/i18npool/qa/cppunit/test_breakiterator.cxx b/i18npool/qa/cppunit/test_breakiterator.cxx index c00c716efac28..fb1a155ae9db0 100644 --- a/i18npool/qa/cppunit/test_breakiterator.cxx +++ b/i18npool/qa/cppunit/test_breakiterator.cxx @@ -759,6 +759,10 @@ void TestBreakIterator::testWeak() { 0x0001, 0x0002, 0x0020, 0x00A0, + 0x0300, 0x036F, //Combining Diacritical Marks + 0x1AB0, 0x1AFF, //Combining Diacritical Marks Extended + 0x1DC0, 0x1DFF, //Combining Diacritical Marks Supplement + 0x20D0, 0x20FF, //Combining Diacritical Marks for Symbols 0x2150, 0x215F, //Number Forms, fractions 0x2160, 0x2180, //Number Forms, roman numerals 0x2200, 0x22FF, //Mathematical Operators diff --git a/i18npool/source/breakiterator/breakiteratorImpl.cxx b/i18npool/source/breakiterator/breakiteratorImpl.cxx index 33ac5864a79c2..f8a39ff2d2536 100644 --- a/i18npool/source/breakiterator/breakiteratorImpl.cxx +++ b/i18npool/source/breakiterator/breakiteratorImpl.cxx @@ -444,7 +444,8 @@ struct UBlock2Script static const UBlock2Script scriptList[] = { {UBLOCK_NO_BLOCK, UBLOCK_NO_BLOCK, ScriptType::WEAK}, - {UBLOCK_BASIC_LATIN, UBLOCK_ARMENIAN, ScriptType::LATIN}, + {UBLOCK_BASIC_LATIN, UBLOCK_SPACING_MODIFIER_LETTERS, ScriptType::LATIN}, + {UBLOCK_GREEK, UBLOCK_ARMENIAN, ScriptType::LATIN}, {UBLOCK_HEBREW, UBLOCK_MYANMAR, ScriptType::COMPLEX}, {UBLOCK_GEORGIAN, UBLOCK_GEORGIAN, ScriptType::LATIN}, {UBLOCK_HANGUL_JAMO, UBLOCK_HANGUL_JAMO, ScriptType::ASIAN}, diff --git a/i18npool/source/localedata/data/de_CH.xml b/i18npool/source/localedata/data/de_CH.xml index 7e6eb88351a92..5b2ac1f8e9c70 100644 --- a/i18npool/source/localedata/data/de_CH.xml +++ b/i18npool/source/localedata/data/de_CH.xml @@ -87,22 +87,22 @@ 0.00% - [$SFr.-807] #'##0;[$SFr.-807] -#'##0 + [$CHF-807] #'##0;[$CHF-807] -#'##0 - [$SFr.-807] #'##0.00;[$SFr.-807] -#'##0.00 + [$CHF-807] #'##0.00;[$CHF-807] -#'##0.00 - [$SFr.-807] #'##0;[RED][$SFr.-807] -#'##0 + [$CHF-807] #'##0;[RED][$CHF-807] -#'##0 - [$SFr.-807] #'##0.00;[RED][$SFr.-807] -#'##0.00 + [$CHF-807] #'##0.00;[RED][$CHF-807] -#'##0.00 #'##0.00 CCC - [$SFr.-807] #'##0.--;[RED][$SFr.-807] -#'##0.-- + [$CHF-807] #'##0.--;[RED][$CHF-807] -#'##0.-- T.MM.JJ @@ -202,6 +202,13 @@ + CHF + CHF + CHF + Schweizer Franken + 2 + + CHF SFr. CHF diff --git a/i18npool/source/localedata/data/de_LI.xml b/i18npool/source/localedata/data/de_LI.xml index 7247669449e38..d368c0589bcdd 100644 --- a/i18npool/source/localedata/data/de_LI.xml +++ b/i18npool/source/localedata/data/de_LI.xml @@ -87,22 +87,22 @@ 0.00% - [$SFr.-1407] #'##0;[$SFr.-1407]-#'##0 + [$CHF-1407] #'##0;[$CHF-1407]-#'##0 - [$SFr.-1407] #'##0.00;[$SFr.-1407]-#'##0.00 + [$CHF-1407] #'##0.00;[$CHF-1407]-#'##0.00 - [$SFr.-1407] #'##0;[ROT][$SFr.-1407]-#'##0 + [$CHF-1407] #'##0;[ROT][$CHF-1407]-#'##0 - [$SFr.-1407] #'##0.00;[ROT][$SFr.-1407]-#'##0.00 + [$CHF-1407] #'##0.00;[ROT][$CHF-1407]-#'##0.00 #'##0.00 CCC - [$SFr.-1407] #'##0.--;[ROT][$SFr.-1407]-#'##0.-- + [$CHF-1407] #'##0.--;[ROT][$CHF-1407]-#'##0.-- TT.MM.JJ @@ -202,6 +202,13 @@ + CHF + CHF + CHF + Schweizer Franken + 2 + + CHF SFr. CHF diff --git a/i18npool/source/localedata/data/en_MY.xml b/i18npool/source/localedata/data/en_MY.xml new file mode 100644 index 0000000000000..09a9369933a50 --- /dev/null +++ b/i18npool/source/localedata/data/en_MY.xml @@ -0,0 +1,34 @@ + + + + + + + en + English + + + MY + Malaysia + + + + + + + + + + + + + + + diff --git a/i18npool/source/localedata/data/es_SV.xml b/i18npool/source/localedata/data/es_SV.xml index 232684d008208..472e754cf007c 100644 --- a/i18npool/source/localedata/data/es_SV.xml +++ b/i18npool/source/localedata/data/es_SV.xml @@ -28,8 +28,174 @@ El Salvador - - + + + / + , + . + : + . + ; + + de + de + + + + + + + + + AM + PM + metric + + + D/M + + Estandar + + + 0 + + + 0.00 + + + #,##0 + + + #,##0.00 + + + #,###.00 + + + 0.00E+000 + + + 0.00E+00 + + + ##0.00E+00 + + + 0" "% + + + 0.00" "% + + + [CURRENCY] #,##0.00;-[CURRENCY] #,##0.00 + + + [CURRENCY] #,##0.00;-[CURRENCY] #,##0.00 + + + [CURRENCY] #,##0.00;[RED]-[CURRENCY] #,##0.00 + + + [CURRENCY] #,##0.00;[RED]-[CURRENCY] #,##0.00 + + + #,##0.00 CCC + + + [CURRENCY] #,##0.--;[RED]-[CURRENCY] #,##0.-- + + + D/MM/AA + + + NNNND "de" MMMM "de" AAAA + + + DD/MM/AA + + + DD/MM/AAAA + + + D "de" MMM "de" AA + + + D "de" MMM "de" AAAA + + + D. MMM. AAAA + + + D "de" MMMM "de" AAAA + + + D. MMMM AAAA + + + NN D "de" MMM "de" AA + + + NN DD/MMM AA + + + NN D "de" MMMM "de" AAAA + + + NNNND "de" MMMM "de" AAAA + + + MM-DD + + + AA-MM-DD + + + AAAA-MM-DD + ISO 8601 + + + MM/AA + + + DD/MMM + + + MMMM + + + QQ AA + + + WW + + + HH:MM + + + HH:MM:SS + + + HH:MM AM/PM + + + HH:MM:SS AM/PM + + + [HH]:MM:SS + + + MM:SS.00 + + + [HH]:MM:SS.00 + + + DD/MM/AA HH:MM + + + DD/MM/AAAA HH:MM:SS + + diff --git a/i18npool/source/localedata/data/fr_CH.xml b/i18npool/source/localedata/data/fr_CH.xml index 907d5171774ba..a2a51fca38c1d 100644 --- a/i18npool/source/localedata/data/fr_CH.xml +++ b/i18npool/source/localedata/data/fr_CH.xml @@ -88,22 +88,22 @@ 0.00% - [$sFr.-100C] #'##0;[$sFr.-100C] -#'##0 + [$CHF-100C] #'##0;[$CHF-100C] -#'##0 - [$sFr.-100C] #'##0.00;[$sFr.-100C] -#'##0.00 + [$CHF-100C] #'##0.00;[$CHF-100C] -#'##0.00 - [$sFr.-100C] #'##0;[RED][$sFr.-100C] -#'##0 + [$CHF-100C] #'##0;[RED][$CHF-100C] -#'##0 - [$sFr.-100C] #'##0.00;[RED][$sFr.-100C] -#'##0.00 + [$CHF-100C] #'##0.00;[RED][$CHF-100C] -#'##0.00 #'##0.00 CCC - [$sFr.-100C] #'##0.--;[RED][$sFr.-100C] -#'##0.-- + [$CHF-100C] #'##0.--;[RED][$CHF-100C] -#'##0.-- J.MM.AA @@ -203,6 +203,13 @@ + CHF + CHF + CHF + franc suisse + 2 + + CHF sFr. CHF diff --git a/i18npool/source/localedata/data/he_IL.xml b/i18npool/source/localedata/data/he_IL.xml index 541bfe8719c35..3793796327f62 100644 --- a/i18npool/source/localedata/data/he_IL.xml +++ b/i18npool/source/localedata/data/he_IL.xml @@ -171,7 +171,13 @@ #,###.00 - + + [natnum1]0 + + + [natnum2]0 + + [CURRENCY] #,##0;[CURRENCY] -#,##0 @@ -374,8 +380,8 @@ Kislev - כסליו - כסליו + כסלו + כסלו Tevet diff --git a/i18npool/source/localedata/data/it_CH.xml b/i18npool/source/localedata/data/it_CH.xml index a71019ca8496f..1514c671a3679 100644 --- a/i18npool/source/localedata/data/it_CH.xml +++ b/i18npool/source/localedata/data/it_CH.xml @@ -87,22 +87,22 @@ 0.00% - [$SFr.-810] #'##0;[$SFr.-810] -#'##0 + [$CHF-810] #'##0;[$CHF-810] -#'##0 - [$SFr.-810] #'##0.00;[$SFr.-810] -#'##0.00 + [$CHF-810] #'##0.00;[$CHF-810] -#'##0.00 - [$SFr.-810] #'##0;[RED][$SFr.-810] -#'##0 + [$CHF-810] #'##0;[RED][$CHF-810] -#'##0 - [$SFr.-810] #'##0.00;[RED][$SFr.-810] -#'##0.00 + [$CHF-810] #'##0.00;[RED][$CHF-810] -#'##0.00 #'##0.00 CCC - [$SFr.-810] #'##0.--;[RED][$SFr.-810] -#'##0.-- + [$CHF-810] #'##0.--;[RED][$CHF-810] -#'##0.-- G.MM.AA @@ -202,6 +202,13 @@ + CHF + CHF + CHF + Franco Svizzero + 2 + + CHF SFr. CHF diff --git a/i18npool/source/localedata/localedata.cxx b/i18npool/source/localedata/localedata.cxx index e2b9aa6747933..53e831b8f1db5 100644 --- a/i18npool/source/localedata/localedata.cxx +++ b/i18npool/source/localedata/localedata.cxx @@ -215,6 +215,7 @@ static const struct { { "hu_HU", lcl_DATA_OTHERS }, { "id_ID", lcl_DATA_OTHERS }, { "ms_MY", lcl_DATA_OTHERS }, + { "en_MY", lcl_DATA_OTHERS }, { "ia", lcl_DATA_OTHERS }, { "mn_Cyrl_MN", lcl_DATA_OTHERS }, { "az_AZ", lcl_DATA_OTHERS }, diff --git a/i18npool/source/transliteration/ignoreDiacritics_CTL.cxx b/i18npool/source/transliteration/ignoreDiacritics_CTL.cxx index 8d6292c38d0d9..7f611bb007ef8 100644 --- a/i18npool/source/transliteration/ignoreDiacritics_CTL.cxx +++ b/i18npool/source/transliteration/ignoreDiacritics_CTL.cxx @@ -7,27 +7,93 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include #include +#include #include namespace com { namespace sun { namespace star { namespace i18n { -sal_Unicode -ignoreDiacritics_CTL_translator (const sal_Unicode c) -{ - if(u_getIntPropertyValue(c, UCHAR_GENERAL_CATEGORY) == U_NON_SPACING_MARK) - return 0xffff; // Skip this character - - return c; -} - ignoreDiacritics_CTL::ignoreDiacritics_CTL() { - func = ignoreDiacritics_CTL_translator; + func = nullptr; table = nullptr; map = nullptr; transliterationName = "ignoreDiacritics_CTL"; implementationName = "com.sun.star.i18n.Transliteration.ignoreDiacritics_CTL"; + + UErrorCode nStatus = U_ZERO_ERROR; + m_transliterator = icu::Transliterator::createInstance("NFD; [:M:] Remove; NFC", + UTRANS_FORWARD, nStatus); + if (U_FAILURE(nStatus)) + m_transliterator = nullptr; +} + +sal_Unicode SAL_CALL +ignoreDiacritics_CTL::transliterateChar2Char(sal_Unicode nInChar) + throw(css::uno::RuntimeException, + css::i18n::MultipleCharsOutputException, std::exception) +{ + if (!m_transliterator) + throw css::uno::RuntimeException(); + + UnicodeString aChar(nInChar); + m_transliterator->transliterate(aChar); + + if (aChar.isEmpty()) + return 0xffff; // Skip this character. + + if (aChar.length() > 1) + return nInChar; // Don't know what to do here, return the otiginal. + + return aChar[0]; +} + +OUString SAL_CALL +ignoreDiacritics_CTL::folding(const OUString& rInStr, sal_Int32 nStartPos, + sal_Int32 nCount, css::uno::Sequence& rOffset) + throw(css::uno::RuntimeException, std::exception) +{ + if (!m_transliterator) + throw css::uno::RuntimeException(); + + if (nStartPos < 0 || nStartPos + nCount > rInStr.getLength()) + throw css::uno::RuntimeException(); + + if (useOffset) + { + OUStringBuffer aOutBuf(nCount); + rOffset.realloc(nCount); + + sal_Int32 nPosition = nStartPos; + sal_Int32 nOffset = 0; + while (nPosition < nStartPos + nCount) + { + sal_Int32 nIndex = nPosition; + UChar32 nChar = rInStr.iterateCodePoints(&nIndex); + UnicodeString aUStr(nChar); + m_transliterator->transliterate(aUStr); + + if (nOffset + aUStr.length() > rOffset.getLength()) + rOffset.realloc(rOffset.getLength() + aUStr.length()); + + aOutBuf.append(reinterpret_cast(aUStr.getBuffer()), aUStr.length()); + + for (int32_t i = 0; i < aUStr.length(); i++) + rOffset[nOffset++] = nPosition; + + nPosition = nIndex; + } + + rOffset.realloc(aOutBuf.getLength()); + return aOutBuf.makeStringAndClear(); + } + else + { + UnicodeString aUStr(reinterpret_cast(rInStr.getStr()) + nStartPos, nCount); + m_transliterator->transliterate(aUStr); + return OUString(reinterpret_cast(aUStr.getBuffer()), aUStr.length()); + } } } } } } diff --git a/icon-themes/breeze/cmd/32/exportdirecttopdf.png b/icon-themes/breeze/cmd/32/exportdirecttopdf.png index a713329ea1919..b53c5e2968674 100644 Binary files a/icon-themes/breeze/cmd/32/exportdirecttopdf.png and b/icon-themes/breeze/cmd/32/exportdirecttopdf.png differ diff --git a/icon-themes/breeze/cmd/lc_exportdirecttopdf.png b/icon-themes/breeze/cmd/lc_exportdirecttopdf.png index 213221855b2e5..91677b601b4e1 100644 Binary files a/icon-themes/breeze/cmd/lc_exportdirecttopdf.png and b/icon-themes/breeze/cmd/lc_exportdirecttopdf.png differ diff --git a/icon-themes/breeze/cmd/sc_exportdirecttopdf.png b/icon-themes/breeze/cmd/sc_exportdirecttopdf.png index e6c09af207bc1..36d97bb7ee30e 100644 Binary files a/icon-themes/breeze/cmd/sc_exportdirecttopdf.png and b/icon-themes/breeze/cmd/sc_exportdirecttopdf.png differ diff --git a/icon-themes/breeze_dark/cmd/32/exportdirecttopdf.png b/icon-themes/breeze_dark/cmd/32/exportdirecttopdf.png index 792cf3d12b19b..ca2c2fc1d8e52 100644 Binary files a/icon-themes/breeze_dark/cmd/32/exportdirecttopdf.png and b/icon-themes/breeze_dark/cmd/32/exportdirecttopdf.png differ diff --git a/icon-themes/breeze_svg/cmd/32/exportdirecttopdf.svg b/icon-themes/breeze_svg/cmd/32/exportdirecttopdf.svg index 98d7e1e3ac3c8..d3847a103895a 100644 --- a/icon-themes/breeze_svg/cmd/32/exportdirecttopdf.svg +++ b/icon-themes/breeze_svg/cmd/32/exportdirecttopdf.svg @@ -14,7 +14,7 @@ id="svg5453" version="1.1" inkscape:version="0.91 r13725" - sodipodi:docname="acrobat.svg" + sodipodi:docname="exportdirecttopdf.svg" viewBox="0 0 32 32"> @@ -26,7 +26,7 @@ inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:zoom="16.33333" - inkscape:cx="12.516075" + inkscape:cx="3.2405629" inkscape:cy="14.027362" inkscape:document-units="px" inkscape:current-layer="layer1" @@ -35,10 +35,10 @@ fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" - inkscape:window-width="1920" - inkscape:window-height="957" - inkscape:window-x="-4" - inkscape:window-y="0" + inkscape:window-width="2560" + inkscape:window-height="1375" + inkscape:window-x="0" + inkscape:window-y="36" inkscape:window-maximized="1" inkscape:showpageshadow="false" borderlayer="true" @@ -74,7 +74,7 @@ image/svg+xml - + @@ -84,17 +84,9 @@ id="layer1" transform="translate(-384.57143,-515.798)"> - + id="rect4177" /> diff --git a/icon-themes/breeze_svg/svx/res/marker-anchor-pressed.svg b/icon-themes/breeze_svg/svx/res/marker-anchor-pressed.svg new file mode 100644 index 0000000000000..685cb9a94f845 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-anchor-pressed.svg @@ -0,0 +1,143 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-anchor.svg b/icon-themes/breeze_svg/svx/res/marker-anchor.svg new file mode 100644 index 0000000000000..1ab2bb71a35f7 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-anchor.svg @@ -0,0 +1,81 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-circ11-1.svg b/icon-themes/breeze_svg/svx/res/marker-circ11-1.svg new file mode 100644 index 0000000000000..865eb7173eab4 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-circ11-1.svg @@ -0,0 +1,78 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-circ11-2.svg b/icon-themes/breeze_svg/svx/res/marker-circ11-2.svg new file mode 100644 index 0000000000000..5dc6af359a700 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-circ11-2.svg @@ -0,0 +1,78 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-circ11-3.svg b/icon-themes/breeze_svg/svx/res/marker-circ11-3.svg new file mode 100644 index 0000000000000..6a04862ce7b34 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-circ11-3.svg @@ -0,0 +1,78 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-circ11-4.svg b/icon-themes/breeze_svg/svx/res/marker-circ11-4.svg new file mode 100644 index 0000000000000..ce3819e723d95 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-circ11-4.svg @@ -0,0 +1,78 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-circ11-5.svg b/icon-themes/breeze_svg/svx/res/marker-circ11-5.svg new file mode 100644 index 0000000000000..8057a07d702f2 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-circ11-5.svg @@ -0,0 +1,78 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-circ11-6.svg b/icon-themes/breeze_svg/svx/res/marker-circ11-6.svg new file mode 100644 index 0000000000000..fe586d1949e28 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-circ11-6.svg @@ -0,0 +1,78 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-circ7-1.svg b/icon-themes/breeze_svg/svx/res/marker-circ7-1.svg new file mode 100644 index 0000000000000..1f8124e81a899 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-circ7-1.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-circ7-2.svg b/icon-themes/breeze_svg/svx/res/marker-circ7-2.svg new file mode 100644 index 0000000000000..0fecc50159b3f --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-circ7-2.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-circ7-3.svg b/icon-themes/breeze_svg/svx/res/marker-circ7-3.svg new file mode 100644 index 0000000000000..3fddab898e1b6 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-circ7-3.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-circ7-4.svg b/icon-themes/breeze_svg/svx/res/marker-circ7-4.svg new file mode 100644 index 0000000000000..9618510aebe9c --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-circ7-4.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-circ7-5.svg b/icon-themes/breeze_svg/svx/res/marker-circ7-5.svg new file mode 100644 index 0000000000000..81f7ba6ac0bfb --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-circ7-5.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-circ7-6.svg b/icon-themes/breeze_svg/svx/res/marker-circ7-6.svg new file mode 100644 index 0000000000000..07c3351fd6a40 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-circ7-6.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-circ9-1.svg b/icon-themes/breeze_svg/svx/res/marker-circ9-1.svg new file mode 100644 index 0000000000000..a71aa26838425 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-circ9-1.svg @@ -0,0 +1,78 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-circ9-2.svg b/icon-themes/breeze_svg/svx/res/marker-circ9-2.svg new file mode 100644 index 0000000000000..b3ef30766e64c --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-circ9-2.svg @@ -0,0 +1,78 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-circ9-3.svg b/icon-themes/breeze_svg/svx/res/marker-circ9-3.svg new file mode 100644 index 0000000000000..20ede9dcbc2f2 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-circ9-3.svg @@ -0,0 +1,78 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-circ9-4.svg b/icon-themes/breeze_svg/svx/res/marker-circ9-4.svg new file mode 100644 index 0000000000000..a8aaa7a80bd42 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-circ9-4.svg @@ -0,0 +1,78 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-circ9-5.svg b/icon-themes/breeze_svg/svx/res/marker-circ9-5.svg new file mode 100644 index 0000000000000..f3174120c46ac --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-circ9-5.svg @@ -0,0 +1,78 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-circ9-6.svg b/icon-themes/breeze_svg/svx/res/marker-circ9-6.svg new file mode 100644 index 0000000000000..545a1463d4767 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-circ9-6.svg @@ -0,0 +1,78 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-cross.svg b/icon-themes/breeze_svg/svx/res/marker-cross.svg new file mode 100644 index 0000000000000..da8db77f00514 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-cross.svg @@ -0,0 +1,78 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli11x9-1.svg b/icon-themes/breeze_svg/svx/res/marker-elli11x9-1.svg new file mode 100644 index 0000000000000..26848b6375018 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli11x9-1.svg @@ -0,0 +1,74 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli11x9-2.svg b/icon-themes/breeze_svg/svx/res/marker-elli11x9-2.svg new file mode 100644 index 0000000000000..87faed09958bd --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli11x9-2.svg @@ -0,0 +1,75 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli11x9-3.svg b/icon-themes/breeze_svg/svx/res/marker-elli11x9-3.svg new file mode 100644 index 0000000000000..1dd4374a9df95 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli11x9-3.svg @@ -0,0 +1,75 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli11x9-4.svg b/icon-themes/breeze_svg/svx/res/marker-elli11x9-4.svg new file mode 100644 index 0000000000000..e653dcec217e8 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli11x9-4.svg @@ -0,0 +1,75 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli11x9-5.svg b/icon-themes/breeze_svg/svx/res/marker-elli11x9-5.svg new file mode 100644 index 0000000000000..9e7a2b870d7fc --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli11x9-5.svg @@ -0,0 +1,75 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli11x9-6.svg b/icon-themes/breeze_svg/svx/res/marker-elli11x9-6.svg new file mode 100644 index 0000000000000..ca5533a5084c1 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli11x9-6.svg @@ -0,0 +1,75 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli7x9-1.svg b/icon-themes/breeze_svg/svx/res/marker-elli7x9-1.svg new file mode 100644 index 0000000000000..c2f7756fd6145 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli7x9-1.svg @@ -0,0 +1,69 @@ + + + + + + + + + + image/svg+xml + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli7x9-2.svg b/icon-themes/breeze_svg/svx/res/marker-elli7x9-2.svg new file mode 100644 index 0000000000000..b1b5d09dd2daa --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli7x9-2.svg @@ -0,0 +1,70 @@ + + + + + + + + + + image/svg+xml + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli7x9-3.svg b/icon-themes/breeze_svg/svx/res/marker-elli7x9-3.svg new file mode 100644 index 0000000000000..14ab468d6d005 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli7x9-3.svg @@ -0,0 +1,70 @@ + + + + + + + + + + image/svg+xml + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli7x9-4.svg b/icon-themes/breeze_svg/svx/res/marker-elli7x9-4.svg new file mode 100644 index 0000000000000..152240adb49ff --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli7x9-4.svg @@ -0,0 +1,70 @@ + + + + + + + + + + image/svg+xml + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli7x9-5.svg b/icon-themes/breeze_svg/svx/res/marker-elli7x9-5.svg new file mode 100644 index 0000000000000..c3b29d94754dd --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli7x9-5.svg @@ -0,0 +1,70 @@ + + + + + + + + + + image/svg+xml + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli7x9-6.svg b/icon-themes/breeze_svg/svx/res/marker-elli7x9-6.svg new file mode 100644 index 0000000000000..494a821051fae --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli7x9-6.svg @@ -0,0 +1,70 @@ + + + + + + + + + + image/svg+xml + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli9x11-1.svg b/icon-themes/breeze_svg/svx/res/marker-elli9x11-1.svg new file mode 100644 index 0000000000000..5411dd68cd441 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli9x11-1.svg @@ -0,0 +1,74 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli9x11-2.svg b/icon-themes/breeze_svg/svx/res/marker-elli9x11-2.svg new file mode 100644 index 0000000000000..80378d43225e9 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli9x11-2.svg @@ -0,0 +1,75 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli9x11-3.svg b/icon-themes/breeze_svg/svx/res/marker-elli9x11-3.svg new file mode 100644 index 0000000000000..15f18851c885a --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli9x11-3.svg @@ -0,0 +1,75 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli9x11-4.svg b/icon-themes/breeze_svg/svx/res/marker-elli9x11-4.svg new file mode 100644 index 0000000000000..1de117c255d83 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli9x11-4.svg @@ -0,0 +1,75 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli9x11-5.svg b/icon-themes/breeze_svg/svx/res/marker-elli9x11-5.svg new file mode 100644 index 0000000000000..0e457f9cb18a6 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli9x11-5.svg @@ -0,0 +1,75 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli9x11-6.svg b/icon-themes/breeze_svg/svx/res/marker-elli9x11-6.svg new file mode 100644 index 0000000000000..b25ba5c2ed86e --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli9x11-6.svg @@ -0,0 +1,75 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli9x7-1.svg b/icon-themes/breeze_svg/svx/res/marker-elli9x7-1.svg new file mode 100644 index 0000000000000..497f923290bbd --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli9x7-1.svg @@ -0,0 +1,69 @@ + + + + + + + + + + image/svg+xml + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli9x7-2.svg b/icon-themes/breeze_svg/svx/res/marker-elli9x7-2.svg new file mode 100644 index 0000000000000..f92789eb8fdf4 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli9x7-2.svg @@ -0,0 +1,70 @@ + + + + + + + + + + image/svg+xml + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli9x7-3.svg b/icon-themes/breeze_svg/svx/res/marker-elli9x7-3.svg new file mode 100644 index 0000000000000..2f03f4b8b72c7 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli9x7-3.svg @@ -0,0 +1,70 @@ + + + + + + + + + + image/svg+xml + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli9x7-4.svg b/icon-themes/breeze_svg/svx/res/marker-elli9x7-4.svg new file mode 100644 index 0000000000000..5371eef65bd1f --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli9x7-4.svg @@ -0,0 +1,70 @@ + + + + + + + + + + image/svg+xml + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli9x7-5.svg b/icon-themes/breeze_svg/svx/res/marker-elli9x7-5.svg new file mode 100644 index 0000000000000..074d345f44f65 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli9x7-5.svg @@ -0,0 +1,70 @@ + + + + + + + + + + image/svg+xml + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-elli9x7-6.svg b/icon-themes/breeze_svg/svx/res/marker-elli9x7-6.svg new file mode 100644 index 0000000000000..0fb135f64c9fa --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-elli9x7-6.svg @@ -0,0 +1,70 @@ + + + + + + + + + + image/svg+xml + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-glue-selected.svg b/icon-themes/breeze_svg/svx/res/marker-glue-selected.svg new file mode 100644 index 0000000000000..6c9ba7903525b --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-glue-selected.svg @@ -0,0 +1,93 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-glue-unselected.svg b/icon-themes/breeze_svg/svx/res/marker-glue-unselected.svg new file mode 100644 index 0000000000000..81d3289195220 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-glue-unselected.svg @@ -0,0 +1,89 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect11-1.svg b/icon-themes/breeze_svg/svx/res/marker-rect11-1.svg new file mode 100644 index 0000000000000..751bb81f38c75 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect11-1.svg @@ -0,0 +1,65 @@ + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect11-2.svg b/icon-themes/breeze_svg/svx/res/marker-rect11-2.svg new file mode 100644 index 0000000000000..78683cc9be340 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect11-2.svg @@ -0,0 +1,67 @@ + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect11-3.svg b/icon-themes/breeze_svg/svx/res/marker-rect11-3.svg new file mode 100644 index 0000000000000..a1edfbcff778e --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect11-3.svg @@ -0,0 +1,67 @@ + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect11-4.svg b/icon-themes/breeze_svg/svx/res/marker-rect11-4.svg new file mode 100644 index 0000000000000..08fecb0fe285e --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect11-4.svg @@ -0,0 +1,67 @@ + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect11-5.svg b/icon-themes/breeze_svg/svx/res/marker-rect11-5.svg new file mode 100644 index 0000000000000..3690116b14be5 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect11-5.svg @@ -0,0 +1,67 @@ + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect11-6.svg b/icon-themes/breeze_svg/svx/res/marker-rect11-6.svg new file mode 100644 index 0000000000000..97d589bea79b3 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect11-6.svg @@ -0,0 +1,67 @@ + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect13-1.svg b/icon-themes/breeze_svg/svx/res/marker-rect13-1.svg new file mode 100644 index 0000000000000..2b104a304db66 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect13-1.svg @@ -0,0 +1,70 @@ + + + + + + + + + + image/svg+xml + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect13-2.svg b/icon-themes/breeze_svg/svx/res/marker-rect13-2.svg new file mode 100644 index 0000000000000..db515a8ae953c --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect13-2.svg @@ -0,0 +1,70 @@ + + + + + + + + + + image/svg+xml + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect13-3.svg b/icon-themes/breeze_svg/svx/res/marker-rect13-3.svg new file mode 100644 index 0000000000000..5e1c7d0a72824 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect13-3.svg @@ -0,0 +1,70 @@ + + + + + + + + + + image/svg+xml + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect13-4.svg b/icon-themes/breeze_svg/svx/res/marker-rect13-4.svg new file mode 100644 index 0000000000000..245e5b7b0f7a5 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect13-4.svg @@ -0,0 +1,70 @@ + + + + + + + + + + image/svg+xml + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect13-5.svg b/icon-themes/breeze_svg/svx/res/marker-rect13-5.svg new file mode 100644 index 0000000000000..97adccd137964 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect13-5.svg @@ -0,0 +1,70 @@ + + + + + + + + + + image/svg+xml + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect13-6.svg b/icon-themes/breeze_svg/svx/res/marker-rect13-6.svg new file mode 100644 index 0000000000000..01d636d650856 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect13-6.svg @@ -0,0 +1,70 @@ + + + + + + + + + + image/svg+xml + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect7-1.svg b/icon-themes/breeze_svg/svx/res/marker-rect7-1.svg new file mode 100644 index 0000000000000..92a76bc385b69 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect7-1.svg @@ -0,0 +1,72 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect7-2.svg b/icon-themes/breeze_svg/svx/res/marker-rect7-2.svg new file mode 100644 index 0000000000000..b7c618d98ba9f --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect7-2.svg @@ -0,0 +1,67 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect7-3.svg b/icon-themes/breeze_svg/svx/res/marker-rect7-3.svg new file mode 100644 index 0000000000000..7710331da6130 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect7-3.svg @@ -0,0 +1,62 @@ + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect7-4.svg b/icon-themes/breeze_svg/svx/res/marker-rect7-4.svg new file mode 100644 index 0000000000000..e4ed388efabe3 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect7-4.svg @@ -0,0 +1,62 @@ + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect7-5.svg b/icon-themes/breeze_svg/svx/res/marker-rect7-5.svg new file mode 100644 index 0000000000000..ba747670e9ba8 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect7-5.svg @@ -0,0 +1,62 @@ + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect7-6.svg b/icon-themes/breeze_svg/svx/res/marker-rect7-6.svg new file mode 100644 index 0000000000000..5657ad201d97d --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect7-6.svg @@ -0,0 +1,62 @@ + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect9-1.svg b/icon-themes/breeze_svg/svx/res/marker-rect9-1.svg new file mode 100644 index 0000000000000..581b7ba858ca4 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect9-1.svg @@ -0,0 +1,65 @@ + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect9-2.svg b/icon-themes/breeze_svg/svx/res/marker-rect9-2.svg new file mode 100644 index 0000000000000..83758594afd7c --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect9-2.svg @@ -0,0 +1,68 @@ + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect9-3.svg b/icon-themes/breeze_svg/svx/res/marker-rect9-3.svg new file mode 100644 index 0000000000000..fe66b0ba979d2 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect9-3.svg @@ -0,0 +1,67 @@ + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect9-4.svg b/icon-themes/breeze_svg/svx/res/marker-rect9-4.svg new file mode 100644 index 0000000000000..cd6709e625937 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect9-4.svg @@ -0,0 +1,68 @@ + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect9-5.svg b/icon-themes/breeze_svg/svx/res/marker-rect9-5.svg new file mode 100644 index 0000000000000..5e90f4a1e3e2f --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect9-5.svg @@ -0,0 +1,67 @@ + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rect9-6.svg b/icon-themes/breeze_svg/svx/res/marker-rect9-6.svg new file mode 100644 index 0000000000000..cdf7244fab48d --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rect9-6.svg @@ -0,0 +1,67 @@ + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rectplus11-1.svg b/icon-themes/breeze_svg/svx/res/marker-rectplus11-1.svg new file mode 100644 index 0000000000000..76819c715631f --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rectplus11-1.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rectplus11-2.svg b/icon-themes/breeze_svg/svx/res/marker-rectplus11-2.svg new file mode 100644 index 0000000000000..3288fb2fd515e --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rectplus11-2.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rectplus11-3.svg b/icon-themes/breeze_svg/svx/res/marker-rectplus11-3.svg new file mode 100644 index 0000000000000..aa59a378006f0 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rectplus11-3.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rectplus11-4.svg b/icon-themes/breeze_svg/svx/res/marker-rectplus11-4.svg new file mode 100644 index 0000000000000..03d2d26a2b4da --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rectplus11-4.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rectplus11-5.svg b/icon-themes/breeze_svg/svx/res/marker-rectplus11-5.svg new file mode 100644 index 0000000000000..dd9fce3117d33 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rectplus11-5.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rectplus11-6.svg b/icon-themes/breeze_svg/svx/res/marker-rectplus11-6.svg new file mode 100644 index 0000000000000..f656cefd21f14 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rectplus11-6.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rectplus7-1.svg b/icon-themes/breeze_svg/svx/res/marker-rectplus7-1.svg new file mode 100644 index 0000000000000..3d0f883f3977a --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rectplus7-1.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rectplus7-2.svg b/icon-themes/breeze_svg/svx/res/marker-rectplus7-2.svg new file mode 100644 index 0000000000000..82b1ef7b6d72c --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rectplus7-2.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rectplus7-3.svg b/icon-themes/breeze_svg/svx/res/marker-rectplus7-3.svg new file mode 100644 index 0000000000000..ba89c672bb8ec --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rectplus7-3.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rectplus7-4.svg b/icon-themes/breeze_svg/svx/res/marker-rectplus7-4.svg new file mode 100644 index 0000000000000..1af3c84dc3d96 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rectplus7-4.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rectplus7-5.svg b/icon-themes/breeze_svg/svx/res/marker-rectplus7-5.svg new file mode 100644 index 0000000000000..803463a43318f --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rectplus7-5.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rectplus7-6.svg b/icon-themes/breeze_svg/svx/res/marker-rectplus7-6.svg new file mode 100644 index 0000000000000..09cd4e33a8592 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rectplus7-6.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rectplus9-1.svg b/icon-themes/breeze_svg/svx/res/marker-rectplus9-1.svg new file mode 100644 index 0000000000000..22e00475356c1 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rectplus9-1.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rectplus9-2.svg b/icon-themes/breeze_svg/svx/res/marker-rectplus9-2.svg new file mode 100644 index 0000000000000..11a376eeef505 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rectplus9-2.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rectplus9-3.svg b/icon-themes/breeze_svg/svx/res/marker-rectplus9-3.svg new file mode 100644 index 0000000000000..d3d67ff8bf331 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rectplus9-3.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rectplus9-4.svg b/icon-themes/breeze_svg/svx/res/marker-rectplus9-4.svg new file mode 100644 index 0000000000000..0c131f35b792d --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rectplus9-4.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rectplus9-5.svg b/icon-themes/breeze_svg/svx/res/marker-rectplus9-5.svg new file mode 100644 index 0000000000000..11d10ab026306 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rectplus9-5.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/breeze_svg/svx/res/marker-rectplus9-6.svg b/icon-themes/breeze_svg/svx/res/marker-rectplus9-6.svg new file mode 100644 index 0000000000000..681b6bc606bb8 --- /dev/null +++ b/icon-themes/breeze_svg/svx/res/marker-rectplus9-6.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/icon-themes/elementary/sc/res/sidebar/morebutton.bmp b/icon-themes/elementary/sc/res/sidebar/morebutton.bmp deleted file mode 100644 index c665b3e866a80..0000000000000 Binary files a/icon-themes/elementary/sc/res/sidebar/morebutton.bmp and /dev/null differ diff --git a/icon-themes/elementary/svx/res/frmsel.bmp b/icon-themes/elementary/svx/res/frmsel.bmp deleted file mode 100644 index fd22f2b0c6a65..0000000000000 Binary files a/icon-themes/elementary/svx/res/frmsel.bmp and /dev/null differ diff --git a/icon-themes/elementary/svx/res/frmsel.png b/icon-themes/elementary/svx/res/frmsel.png new file mode 100644 index 0000000000000..7f0319496c290 Binary files /dev/null and b/icon-themes/elementary/svx/res/frmsel.png differ diff --git a/icon-themes/elementary/vcl/res/check.png b/icon-themes/elementary/vcl/res/check.png index daeddd2ddcca4..05f8b1c381c3e 100644 Binary files a/icon-themes/elementary/vcl/res/check.png and b/icon-themes/elementary/vcl/res/check.png differ diff --git a/icon-themes/elementary/vcl/res/checkmono.bmp b/icon-themes/elementary/vcl/res/checkmono.bmp deleted file mode 100644 index 7e0610d5e9d87..0000000000000 Binary files a/icon-themes/elementary/vcl/res/checkmono.bmp and /dev/null differ diff --git a/icon-themes/elementary/vcl/res/checkmono.png b/icon-themes/elementary/vcl/res/checkmono.png new file mode 100644 index 0000000000000..dc8888e0442c0 Binary files /dev/null and b/icon-themes/elementary/vcl/res/checkmono.png differ diff --git a/icon-themes/elementary/vcl/res/radio.png b/icon-themes/elementary/vcl/res/radio.png index 73e2a04c474cc..dff083949b971 100644 Binary files a/icon-themes/elementary/vcl/res/radio.png and b/icon-themes/elementary/vcl/res/radio.png differ diff --git a/icon-themes/elementary/vcl/res/radiomono.bmp b/icon-themes/elementary/vcl/res/radiomono.bmp deleted file mode 100644 index 6c757c34bac89..0000000000000 Binary files a/icon-themes/elementary/vcl/res/radiomono.bmp and /dev/null differ diff --git a/icon-themes/elementary/vcl/res/radiomono.png b/icon-themes/elementary/vcl/res/radiomono.png new file mode 100644 index 0000000000000..cdee168c1351b Binary files /dev/null and b/icon-themes/elementary/vcl/res/radiomono.png differ diff --git a/icon-themes/elementary/starmath/res/im21106.png b/icon-themes/galaxy/res/helpimg/starmath/im21106.png similarity index 100% rename from icon-themes/elementary/starmath/res/im21106.png rename to icon-themes/galaxy/res/helpimg/starmath/im21106.png diff --git a/icon-themes/elementary/starmath/res/un21201.png b/icon-themes/galaxy/res/helpimg/starmath/un21201.png similarity index 100% rename from icon-themes/elementary/starmath/res/un21201.png rename to icon-themes/galaxy/res/helpimg/starmath/un21201.png diff --git a/icon-themes/elementary/starmath/res/un21202.png b/icon-themes/galaxy/res/helpimg/starmath/un21202.png similarity index 100% rename from icon-themes/elementary/starmath/res/un21202.png rename to icon-themes/galaxy/res/helpimg/starmath/un21202.png diff --git a/icon-themes/elementary/starmath/res/un21203.png b/icon-themes/galaxy/res/helpimg/starmath/un21203.png similarity index 100% rename from icon-themes/elementary/starmath/res/un21203.png rename to icon-themes/galaxy/res/helpimg/starmath/un21203.png diff --git a/icon-themes/elementary/starmath/res/un21204.png b/icon-themes/galaxy/res/helpimg/starmath/un21204.png similarity index 100% rename from icon-themes/elementary/starmath/res/un21204.png rename to icon-themes/galaxy/res/helpimg/starmath/un21204.png diff --git a/icon-themes/elementary/starmath/res/un21205.png b/icon-themes/galaxy/res/helpimg/starmath/un21205.png similarity index 100% rename from icon-themes/elementary/starmath/res/un21205.png rename to icon-themes/galaxy/res/helpimg/starmath/un21205.png diff --git a/icon-themes/elementary/starmath/res/un21206.png b/icon-themes/galaxy/res/helpimg/starmath/un21206.png similarity index 100% rename from icon-themes/elementary/starmath/res/un21206.png rename to icon-themes/galaxy/res/helpimg/starmath/un21206.png diff --git a/icon-themes/elementary/starmath/res/un21207.png b/icon-themes/galaxy/res/helpimg/starmath/un21207.png similarity index 100% rename from icon-themes/elementary/starmath/res/un21207.png rename to icon-themes/galaxy/res/helpimg/starmath/un21207.png diff --git a/icon-themes/elementary/starmath/res/un21208.png b/icon-themes/galaxy/res/helpimg/starmath/un21208.png similarity index 100% rename from icon-themes/elementary/starmath/res/un21208.png rename to icon-themes/galaxy/res/helpimg/starmath/un21208.png diff --git a/icon-themes/elementary/starmath/res/un21209.png b/icon-themes/galaxy/res/helpimg/starmath/un21209.png similarity index 100% rename from icon-themes/elementary/starmath/res/un21209.png rename to icon-themes/galaxy/res/helpimg/starmath/un21209.png diff --git a/icon-themes/elementary/starmath/res/un21210.png b/icon-themes/galaxy/res/helpimg/starmath/un21210.png similarity index 100% rename from icon-themes/elementary/starmath/res/un21210.png rename to icon-themes/galaxy/res/helpimg/starmath/un21210.png diff --git a/icon-themes/elementary/starmath/res/un21211.png b/icon-themes/galaxy/res/helpimg/starmath/un21211.png similarity index 100% rename from icon-themes/elementary/starmath/res/un21211.png rename to icon-themes/galaxy/res/helpimg/starmath/un21211.png diff --git a/icon-themes/elementary/starmath/res/un21212.png b/icon-themes/galaxy/res/helpimg/starmath/un21212.png similarity index 100% rename from icon-themes/elementary/starmath/res/un21212.png rename to icon-themes/galaxy/res/helpimg/starmath/un21212.png diff --git a/icon-themes/elementary/starmath/res/un21213.png b/icon-themes/galaxy/res/helpimg/starmath/un21213.png similarity index 100% rename from icon-themes/elementary/starmath/res/un21213.png rename to icon-themes/galaxy/res/helpimg/starmath/un21213.png diff --git a/icon-themes/elementary/starmath/res/un21214.png b/icon-themes/galaxy/res/helpimg/starmath/un21214.png similarity index 100% rename from icon-themes/elementary/starmath/res/un21214.png rename to icon-themes/galaxy/res/helpimg/starmath/un21214.png diff --git a/icon-themes/elementary/starmath/res/un21215.png b/icon-themes/galaxy/res/helpimg/starmath/un21215.png similarity index 100% rename from icon-themes/elementary/starmath/res/un21215.png rename to icon-themes/galaxy/res/helpimg/starmath/un21215.png diff --git a/icon-themes/elementary/starmath/res/un21221.png b/icon-themes/galaxy/res/helpimg/starmath/un21221.png similarity index 100% rename from icon-themes/elementary/starmath/res/un21221.png rename to icon-themes/galaxy/res/helpimg/starmath/un21221.png diff --git a/icon-themes/galaxy/sc/res/sidebar/morebutton.bmp b/icon-themes/galaxy/sc/res/sidebar/morebutton.bmp deleted file mode 100644 index c665b3e866a80..0000000000000 Binary files a/icon-themes/galaxy/sc/res/sidebar/morebutton.bmp and /dev/null differ diff --git a/icon-themes/galaxy/svx/res/frmsel.bmp b/icon-themes/galaxy/svx/res/frmsel.bmp deleted file mode 100644 index fd22f2b0c6a65..0000000000000 Binary files a/icon-themes/galaxy/svx/res/frmsel.bmp and /dev/null differ diff --git a/icon-themes/galaxy/svx/res/frmsel.png b/icon-themes/galaxy/svx/res/frmsel.png new file mode 100644 index 0000000000000..7f0319496c290 Binary files /dev/null and b/icon-themes/galaxy/svx/res/frmsel.png differ diff --git a/icon-themes/galaxy/svx/res/marker-anchor-pressed.png b/icon-themes/galaxy/svx/res/marker-anchor-pressed.png new file mode 100644 index 0000000000000..72cdc2a804f9a Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-anchor-pressed.png differ diff --git a/icon-themes/galaxy/svx/res/marker-anchor.png b/icon-themes/galaxy/svx/res/marker-anchor.png new file mode 100644 index 0000000000000..71c8644c85441 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-anchor.png differ diff --git a/icon-themes/galaxy/svx/res/marker-circ11-1.png b/icon-themes/galaxy/svx/res/marker-circ11-1.png new file mode 100644 index 0000000000000..77b202e5980f0 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-circ11-1.png differ diff --git a/icon-themes/galaxy/svx/res/marker-circ11-2.png b/icon-themes/galaxy/svx/res/marker-circ11-2.png new file mode 100644 index 0000000000000..e1031a95fc5a6 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-circ11-2.png differ diff --git a/icon-themes/galaxy/svx/res/marker-circ11-3.png b/icon-themes/galaxy/svx/res/marker-circ11-3.png new file mode 100644 index 0000000000000..2331bc15c7322 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-circ11-3.png differ diff --git a/icon-themes/galaxy/svx/res/marker-circ11-4.png b/icon-themes/galaxy/svx/res/marker-circ11-4.png new file mode 100644 index 0000000000000..9dcea1b798e99 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-circ11-4.png differ diff --git a/icon-themes/galaxy/svx/res/marker-circ11-5.png b/icon-themes/galaxy/svx/res/marker-circ11-5.png new file mode 100644 index 0000000000000..cbfe794a4b647 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-circ11-5.png differ diff --git a/icon-themes/galaxy/svx/res/marker-circ11-6.png b/icon-themes/galaxy/svx/res/marker-circ11-6.png new file mode 100644 index 0000000000000..3137406518ec5 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-circ11-6.png differ diff --git a/icon-themes/galaxy/svx/res/marker-circ7-1.png b/icon-themes/galaxy/svx/res/marker-circ7-1.png new file mode 100644 index 0000000000000..2e67402ca235c Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-circ7-1.png differ diff --git a/icon-themes/galaxy/svx/res/marker-circ7-2.png b/icon-themes/galaxy/svx/res/marker-circ7-2.png new file mode 100644 index 0000000000000..a2ca1bcda80fc Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-circ7-2.png differ diff --git a/icon-themes/galaxy/svx/res/marker-circ7-3.png b/icon-themes/galaxy/svx/res/marker-circ7-3.png new file mode 100644 index 0000000000000..69edf90b3ed67 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-circ7-3.png differ diff --git a/icon-themes/galaxy/svx/res/marker-circ7-4.png b/icon-themes/galaxy/svx/res/marker-circ7-4.png new file mode 100644 index 0000000000000..f573a4949a7c7 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-circ7-4.png differ diff --git a/icon-themes/galaxy/svx/res/marker-circ7-5.png b/icon-themes/galaxy/svx/res/marker-circ7-5.png new file mode 100644 index 0000000000000..8d88145e4dd2d Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-circ7-5.png differ diff --git a/icon-themes/galaxy/svx/res/marker-circ7-6.png b/icon-themes/galaxy/svx/res/marker-circ7-6.png new file mode 100644 index 0000000000000..75c8806b4577b Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-circ7-6.png differ diff --git a/icon-themes/galaxy/svx/res/marker-circ9-1.png b/icon-themes/galaxy/svx/res/marker-circ9-1.png new file mode 100644 index 0000000000000..636492731200a Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-circ9-1.png differ diff --git a/icon-themes/galaxy/svx/res/marker-circ9-2.png b/icon-themes/galaxy/svx/res/marker-circ9-2.png new file mode 100644 index 0000000000000..d62f9ca4b89d6 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-circ9-2.png differ diff --git a/icon-themes/galaxy/svx/res/marker-circ9-3.png b/icon-themes/galaxy/svx/res/marker-circ9-3.png new file mode 100644 index 0000000000000..ffbade35ecb86 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-circ9-3.png differ diff --git a/icon-themes/galaxy/svx/res/marker-circ9-4.png b/icon-themes/galaxy/svx/res/marker-circ9-4.png new file mode 100644 index 0000000000000..a3a3bf4f4fe3e Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-circ9-4.png differ diff --git a/icon-themes/galaxy/svx/res/marker-circ9-5.png b/icon-themes/galaxy/svx/res/marker-circ9-5.png new file mode 100644 index 0000000000000..37ef17d87cff5 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-circ9-5.png differ diff --git a/icon-themes/galaxy/svx/res/marker-circ9-6.png b/icon-themes/galaxy/svx/res/marker-circ9-6.png new file mode 100644 index 0000000000000..853af92a5306a Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-circ9-6.png differ diff --git a/icon-themes/galaxy/svx/res/marker-cross.png b/icon-themes/galaxy/svx/res/marker-cross.png new file mode 100644 index 0000000000000..f29d0c6805e1f Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-cross.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli11x9-1.png b/icon-themes/galaxy/svx/res/marker-elli11x9-1.png new file mode 100644 index 0000000000000..cbb601ce1e7d3 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli11x9-1.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli11x9-2.png b/icon-themes/galaxy/svx/res/marker-elli11x9-2.png new file mode 100644 index 0000000000000..40a380ea65700 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli11x9-2.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli11x9-3.png b/icon-themes/galaxy/svx/res/marker-elli11x9-3.png new file mode 100644 index 0000000000000..a0b4e993c0623 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli11x9-3.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli11x9-4.png b/icon-themes/galaxy/svx/res/marker-elli11x9-4.png new file mode 100644 index 0000000000000..5f28a529df679 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli11x9-4.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli11x9-5.png b/icon-themes/galaxy/svx/res/marker-elli11x9-5.png new file mode 100644 index 0000000000000..92c982e9ac23f Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli11x9-5.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli11x9-6.png b/icon-themes/galaxy/svx/res/marker-elli11x9-6.png new file mode 100644 index 0000000000000..a8338d3b549bb Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli11x9-6.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli7x9-1.png b/icon-themes/galaxy/svx/res/marker-elli7x9-1.png new file mode 100644 index 0000000000000..6cec1c14ab1af Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli7x9-1.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli7x9-2.png b/icon-themes/galaxy/svx/res/marker-elli7x9-2.png new file mode 100644 index 0000000000000..06a907c4eb297 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli7x9-2.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli7x9-3.png b/icon-themes/galaxy/svx/res/marker-elli7x9-3.png new file mode 100644 index 0000000000000..fafbbe29a2f09 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli7x9-3.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli7x9-4.png b/icon-themes/galaxy/svx/res/marker-elli7x9-4.png new file mode 100644 index 0000000000000..1f8f1532fb013 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli7x9-4.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli7x9-5.png b/icon-themes/galaxy/svx/res/marker-elli7x9-5.png new file mode 100644 index 0000000000000..457f04a408a41 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli7x9-5.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli7x9-6.png b/icon-themes/galaxy/svx/res/marker-elli7x9-6.png new file mode 100644 index 0000000000000..fd72d96b7a259 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli7x9-6.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli9x11-1.png b/icon-themes/galaxy/svx/res/marker-elli9x11-1.png new file mode 100644 index 0000000000000..41a4745feda41 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli9x11-1.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli9x11-2.png b/icon-themes/galaxy/svx/res/marker-elli9x11-2.png new file mode 100644 index 0000000000000..56df834c11dc7 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli9x11-2.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli9x11-3.png b/icon-themes/galaxy/svx/res/marker-elli9x11-3.png new file mode 100644 index 0000000000000..4233dfedc75d6 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli9x11-3.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli9x11-4.png b/icon-themes/galaxy/svx/res/marker-elli9x11-4.png new file mode 100644 index 0000000000000..e6de6beef9779 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli9x11-4.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli9x11-5.png b/icon-themes/galaxy/svx/res/marker-elli9x11-5.png new file mode 100644 index 0000000000000..f98ede78c38ad Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli9x11-5.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli9x11-6.png b/icon-themes/galaxy/svx/res/marker-elli9x11-6.png new file mode 100644 index 0000000000000..9c0bff6a2f33d Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli9x11-6.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli9x7-1.png b/icon-themes/galaxy/svx/res/marker-elli9x7-1.png new file mode 100644 index 0000000000000..ee9db2ca48188 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli9x7-1.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli9x7-2.png b/icon-themes/galaxy/svx/res/marker-elli9x7-2.png new file mode 100644 index 0000000000000..f167f97d69788 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli9x7-2.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli9x7-3.png b/icon-themes/galaxy/svx/res/marker-elli9x7-3.png new file mode 100644 index 0000000000000..36055b0df3f8f Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli9x7-3.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli9x7-4.png b/icon-themes/galaxy/svx/res/marker-elli9x7-4.png new file mode 100644 index 0000000000000..0073b79980176 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli9x7-4.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli9x7-5.png b/icon-themes/galaxy/svx/res/marker-elli9x7-5.png new file mode 100644 index 0000000000000..90df59d5e0c3d Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli9x7-5.png differ diff --git a/icon-themes/galaxy/svx/res/marker-elli9x7-6.png b/icon-themes/galaxy/svx/res/marker-elli9x7-6.png new file mode 100644 index 0000000000000..9a98311248ce7 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-elli9x7-6.png differ diff --git a/icon-themes/galaxy/svx/res/marker-glue-selected.png b/icon-themes/galaxy/svx/res/marker-glue-selected.png new file mode 100644 index 0000000000000..e84ffaf7feec3 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-glue-selected.png differ diff --git a/icon-themes/galaxy/svx/res/marker-glue-unselected.png b/icon-themes/galaxy/svx/res/marker-glue-unselected.png new file mode 100644 index 0000000000000..e2e95231e850d Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-glue-unselected.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect11-1.png b/icon-themes/galaxy/svx/res/marker-rect11-1.png new file mode 100644 index 0000000000000..3a1d84dc785b0 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect11-1.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect11-2.png b/icon-themes/galaxy/svx/res/marker-rect11-2.png new file mode 100644 index 0000000000000..2bdfd24734e93 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect11-2.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect11-3.png b/icon-themes/galaxy/svx/res/marker-rect11-3.png new file mode 100644 index 0000000000000..8b8e3bb952811 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect11-3.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect11-4.png b/icon-themes/galaxy/svx/res/marker-rect11-4.png new file mode 100644 index 0000000000000..90413dc401b8c Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect11-4.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect11-5.png b/icon-themes/galaxy/svx/res/marker-rect11-5.png new file mode 100644 index 0000000000000..f58738f8872c2 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect11-5.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect11-6.png b/icon-themes/galaxy/svx/res/marker-rect11-6.png new file mode 100644 index 0000000000000..b496601f43e7b Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect11-6.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect13-1.png b/icon-themes/galaxy/svx/res/marker-rect13-1.png new file mode 100644 index 0000000000000..92e02685fa0bc Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect13-1.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect13-2.png b/icon-themes/galaxy/svx/res/marker-rect13-2.png new file mode 100644 index 0000000000000..e473e73f8e675 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect13-2.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect13-3.png b/icon-themes/galaxy/svx/res/marker-rect13-3.png new file mode 100644 index 0000000000000..964f3eaf5dcec Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect13-3.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect13-4.png b/icon-themes/galaxy/svx/res/marker-rect13-4.png new file mode 100644 index 0000000000000..29f79bc105b04 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect13-4.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect13-5.png b/icon-themes/galaxy/svx/res/marker-rect13-5.png new file mode 100644 index 0000000000000..3dff678b63375 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect13-5.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect13-6.png b/icon-themes/galaxy/svx/res/marker-rect13-6.png new file mode 100644 index 0000000000000..0d9d71cab3fc4 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect13-6.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect7-1.png b/icon-themes/galaxy/svx/res/marker-rect7-1.png new file mode 100644 index 0000000000000..323982cff7adc Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect7-1.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect7-2.png b/icon-themes/galaxy/svx/res/marker-rect7-2.png new file mode 100644 index 0000000000000..773df37aa9b1e Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect7-2.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect7-3.png b/icon-themes/galaxy/svx/res/marker-rect7-3.png new file mode 100644 index 0000000000000..663c9d834606f Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect7-3.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect7-4.png b/icon-themes/galaxy/svx/res/marker-rect7-4.png new file mode 100644 index 0000000000000..25a32d03bd602 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect7-4.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect7-5.png b/icon-themes/galaxy/svx/res/marker-rect7-5.png new file mode 100644 index 0000000000000..aef73c74936e5 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect7-5.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect7-6.png b/icon-themes/galaxy/svx/res/marker-rect7-6.png new file mode 100644 index 0000000000000..5d2a1b636e648 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect7-6.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect9-1.png b/icon-themes/galaxy/svx/res/marker-rect9-1.png new file mode 100644 index 0000000000000..c0fa748d59061 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect9-1.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect9-2.png b/icon-themes/galaxy/svx/res/marker-rect9-2.png new file mode 100644 index 0000000000000..d2b252e4159bd Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect9-2.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect9-3.png b/icon-themes/galaxy/svx/res/marker-rect9-3.png new file mode 100644 index 0000000000000..fa1cfb07caac5 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect9-3.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect9-4.png b/icon-themes/galaxy/svx/res/marker-rect9-4.png new file mode 100644 index 0000000000000..30e3cd3562bea Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect9-4.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect9-5.png b/icon-themes/galaxy/svx/res/marker-rect9-5.png new file mode 100644 index 0000000000000..be112a7254a0e Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect9-5.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rect9-6.png b/icon-themes/galaxy/svx/res/marker-rect9-6.png new file mode 100644 index 0000000000000..3a213a5be37af Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rect9-6.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rectplus11-1.png b/icon-themes/galaxy/svx/res/marker-rectplus11-1.png new file mode 100644 index 0000000000000..200d79a326e83 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rectplus11-1.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rectplus11-2.png b/icon-themes/galaxy/svx/res/marker-rectplus11-2.png new file mode 100644 index 0000000000000..9488bfec402fa Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rectplus11-2.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rectplus11-3.png b/icon-themes/galaxy/svx/res/marker-rectplus11-3.png new file mode 100644 index 0000000000000..146ae367254ed Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rectplus11-3.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rectplus11-4.png b/icon-themes/galaxy/svx/res/marker-rectplus11-4.png new file mode 100644 index 0000000000000..bb2092b1f9c58 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rectplus11-4.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rectplus11-5.png b/icon-themes/galaxy/svx/res/marker-rectplus11-5.png new file mode 100644 index 0000000000000..53ef7b2e10be5 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rectplus11-5.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rectplus11-6.png b/icon-themes/galaxy/svx/res/marker-rectplus11-6.png new file mode 100644 index 0000000000000..78055546e194e Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rectplus11-6.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rectplus7-1.png b/icon-themes/galaxy/svx/res/marker-rectplus7-1.png new file mode 100644 index 0000000000000..050a8f7b96c5f Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rectplus7-1.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rectplus7-2.png b/icon-themes/galaxy/svx/res/marker-rectplus7-2.png new file mode 100644 index 0000000000000..94dbfe1897305 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rectplus7-2.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rectplus7-3.png b/icon-themes/galaxy/svx/res/marker-rectplus7-3.png new file mode 100644 index 0000000000000..1f837f5de8fe1 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rectplus7-3.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rectplus7-4.png b/icon-themes/galaxy/svx/res/marker-rectplus7-4.png new file mode 100644 index 0000000000000..a977425e1f3e1 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rectplus7-4.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rectplus7-5.png b/icon-themes/galaxy/svx/res/marker-rectplus7-5.png new file mode 100644 index 0000000000000..5bc6b8d25735d Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rectplus7-5.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rectplus7-6.png b/icon-themes/galaxy/svx/res/marker-rectplus7-6.png new file mode 100644 index 0000000000000..7b2c2d48e4276 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rectplus7-6.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rectplus9-1.png b/icon-themes/galaxy/svx/res/marker-rectplus9-1.png new file mode 100644 index 0000000000000..90baf35be2643 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rectplus9-1.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rectplus9-2.png b/icon-themes/galaxy/svx/res/marker-rectplus9-2.png new file mode 100644 index 0000000000000..12390450aca23 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rectplus9-2.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rectplus9-3.png b/icon-themes/galaxy/svx/res/marker-rectplus9-3.png new file mode 100644 index 0000000000000..a2581952158c4 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rectplus9-3.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rectplus9-4.png b/icon-themes/galaxy/svx/res/marker-rectplus9-4.png new file mode 100644 index 0000000000000..bf0a4e70ddcb7 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rectplus9-4.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rectplus9-5.png b/icon-themes/galaxy/svx/res/marker-rectplus9-5.png new file mode 100644 index 0000000000000..9f1bb4adad5b5 Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rectplus9-5.png differ diff --git a/icon-themes/galaxy/svx/res/marker-rectplus9-6.png b/icon-themes/galaxy/svx/res/marker-rectplus9-6.png new file mode 100644 index 0000000000000..5ef52b5f5a02f Binary files /dev/null and b/icon-themes/galaxy/svx/res/marker-rectplus9-6.png differ diff --git a/icon-themes/galaxy/svx/res/markers.png b/icon-themes/galaxy/svx/res/markers.png index cd475bca85071..2ffc4d6d92afd 100644 Binary files a/icon-themes/galaxy/svx/res/markers.png and b/icon-themes/galaxy/svx/res/markers.png differ diff --git a/icon-themes/galaxy/vcl/res/check.png b/icon-themes/galaxy/vcl/res/check.png index 3bf35b2d6ae5c..05f8b1c381c3e 100644 Binary files a/icon-themes/galaxy/vcl/res/check.png and b/icon-themes/galaxy/vcl/res/check.png differ diff --git a/icon-themes/galaxy/vcl/res/checkmono.bmp b/icon-themes/galaxy/vcl/res/checkmono.bmp deleted file mode 100644 index 7e0610d5e9d87..0000000000000 Binary files a/icon-themes/galaxy/vcl/res/checkmono.bmp and /dev/null differ diff --git a/icon-themes/galaxy/vcl/res/checkmono.png b/icon-themes/galaxy/vcl/res/checkmono.png new file mode 100644 index 0000000000000..afdf871f4fe94 Binary files /dev/null and b/icon-themes/galaxy/vcl/res/checkmono.png differ diff --git a/icon-themes/galaxy/vcl/res/radio.png b/icon-themes/galaxy/vcl/res/radio.png index c198a6d9ef904..dff083949b971 100644 Binary files a/icon-themes/galaxy/vcl/res/radio.png and b/icon-themes/galaxy/vcl/res/radio.png differ diff --git a/icon-themes/galaxy/vcl/res/radiomono.bmp b/icon-themes/galaxy/vcl/res/radiomono.bmp deleted file mode 100644 index 6c757c34bac89..0000000000000 Binary files a/icon-themes/galaxy/vcl/res/radiomono.bmp and /dev/null differ diff --git a/icon-themes/galaxy/vcl/res/radiomono.png b/icon-themes/galaxy/vcl/res/radiomono.png new file mode 100644 index 0000000000000..88f101430b82d Binary files /dev/null and b/icon-themes/galaxy/vcl/res/radiomono.png differ diff --git a/icon-themes/hicontrast/sc/res/sidebar/morebutton.bmp b/icon-themes/hicontrast/sc/res/sidebar/morebutton.bmp deleted file mode 100644 index c665b3e866a80..0000000000000 Binary files a/icon-themes/hicontrast/sc/res/sidebar/morebutton.bmp and /dev/null differ diff --git a/icon-themes/sifr/cmd/lc_editheaderandfooter.png b/icon-themes/sifr/cmd/lc_editheaderandfooter.png new file mode 100644 index 0000000000000..0c01f11c4aacc Binary files /dev/null and b/icon-themes/sifr/cmd/lc_editheaderandfooter.png differ diff --git a/icon-themes/sifr/cmd/lc_insertindexentry.png b/icon-themes/sifr/cmd/lc_insertindexentry.png new file mode 100644 index 0000000000000..d905627f4f53d Binary files /dev/null and b/icon-themes/sifr/cmd/lc_insertindexentry.png differ diff --git a/icon-themes/sifr/cmd/lc_insertreferencefield.png b/icon-themes/sifr/cmd/lc_insertreferencefield.png new file mode 100644 index 0000000000000..0ea9d20098069 Binary files /dev/null and b/icon-themes/sifr/cmd/lc_insertreferencefield.png differ diff --git a/icon-themes/sifr/cmd/lc_trackchangesbar.png b/icon-themes/sifr/cmd/lc_trackchangesbar.png new file mode 100644 index 0000000000000..11a17949d7651 Binary files /dev/null and b/icon-themes/sifr/cmd/lc_trackchangesbar.png differ diff --git a/icon-themes/sifr/cmd/sc_editheaderandfooter.png b/icon-themes/sifr/cmd/sc_editheaderandfooter.png new file mode 100644 index 0000000000000..d2774adc78588 Binary files /dev/null and b/icon-themes/sifr/cmd/sc_editheaderandfooter.png differ diff --git a/icon-themes/sifr/cmd/sc_insertindexentry.png b/icon-themes/sifr/cmd/sc_insertindexentry.png new file mode 100644 index 0000000000000..610439a725b06 Binary files /dev/null and b/icon-themes/sifr/cmd/sc_insertindexentry.png differ diff --git a/icon-themes/sifr/cmd/sc_insertreferencefield.png b/icon-themes/sifr/cmd/sc_insertreferencefield.png new file mode 100644 index 0000000000000..c879491562b9c Binary files /dev/null and b/icon-themes/sifr/cmd/sc_insertreferencefield.png differ diff --git a/icon-themes/sifr/cmd/sc_trackchangesbar.png b/icon-themes/sifr/cmd/sc_trackchangesbar.png new file mode 100644 index 0000000000000..fcba9c9429e77 Binary files /dev/null and b/icon-themes/sifr/cmd/sc_trackchangesbar.png differ diff --git a/icon-themes/sifr/res/savemodified_small.png b/icon-themes/sifr/res/savemodified_small.png index 3fb98f93c7eb6..cc1d5bed60363 100644 Binary files a/icon-themes/sifr/res/savemodified_small.png and b/icon-themes/sifr/res/savemodified_small.png differ diff --git a/icon-themes/sifr/sw/res/sf06.png b/icon-themes/sifr/sw/res/sf06.png new file mode 100644 index 0000000000000..95412dc9aee7e Binary files /dev/null and b/icon-themes/sifr/sw/res/sf06.png differ diff --git a/include/comphelper/backupfilehelper.hxx b/include/comphelper/backupfilehelper.hxx index d11208a00572d..68835b866452f 100644 --- a/include/comphelper/backupfilehelper.hxx +++ b/include/comphelper/backupfilehelper.hxx @@ -162,10 +162,15 @@ namespace comphelper static bool isTryDeinstallUserExtensionsPossible(); static void tryDeinstallUserExtensions(); - /** Deinstall all Extensions (user|shared|bundled) + /** Reset shared Extensions */ - static bool isTryDeinstallAllExtensionsPossible(); - static void tryDeinstallAllExtensions(); + static bool isTryResetSharedExtensionsPossible(); + static void tryResetSharedExtensions(); + + /** Reset bundled Extensions + */ + static bool isTryResetBundledExtensionsPossible(); + static void tryResetBundledExtensions(); /// Disables OpenGL and OpenCL static void tryDisableHWAcceleration(); diff --git a/include/comphelper/storagehelper.hxx b/include/comphelper/storagehelper.hxx index d5655d492f75e..67481985d00e5 100644 --- a/include/comphelper/storagehelper.hxx +++ b/include/comphelper/storagehelper.hxx @@ -154,7 +154,8 @@ public: const css::uno::Reference < css::io::XInputStream >& xStream, const css::uno::Reference< css::uno::XComponentContext >& rxContext = css::uno::Reference< css::uno::XComponentContext >(), - bool bRepairStorage = false ) + bool bRepairStorage = false, + bool bUseBufferedStream = false ) throw ( css::uno::Exception ); static css::uno::Reference< css::embed::XStorage > @@ -164,7 +165,8 @@ public: sal_Int32 nStorageMode = css::embed::ElementModes::READWRITE, const css::uno::Reference< css::uno::XComponentContext >& rxContext = css::uno::Reference< css::uno::XComponentContext >(), - bool bRepairStorage = false ) + bool bRepairStorage = false, + bool bUseBufferedStream = false ) throw ( css::uno::Exception ); static css::uno::Sequence< css::beans::NamedValue > diff --git a/include/comphelper/string.hxx b/include/comphelper/string.hxx index 8aab4f12eddf2..7934a6b6d7cfc 100644 --- a/include/comphelper/string.hxx +++ b/include/comphelper/string.hxx @@ -255,6 +255,15 @@ COMPHELPER_DLLPUBLIC OUString setToken(const OUString& rIn, sal_Int32 nToken, sa COMPHELPER_DLLPUBLIC sal_Int32 indexOfAny(OUString const& rIn, sal_Unicode const*const pChars, sal_Int32 const nPos); +/** Remove any of a list of code units in the string. + @param rIn OUString to search + @param pChars 0-terminated array of sal_Unicode code units to search for + + @return OUString that has all of the pChars code units removed + */ +COMPHELPER_DLLPUBLIC OUString removeAny(OUString const& rIn, + sal_Unicode const*const pChars); + /** Convert a sequence of strings to a single comma separated string. Note that no escaping of commas or anything fancy is done. diff --git a/include/comphelper/unique_disposing_ptr.hxx b/include/comphelper/unique_disposing_ptr.hxx index 75be7d6dabec5..c986b12e316fe 100644 --- a/include/comphelper/unique_disposing_ptr.hxx +++ b/include/comphelper/unique_disposing_ptr.hxx @@ -14,6 +14,7 @@ #include #include +#include #include #include @@ -30,10 +31,10 @@ private: unique_disposing_ptr(const unique_disposing_ptr&) = delete; unique_disposing_ptr& operator=(const unique_disposing_ptr&) = delete; public: - unique_disposing_ptr( const css::uno::Reference< css::lang::XComponent > &rComponent, T * p = nullptr ) + unique_disposing_ptr( const css::uno::Reference< css::lang::XComponent > &rComponent, T * p = nullptr, bool bComponent = false) : m_xItem(p) { - m_xTerminateListener = new TerminateListener(rComponent, *this); + m_xTerminateListener = new TerminateListener(rComponent, *this, bComponent); } virtual void reset(T * p = nullptr) @@ -66,14 +67,19 @@ public: reset(); } private: - class TerminateListener : public ::cppu::WeakImplHelper< css::frame::XTerminateListener > + class TerminateListener : public ::cppu::WeakImplHelper< css::frame::XTerminateListener, + css::lang::XServiceInfo> { private: css::uno::Reference< css::lang::XComponent > m_xComponent; unique_disposing_ptr& m_rItem; + bool mbComponentDLL; public: TerminateListener(const css::uno::Reference< css::lang::XComponent > &rComponent, - unique_disposing_ptr& rItem) : m_xComponent(rComponent), m_rItem(rItem) + unique_disposing_ptr& rItem, bool bComponentDLL) : + m_xComponent(rComponent), + m_rItem(rItem), + mbComponentDLL(bComponentDLL) { if (m_xComponent.is()) { @@ -97,7 +103,6 @@ private: } } - private: // XEventListener virtual void SAL_CALL disposing( const css::lang::EventObject& rEvt ) throw (css::uno::RuntimeException, std::exception) override @@ -130,6 +135,27 @@ private: { disposing(rEvt); } + + virtual OUString SAL_CALL getImplementationName() + throw (css::uno::RuntimeException, std::exception) override + { + if (mbComponentDLL) + return OUString("com.sun.star.comp.ComponentDLLListener"); + else + return OUString("com.sun.star.comp.DisposingTerminateListener"); + } + + virtual sal_Bool SAL_CALL supportsService(const OUString& /*rName*/) + throw (css::uno::RuntimeException, std::exception) override + { + return false; + } + + virtual css::uno::Sequence SAL_CALL getSupportedServiceNames() + throw (css::uno::RuntimeException, std::exception) override + { + return css::uno::Sequence(); + } }; }; @@ -141,8 +167,8 @@ template class unique_disposing_solar_mutex_reset_ptr : public unique_disposing_ptr { public: - unique_disposing_solar_mutex_reset_ptr( const css::uno::Reference< css::lang::XComponent > &rComponent, T * p = nullptr ) - : unique_disposing_ptr(rComponent, p) + unique_disposing_solar_mutex_reset_ptr( const css::uno::Reference< css::lang::XComponent > &rComponent, T * p = nullptr, bool bComponent = false) + : unique_disposing_ptr(rComponent, p, bComponent) { } diff --git a/include/desktop/crashreport.hxx b/include/desktop/crashreport.hxx index e58e387d01220..f4616e88c3674 100644 --- a/include/desktop/crashreport.hxx +++ b/include/desktop/crashreport.hxx @@ -57,6 +57,10 @@ private: static osl::Mutex maMutex; + static bool mbInit; + + static std::map maKeyValues; // used to temporarily save entries before the old info has been uploaded + static google_breakpad::ExceptionHandler* mpExceptionHandler; }; diff --git a/include/editeng/AccessibleContextBase.hxx b/include/editeng/AccessibleContextBase.hxx index dc0c19a597d35..24bb87ee74c9d 100644 --- a/include/editeng/AccessibleContextBase.hxx +++ b/include/editeng/AccessibleContextBase.hxx @@ -266,12 +266,6 @@ public: //===== XTypeProvider =================================================== - /** Returns a sequence of all supported interfaces. - */ - virtual css::uno::Sequence< css::uno::Type> SAL_CALL - getTypes() - throw (css::uno::RuntimeException, std::exception) override; - /** Returns a implementation id. */ virtual css::uno::Sequence SAL_CALL diff --git a/include/editeng/numitem.hxx b/include/editeng/numitem.hxx index 86d8b0591edee..b10056c701007 100644 --- a/include/editeng/numitem.hxx +++ b/include/editeng/numitem.hxx @@ -33,6 +33,7 @@ #include #include #include +#include class SvxBrushItem; namespace vcl { class Font; } @@ -47,6 +48,8 @@ namespace com{namespace sun{ namespace star{ #define SVX_NO_NUM 200 // Marker for no numbering #define SVX_NO_NUMLEVEL 0x20 +#define SVX_NUM_REL_SIZE_MIN 25 // Lower limit for numbering relative size + #define LINK_TOKEN 0x80 //indicate linked bitmaps - for use in dialog only class EDITENG_DLLPUBLIC SvxNumberType @@ -168,7 +171,7 @@ public: const vcl::Font* GetBulletFont() const {return pBulletFont;} void SetBulletChar(sal_Unicode cSet){cBullet = cSet;} sal_Unicode GetBulletChar()const {return cBullet;} - void SetBulletRelSize(sal_uInt16 nSet) {nBulletRelSize = nSet;} + void SetBulletRelSize(sal_uInt16 nSet) {nBulletRelSize = std::max(nSet, sal_uInt16(SVX_NUM_REL_SIZE_MIN));} sal_uInt16 GetBulletRelSize() const { return nBulletRelSize;} void SetBulletColor(Color nSet){nBulletColor = nSet;} const Color& GetBulletColor()const {return nBulletColor;} diff --git a/include/editeng/svxacorr.hxx b/include/editeng/svxacorr.hxx index dbe2704ba728f..b00acc862c362 100644 --- a/include/editeng/svxacorr.hxx +++ b/include/editeng/svxacorr.hxx @@ -233,7 +233,7 @@ class EDITENG_DLLPUBLIC SvxAutoCorrect // all languages in a table std::map>* m_pLangTable; - std::map aLastFileTable; + std::map aLastFileTable; CharClass* pCharClass; bool bRunNext; diff --git a/include/formula/FormulaCompiler.hxx b/include/formula/FormulaCompiler.hxx index 96d945f220b79..5293c504b1ddb 100644 --- a/include/formula/FormulaCompiler.hxx +++ b/include/formula/FormulaCompiler.hxx @@ -38,6 +38,7 @@ #define FORMULA_MAXJUMPCOUNT 32 /* maximum number of jumps (ocChoose) */ #define FORMULA_MAXTOKENS 8192 /* maximum number of tokens in formula */ +#define FORMULA_MAXPARAMS 255 /* maximum number of parameters per function (byte) */ namespace com { namespace sun { namespace star { @@ -58,6 +59,7 @@ struct FormulaArrayStack { FormulaArrayStack* pNext; FormulaTokenArray* pArr; + FormulaTokenRef mpLastToken; bool bTemp; }; @@ -331,6 +333,7 @@ protected: FormulaTokenRef pCurrentFactorToken; // current factor token (of Factor() method) sal_uInt16 nCurrentFactorParam; // current factor token's parameter, 1-based FormulaTokenArray* pArr; + FormulaTokenRef mpLastToken; // last token FormulaToken** pCode; FormulaArrayStack* pStack; diff --git a/include/formula/errorcodes.hxx b/include/formula/errorcodes.hxx index 329be0d3b24d5..2af9b1112de71 100644 --- a/include/formula/errorcodes.hxx +++ b/include/formula/errorcodes.hxx @@ -119,6 +119,73 @@ inline FormulaError GetDoubleErrorValue( double fVal ) return (FormulaError)(nErr & 0x0000ffff); } +/** Error values that are accepted as detailed "#ERRxxx!" constants. + + Used in FormulaCompiler::GetErrorConstant() to prevent users from inventing + arbitrary values that already have or later might get a significant meaning. + */ +inline bool isPublishedFormulaError( FormulaError nErr ) +{ + // Every value has to be handled explicitly, do not add a default case to + // let the compiler complain if a value is missing. + switch (nErr) + { + case FormulaError::NONE: + return false; + + case FormulaError::IllegalChar: + case FormulaError::IllegalArgument: + case FormulaError::IllegalFPOperation: + case FormulaError::IllegalParameter: + case FormulaError::IllegalJump: + case FormulaError::Separator: + case FormulaError::Pair: + case FormulaError::PairExpected: + case FormulaError::OperatorExpected: + case FormulaError::VariableExpected: + case FormulaError::ParameterExpected: + case FormulaError::CodeOverflow: + case FormulaError::StringOverflow: + case FormulaError::StackOverflow: + case FormulaError::UnknownState: + case FormulaError::UnknownVariable: + case FormulaError::UnknownOpCode: + case FormulaError::UnknownStackVariable: + case FormulaError::NoValue: + case FormulaError::UnknownToken: + case FormulaError::NoCode: + case FormulaError::CircularReference: + case FormulaError::NoConvergence: + case FormulaError::NoRef: + case FormulaError::NoName: + case FormulaError::DoubleRef: + return true; + + case FormulaError::TrackFromCircRef: + case FormulaError::CellNoValue: + return false; + + case FormulaError::NoAddin: + case FormulaError::NoMacro: + case FormulaError::DivisionByZero: + case FormulaError::NestedArray: + return true; + + case FormulaError::NotNumericString: + case FormulaError::JumpMatHasResult: + case FormulaError::ElementNaN: + case FormulaError::RetryCircular: + return false; + + case FormulaError::MatrixSize: + return true; + + case FormulaError::NotAvailable: + return false; + } + return false; +} + #endif // INCLUDED_FORMULA_ERRORCODES_HXX /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/o3tl/safeint.hxx b/include/o3tl/safeint.hxx new file mode 100644 index 0000000000000..ce144d22d9ea4 --- /dev/null +++ b/include/o3tl/safeint.hxx @@ -0,0 +1,89 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef INCLUDED_O3TL_SAFEINT_HXX +#define INCLUDED_O3TL_SAFEINT_HXX + +#include +#if defined(_MSC_VER) +#include +#else +#ifndef __has_builtin +# define __has_builtin(x) 0 +#endif +#endif + +namespace o3tl +{ + +#if defined(_MSC_VER) + +template inline bool checked_multiply(T a, T b, T& result) +{ + return !msl::utilities::SafeMultiply(a, b, result); +} + +#elif (defined __GNUC__ && __GNUC__ >= 5) || (__has_builtin(__builtin_mul_overflow)) + +template inline bool checked_multiply(T a, T b, T& result) +{ + return __builtin_mul_overflow(a, b, &result); +} + +#else + +//https://www.securecoding.cert.org/confluence/display/c/INT32-C.+Ensure+that+operations+on+signed+integers+do+not+result+in+overflow +template inline typename std::enable_if::value, bool>::type checked_multiply(T a, T b, T& result) +{ + if (a > 0) { /* a is positive */ + if (b > 0) { /* a and b are positive */ + if (a > (std::numeric_limits::max() / b)) { + return true; /* Handle error */ + } + } else { /* a positive, b nonpositive */ + if (b < (std::numeric_limits::min() / a)) { + return true; /* Handle error */ + } + } /* a positive, b nonpositive */ + } else { /* a is nonpositive */ + if (b > 0) { /* a is nonpositive, b is positive */ + if (a < (std::numeric_limits::min() / b)) { + return true; /* Handle error */ + } + } else { /* a and b are nonpositive */ + if ( (a != 0) && (b < (std::numeric_limits::max() / a))) { + return true; /* Handle error */ + } + } /* End if a and b are nonpositive */ + } /* End if a is nonpositive */ + + result = a * b; + + return false; +} + +//https://www.securecoding.cert.org/confluence/display/c/INT30-C.+Ensure+that+unsigned+integer+operations+do+not+wrap +template inline typename std::enable_if::value, bool>::type checked_multiply(T a, T b, T& result) +{ + if (b && a > std::numeric_limits::max() / b) { + return true;/* Handle error */ + } + + result = a * b; + + return false; +} + +#endif + +} + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/oox/core/xmlfilterbase.hxx b/include/oox/core/xmlfilterbase.hxx index 1a9be6a15ff92..83d8ff1585e48 100644 --- a/include/oox/core/xmlfilterbase.hxx +++ b/include/oox/core/xmlfilterbase.hxx @@ -233,6 +233,10 @@ public: bool isMSO2007Document() const; + /// Signal that an MSO 2007-created SmartArt was found, need to warn the + /// user about it. + void setMissingExtDrawing(); + void checkDocumentProperties( const css::uno::Reference& xDocProps); @@ -256,6 +260,8 @@ private: sal_Int32 mnRelId; sal_Int32 mnMaxDocId; bool mbMSO2007; +protected: + bool mbMissingExtDrawing; }; } // namespace core diff --git a/include/oox/drawingml/clrscheme.hxx b/include/oox/drawingml/clrscheme.hxx index ccb1517e44eb0..ccf918d7ba74b 100644 --- a/include/oox/drawingml/clrscheme.hxx +++ b/include/oox/drawingml/clrscheme.hxx @@ -28,9 +28,42 @@ #include #include +#include namespace oox { namespace drawingml { +enum PredefinedClrSchemeId { + //dk1, + //lt1, + dk2 = 0, + lt2, + accent1, + accent2, + accent3, + accent4, + accent5, + accent6, + hlink, + folHlink, + Count +}; + +static std::map PredefinedClrNames = +{ + //{ dk1, "dk1" }, + //{ lt1, "lt1" }, + { dk2, "dk2" }, + { lt2, "lt2" }, + { accent1, "accent1" }, + { accent2, "accent2" }, + { accent3, "accent3" }, + { accent4, "accent4" }, + { accent5, "accent5" }, + { accent6, "accent6" }, + { hlink, "hlink" }, + { folHlink, "folHlink" } +}; + class ClrMap { std::map < sal_Int32, sal_Int32 > maClrMap; diff --git a/include/oox/drawingml/drawingmltypes.hxx b/include/oox/drawingml/drawingmltypes.hxx index 2aac13c669a78..aaed34b11ab9f 100644 --- a/include/oox/drawingml/drawingmltypes.hxx +++ b/include/oox/drawingml/drawingmltypes.hxx @@ -150,6 +150,21 @@ struct IndexRange { /** retrieve the content of CT_IndexRange */ IndexRange GetIndexRange( const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttributes ); +/** +* nRotation is a 100th of a degree and the return value is +* in a 60,000th of a degree +* +* Also rotation is in opposite directions so multiply with -1 +*/ +inline OString calcRotationValue(sal_Int32 nRotation) +{ + if (nRotation > 18000) // 180 degree + { + nRotation -= 36000; + } + nRotation *= -600; + return OString::number(nRotation); +} const sal_Int32 EMU_PER_HMM = 360; /// 360 EMUs per 1/100 mm. diff --git a/include/oox/drawingml/shape.hxx b/include/oox/drawingml/shape.hxx index 67f9a9b48afdb..b7f1d162d7bb9 100644 --- a/include/oox/drawingml/shape.hxx +++ b/include/oox/drawingml/shape.hxx @@ -138,6 +138,7 @@ public: void setRotation( sal_Int32 nRotation ) { mnRotation = nRotation; } void setFlip( bool bFlipH, bool bFlipV ) { mbFlipH = bFlipH; mbFlipV = bFlipV; } + void applyParentTextFlipV(bool bTextFlipV) { mbInheritedTextFlipV = bTextFlipV; } void addChild( const ShapePtr& rChildPtr ) { maChildren.push_back( rChildPtr ); } std::vector< ShapePtr >& getChildren() { return maChildren; } @@ -315,6 +316,7 @@ private: sal_Int32 mnRotation; bool mbFlipH; bool mbFlipV; + bool mbInheritedTextFlipV; // Used by group shapes only bool mbHidden; bool mbHiddenMasterShape; // master shapes can be hidden in layout slides // we need separate flag because we don't want diff --git a/include/oox/export/drawingml.hxx b/include/oox/export/drawingml.hxx index e9dc0a33c3fa5..732d0fc613e35 100644 --- a/include/oox/export/drawingml.hxx +++ b/include/oox/export/drawingml.hxx @@ -44,6 +44,7 @@ #endif class Graphic; +class SdrObjCustomShape; namespace com { namespace sun { namespace star { namespace awt { @@ -57,6 +58,8 @@ namespace beans { } namespace drawing { class XShape; + struct EnhancedCustomShapeParameterPair; + struct EnhancedCustomShapeParameter; } namespace style { struct LineSpacing; @@ -182,7 +185,7 @@ public: void WriteSrcRect( const css::uno::Reference< css::beans::XPropertySet >&, const OUString& ); void WriteOutline( const css::uno::Reference< css::beans::XPropertySet >& rXPropSet ); void WriteStretch( const css::uno::Reference< css::beans::XPropertySet >& rXPropSet, const OUString& rURL ); - void WriteLinespacing( css::style::LineSpacing& rLineSpacing ); + void WriteLinespacing( const css::style::LineSpacing& rLineSpacing ); OUString WriteBlip( const css::uno::Reference< css::beans::XPropertySet >& rXPropSet, const OUString& rURL, bool bRelPathToMedia = false , const Graphic *pGraphic=nullptr ); @@ -194,17 +197,22 @@ public: sal_Int32 nXmlNamespace, bool bFlipH = false, bool bFlipV = false, sal_Int32 nRotation = 0 ); void WriteText( const css::uno::Reference< css::uno::XInterface >& rXIface, const OUString& presetWarp, bool bBodyPr = true, bool bText = true, sal_Int32 nXmlNamespace = 0); - void WriteParagraph( const css::uno::Reference< css::text::XTextContent >& rParagraph ); + void WriteParagraph( const css::uno::Reference< css::text::XTextContent >& rParagraph, + bool& rbOverridingCharHeight, sal_Int32& rnCharHeight ); void WriteParagraphProperties( const css::uno::Reference< css::text::XTextContent >& rParagraph ); void WriteParagraphNumbering( const css::uno::Reference< css::beans::XPropertySet >& rXPropSet, sal_Int16 nLevel ); - void WriteRun( const css::uno::Reference< css::text::XTextRange >& rRun ); - void WriteRunProperties( const css::uno::Reference< css::beans::XPropertySet >& rRun, bool bIsField, sal_Int32 nElement = XML_rPr ,bool bCheckDirect = true); + void WriteRun( const css::uno::Reference< css::text::XTextRange >& rRun, + bool& rbOverridingCharHeight, sal_Int32& rnCharHeight ); + void WriteRunProperties( const css::uno::Reference< css::beans::XPropertySet >& rRun, bool bIsField, sal_Int32 nElement, bool bCheckDirect, + bool& rbOverridingCharHeight, sal_Int32& rnCharHeight ); void WritePresetShape( const char* pShape , std::vector< std::pair> & rAvList ); void WritePresetShape( const char* pShape ); void WritePresetShape( const char* pShape, MSO_SPT eShapeType, bool bPredefinedHandlesUsed, sal_Int32 nAdjustmentsWhichNeedsToBeConverted, const css::beans::PropertyValue& rProp ); - bool WriteCustomGeometry( const css::uno::Reference& rXShape ); + bool WriteCustomGeometry( const css::uno::Reference& rXShape, const SdrObjCustomShape* pShape ); + void WriteCustomGeometryPoint(const css::drawing::EnhancedCustomShapeParameterPair& rParamPair, const SdrObjCustomShape* pShape); + static sal_Int32 GetCustomGeometryPointValue(const css::drawing::EnhancedCustomShapeParameter& rParam, const SdrObjCustomShape* pShape); void WritePolyPolygon( const tools::PolyPolygon& rPolyPolygon ); void WriteFill( const css::uno::Reference< css::beans::XPropertySet >& xPropSet ); void WriteShapeStyle( const css::uno::Reference< css::beans::XPropertySet >& rXPropSet ); diff --git a/include/oox/export/utils.hxx b/include/oox/export/utils.hxx index 599e45ee55f88..9f13cf87c4c82 100644 --- a/include/oox/export/utils.hxx +++ b/include/oox/export/utils.hxx @@ -24,8 +24,19 @@ #include #include -#define I32S(x) OString::number( (sal_Int32) x ).getStr() -#define I64S(x) OString::number( (sal_Int64) x ).getStr() +inline OString I32S_(sal_Int32 x) { return OString::number(x); } +inline OString I32SHEX_(sal_Int32 x) +{ + OString aStr = OString::number(x, 16); + while (aStr.getLength() < 6) + aStr = OString("0") + aStr; + return aStr.getStr(); +} +inline OString I64S_(sal_Int64 x) { return OString::number(x); } +inline OString DS_(double x) { return OString::number(x); } +#define I32S(x) I32S_(x).getStr() +#define I32SHEX(x) I32SHEX_(x).getStr() +#define I64S(x) I64S_(x).getStr() #define IS(x) OString::number( x ).getStr() #define BS(x) (x ? "1":"0") #define USS(x) OUStringToOString( x, RTL_TEXTENCODING_UTF8 ).getStr() diff --git a/include/oox/ppt/presentationfragmenthandler.hxx b/include/oox/ppt/presentationfragmenthandler.hxx index aeda119cd2f14..637e70643be7f 100644 --- a/include/oox/ppt/presentationfragmenthandler.hxx +++ b/include/oox/ppt/presentationfragmenthandler.hxx @@ -53,6 +53,7 @@ protected: private: void importSlide(sal_uInt32 nSlide, bool bFirstSlide, bool bImportNotes); + void saveThemeToGrabBag(oox::drawingml::ThemePtr pThemePtr, const OUString& sTheme); std::vector< OUString > maSlideMasterVector; std::vector< OUString > maSlidesVector; diff --git a/include/oox/vml/vmlshapecontainer.hxx b/include/oox/vml/vmlshapecontainer.hxx index 76e294fc279d9..692beafad5553 100644 --- a/include/oox/vml/vmlshapecontainer.hxx +++ b/include/oox/vml/vmlshapecontainer.hxx @@ -61,10 +61,10 @@ public: Drawing& getDrawing() { return mrDrawing; } /** Creates and returns a new shape template object. */ - ShapeType& createShapeType(); + std::shared_ptr createShapeType(); /** Creates and returns a new shape object of the specified type. */ template< typename ShapeT > - ShapeT& createShape(); + std::shared_ptr createShape(); /** Final processing after import of the drawing fragment. */ void finalizeFragmentImport(); @@ -123,11 +123,11 @@ private: template< typename ShapeT > -ShapeT& ShapeContainer::createShape() +std::shared_ptr ShapeContainer::createShape() { std::shared_ptr< ShapeT > xShape( new ShapeT( mrDrawing ) ); maShapes.push_back( xShape ); - return *xShape; + return xShape; } template< typename Functor > diff --git a/include/oox/vml/vmlshapecontext.hxx b/include/oox/vml/vmlshapecontext.hxx index 1c1565b62397b..14533b8b35aba 100644 --- a/include/oox/vml/vmlshapecontext.hxx +++ b/include/oox/vml/vmlshapecontext.hxx @@ -99,7 +99,7 @@ class ShapeTypeContext : public ShapeContextBase public: explicit ShapeTypeContext( ::oox::core::ContextHandler2Helper& rParent, - ShapeType& rShapeType, + std::shared_ptr const& pShapeType, const AttributeList& rAttribs ); virtual ::oox::core::ContextHandlerRef @@ -113,6 +113,7 @@ private: OptValue< OUString > decodeFragmentPath( const AttributeList& rAttribs, sal_Int32 nToken ) const; private: + std::shared_ptr m_pShapeType; ShapeTypeModel& mrTypeModel; }; @@ -122,7 +123,7 @@ class ShapeContext : public ShapeTypeContext public: explicit ShapeContext( ::oox::core::ContextHandler2Helper& rParent, - ShapeBase& rShape, + std::shared_ptr pShape, const AttributeList& rAttribs ); virtual ::oox::core::ContextHandlerRef @@ -155,7 +156,7 @@ class GroupShapeContext : public ShapeContext public: explicit GroupShapeContext( ::oox::core::ContextHandler2Helper& rParent, - GroupShape& rShape, + std::shared_ptr pShape, const AttributeList& rAttribs ); virtual ::oox::core::ContextHandlerRef @@ -172,7 +173,7 @@ public: explicit RectangleShapeContext( ::oox::core::ContextHandler2Helper& rParent, const AttributeList& rAttribs, - RectangleShape& rShape ); + std::shared_ptr pShape); virtual ::oox::core::ContextHandlerRef onCreateContext( sal_Int32 nElement, const AttributeList& rAttribs ) override; diff --git a/include/oox/vml/vmltextbox.hxx b/include/oox/vml/vmltextbox.hxx index 0f0828c887977..8b32713c1dae3 100644 --- a/include/oox/vml/vmltextbox.hxx +++ b/include/oox/vml/vmltextbox.hxx @@ -49,6 +49,8 @@ struct TextParagraphModel struct OOX_DLLPUBLIC TextFontModel { OptValue< OUString > moName; ///< Font name. + OptValue< OUString > moNameAsian; ///< Asian font name. + OptValue< OUString > moNameComplex; ///< Complex font name. OptValue< OUString > moColor; ///< Font color, HTML encoded, sort of. OptValue< sal_Int32 > monSize; ///< Font size in twips. OptValue< sal_Int32 > monUnderline; ///< Single or double underline. diff --git a/include/rtl/ustring.hxx b/include/rtl/ustring.hxx index ff6b834c22d37..337e8509a53d8 100644 --- a/include/rtl/ustring.hxx +++ b/include/rtl/ustring.hxx @@ -819,7 +819,7 @@ public: /** @overload @since LibreOffice 5.3 */ template typename libreoffice_internal::ConstCharArrayDetector::TypeUtf16 - equalIgnoreAsciiCase(T & literal) const { + equalsIgnoreAsciiCase(T & literal) const { return rtl_ustr_compareIgnoreAsciiCase_WithLength( pData->buffer, pData->length, diff --git a/include/sal/log-areas.dox b/include/sal/log-areas.dox index a27e77e566a44..2ce662a6cca54 100644 --- a/include/sal/log-areas.dox +++ b/include/sal/log-areas.dox @@ -199,6 +199,7 @@ certain functionality. @section Filter @li @c filter.config +@li @c filter.eps @li @c filter.flash @li @c filter.ms - escher import/export @li @c filter.odfflatxml @@ -463,6 +464,7 @@ certain functionality. @li @c sw @li @c sw.a11y - accessibility @li @c sw.core - Writer core +@li @c sw.layout - Writer core view: document layout @li @c sw.createcopy @li @c sw.doc @li @c sw.docappend diff --git a/include/sfx2/childwin.hxx b/include/sfx2/childwin.hxx index 3068d001cb52b..45d6a9476138f 100644 --- a/include/sfx2/childwin.hxx +++ b/include/sfx2/childwin.hxx @@ -137,6 +137,8 @@ public: FloatingWindow* GetFloatingWindow() const; + static FloatingWindow* GetFloatingWindow(vcl::Window *pParent); + static void RegisterChildWindowContext(SfxModule*, sal_uInt16, SfxChildWinContextFactory*); }; diff --git a/include/sfx2/emojicontrol.hxx b/include/sfx2/emojicontrol.hxx index 67835cd703d46..fe8a627c94bb1 100644 --- a/include/sfx2/emojicontrol.hxx +++ b/include/sfx2/emojicontrol.hxx @@ -18,6 +18,8 @@ #include #include +#define TAB_FONT_SIZE 15 + class EmojiView; class ThumbnailViewItem; enum class FILTER_CATEGORY; diff --git a/include/sfx2/emojiview.hxx b/include/sfx2/emojiview.hxx index 602fae9e9ec9a..30245cfd195b3 100644 --- a/include/sfx2/emojiview.hxx +++ b/include/sfx2/emojiview.hxx @@ -13,8 +13,8 @@ #include //unicode item defines -#define ITEM_MAX_WIDTH 20 -#define ITEM_MAX_HEIGHT 20 +#define ITEM_MAX_WIDTH 30 +#define ITEM_MAX_HEIGHT 30 #define ITEM_PADDING 5 #define ITEM_MAX_TEXT_LENGTH 10 @@ -73,6 +73,8 @@ protected: virtual void KeyInput( const KeyEvent& rKEvt ) override; + virtual void ApplySettings(vcl::RenderContext& rRenderContext) override; + protected: std::string msJSONData; diff --git a/include/sfx2/notebookbar/SfxNotebookBar.hxx b/include/sfx2/notebookbar/SfxNotebookBar.hxx index 471e806d96c3f..8792eecf3a4fd 100644 --- a/include/sfx2/notebookbar/SfxNotebookBar.hxx +++ b/include/sfx2/notebookbar/SfxNotebookBar.hxx @@ -37,6 +37,11 @@ public: const css::uno::Reference & xFrame, const OUString& rUIFile); + /// Method temporarily blocks showing of the NotebookBar + static void LockNotebookBar(); + /// Method restores normal behaviour of the Notebookbar + static void UnlockNotebookBar(); + static void RemoveListeners(SystemWindow* pSysWindow); static void ShowMenubar(bool bShow); @@ -44,6 +49,7 @@ public: private: static bool m_bLock; + static bool m_bHide; DECL_STATIC_LINK(SfxNotebookBar, OpenNotebookbarPopupMenu, NotebookBar*, void); }; diff --git a/include/sfx2/safemode.hxx b/include/sfx2/safemode.hxx index 03f85904271cd..47034f62130ae 100644 --- a/include/sfx2/safemode.hxx +++ b/include/sfx2/safemode.hxx @@ -40,9 +40,31 @@ public: */ static bool removeFlag(); + /** + * Write a flag to the user profile indicating that we are currently restarting from safe mode - + * that means we don't want to enter safe mode again. + * + * @return Whether the file could be written successfully + */ + static bool putRestartFlag(); + + /** + * Check the existence of the restart flag file. + * + * @return Whether the restart flag file exists + */ + static bool hasRestartFlag(); + + /** + * Remove the restart flag file. + * + * @return Whether the flag file could be removed successfully + */ + static bool removeRestartFlag(); + private: /** Returns the path of the safe mode flag file.*/ - static OUString getFileName(); + static OUString getFilePath(const OUString& sFilename); }; } diff --git a/include/sfx2/sidebar/SidebarController.hxx b/include/sfx2/sidebar/SidebarController.hxx index d4cdd574191d0..ca71500069e4b 100644 --- a/include/sfx2/sidebar/SidebarController.hxx +++ b/include/sfx2/sidebar/SidebarController.hxx @@ -48,7 +48,8 @@ namespace css::ui::XContextChangeEventListener, css::beans::XPropertyChangeListener, css::ui::XSidebar, - css::frame::XStatusListener + css::frame::XStatusListener, + css::frame::XFrameActionListener > SidebarControllerInterfaceBase; } @@ -105,6 +106,10 @@ public: virtual void SAL_CALL statusChanged (const css::frame::FeatureStateEvent& rEvent) throw(css::uno::RuntimeException, std::exception) override; + // frame::XFrameActionListener + virtual void SAL_CALL frameAction (const css::frame::FrameActionEvent& rEvent) + throw (com::sun::star::uno::RuntimeException, std::exception) override; + // ui::XSidebar virtual void SAL_CALL requestLayout() throw(css::uno::RuntimeException, std::exception) override; diff --git a/include/sfx2/templatelocalview.hxx b/include/sfx2/templatelocalview.hxx index 8a3bfaeac19d2..d75d86bc8970a 100644 --- a/include/sfx2/templatelocalview.hxx +++ b/include/sfx2/templatelocalview.hxx @@ -78,7 +78,7 @@ class SFX2_DLLPUBLIC TemplateLocalView : public ThumbnailView public: - TemplateLocalView ( vcl::Window* pParent ); + TemplateLocalView ( vcl::Window* pParent, WinBits nWinStyle = WB_TABSTOP | WB_BORDER ); virtual ~TemplateLocalView () override; virtual void dispose() override; diff --git a/include/sfx2/viewfrm.hxx b/include/sfx2/viewfrm.hxx index d692f5ae3626b..d250954837729 100644 --- a/include/sfx2/viewfrm.hxx +++ b/include/sfx2/viewfrm.hxx @@ -124,7 +124,8 @@ public: void UnlockAdjustPosSizePixel() { m_nAdjustPosPixelLock--; } void DoAdjustPosSizePixel( SfxViewShell * pSh, - const Point &rPos, const Size &rSize ); + const Point &rPos, const Size &rSize, + bool inplaceEditModeChange ); void Show(); bool IsVisible() const; void ToTop(); diff --git a/include/sfx2/viewsh.hxx b/include/sfx2/viewsh.hxx index f7a672fd96f90..14466922f461c 100644 --- a/include/sfx2/viewsh.hxx +++ b/include/sfx2/viewsh.hxx @@ -160,7 +160,7 @@ protected: virtual void Activate(bool IsMDIActivate) override; virtual void Deactivate(bool IsMDIActivate) override; - virtual void InnerResizePixel( const Point &rOfs, const Size &rSize ); + virtual void InnerResizePixel( const Point &rOfs, const Size &rSize, bool inplaceEditModeChange ); virtual void OuterResizePixel( const Point &rOfs, const Size &rSize ); virtual void SetZoomFactor( const Fraction &rZoomX, const Fraction &rZoomY ); diff --git a/include/sot/formats.hxx b/include/sot/formats.hxx index 04094b0010c05..482f65bad44f6 100644 --- a/include/sot/formats.hxx +++ b/include/sot/formats.hxx @@ -172,8 +172,9 @@ enum class SotClipboardFormatId : sal_uLong STARWRITERGLOB_8_TEMPLATE = 142, MATHML = 143, JPEG = 144, + RICHTEXT = 145, // the point at which we start allocating "runtime" format IDs - USER_END = JPEG + USER_END = RICHTEXT }; /** Make it easier to iterate over format IDs */ diff --git a/include/svl/zforlist.hxx b/include/svl/zforlist.hxx index ab7dd90f14264..f03a79e0aa454 100644 --- a/include/svl/zforlist.hxx +++ b/include/svl/zforlist.hxx @@ -517,6 +517,9 @@ public: /// Count of decimals sal_uInt16 GetFormatPrecision( sal_uInt32 nFormat ) const; + /// Count of decimals with correct subformat according to fValue + sal_uInt16 GetFormatPrecision( sal_uInt32 nFormat, double fValue ) const; + /// Count of integer digits sal_uInt16 GetFormatIntegerDigits( sal_uInt32 nFormat ) const; @@ -531,6 +534,9 @@ public: sal_uInt16& nPrecision, sal_uInt16& nAnzLeading, LanguageType eLnge = LANGUAGE_DONTKNOW ); + /// Get round value with fraction representation + double GetRoundFractionValue( sal_uInt32 nFormat, double fValue ) const; + /// Check if format code string may be deleted by user bool IsUserDefined( const OUString& sStr, LanguageType eLnge = LANGUAGE_DONTKNOW ); diff --git a/include/svl/zformat.hxx b/include/svl/zformat.hxx index ce632ae04920b..ebd652c5e2eca 100644 --- a/include/svl/zformat.hxx +++ b/include/svl/zformat.hxx @@ -169,6 +169,9 @@ public: /// Get type of format, may include css::util::NumberFormat::DEFINED bit short GetType() const { return eType; } + /// Get type of format, does not include css::util::NumberFormat::DEFINED + short GetMaskedType() const { return eType & ~css::util::NumberFormat::DEFINED; } + void SetType(const short eSetType) { eType = eSetType; } // Standard means the I18N defined standard format of this type void SetStandard() { bStandard = true; } @@ -212,11 +215,22 @@ public: sal_uInt16& nPrecision, sal_uInt16& nAnzLeading) const; + /// Get index of subformat (0..3) according to conditions and fNumber value + sal_uInt16 GetSubformatIndex( double fNumber ) const; + /// Count of decimal precision - sal_uInt16 GetFormatPrecision() const { return NumFor[0].Info().nCntPost; } + sal_uInt16 GetFormatPrecision( sal_uInt16 nIx = 0 ) const + { return NumFor[nIx].Info().nCntPost; } /// Count of integer digits - sal_uInt16 GetFormatIntegerDigits() const { return NumFor[0].Info().nCntPre; } + sal_uInt16 GetFormatIntegerDigits( sal_uInt16 nIx = 0 ) const + { return NumFor[nIx].Info().nCntPre; } + + /** Count of hidden integer digits with thousands dividor: + * formats like "0," to show only thousands + */ + sal_uInt16 GetThousandDivisorPrecision( sal_uInt16 nIx = 0 ) const + { return NumFor[nIx].Info().nThousand * 3; } //! Read/write access on a special sal_uInt16 component, may only be used on the //! standard format 0, 5000, ... and only by the number formatter! @@ -242,6 +256,9 @@ public: OUString GetDenominatorString( sal_uInt16 nNumFor ) const; OUString GetNumeratorString( sal_uInt16 nNumFor ) const; OUString GetIntegerFractionDelimiterString( sal_uInt16 nNumFor ) const; + /// Round fNumber to its fraction representation + double GetRoundFractionValue ( double fNumber ) const; + /** If the count of string elements (substrings, ignoring [modifiers] and so on) in a subformat code nNumFor (0..3) is equal to the given number. Used by ImpSvNumberInputScan::IsNumberFormatMain() to detect a matched @@ -553,7 +570,8 @@ private: sal_Int32& k, sal_uInt16& j, sal_uInt16 nIx, - short eSymbolType ); + short eSymbolType, + bool bInsertRightBlank = false ); // Helper function to fill in the integer part and the group (AKA thousand) separators SVL_DLLPRIVATE bool ImpNumberFillWithThousands( OUStringBuffer& sStr, @@ -579,6 +597,19 @@ private: sal_uInt16 nIx, bool bInteger ); + /** Calculate each element of fraction: + * integer part, numerator part, denominator part + * @param fNumber value to be represented as fraction. Will contain absolute fractional part + * @param nIx subformat number 0..3 + * @param fIntPart integral part of fraction + * @param nFrac numerator of fraction + * @param nDic denominator of fraction + */ + SVL_DLLPRIVATE void ImpGetFractionElements( double& fNumber, + sal_uInt16 nIx, + double& fIntPart, + sal_uInt64& nFrac, + sal_uInt64& nDiv ) const; SVL_DLLPRIVATE bool ImpGetFractionOutput(double fNumber, sal_uInt16 nIx, OUStringBuffer& OutString); diff --git a/include/svtools/brwbox.hxx b/include/svtools/brwbox.hxx index 6a97897aff4a6..ae38810812651 100644 --- a/include/svtools/brwbox.hxx +++ b/include/svtools/brwbox.hxx @@ -523,7 +523,7 @@ public: void RowInserted( long nRow, long nNumRows = 1, bool bDoPaint = true, bool bKeepSelection = false ); // miscellaneous - void ReserveControlArea( sal_uInt16 nWidth = USHRT_MAX ); + bool ReserveControlArea(sal_uInt16 nWidth = USHRT_MAX); Rectangle GetControlArea() const; bool ProcessKey( const KeyEvent& rEvt ); void Dispatch( sal_uInt16 nId ); diff --git a/include/svtools/grfmgr.hxx b/include/svtools/grfmgr.hxx index 42f0e3e5802a5..c264ef8fea062 100644 --- a/include/svtools/grfmgr.hxx +++ b/include/svtools/grfmgr.hxx @@ -389,7 +389,7 @@ public: bool HasLink() const { return !maLink.isEmpty(); } void SetLink(); void SetLink( const OUString& rLink ); - const OUString& GetLink() const { return maLink; } + OUString GetLink() const { return maLink; } bool HasUserData() const { return !maUserData.isEmpty(); } void SetUserData(); diff --git a/include/svtools/insdlg.hxx b/include/svtools/insdlg.hxx index 5e18693663b38..58bada8fadd21 100644 --- a/include/svtools/insdlg.hxx +++ b/include/svtools/insdlg.hxx @@ -60,7 +60,7 @@ public: return aObjectServerList.size(); } - const SvObjectServer operator[]( size_t n ) const + const SvObjectServer& operator[]( size_t n ) const { return aObjectServerList[ n ]; } diff --git a/include/svtools/rtfkeywd.hxx b/include/svtools/rtfkeywd.hxx index 55d97f51bd160..65ae39ac305d2 100644 --- a/include/svtools/rtfkeywd.hxx +++ b/include/svtools/rtfkeywd.hxx @@ -1208,6 +1208,7 @@ #define LO_STRING_SVTOOLS_RTF_BRDRSH "\\brdrsh" #define LO_STRING_SVTOOLS_RTF_GENERATOR "\\generator" #define LO_STRING_SVTOOLS_RTF_VIEWBKSP "\\viewbksp" +#define LO_STRING_SVTOOLS_RTF_HTMAUTSP "\\htmautsp" #endif // INCLUDED_SVTOOLS_RTFKEYWD_HXX diff --git a/include/svtools/sores.hxx b/include/svtools/sores.hxx index 66146721b7545..1a1260aa96d1a 100644 --- a/include/svtools/sores.hxx +++ b/include/svtools/sores.hxx @@ -100,7 +100,9 @@ #define STR_FORMAT_ID_DBACCESS_COMMAND (STR_FORMAT_START + 115) #define STR_FORMAT_ID_DIALOG_60 (STR_FORMAT_START + 116) #define STR_FORMAT_ID_HTML_NO_COMMENT (STR_FORMAT_START + 119) -#define STR_FORMAT_END (STR_FORMAT_ID_HTML_NO_COMMENT) +#define STR_FORMAT_ID_RICHTEXT (STR_FORMAT_START + 120) + +#define STR_FORMAT_END (STR_FORMAT_ID_RICHTEXT) #endif // INCLUDED_SVTOOLS_SORES_HXX diff --git a/include/svx/EnhancedCustomShape2d.hxx b/include/svx/EnhancedCustomShape2d.hxx index ee1d0e4293309..afab488af9045 100644 --- a/include/svx/EnhancedCustomShape2d.hxx +++ b/include/svx/EnhancedCustomShape2d.hxx @@ -132,8 +132,6 @@ class SVX_DLLPUBLIC EnhancedCustomShape2d : public SfxItemSet SAL_DLLPRIVATE Color GetColorData( const Color& rFillColor, sal_uInt32 nIndex, double dBrightness ) const; SAL_DLLPRIVATE void AdaptObjColor(SdrPathObj& rObj, const SfxItemSet& rCustomShapeSet, sal_uInt32& nColorIndex, sal_uInt32 nColorCount); - SAL_DLLPRIVATE void GetParameter( double& rParameterReturnValue, const css::drawing::EnhancedCustomShapeParameter&, - const bool bReplaceGeoWidth, const bool bReplaceGeoHeight ) const; SAL_DLLPRIVATE Point GetPoint( const css::drawing::EnhancedCustomShapeParameterPair&, const bool bScale = true, const bool bReplaceGeoSize = false ) const; @@ -196,6 +194,8 @@ class SVX_DLLPUBLIC EnhancedCustomShape2d : public SfxItemSet SAL_DLLPRIVATE double GetEnumFunc( const EnhancedCustomShape::ExpressionFunct eVal ) const; + void GetParameter( double& rParameterReturnValue, const css::drawing::EnhancedCustomShapeParameter&, + const bool bReplaceGeoWidth, const bool bReplaceGeoHeight ) const; SAL_DLLPRIVATE double GetAdjustValueAsDouble( const sal_Int32 nIndex ) const; SAL_DLLPRIVATE double GetEquationValueAsDouble( const sal_Int32 nIndex ) const; diff --git a/include/svx/colorbox.hxx b/include/svx/colorbox.hxx index 4b7f2513a9847..1d73b5fe1c667 100644 --- a/include/svx/colorbox.hxx +++ b/include/svx/colorbox.hxx @@ -34,6 +34,7 @@ private: Link m_aSelectedLink; SvxListBoxColorWrapper m_aColorWrapper; Color m_aAutoDisplayColor; + Color m_aSaveColor; NamedColor m_aSelectedColor; sal_uInt16 m_nSlotId; bool m_bShowNoneButton; @@ -57,8 +58,8 @@ public: void SetSlotId(sal_uInt16 nSlotId, bool bShowNoneButton = false); - NamedColor GetSelectEntry() const; - Color GetSelectEntryColor() const; + Color GetSelectEntryColor() const { return m_aSelectedColor.first; } + NamedColor GetSelectEntry() const { return m_aSelectedColor; } void SelectEntry(const NamedColor& rColor); void SelectEntry(const Color& rColor); @@ -68,6 +69,9 @@ public: void SetAutoDisplayColor(const Color &rColor) { m_aAutoDisplayColor = rColor; } void ShowPreview(const NamedColor &rColor); + + void SaveValue() { m_aSaveColor = GetSelectEntryColor(); } + bool IsValueChangedFromSaved() const { return m_aSaveColor != GetSelectEntryColor(); } }; /** A wrapper for SvxColorListBox. */ diff --git a/include/svx/dialogs.hrc b/include/svx/dialogs.hrc index 589b6a8a7413c..1c320896368d5 100644 --- a/include/svx/dialogs.hrc +++ b/include/svx/dialogs.hrc @@ -981,9 +981,10 @@ #define RID_SVXSTR_ERR_REPEAT_PASSWD (SVX_OOO_BUILD_START + 8) // 1238 #define RID_SVXBMP_ZOOM_PAGE (SVX_OOO_BUILD_START + 9) // 1239 #define RID_SVXSTR_FIT_SLIDE (SVX_OOO_BUILD_START + 10) // 1240 +#define RID_SVXSTR_WARN_MISSING_SMARTART (SVX_OOO_BUILD_START + 11) // 1241 // sidebar-related resources -#define RID_SVX_SIDEBAR_BEGIN (RID_SVX_START + 1241) +#define RID_SVX_SIDEBAR_BEGIN (RID_SVX_START + 1242) #define IMG_SPACE3 (RID_SVX_SIDEBAR_BEGIN + 0) #define IMG_INDENT_HANG (RID_SVX_SIDEBAR_BEGIN + 1) #define IMG_NONE_ICON (RID_SVX_SIDEBAR_BEGIN + 21) diff --git a/include/svx/hyperdlg.hxx b/include/svx/hyperdlg.hxx index c0a41a602345f..2671a34b4857f 100644 --- a/include/svx/hyperdlg.hxx +++ b/include/svx/hyperdlg.hxx @@ -39,6 +39,7 @@ private: public: SvxHlinkDlgWrapper( vcl::Window*pParent, sal_uInt16 nId, SfxBindings* pBindings, SfxChildWinInfo* pInfo ); + virtual ~SvxHlinkDlgWrapper() override; SFX_DECL_CHILDWINDOW_WITHID(SvxHlinkDlgWrapper); virtual bool QueryClose() override; diff --git a/include/svx/sdr/table/tablecontroller.hxx b/include/svx/sdr/table/tablecontroller.hxx index ea511e73196ee..1441c52f1844f 100644 --- a/include/svx/sdr/table/tablecontroller.hxx +++ b/include/svx/sdr/table/tablecontroller.hxx @@ -97,7 +97,8 @@ public: /// @see sdr::SelectionController::setCursorLogicPosition(). SVX_DLLPRIVATE virtual bool setCursorLogicPosition(const Point& rPosition, bool bPoint) override; - void getSelectedCells( CellPos& rFirstPos, CellPos& rLastPos ); + /// @see sdr::SelectionController::getSelectedCells(). + void getSelectedCells( CellPos& rFirstPos, CellPos& rLastPos ) override; void setSelectedCells( const CellPos& rFirstPos, const CellPos& rLastPos ); void clearSelection(); void selectAll(); diff --git a/include/svx/sdtaitm.hxx b/include/svx/sdtaitm.hxx index e25259de9072d..9c59352de9647 100644 --- a/include/svx/sdtaitm.hxx +++ b/include/svx/sdtaitm.hxx @@ -48,6 +48,7 @@ public: virtual OUString GetValueTextByPos(sal_uInt16 nPos) const override; virtual bool GetPresentation(SfxItemPresentation ePres, MapUnit eCoreMetric, MapUnit ePresMetric, OUString& rText, const IntlWrapper * = nullptr) const override; + virtual void dumpAsXml(struct _xmlTextWriter* pWriter) const override; }; diff --git a/include/svx/selectioncontroller.hxx b/include/svx/selectioncontroller.hxx index 4c4a8e5c6020c..d2fb9c4b99644 100644 --- a/include/svx/selectioncontroller.hxx +++ b/include/svx/selectioncontroller.hxx @@ -37,6 +37,8 @@ class Point; namespace sdr { +namespace table { struct CellPos; } + class SVX_DLLPUBLIC SelectionController: public cppu::OWeakObject { public: @@ -74,6 +76,8 @@ public: virtual bool hasSelectedCells() const; /// Allows adjusting the point or mark of the selection to a document coordinate. virtual bool setCursorLogicPosition(const Point& rPosition, bool bPoint); + /// Get the position of the first and the last selected cell. + virtual void getSelectedCells(table::CellPos& rFirstPos, table::CellPos& rLastPos); }; } diff --git a/include/svx/svdhdl.hxx b/include/svx/svdhdl.hxx index f5c6d34d5a8e7..5725be1353906 100644 --- a/include/svx/svdhdl.hxx +++ b/include/svx/svdhdl.hxx @@ -84,12 +84,12 @@ enum class SdrHdlKind enum class BitmapColorIndex { - LightGreen, - Cyan, - LightCyan, - Red, - LightRed, - Yellow + LightGreen = 0, + Cyan = 1, + LightCyan = 2, + Red = 3, + LightRed = 4, + Yellow = 5, }; @@ -133,8 +133,6 @@ class SVX_DLLPUBLIC SdrHdl friend class SdrMarkView; // for the access to nObjHdlNum friend class SdrHdlList; - static BitmapEx ImpGetBitmapEx(BitmapMarkerKind eKindOfMarker, sal_uInt16 nInd); - protected: SdrObject* pObj; // does handle belong to an object? SdrPageView* pPV; // does handle belong to an object in certain pageview? @@ -233,7 +231,7 @@ public: visualisation during mouse over it must override this method and call Touch(). */ virtual void onMouseLeave(); - static BitmapEx createGluePointBitmap() { return ImpGetBitmapEx(BitmapMarkerKind::Glue_Deselected, 0); } + static BitmapEx createGluePointBitmap(); }; diff --git a/include/svx/svdograf.hxx b/include/svx/svdograf.hxx index 77183c301de2b..6035c584e1c86 100644 --- a/include/svx/svdograf.hxx +++ b/include/svx/svdograf.hxx @@ -112,6 +112,7 @@ private: bool ImpUpdateGraphicLink( bool bAsynchron = true ) const; void ImpSetLinkedGraphic( const Graphic& rGraphic ); DECL_LINK( ImpSwapHdl, const GraphicObject*, SvStream* ); + DECL_LINK( ReplacementSwapHdl, const GraphicObject*, SvStream* ); void onGraphicChanged(); public: diff --git a/include/svx/svdotable.hxx b/include/svx/svdotable.hxx index c7fb16cabefe1..3de0a341246a0 100644 --- a/include/svx/svdotable.hxx +++ b/include/svx/svdotable.hxx @@ -141,6 +141,7 @@ public: void getCellBounds( const sdr::table::CellPos& rPos, ::Rectangle& rCellRect ); const SfxItemSet& GetActiveCellItemSet() const; + void SetMergedItemSetAndBroadcastOnActiveCell(const SfxItemSet& rSet, bool bClearAllItems); void setTableStyle( const css::uno::Reference< css::container::XIndexAccess >& xAutoFormatStyle ); const css::uno::Reference< css::container::XIndexAccess >& getTableStyle() const; diff --git a/include/svx/svdstr.hrc b/include/svx/svdstr.hrc index 2a7e16da0fe20..377c68e19d958 100644 --- a/include/svx/svdstr.hrc +++ b/include/svx/svdstr.hrc @@ -709,5 +709,99 @@ #define SIP_SA_CROP_MARKERS (SIP_Begin + 276) #define STR_TABLE_DELETE_CELL_CONTENTS (SIP_Begin + 277) +#define BMP_MARKER_RECT7_1 (SIP_Begin + 278) +#define BMP_MARKER_RECT7_2 (SIP_Begin + 279) +#define BMP_MARKER_RECT7_3 (SIP_Begin + 280) +#define BMP_MARKER_RECT7_4 (SIP_Begin + 281) +#define BMP_MARKER_RECT7_5 (SIP_Begin + 282) +#define BMP_MARKER_RECT7_6 (SIP_Begin + 283) +#define BMP_MARKER_RECT9_1 (SIP_Begin + 284) +#define BMP_MARKER_RECT9_2 (SIP_Begin + 285) +#define BMP_MARKER_RECT9_3 (SIP_Begin + 286) +#define BMP_MARKER_RECT9_4 (SIP_Begin + 287) +#define BMP_MARKER_RECT9_5 (SIP_Begin + 288) +#define BMP_MARKER_RECT9_6 (SIP_Begin + 289) +#define BMP_MARKER_RECT11_1 (SIP_Begin + 290) +#define BMP_MARKER_RECT11_2 (SIP_Begin + 291) +#define BMP_MARKER_RECT11_3 (SIP_Begin + 292) +#define BMP_MARKER_RECT11_4 (SIP_Begin + 293) +#define BMP_MARKER_RECT11_5 (SIP_Begin + 294) +#define BMP_MARKER_RECT11_6 (SIP_Begin + 295) +#define BMP_MARKER_RECT13_1 (SIP_Begin + 296) +#define BMP_MARKER_RECT13_2 (SIP_Begin + 297) +#define BMP_MARKER_RECT13_3 (SIP_Begin + 298) +#define BMP_MARKER_RECT13_4 (SIP_Begin + 299) +#define BMP_MARKER_RECT13_5 (SIP_Begin + 300) +#define BMP_MARKER_RECT13_6 (SIP_Begin + 301) + +#define BMP_MARKER_CIRC7_1 (SIP_Begin + 302) +#define BMP_MARKER_CIRC7_2 (SIP_Begin + 303) +#define BMP_MARKER_CIRC7_3 (SIP_Begin + 304) +#define BMP_MARKER_CIRC7_4 (SIP_Begin + 305) +#define BMP_MARKER_CIRC7_5 (SIP_Begin + 306) +#define BMP_MARKER_CIRC7_6 (SIP_Begin + 307) +#define BMP_MARKER_CIRC9_1 (SIP_Begin + 308) +#define BMP_MARKER_CIRC9_2 (SIP_Begin + 309) +#define BMP_MARKER_CIRC9_3 (SIP_Begin + 310) +#define BMP_MARKER_CIRC9_4 (SIP_Begin + 311) +#define BMP_MARKER_CIRC9_5 (SIP_Begin + 312) +#define BMP_MARKER_CIRC9_6 (SIP_Begin + 313) +#define BMP_MARKER_CIRC11_1 (SIP_Begin + 314) +#define BMP_MARKER_CIRC11_2 (SIP_Begin + 315) +#define BMP_MARKER_CIRC11_3 (SIP_Begin + 316) +#define BMP_MARKER_CIRC11_4 (SIP_Begin + 317) +#define BMP_MARKER_CIRC11_5 (SIP_Begin + 318) +#define BMP_MARKER_CIRC11_6 (SIP_Begin + 319) + +#define BMP_MARKER_ELLI7x9_1 (SIP_Begin + 320) +#define BMP_MARKER_ELLI7x9_2 (SIP_Begin + 321) +#define BMP_MARKER_ELLI7x9_3 (SIP_Begin + 322) +#define BMP_MARKER_ELLI7x9_4 (SIP_Begin + 323) +#define BMP_MARKER_ELLI7x9_5 (SIP_Begin + 324) +#define BMP_MARKER_ELLI7x9_6 (SIP_Begin + 325) +#define BMP_MARKER_ELLI9x11_1 (SIP_Begin + 326) +#define BMP_MARKER_ELLI9x11_2 (SIP_Begin + 327) +#define BMP_MARKER_ELLI9x11_3 (SIP_Begin + 328) +#define BMP_MARKER_ELLI9x11_4 (SIP_Begin + 329) +#define BMP_MARKER_ELLI9x11_5 (SIP_Begin + 330) +#define BMP_MARKER_ELLI9x11_6 (SIP_Begin + 331) + +#define BMP_MARKER_ELLI9x7_1 (SIP_Begin + 332) +#define BMP_MARKER_ELLI9x7_2 (SIP_Begin + 333) +#define BMP_MARKER_ELLI9x7_3 (SIP_Begin + 334) +#define BMP_MARKER_ELLI9x7_4 (SIP_Begin + 335) +#define BMP_MARKER_ELLI9x7_5 (SIP_Begin + 336) +#define BMP_MARKER_ELLI9x7_6 (SIP_Begin + 337) +#define BMP_MARKER_ELLI11x9_1 (SIP_Begin + 338) +#define BMP_MARKER_ELLI11x9_2 (SIP_Begin + 339) +#define BMP_MARKER_ELLI11x9_3 (SIP_Begin + 340) +#define BMP_MARKER_ELLI11x9_4 (SIP_Begin + 341) +#define BMP_MARKER_ELLI11x9_5 (SIP_Begin + 342) +#define BMP_MARKER_ELLI11x9_6 (SIP_Begin + 343) + +#define BMP_MARKER_RECTPLUS7_1 (SIP_Begin + 344) +#define BMP_MARKER_RECTPLUS7_2 (SIP_Begin + 345) +#define BMP_MARKER_RECTPLUS7_3 (SIP_Begin + 346) +#define BMP_MARKER_RECTPLUS7_4 (SIP_Begin + 347) +#define BMP_MARKER_RECTPLUS7_5 (SIP_Begin + 348) +#define BMP_MARKER_RECTPLUS7_6 (SIP_Begin + 349) +#define BMP_MARKER_RECTPLUS9_1 (SIP_Begin + 350) +#define BMP_MARKER_RECTPLUS9_2 (SIP_Begin + 351) +#define BMP_MARKER_RECTPLUS9_3 (SIP_Begin + 352) +#define BMP_MARKER_RECTPLUS9_4 (SIP_Begin + 353) +#define BMP_MARKER_RECTPLUS9_5 (SIP_Begin + 354) +#define BMP_MARKER_RECTPLUS9_6 (SIP_Begin + 355) +#define BMP_MARKER_RECTPLUS11_1 (SIP_Begin + 356) +#define BMP_MARKER_RECTPLUS11_2 (SIP_Begin + 357) +#define BMP_MARKER_RECTPLUS11_3 (SIP_Begin + 358) +#define BMP_MARKER_RECTPLUS11_4 (SIP_Begin + 359) +#define BMP_MARKER_RECTPLUS11_5 (SIP_Begin + 360) +#define BMP_MARKER_RECTPLUS11_6 (SIP_Begin + 361) + +#define BMP_MARKER_ANCHOR (SIP_Begin + 362) +#define BMP_MARKER_ANCHOR_PRESSED (SIP_Begin + 363) +#define BMP_MARKER_CROSS (SIP_Begin + 364) +#define BMP_MARKER_GLUE_SELECTED (SIP_Begin + 365) +#define BMP_MARKER_GLUE_UNSELECTED (SIP_Begin + 366) /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/unotest/directories.hxx b/include/unotest/directories.hxx index 3e44558a26cac..ae105d988d962 100644 --- a/include/unotest/directories.hxx +++ b/include/unotest/directories.hxx @@ -40,10 +40,8 @@ public: // return a URL to a given c-str path from the workdir directory OUString getURLFromWorkdir( const char *pPath ); -#ifdef _WIN32 // return a Path to a given c-str path from the workdir directory OUString getPathFromWorkdir( const char *pPath ); -#endif }; } diff --git a/include/unotools/eventcfg.hxx b/include/unotools/eventcfg.hxx index 03ccdd4181d2c..51f54ccd4dda0 100644 --- a/include/unotools/eventcfg.hxx +++ b/include/unotools/eventcfg.hxx @@ -31,6 +31,8 @@ enum class GlobalEventId { + STARTAPP, + CLOSEAPP, DOCCREATED, CREATEDOC, LOADFINISHED, diff --git a/include/vcl/BitmapTools.hxx b/include/vcl/BitmapTools.hxx index 8be16886fd965..e2777d88c9573 100644 --- a/include/vcl/BitmapTools.hxx +++ b/include/vcl/BitmapTools.hxx @@ -13,21 +13,18 @@ #include #include -#include +#include -namespace vcl -{ +namespace vcl { +namespace bitmap { -namespace bitmap -{ +BitmapEx VCL_DLLPUBLIC loadFromName(const OUString& rFileName, const ImageLoadFlags eFlags = ImageLoadFlags::NONE); BitmapEx VCL_DLLPUBLIC loadFromResource(const ResId& rResId, const ImageLoadFlags eFlags = ImageLoadFlags::NONE); void loadFromSvg(SvStream& rStream, const OUString& sPath, BitmapEx& rBitmapEx, double fScaleFactor = 1.0); -} - -} +}} // end vcl::bitmap #endif // INCLUDED_VCL_BITMAP_TOOLS_HXX diff --git a/include/vcl/ImageTree.hxx b/include/vcl/ImageTree.hxx new file mode 100644 index 0000000000000..80a6f3b5970c1 --- /dev/null +++ b/include/vcl/ImageTree.hxx @@ -0,0 +1,78 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef INCLUDED_INCLUDE_VCL_IMAGETREE_HXX +#define INCLUDED_INCLUDE_VCL_IMAGETREE_HXX + +#include +#include +#include + +enum class ImageLoadFlags : sal_uInt16 +{ + NONE = 0, + IgnoreScalingFactor = 1, + IgnoreDarkTheme = 2, +}; + +namespace o3tl { +template<> struct typed_flags: is_typed_flags {}; +} + +namespace com { namespace sun { namespace star { namespace container { + class XNameAccess; +}}}} + +class ImplImageTree; + +class ImageTree +{ +private: + std::unique_ptr mpImplImageTree; + +public: + ImageTree(); + + VCL_DLLPUBLIC static ImageTree & get(); + + VCL_DLLPUBLIC OUString getImageUrl( + OUString const & name, OUString const & style, OUString const & lang); + + bool loadImage( + OUString const & name, OUString const & style, + BitmapEx & bitmap, bool localized, + const ImageLoadFlags eFlags = ImageLoadFlags::NONE); + + bool loadDefaultImage( + OUString const & style, + BitmapEx& bitmap, + const ImageLoadFlags eFlags = ImageLoadFlags::NONE); + + VCL_DLLPUBLIC css::uno::Reference getNameAccess(); + + + /** a crude form of life cycle control (called from DeInitVCL; otherwise, + * if the ImplImageTree singleton were destroyed during exit that would + * be too late for the destructors of the bitmaps in maIconCache)*/ + void shutdown(); +}; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/button.hxx b/include/vcl/button.hxx index 78df45e006a46..777a784f8ae44 100644 --- a/include/vcl/button.hxx +++ b/include/vcl/button.hxx @@ -117,7 +117,6 @@ class VCL_DLLPUBLIC PushButton : public Button protected: SymbolType meSymbol; TriState meState; - TriState meSaveValue; PushButtonDropdownStyle mnDDStyle; bool mbPressed; bool mbIsActive; @@ -190,9 +189,6 @@ public: void EndSelection(); - void SaveValue() { meSaveValue = GetState(); } - bool IsValueChangedFromSaved() const { return meSaveValue != GetState(); } - Size CalcMinimumSize() const; virtual Size GetOptimalSize() const override; diff --git a/include/vcl/commandevent.hxx b/include/vcl/commandevent.hxx index 5b9cc09a7eaa2..adaa8ad953bbf 100644 --- a/include/vcl/commandevent.hxx +++ b/include/vcl/commandevent.hxx @@ -140,7 +140,7 @@ class VCL_DLLPUBLIC CommandWheelData private: long mnDelta; long mnNotchDelta; - sal_uLong mnLines; + double mnLines; CommandWheelMode mnWheelMode; sal_uInt16 mnCode; bool mbHorz; @@ -149,13 +149,13 @@ private: public: CommandWheelData(); CommandWheelData( long nWheelDelta, long nWheelNotchDelta, - sal_uLong nScrollLines, + double nScrollLines, CommandWheelMode nWheelMode, sal_uInt16 nKeyModifier, bool bHorz, bool bDeltaIsPixel = false ); long GetDelta() const { return mnDelta; } long GetNotchDelta() const { return mnNotchDelta; } - sal_uLong GetScrollLines() const { return mnLines; } + double GetScrollLines() const { return mnLines; } bool IsHorz() const { return mbHorz; } bool IsDeltaPixel() const { return mbDeltaIsPixel; } @@ -187,11 +187,13 @@ public: class VCL_DLLPUBLIC CommandModKeyData { private: + bool mbDown; sal_uInt16 mnCode; public: - CommandModKeyData( sal_uInt16 nCode ); + CommandModKeyData( sal_uInt16 nCode, bool bDown ); + bool IsDown() const { return mbDown; } bool IsMod1() const { return (mnCode & MODKEY_MOD1) != 0; } bool IsMod2() const { return (mnCode & MODKEY_MOD2) != 0; } bool IsLeftShift() const { return (mnCode & MODKEY_LSHIFT) != 0; } diff --git a/include/vcl/ctrl.hxx b/include/vcl/ctrl.hxx index bdf95204db44b..0192e5ff6d44c 100644 --- a/include/vcl/ctrl.hxx +++ b/include/vcl/ctrl.hxx @@ -80,12 +80,18 @@ protected: If no reference device is set, the draw request will simply be forwarded to OutputDevice::DrawText. Otherwise, the text will be rendered according to the metrics at the reference device. - Note that the given rectangle might be modified, it will contain the result of a GetTextRect call (either - directly at the target device, or taking the reference device into account) when returning. + return will contain the result of a GetTextRect call (either directly + at the target device, or taking the reference device into account) when + returning. */ - void DrawControlText( OutputDevice& _rTargetDevice, Rectangle& _io_rRect, - const OUString& _rStr, DrawTextFlags _nStyle, - MetricVector* _pVector, OUString* _pDisplayText ) const; + Rectangle DrawControlText( OutputDevice& _rTargetDevice, const Rectangle& _rRect, + const OUString& _rStr, DrawTextFlags _nStyle, + MetricVector* _pVector, OUString* _pDisplayText, + const Size* i_pDeviceSize = nullptr ) const; + + Rectangle GetControlTextRect( OutputDevice& _rTargetDevice, const Rectangle & rRect, + const OUString& _rStr, DrawTextFlags _nStyle, + Size* o_pDeviceSize = nullptr ) const; virtual const vcl::Font& GetCanonicalFont( const StyleSettings& _rStyle ) const; diff --git a/include/vcl/menu.hxx b/include/vcl/menu.hxx index 959d54d9f118a..1c2e82a696832 100644 --- a/include/vcl/menu.hxx +++ b/include/vcl/menu.hxx @@ -133,7 +133,7 @@ class VCL_DLLPUBLIC Menu : public Resource, public VclReferenceBase friend struct ImplMenuDelData; private: ImplMenuDelData* mpFirstDel; - MenuItemList* pItemList; // Liste mit den MenuItems + std::unique_ptr pItemList; // list with MenuItems MenuLogo* pLogo; VclPtr pStartedFrom; VclPtr pWindow; @@ -359,7 +359,7 @@ public: // Fuer Menu-'Funktionen' MenuItemList* GetItemList() const { - return pItemList; + return pItemList.get(); } // returns the system's menu handle if native menus are supported @@ -478,6 +478,7 @@ public: // if the menubar is unattached an empty rectangle is returned Rectangle GetMenuBarButtonRectPixel( sal_uInt16 nId ); void RemoveMenuBarButton( sal_uInt16 nId ); + void LayoutChanged(); }; inline MenuBar& MenuBar::operator=( const MenuBar& rMenu ) diff --git a/include/vcl/outdev.hxx b/include/vcl/outdev.hxx index 0088136ca7349..1bf52296ea431 100644 --- a/include/vcl/outdev.hxx +++ b/include/vcl/outdev.hxx @@ -1172,6 +1172,8 @@ public: vcl::TextLayoutCache const* = nullptr) const; std::shared_ptr CreateTextLayoutCache(OUString const&) const; + static bool UseCommonLayout(); + private: SAL_DLLPRIVATE void ImplInitTextColor(); diff --git a/include/vcl/svapp.hxx b/include/vcl/svapp.hxx index 271922495770b..9b930b3127d95 100644 --- a/include/vcl/svapp.hxx +++ b/include/vcl/svapp.hxx @@ -776,9 +776,13 @@ public: User events allow for the deferreal of work to later in the main-loop - at idle. + Execution of the deferred work is thread-safe which means all the tasks are executed + serially, so no thread-safety locks between tasks are necessary. + @param rLink Link to event callback function @param pCaller Pointer to data sent to the event by the caller. Optional. @param bReferenceLink If true - hold a VclPtr<> reference on the Link's instance. + Taking the reference is guarded by a SolarMutexGuard. @return the event ID used to post the event. */ diff --git a/include/vcl/syschild.hxx b/include/vcl/syschild.hxx index 3f5ed9beda2a5..9f5be67800642 100644 --- a/include/vcl/syschild.hxx +++ b/include/vcl/syschild.hxx @@ -49,6 +49,12 @@ public: // however, this might not always be required void EnableEraseBackground( bool bEnable ); void SetForwardKey( bool bEnable ); + //To avoid annoying flashing under X entering and leaving slides with opengl effects set the leaving + //bitmap as the background pixmap of the opengl child window and the entering bitmap as the background + //pixmap of the non-opengl parent window. If any expose events occur around the start and end of + //the transition then those windows are default filled by X with the desired start/end image so there's + //no visible flash + void SetLeaveEnterBackgrounds(const css::uno::Sequence& rLeaveArgs, const css::uno::Sequence& rEnterArgs); // return the platform specific handle/id of this window; sal_IntPtr GetParentWindowHandle(); }; diff --git a/include/vcl/texteng.hxx b/include/vcl/texteng.hxx index 96ac4261116e5..4c6c3dfb47461 100644 --- a/include/vcl/texteng.hxx +++ b/include/vcl/texteng.hxx @@ -257,6 +257,8 @@ public: sal_Int32 GetTextLen( sal_uInt32 nParagraph ) const; long GetTextHeight( sal_uInt32 nParagraph ) const; + void GetTextPortionRange(const TextPaM& rPaM, sal_Int32& nStart, sal_Int32& nEnd); + sal_uInt16 GetLineCount( sal_uInt32 nParagraph ) const; sal_Int32 GetLineLen( sal_uInt32 nParagraph, sal_uInt16 nLine ) const; diff --git a/include/vcl/toolbox.hxx b/include/vcl/toolbox.hxx index 66bd8cf41f986..be81106060918 100644 --- a/include/vcl/toolbox.hxx +++ b/include/vcl/toolbox.hxx @@ -502,7 +502,7 @@ public: // if an index is found the corresponding item id is filled in (else 0) long GetIndexForPoint( const Point& rPoint, sal_uInt16& rItemID ) const; - static Size GetDefaultImageSize(bool bLarge); + static Size GetDefaultImageSize(ToolBoxButtonSize eToolBoxButtonSize); Size GetDefaultImageSize() const; void ChangeHighlight( sal_uInt16 nPos ); diff --git a/include/vcl/vclmedit.hxx b/include/vcl/vclmedit.hxx index 84b5a6bea56ce..8461413eec893 100644 --- a/include/vcl/vclmedit.hxx +++ b/include/vcl/vclmedit.hxx @@ -32,6 +32,8 @@ class TextView; class VCL_DLLPUBLIC VclMultiLineEdit : public Edit { + friend class VCLXAccessibleEdit; + private: ImpVclMEdit* pImpVclMEdit; diff --git a/include/vcl/vclptr.hxx b/include/vcl/vclptr.hxx index f56e006d58e4d..85b143f6d56b8 100644 --- a/include/vcl/vclptr.hxx +++ b/include/vcl/vclptr.hxx @@ -95,19 +95,6 @@ public: : m_rInnerRef(pBody, SAL_NO_ACQUIRE) {} - /** Copy constructor... - */ - inline VclPtr (const VclPtr & handle) - : m_rInnerRef (handle.m_rInnerRef) - {} - - /** Move constructor... - */ - inline VclPtr (VclPtr && handle) - : m_rInnerRef ( std::move(handle.m_rInnerRef) ) - { - } - /** Up-casting conversion constructor: Copies interface reference. Does not work for up-casts to ambiguous bases. For the special case of @@ -180,22 +167,6 @@ public: return *this; } - /** move assignment operator. - */ - VclPtr & operator =(VclPtr && rRef) - { - m_rInnerRef = std::move(rRef); - return *this; - } - - /** copy assignment operator. - */ - VclPtr & operator =(const VclPtr & rRef) - { - m_rInnerRef = rRef; - return *this; - } - VclPtr & operator =(reference_type * pBody) { m_rInnerRef.set(pBody); diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx index 4fdb80560d68b..7d6f69ce9b28e 100644 --- a/include/vcl/window.hxx +++ b/include/vcl/window.hxx @@ -719,7 +719,7 @@ private: SAL_DLLPRIVATE void ImplCallActivateListeners(vcl::Window*); SAL_DLLPRIVATE void ImplCallDeactivateListeners(vcl::Window*); - SAL_DLLPRIVATE static void ImplHandleScroll( ScrollBar* pHScrl, long nX, ScrollBar* pVScrl, long nY ); + SAL_DLLPRIVATE static void ImplHandleScroll(ScrollBar* pHScrl, double nX, ScrollBar* pVScrl, double nY); SAL_DLLPRIVATE Rectangle ImplOutputToUnmirroredAbsoluteScreenPixel( const Rectangle& rRect ) const; SAL_DLLPRIVATE long ImplGetUnmirroredOutOffX(); diff --git a/include/xmloff/txtimp.hxx b/include/xmloff/txtimp.hxx index cab9f53653e48..ceedf377d9a24 100644 --- a/include/xmloff/txtimp.hxx +++ b/include/xmloff/txtimp.hxx @@ -536,6 +536,11 @@ public: GetChapterNumbering() const; bool HasFrameByName( const OUString& rName ) const; + + bool IsDuplicateFrame(const OUString& sName, sal_Int32 nX, sal_Int32 nY, sal_Int32 nWidth, sal_Int32 nHeight) const; + void StoreLastImportedFrameName(const OUString& rName); + void ClearLastImportedTextFrameName(); + void ConnectFrameChains( const OUString& rFrmName, const OUString& rNextFrmName, const css::uno::Reference< css::beans::XPropertySet >& rFrmPropSet ); diff --git a/instsetoo_native/inc_common/windows/msi_templates/Binary/caution.ico b/instsetoo_native/inc_common/windows/msi_templates/Binary/caution.ico index 1c6f14ee08fb9..c57e3da02ce68 100644 Binary files a/instsetoo_native/inc_common/windows/msi_templates/Binary/caution.ico and b/instsetoo_native/inc_common/windows/msi_templates/Binary/caution.ico differ diff --git a/instsetoo_native/inc_common/windows/msi_templates/Binary/newfolder.ico b/instsetoo_native/inc_common/windows/msi_templates/Binary/newfolder.ico index 324adbcba0a03..28506ef2c0d52 100644 Binary files a/instsetoo_native/inc_common/windows/msi_templates/Binary/newfolder.ico and b/instsetoo_native/inc_common/windows/msi_templates/Binary/newfolder.ico differ diff --git a/instsetoo_native/inc_common/windows/msi_templates/Binary/openfolder.ico b/instsetoo_native/inc_common/windows/msi_templates/Binary/openfolder.ico index ef88d2e4731e8..6ffe0b43a3ade 100644 Binary files a/instsetoo_native/inc_common/windows/msi_templates/Binary/openfolder.ico and b/instsetoo_native/inc_common/windows/msi_templates/Binary/openfolder.ico differ diff --git a/instsetoo_native/inc_common/windows/msi_templates/Binary/setup.ico b/instsetoo_native/inc_common/windows/msi_templates/Binary/setup.ico index 3580448fe32e5..8f7e900892082 100644 Binary files a/instsetoo_native/inc_common/windows/msi_templates/Binary/setup.ico and b/instsetoo_native/inc_common/windows/msi_templates/Binary/setup.ico differ diff --git a/instsetoo_native/inc_common/windows/msi_templates/Binary/setupcomplete.ico b/instsetoo_native/inc_common/windows/msi_templates/Binary/setupcomplete.ico index 609276af083b9..e15c79f572115 100644 Binary files a/instsetoo_native/inc_common/windows/msi_templates/Binary/setupcomplete.ico and b/instsetoo_native/inc_common/windows/msi_templates/Binary/setupcomplete.ico differ diff --git a/instsetoo_native/inc_common/windows/msi_templates/Binary/setuppartial.ico b/instsetoo_native/inc_common/windows/msi_templates/Binary/setuppartial.ico index ac158ab398737..3d74e0db4ae4d 100644 Binary files a/instsetoo_native/inc_common/windows/msi_templates/Binary/setuppartial.ico and b/instsetoo_native/inc_common/windows/msi_templates/Binary/setuppartial.ico differ diff --git a/instsetoo_native/inc_common/windows/msi_templates/Binary/setuprepair.ico b/instsetoo_native/inc_common/windows/msi_templates/Binary/setuprepair.ico index 2f4a24d0b6964..72248002ef14b 100644 Binary files a/instsetoo_native/inc_common/windows/msi_templates/Binary/setuprepair.ico and b/instsetoo_native/inc_common/windows/msi_templates/Binary/setuprepair.ico differ diff --git a/instsetoo_native/inc_common/windows/msi_templates/Binary/trashcan.ico b/instsetoo_native/inc_common/windows/msi_templates/Binary/trashcan.ico index f1cc8083f0f76..7ee77b084edfd 100644 Binary files a/instsetoo_native/inc_common/windows/msi_templates/Binary/trashcan.ico and b/instsetoo_native/inc_common/windows/msi_templates/Binary/trashcan.ico differ diff --git a/instsetoo_native/inc_common/windows/msi_templates/Binary/up.ico b/instsetoo_native/inc_common/windows/msi_templates/Binary/up.ico index 5dc25fae6a1ec..c976e3839edb6 100644 Binary files a/instsetoo_native/inc_common/windows/msi_templates/Binary/up.ico and b/instsetoo_native/inc_common/windows/msi_templates/Binary/up.ico differ diff --git a/jvmfwk/inc/vendorbase.hxx b/jvmfwk/inc/vendorbase.hxx index 2a24c9590858b..c9ebcb2569136 100644 --- a/jvmfwk/inc/vendorbase.hxx +++ b/jvmfwk/inc/vendorbase.hxx @@ -133,6 +133,7 @@ public: const OUString & getRuntimeLibrary() const; const OUString & getLibraryPath() const; bool supportsAccessibility() const; + bool isValidArch() const; /* determines if prior to running java something has to be done, like setting the LD_LIBRARY_PATH. This implementation checks if an LD_LIBRARY_PATH (getLD_LIBRARY_PATH) needs to be set and @@ -178,6 +179,7 @@ protected: OUString m_sHome; OUString m_sRuntimeLibrary; OUString m_sLD_LIBRARY_PATH; + OUString m_sArch; bool m_bAccessibility; diff --git a/jvmfwk/inc/vendorplugin.hxx b/jvmfwk/inc/vendorplugin.hxx index 8df13b153b835..426157b6ed548 100644 --- a/jvmfwk/inc/vendorplugin.hxx +++ b/jvmfwk/inc/vendorplugin.hxx @@ -55,6 +55,7 @@ enum class javaPluginError FailedVersion, NoJre, WrongVendor, + WrongArch, VmCreationFailed }; diff --git a/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx b/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx index 5053fdacc0aff..d69b439f2f0a9 100644 --- a/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx +++ b/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx @@ -227,6 +227,10 @@ javaPluginError checkJavaVersionRequirements( rtl_uString * * arExcludeList, sal_Int32 nLenList) { + if (!aVendorInfo->isValidArch()) + { + return javaPluginError::WrongArch; + } if (!sMinVersion.isEmpty()) { try @@ -334,7 +338,7 @@ javaPluginError jfw_plugin_getAllJavaInfos( javaPluginError err = checkJavaVersionRequirements( cur, sMinVersion, sMaxVersion, arExcludeList, nLenList); - if (err == javaPluginError::FailedVersion) + if (err == javaPluginError::FailedVersion || err == javaPluginError::WrongArch) continue; else if (err == javaPluginError::WrongVersionFormat) return err; @@ -670,6 +674,16 @@ javaPluginError jfw_plugin_startJavaVirtualMachine( osl::Module moduleRt; #if defined(LINUX) if (!moduleRt.load(sRuntimeLib, SAL_LOADMODULE_GLOBAL | SAL_LOADMODULE_NOW)) +#elif defined MACOSX + // Must be SAL_LOADMODULE_GLOBAL when e.g. specifying a + // -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 option to + // JDK 1.8.0_121 at least, as JNI_CreateJavaVM -> Threads::create_vm -> + // JvmtiExport::post_vm_initialized -> cbEarlyVMInit -> initialize -> + // util_initialize -> sun.misc.VMSupport.getAgentProperties -> + // Java_sun_misc_VMSupport_initAgentProperties -> + // JDK_FindJvmEntry("JVM_INitAgentProperties") -> + // dlsym(RTLD_DEFAULT, "JVM_INitAgentProperties"): + if (!moduleRt.load(sRuntimeLib, SAL_LOADMODULE_GLOBAL)) #else #if defined(_WIN32) do_msvcr_magic(sRuntimeLib.pData); diff --git a/jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx b/jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx index 7f7c4943c8be4..7543f497eb83d 100644 --- a/jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx +++ b/jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx @@ -68,7 +68,8 @@ char const* const* SunInfo::getRuntimePaths(int * size) "/lib/" JFW_PLUGIN_ARCH "/client/libjvm.so", "/lib/" JFW_PLUGIN_ARCH "/server/libjvm.so", "/lib/" JFW_PLUGIN_ARCH "/classic/libjvm.so", - "/lib/" JFW_PLUGIN_ARCH "/jrockit/libjvm.so" + "/lib/" JFW_PLUGIN_ARCH "/jrockit/libjvm.so", + "/lib/server/libjvm.so" #endif }; *size = SAL_N_ELEMENTS(ar); diff --git a/jvmfwk/plugins/sunmajor/pluginlib/sunversion.cxx b/jvmfwk/plugins/sunmajor/pluginlib/sunversion.cxx index b4ad7019d449f..2aedaa29938c4 100644 --- a/jvmfwk/plugins/sunmajor/pluginlib/sunversion.cxx +++ b/jvmfwk/plugins/sunmajor/pluginlib/sunversion.cxx @@ -88,7 +88,7 @@ bool SunVersion::init(const char *szVersion) ! (nPartPos == 0) // prevents: ".4.1", "..1", part must start with digit && ( //separators after maintenance (1.4.1_01, 1.4.1-beta, or 1.4.1) - ((pCur == pEnd || *pCur == '_' || *pCur == '-') && (nPart == 2 )) + (pCur == pEnd || *pCur == '_' || *pCur == '-') || //separators between major-minor and minor-maintenance (nPart < 2 && *pCur == '.') ) @@ -96,6 +96,8 @@ bool SunVersion::init(const char *szVersion) //prevent 1.4.0. 1.4.0- pCur + 1 != pEnd || isdigit(*(pCur))) ) { + bool afterMaint = pCur == pEnd || *pCur == '_' || *pCur == '-'; + int len = pCur - pLast; if (len >= 127) return false; @@ -106,6 +108,9 @@ bool SunVersion::init(const char *szVersion) pLast = pCur; m_arVersionParts[nPart] = atoi(buf); + + if (afterMaint) + nPart = 2; nPart ++; nPartPos = 0; if (nPart == 3) diff --git a/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.cxx b/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.cxx index 9b580ccaa8fbf..27b3ddcd74229 100644 --- a/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.cxx +++ b/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.cxx @@ -62,12 +62,14 @@ bool VendorBase::initialize(vector > props) OUString sVendorProperty("java.vendor"); OUString sVersionProperty("java.version"); OUString sHomeProperty("java.home"); + OUString sArchProperty("os.arch"); OUString sAccessProperty("javax.accessibility.assistive_technologies"); bool bVersion = false; bool bVendor = false; bool bHome = false; bool bAccess = false; + bool bArch = false; typedef vector >::const_iterator it_prop; for (it_prop i = props.begin(); i != props.end(); ++i) @@ -103,6 +105,11 @@ bool VendorBase::initialize(vector > props) bHome = true; #endif } + else if (!bArch && sArchProperty.equals(i->first)) + { + m_sArch = i->second; + bArch = true; + } else if (!bAccess && sAccessProperty.equals(i->first)) { if (!i->second.isEmpty()) @@ -115,7 +122,7 @@ bool VendorBase::initialize(vector > props) //must search through all properties. } - if (!bVersion || !bVendor || !bHome) + if (!bVersion || !bVendor || !bHome || !bArch) return false; // init m_sRuntimeLibrary @@ -201,6 +208,23 @@ const OUString & VendorBase::getRuntimeLibrary() const { return m_sRuntimeLibrary; } + +bool VendorBase::isValidArch() const +{ + // Warning: These values come from the "os.arch" property. + // It is not defined what the exact values are. + // Oracle JRE 8 has "x86" and "amd64", the others were found at http://lopica.sourceforge.net/os.html . + // There might still be missing some options; we need to extend the check once we find out. +#if defined _WIN64 + return m_sArch == "amd64" || m_sArch == "x86_64"; +#elif defined _WIN32 + return m_sArch == "x86" || m_sArch == "i386" || m_sArch == "i686"; +#else + (void)this; + return true; +#endif +} + bool VendorBase::supportsAccessibility() const { return m_bAccessibility; diff --git a/librelogo/source/LibreLogo/LibreLogo.py b/librelogo/source/LibreLogo/LibreLogo.py index dcd86095b7536..f51202ce1a314 100644 --- a/librelogo/source/LibreLogo/LibreLogo.py +++ b/librelogo/source/LibreLogo/LibreLogo.py @@ -21,8 +21,12 @@ if "vnd.sun.star.pathname" in urebootstrap: __lngpath__ = re.sub(r"^vnd.sun.star.pathname:(.*)program(/|\\)fundamental([.]ini|rc)$", "\\1", urebootstrap) else: - __lngpath__ = unohelper.fileUrlToSystemPath(re.sub("program/(fundamental.ini|fundamentalrc)$", "", urebootstrap)) -__lngpath__ = __lngpath__ + "share/Scripts/python/LibreLogo/".replace("/", os.sep) + # A way to know if we use MacOs + if "Resources" in urebootstrap: + __lngpath__ = unohelper.fileUrlToSystemPath(re.sub("fundamentalrc$", "", urebootstrap)) + else: + __lngpath__ = unohelper.fileUrlToSystemPath(re.sub("program/(fundamental.ini|fundamentalrc)$", "share", urebootstrap)) +__lngpath__ = __lngpath__ + "/Scripts/python/LibreLogo/".replace("/", os.sep) __translang__ = "am|ca|cs|de|dk|el|en|eo|es|et|fr|hu|it|ja|nl|no|pl|pt|ru|se|sl" # FIXME supported languages for language guessing, expand this list, according to the localizations __lng__ = {} __docs__ = {} diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx index 27c8e43872dd3..4bdf3e968c82c 100644 --- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx +++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx @@ -1216,10 +1216,17 @@ static void signalPart(LOKDocView* pLOKDocView, int nPart, gpointer /*pData*/) } /// User clicked on a command button -> inform LOKDocView. -static void signalHyperlink(LOKDocView* /*pLOKDocView*/, char* pPayload, gpointer /*pData*/) +static void signalHyperlink(LOKDocView* pLOKDocView, char* pPayload, gpointer /*pData*/) { GError* pError = nullptr; +#if GTK_CHECK_VERSION(3,22,0) + gtk_show_uri_on_window( + GTK_WINDOW (gtk_widget_get_toplevel(GTK_WIDGET(pLOKDocView))), + pPayload, GDK_CURRENT_TIME, &pError); +#else + (void) pLOKDocView; gtk_show_uri(nullptr, pPayload, GDK_CURRENT_TIME, &pError); +#endif if (pError != nullptr) { g_warning("Unable to show URI %s : %s", pPayload, pError->message); diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx index a08d93e8e3fab..0b48cf8b73738 100644 --- a/libreofficekit/source/gtk/lokdocview.cxx +++ b/libreofficekit/source/gtk/lokdocview.cxx @@ -1132,6 +1132,14 @@ callback (gpointer pData) LOKDocView* pDocView = LOK_DOC_VIEW (pCallback->m_pDocView); LOKDocViewPrivate& priv = getPrivate(pDocView); + //callback registered before the widget was destroyed. + //Use existance of lokThreadPool as flag it was torn down + if (!priv->lokThreadPool) + { + delete pCallback; + return G_SOURCE_REMOVE; + } + switch (pCallback->m_nType) { case LOK_CALLBACK_INVALIDATE_TILES: @@ -2584,8 +2592,19 @@ static void lok_doc_view_finalize (GObject* object) std::stringstream ss; ss << "lok::Document::setView(" << priv->m_nViewId << ")"; g_info("%s", ss.str().c_str()); - priv->m_pDocument->pClass->setView(priv->m_pDocument, priv->m_nViewId); - priv->m_pDocument->pClass->registerCallback(priv->m_pDocument, nullptr, nullptr); + + if (priv->m_pDocument) + { + priv->m_pDocument->pClass->setView(priv->m_pDocument, priv->m_nViewId); + priv->m_pDocument->pClass->registerCallback(priv->m_pDocument, nullptr, nullptr); + } + + if (priv->lokThreadPool) + { + g_thread_pool_free(priv->lokThreadPool, true, true); + priv->lokThreadPool = nullptr; + } + aGuard.unlock(); if (priv->m_pDocument && priv->m_pDocument->pClass->getViewsCount(priv->m_pDocument) > 1) diff --git a/lingucomponent/source/spellcheck/spell/sspellimp.cxx b/lingucomponent/source/spellcheck/spell/sspellimp.cxx index db690ae83d110..27b8f910448c3 100644 --- a/lingucomponent/source/spellcheck/spell/sspellimp.cxx +++ b/lingucomponent/source/spellcheck/spell/sspellimp.cxx @@ -60,6 +60,11 @@ using namespace linguistic; // XML-header of SPELLML queries #define SPELLML_HEADER "" +// only available in hunspell >= 1.5 +#if !defined MAXWORDLEN +#define MAXWORDLEN 176 +#endif + SpellChecker::SpellChecker() : aDicts(nullptr), aDEncs(nullptr), @@ -270,8 +275,11 @@ sal_Bool SAL_CALL SpellChecker::hasLocale(const Locale& rLocale) return bRes; } -sal_Int16 SpellChecker::GetSpellFailure( const OUString &rWord, const Locale &rLocale ) +sal_Int16 SpellChecker::GetSpellFailure(const OUString &rWord, const Locale &rLocale) { + if (rWord.getLength() > MAXWORDLEN) + return -1; + Hunspell * pMS = nullptr; rtl_TextEncoding eEnc = RTL_TEXTENCODING_DONTKNOW; @@ -334,7 +342,11 @@ sal_Int16 SpellChecker::GetSpellFailure( const OUString &rWord, const Locale &rL #endif aDicts[i] = new Hunspell(aTmpaff.getStr(),aTmpdict.getStr()); +#if defined(H_DEPRECATED) + aDEncs[i] = getTextEncodingFromCharset(aDicts[i]->get_dict_encoding().c_str()); +#else aDEncs[i] = getTextEncodingFromCharset(aDicts[i]->get_dic_encoding()); +#endif } pMS = aDicts[i]; eEnc = aDEncs[i]; @@ -351,8 +363,12 @@ sal_Int16 SpellChecker::GetSpellFailure( const OUString &rWord, const Locale &rL return -1; OString aWrd(OU2ENC(nWord,eEnc)); - int rVal = pMS->spell(aWrd.getStr()); - if (rVal != 1) { +#if defined(H_DEPRECATED) + bool bVal = pMS->spell(std::string(aWrd.getStr())); +#else + bool bVal = pMS->spell(aWrd.getStr()) != 0; +#endif + if (!bVal) { if (extrachar && (eEnc != RTL_TEXTENCODING_UTF8)) { OUStringBuffer aBuf(nWord); n = aBuf.getLength(); @@ -370,8 +386,12 @@ sal_Int16 SpellChecker::GetSpellFailure( const OUString &rWord, const Locale &rL } OUString aWord(aBuf.makeStringAndClear()); OString bWrd(OU2ENC(aWord, eEnc)); - rVal = pMS->spell(bWrd.getStr()); - if (rVal == 1) return -1; +#if defined(H_DEPRECATED) + bVal = pMS->spell(std::string(bWrd.getStr())); +#else + bVal = pMS->spell(bWrd.getStr()) != 0; +#endif + if (bVal) return -1; } nRes = SpellFailure::SPELLING_ERROR; } else { @@ -470,10 +490,23 @@ Reference< XSpellAlternatives > if (pMS) { - char ** suglst = nullptr; OString aWrd(OU2ENC(nWord,eEnc)); +#if defined(H_DEPRECATED) + std::vector suglst = pMS->suggest(std::string(aWrd.getStr())); + if (!suglst.empty()) + { + aStr.realloc(numsug + suglst.size()); + OUString *pStr = aStr.getArray(); + for (size_t ii = 0; ii < suglst.size(); ++ii) + { + OUString cvtwrd(suglst[ii].c_str(), suglst[ii].size(), eEnc); + pStr[numsug + ii] = cvtwrd; + } + numsug += suglst.size(); + } +#else + char ** suglst = nullptr; int count = pMS->suggest(&suglst, aWrd.getStr()); - if (count) { aStr.realloc( numsug + count ); @@ -485,8 +518,8 @@ Reference< XSpellAlternatives > } numsug += count; } - pMS->free_list(&suglst, count); +#endif } } diff --git a/linguistic/source/lngsvcmgr.cxx b/linguistic/source/lngsvcmgr.cxx index 20ea193fc603d..9ac96561898b4 100644 --- a/linguistic/source/lngsvcmgr.cxx +++ b/linguistic/source/lngsvcmgr.cxx @@ -29,6 +29,7 @@ #include #include +#include #include #include #include @@ -479,17 +480,22 @@ LngSvcMgr::LngSvcMgr() void LngSvcMgr::modified(const lang::EventObject&) throw(uno::RuntimeException, std::exception) { - osl::MutexGuard aGuard(GetLinguMutex()); - //assume that if an extension has been added/removed that - //it might be a dictionary extension, so drop our cache + { + osl::MutexGuard aGuard(GetLinguMutex()); + //assume that if an extension has been added/removed that + //it might be a dictionary extension, so drop our cache - clearSvcInfoArray(pAvailSpellSvcs); - clearSvcInfoArray(pAvailGrammarSvcs); - clearSvcInfoArray(pAvailHyphSvcs); - clearSvcInfoArray(pAvailThesSvcs); + clearSvcInfoArray(pAvailSpellSvcs); + clearSvcInfoArray(pAvailGrammarSvcs); + clearSvcInfoArray(pAvailHyphSvcs); + clearSvcInfoArray(pAvailThesSvcs); + } - //schedule in an update to execute in the main thread - aUpdateIdle.Start(); + { + SolarMutexGuard aGuard; + //schedule in an update to execute in the main thread + aUpdateIdle.Start(); + } } //run update, and inform everyone that dictionaries (may) have changed, this diff --git a/lotuswordpro/source/filter/benlist.cxx b/lotuswordpro/source/filter/benlist.cxx index 242d8d14f07e0..fb18bd0ea1eae 100644 --- a/lotuswordpro/source/filter/benlist.cxx +++ b/lotuswordpro/source/filter/benlist.cxx @@ -58,7 +58,7 @@ namespace OpenStormBento { pCBenNamedObject -FindNamedObject(pCUtList pList, const char * sName, +FindNamedObject(pCUtList pList, const OString& rName, pCUtListElmt * ppPrev) { CUtListElmt& rTerminating = pList->GetTerminating(); @@ -68,8 +68,8 @@ FindNamedObject(pCUtList pList, const char * sName, pCBenNamedObjectListElmt pCurrNamedObjectListElmt = static_cast(pCurr); - int Comp = strcmp(sName, pCurrNamedObjectListElmt->GetNamedObject()-> - GetNameCStr()); + sal_Int32 Comp = rName.compareTo(pCurrNamedObjectListElmt->GetNamedObject()-> + GetName()); if (Comp == 0) return pCurrNamedObjectListElmt->GetNamedObject(); diff --git a/lotuswordpro/source/filter/benname.cxx b/lotuswordpro/source/filter/benname.cxx index 32855fbd73a3a..19003a0c5f042 100644 --- a/lotuswordpro/source/filter/benname.cxx +++ b/lotuswordpro/source/filter/benname.cxx @@ -59,10 +59,10 @@ namespace OpenStormBento { // changed to remove warning CBenNamedObject::CBenNamedObject(pLtcBenContainer pContainer, - BenObjectID ObjectID, pCBenObject pPrevObject, const char * sName, + BenObjectID ObjectID, pCBenObject pPrevObject, const OString& rName, pCUtListElmt pPrevNamedObjectListElmt) : CBenObject(pContainer, ObjectID, pPrevObject) - , csName(sName) + , csName(rName) , cNameListElmt(pPrevNamedObjectListElmt) { cNameListElmt.SetNamedObject(this); diff --git a/lotuswordpro/source/filter/bento.hxx b/lotuswordpro/source/filter/bento.hxx index af08bcb1a7ee7..cb72273e4e183 100644 --- a/lotuswordpro/source/filter/bento.hxx +++ b/lotuswordpro/source/filter/bento.hxx @@ -344,13 +344,13 @@ public: // Methods public: // Internal methods CBenNamedObject(pLtcBenContainer pContainer, BenObjectID ObjectID, - pCBenObject pPrevObject, const char * sName, + pCBenObject pPrevObject, const OString& rName, pCUtListElmt pPrevNamedObjectListElmt); - const char * GetNameCStr() { return csName.c_str(); } + const OString& GetName() { return csName; } private: // Data - std::string csName; + OString csName; CBenNamedObjectListElmt cNameListElmt; }; @@ -358,9 +358,9 @@ class CBenPropertyName : public CBenNamedObject { public: // Internal methods CBenPropertyName(pLtcBenContainer pContainer, BenObjectID ObjectID, - pCBenObject pPrevObject, const char * sName, + pCBenObject pPrevObject, const OString& rName, pCUtListElmt pPrevNamedObjectListElmt) : - CBenNamedObject(pContainer, ObjectID, pPrevObject, sName, + CBenNamedObject(pContainer, ObjectID, pPrevObject, rName, pPrevNamedObjectListElmt) { ; } virtual bool IsPropertyName() override; }; @@ -369,9 +369,9 @@ class CBenTypeName : public CBenNamedObject { public: // Internal methods CBenTypeName(pLtcBenContainer pContainer, BenObjectID ObjectID, - pCBenObject pPrevObject, const char * sName, + pCBenObject pPrevObject, const OString& rName, pCUtListElmt pPrevNamedObjectListElmt) : - CBenNamedObject(pContainer, ObjectID, pPrevObject, sName, + CBenNamedObject(pContainer, ObjectID, pPrevObject, rName, pPrevNamedObjectListElmt) { ; } }; diff --git a/lotuswordpro/source/filter/first.hxx b/lotuswordpro/source/filter/first.hxx index 37311920a0ce0..f65ed32487221 100644 --- a/lotuswordpro/source/filter/first.hxx +++ b/lotuswordpro/source/filter/first.hxx @@ -64,7 +64,7 @@ namespace OpenStormBento // String constants extern const char gsBenMagicBytes[]; -pCBenNamedObject FindNamedObject(pCUtList pList, const char * sName, +pCBenNamedObject FindNamedObject(pCUtList pList, const OString& rName, pCUtListElmt * ppPrev); pCBenIDListElmt FindID(pCUtList pList, BenObjectID ObjectID, diff --git a/lotuswordpro/source/filter/lwpfilter.cxx b/lotuswordpro/source/filter/lwpfilter.cxx index 0389ee3cbaf94..9a3bcfcdfb5d0 100644 --- a/lotuswordpro/source/filter/lwpfilter.cxx +++ b/lotuswordpro/source/filter/lwpfilter.cxx @@ -104,7 +104,7 @@ using namespace OpenStormBento; bool Decompress(SvStream *pCompressed, SvStream * & pOutDecompressed) { pCompressed->Seek(0); - std::unique_ptr aDecompressed(new SvMemoryStream(4096, 4096)); + std::unique_ptr aDecompressed(new SvMemoryStream(4096, 4096)); unsigned char buffer[512]; pCompressed->ReadBytes(buffer, 16); aDecompressed->WriteBytes(buffer, 16); @@ -132,6 +132,9 @@ using namespace OpenStormBento; while (sal_uInt32 iRead = pCompressed->ReadBytes(buffer, 512)) aDecompressed->WriteBytes(buffer, iRead); + // disable stream growing past its current size + aDecompressed->SetResizeOffset(0); + //transfer ownership of aDecompressed's ptr pOutDecompressed = aDecompressed.release(); return true; diff --git a/lotuswordpro/source/filter/lwpframelayout.cxx b/lotuswordpro/source/filter/lwpframelayout.cxx index ef95f678ad2ab..d1616b815a037 100644 --- a/lotuswordpro/source/filter/lwpframelayout.cxx +++ b/lotuswordpro/source/filter/lwpframelayout.cxx @@ -761,7 +761,7 @@ void LwpFrameLink::Read(LwpObjectStream* pStrm) } LwpFrameLayout::LwpFrameLayout(LwpObjectHeader &objHdr, LwpSvStream* pStrm) - : LwpPlacableLayout(objHdr, pStrm), m_pFrame(nullptr) + : LwpPlacableLayout(objHdr, pStrm), m_pFrame(nullptr), m_bGettingMaxWidth(false) { } @@ -946,6 +946,10 @@ double LwpFrameLayout::GetWidth() */ double LwpFrameLayout::GetMaxWidth() { + if (m_bGettingMaxWidth) + throw std::runtime_error("recursive GetMaxWidth"); + + m_bGettingMaxWidth = true; double fActualWidth = 0; rtl::Reference xLayout(GetContainerLayout()); LwpMiddleLayout* pParent = dynamic_cast(xLayout.get()); @@ -974,6 +978,7 @@ double LwpFrameLayout::GetMaxWidth() fActualWidth = fParentWidth - fXOffset - fParentMarginRight - fWrapRight; } + m_bGettingMaxWidth = false; return fActualWidth; } diff --git a/lotuswordpro/source/filter/lwpframelayout.hxx b/lotuswordpro/source/filter/lwpframelayout.hxx index 99b3a215ccc33..5b11c146e0f46 100644 --- a/lotuswordpro/source/filter/lwpframelayout.hxx +++ b/lotuswordpro/source/filter/lwpframelayout.hxx @@ -141,6 +141,7 @@ private: private: LwpFrameLink m_Link; LwpFrame* m_pFrame; + bool m_bGettingMaxWidth; }; /** diff --git a/lotuswordpro/source/filter/lwpgrfobj.cxx b/lotuswordpro/source/filter/lwpgrfobj.cxx index 882f7d2b31e11..c3dc6450f7b01 100644 --- a/lotuswordpro/source/filter/lwpgrfobj.cxx +++ b/lotuswordpro/source/filter/lwpgrfobj.cxx @@ -113,6 +113,14 @@ void LwpGraphicObject::Read() unsigned char *pServerContext = nullptr; if (nServerContextSize > 0) { + sal_uInt16 nMaxPossibleSize = m_pObjStrm->remainingSize(); + + if (nServerContextSize > nMaxPossibleSize) + { + SAL_WARN("lwp", "stream too short for claimed no of records"); + nServerContextSize = nMaxPossibleSize; + } + pServerContext = new unsigned char[nServerContextSize]; m_pObjStrm->QuickRead(pServerContext, static_cast(nServerContextSize)); if (nServerContextSize > 44) diff --git a/lotuswordpro/source/filter/lwpidxmgr.cxx b/lotuswordpro/source/filter/lwpidxmgr.cxx index 8d02521b05857..94cd789e8fd07 100644 --- a/lotuswordpro/source/filter/lwpidxmgr.cxx +++ b/lotuswordpro/source/filter/lwpidxmgr.cxx @@ -194,7 +194,7 @@ void LwpIndexManager::ReadObjIndexData(LwpObjectStream* pObjStrm) std::vector vObjIndexs; - if(KeyCount) + if (KeyCount) { LwpKey* akey = new LwpKey(); akey->id.Read(pObjStrm); @@ -218,7 +218,7 @@ void LwpIndexManager::ReadObjIndexData(LwpObjectStream* pObjStrm) for( sal_uInt16 j=0; jGetStream()->Seek(nPos); if (nPos != nActualPos) diff --git a/lotuswordpro/source/filter/lwpobjstrm.cxx b/lotuswordpro/source/filter/lwpobjstrm.cxx index 8a28c9fd214a0..bc968a550f432 100644 --- a/lotuswordpro/source/filter/lwpobjstrm.cxx +++ b/lotuswordpro/source/filter/lwpobjstrm.cxx @@ -68,7 +68,8 @@ LwpObjectStream::LwpObjectStream(LwpSvStream *pStrm, bool isCompressed, sal_uInt :m_pContentBuf(nullptr), m_nBufSize(size), m_nReadPos(0), m_pStrm(pStrm), m_bCompressed(isCompressed) { - assert(size= IO_BUFFERSIZE) + throw std::range_error("bad Object size"); // read object data from stream if(m_nBufSize == 0) { @@ -155,6 +156,12 @@ void LwpObjectStream::ReleaseBuffer() } } } + +sal_uInt16 LwpObjectStream::remainingSize() const +{ + return m_nBufSize - m_nReadPos; +} + /** * @descr read len bytes from object stream to buffer */ diff --git a/lotuswordpro/source/filter/lwpobjstrm.hxx b/lotuswordpro/source/filter/lwpobjstrm.hxx index 918659da82b40..83062eebd0e88 100644 --- a/lotuswordpro/source/filter/lwpobjstrm.hxx +++ b/lotuswordpro/source/filter/lwpobjstrm.hxx @@ -85,6 +85,7 @@ private: LwpSvStream* m_pStrm; bool m_bCompressed; public: + sal_uInt16 remainingSize() const; sal_uInt16 QuickRead(void* buf, sal_uInt16 len); sal_uInt16 GetPos() { return m_nReadPos; } void SeekRel(sal_uInt16 pos); diff --git a/lotuswordpro/source/filter/tocread.cxx b/lotuswordpro/source/filter/tocread.cxx index 192a63619cd64..335b82abfa0b5 100644 --- a/lotuswordpro/source/filter/tocread.cxx +++ b/lotuswordpro/source/filter/tocread.cxx @@ -109,13 +109,12 @@ CBenTOCReader::ReadLabel(unsigned long * pTOCOffset, unsigned long * pTOCSize) BenByte * pCurrLabel = Label + BEN_MAGIC_BYTES_SIZE; -#ifndef NDEBUG BenWord Flags = -#endif UtGetIntelWord(pCurrLabel); pCurrLabel += 2; // Flags // Newer files are 0x0101--indicates if big or little endian. Older // files are 0x0 for flags - assert(Flags == 0x0101 || Flags == 0x0); + if (Flags != 0x0101 && Flags != 0x0) + return BenErr_UnknownBentoFormatVersion; cBlockSize = UtGetIntelWord(pCurrLabel) * 1024; pCurrLabel += 2; if (cBlockSize == 0) @@ -289,9 +288,11 @@ CBenTOCReader::ReadTOC() return Err; } + OString sName(sBuffer, Length); + pCUtListElmt pPrevNamedObjectListElmt; if (FindNamedObject(&cpContainer->GetNamedObjects(), - sBuffer, &pPrevNamedObjectListElmt) != nullptr) + sName, &pPrevNamedObjectListElmt) != nullptr) { delete[] sAllocBuffer; return BenErr_DuplicateName; @@ -302,9 +303,9 @@ CBenTOCReader::ReadTOC() if (PropertyID == BEN_PROPID_GLOBAL_PROPERTY_NAME) pObject = new CBenPropertyName(cpContainer, ObjectID, - pPrevObject, sBuffer, pPrevNamedObjectListElmt); + pPrevObject, sName, pPrevNamedObjectListElmt); else pObject = new CBenTypeName(cpContainer, ObjectID, - pPrevObject, sBuffer, pPrevNamedObjectListElmt); + pPrevObject, sName, pPrevNamedObjectListElmt); delete[] sAllocBuffer; } diff --git a/nlpsolver/src/com/sun/star/comp/Calc/NLPSolver/dialogs/EvolutionarySolverStatusUno.java b/nlpsolver/src/com/sun/star/comp/Calc/NLPSolver/dialogs/EvolutionarySolverStatusUno.java index da8dbb22e9979..e3695a0c79502 100644 --- a/nlpsolver/src/com/sun/star/comp/Calc/NLPSolver/dialogs/EvolutionarySolverStatusUno.java +++ b/nlpsolver/src/com/sun/star/comp/Calc/NLPSolver/dialogs/EvolutionarySolverStatusUno.java @@ -177,7 +177,7 @@ public int getUserState() { } public void setBestSolution(double solution, boolean feasible) { - lblSolutionValue.setLabel(String.format("%.2f", solution)); + lblSolutionValue.setLabel(String.format("%g", solution)); if (feasible) lblSolutionValue.setTextColor(defaultTextColor); else diff --git a/odk/docs/install.html b/odk/docs/install.html index 8ad0e6b57d86b..fad79c08d01f4 100644 --- a/odk/docs/install.html +++ b/odk/docs/install.html @@ -507,7 +507,7 @@

Installation Guide

diff --git a/sc/uiconfig/scalc/ui/conditionalentry.ui b/sc/uiconfig/scalc/ui/conditionalentry.ui index c5803074e635d..88ec9b39069ab 100644 --- a/sc/uiconfig/scalc/ui/conditionalentry.ui +++ b/sc/uiconfig/scalc/ui/conditionalentry.ui @@ -409,6 +409,20 @@ 2
+ + + True + False + + + + + + 0 + 7 + 3 + + diff --git a/scp2/source/ooo/common_brand.scp b/scp2/source/ooo/common_brand.scp index 7cd77331f7eaf..224fe7de55815 100644 --- a/scp2/source/ooo/common_brand.scp +++ b/scp2/source/ooo/common_brand.scp @@ -183,6 +183,11 @@ Directory gid_Brand_Dir_Share_Extensions_Dict_Bn DosName = "dict-bn"; End +Directory gid_Brand_Dir_Share_Extensions_Dict_Bo + ParentID = gid_Brand_Dir_Share_Extensions; + DosName = "dict-bo"; +End + Directory gid_Brand_Dir_Share_Extensions_Dict_Br ParentID = gid_Brand_Dir_Share_Extensions; DosName = "dict-br"; @@ -512,7 +517,7 @@ File gid_Brand_File_Desktophelper_Txt End #endif -#if !defined WNT && !defined MACOSX +#if !defined WNT File gid_Brand_File_Bin_Unoinfo BIN_FILE_BODY; Dir = gid_Brand_Dir_Program; diff --git a/scp2/source/ooo/file_font_ooo.scp b/scp2/source/ooo/file_font_ooo.scp index 5475b8d14b100..6dfe05538c107 100644 --- a/scp2/source/ooo/file_font_ooo.scp +++ b/scp2/source/ooo/file_font_ooo.scp @@ -62,8 +62,8 @@ STD_FONT_FILELIST(gid_File_Fnt_SourceCode, "fonts_sourcecode.filelist") STD_FONT_FILELIST(gid_File_Fnt_Carlito, "fonts_carlito.filelist") STD_FONT_FILELIST(gid_File_Fnt_Caladea, "fonts_caladea.filelist") -// Noto Emoji font -STD_FONT_FILELIST(gid_File_Fnt_NotoEmoji, "fonts_notoemoji.filelist") +// EmojiOne_Color font +STD_FONT_FILELIST(gid_File_Fnt_EmojiOne_Color, "fonts_emojione_color.filelist") #endif diff --git a/scp2/source/ooo/file_ooo.scp b/scp2/source/ooo/file_ooo.scp index 4f6a1eece4a12..f0542fc11f24f 100644 --- a/scp2/source/ooo/file_ooo.scp +++ b/scp2/source/ooo/file_ooo.scp @@ -420,6 +420,15 @@ File gid_File_Extension_Dictionary_Bn End #endif +#if defined WITH_MYSPELL_DICTS +File gid_File_Extension_Dictionary_Bo + Dir = FILELIST_DIR; + Name = "Dictionary/dict-bo.filelist"; + Styles = (PACKED, FORCELANGUAGEPACK, FILELIST); + TXT_FILE_BODY; +End +#endif + #if defined WITH_MYSPELL_DICTS File gid_File_Extension_Dictionary_Br Dir = FILELIST_DIR; diff --git a/scp2/source/ooo/module_hidden_ooo.scp b/scp2/source/ooo/module_hidden_ooo.scp index fa3969f33e9be..a725b65bbba5d 100644 --- a/scp2/source/ooo/module_hidden_ooo.scp +++ b/scp2/source/ooo/module_hidden_ooo.scp @@ -109,7 +109,7 @@ Module gid_Module_Root_Fonts_OOo_Hidden gid_File_Fnt_OpenSans, gid_File_Fnt_SourceSans, gid_File_Fnt_SourceCode, - gid_File_Fnt_NotoEmoji, + gid_File_Fnt_EmojiOne_Color, gid_File_FcLocal_Conf); End #endif diff --git a/scp2/source/ooo/module_ooo.scp b/scp2/source/ooo/module_ooo.scp index 7819b24e426f9..0d781e1aaa76a 100644 --- a/scp2/source/ooo/module_ooo.scp +++ b/scp2/source/ooo/module_ooo.scp @@ -225,6 +225,17 @@ Module gid_Module_Root_Extension_Dictionary_Bn Styles = (); End +Module gid_Module_Root_Extension_Dictionary_Bo + MOD_NAME_DESC ( MODULE_EXTENSION_DICTIONARY_BO ); + Files = (gid_File_Extension_Dictionary_Bo); + InstallOrder = "2000"; + Sortkey = "525"; + Spellcheckerlanguage = "bo"; + PackageInfo = "packinfo_office.txt"; + ParentID = gid_Module_Dictionaries; + Styles = (); +End + Module gid_Module_Root_Extension_Dictionary_Br MOD_NAME_DESC ( MODULE_EXTENSION_DICTIONARY_BR ); Files = (gid_File_Extension_Dictionary_Br); diff --git a/scp2/source/ooo/module_ooo.ulf b/scp2/source/ooo/module_ooo.ulf index 6c1c894520fe8..25c5400d6e1f7 100644 --- a/scp2/source/ooo/module_ooo.ulf +++ b/scp2/source/ooo/module_ooo.ulf @@ -76,6 +76,12 @@ en-US = "Bengali" [STR_DESC_MODULE_EXTENSION_DICTIONARY_BN] en-US = "Bengali spelling dictionary" +[STR_NAME_MODULE_EXTENSION_DICTIONARY_BO] +en-US = "Classical Tibetan" + +[STR_DESC_MODULE_EXTENSION_DICTIONARY_BO] +en-US = "Classical Tibetan syllable spelling dictionary" + [STR_NAME_MODULE_EXTENSION_DICTIONARY_BR] en-US = "Breton" diff --git a/scripting/source/pyprov/mailmerge.py b/scripting/source/pyprov/mailmerge.py index c8867aa796d1f..235472b2a85d9 100644 --- a/scripting/source/pyprov/mailmerge.py +++ b/scripting/source/pyprov/mailmerge.py @@ -17,6 +17,7 @@ import uno import re import os +import encodings.idna #to implement com::sun::star::mail::XMailServiceProvider #and diff --git a/scripting/source/pyprov/pythonscript.py b/scripting/source/pyprov/pythonscript.py index 6089d14edefeb..e312c6a52fbf9 100644 --- a/scripting/source/pyprov/pythonscript.py +++ b/scripting/source/pyprov/pythonscript.py @@ -405,7 +405,12 @@ def getFuncsByUrl( self, url ): allFuncs.append(node.name) elif isinstance(node, ast.Assign): for target in node.targets: - if target.id == "g_exportedScripts": + try: + identifier = target.id + except AttributeError: + identifier = "" + pass + if identifier == "g_exportedScripts": for value in node.value.elts: g_exportedScripts.append(value.id) return g_exportedScripts diff --git a/sd/inc/app.hrc b/sd/inc/app.hrc index 2bf78397a1b38..9030281029403 100644 --- a/sd/inc/app.hrc +++ b/sd/inc/app.hrc @@ -449,6 +449,7 @@ // Add companion for the SID_HIDE_SLIDE (that is defined in svx) #define SID_SHOW_SLIDE (SID_SD_START+441) +#define SID_ADD_MOTION_PATH (SID_SD_START+442) #define SID_TABLE_TOOLBOX (SID_SD_START+443) // FREE diff --git a/sd/inc/sdmod.hxx b/sd/inc/sdmod.hxx index 6a8f7351010c5..c96a1b1749c9e 100644 --- a/sd/inc/sdmod.hxx +++ b/sd/inc/sdmod.hxx @@ -47,7 +47,6 @@ namespace svtools { class ColorConfig; } namespace sd { class DrawDocShell; -class SdGlobalResourceContainer; } namespace com { namespace sun { namespace star { namespace frame { @@ -156,10 +155,6 @@ private: static SfxFrame* CreateEmptyDocument( const css::uno::Reference< css::frame::XFrame >& i_rFrame ); static SfxFrame* CreateFromTemplate( const OUString& rTemplatePath, const css::uno::Reference< css::frame::XFrame >& i_rFrame ); - /** The resource container controls the lifetime of some singletons. - */ - ::std::unique_ptr< ::sd::SdGlobalResourceContainer> mpResourceContainer; - bool mbEventListenerAdded; /** Take an outline from a text document and create a new impress diff --git a/sd/qa/unit/data/fit-to-size.fodp b/sd/qa/unit/data/fit-to-size.fodp new file mode 100644 index 0000000000000..734cf8a3a6c6e --- /dev/null +++ b/sd/qa/unit/data/fit-to-size.fodp @@ -0,0 +1,724 @@ + + + 2017-10-18T22:06:17.2032716482017-10-19T22:51:45.845520353PT31M43S4LibreOfficeDev/5.3.8.0.0$Linux_X86_64 LibreOffice_project/a0fae00a2d52960eebbb14f08d2de251e0a8ff3f + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <number><number> + + + + + + + + + + + + + + + + + + + + + + + + + + <number><number> + + + + + + + + + + + + + + + + + + + + + + + + + + + + <number><number> + + + + + + + + + + + 1 + foo + + + + + 2 + foo + + + + + 3 + foo + + + + + 4 + foo + + + + 5 + Fontwork + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 6 + Fontwork + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sd/qa/unit/data/odg/ooo124143-1.odg b/sd/qa/unit/data/odg/ooo124143-1.odg new file mode 100644 index 0000000000000..8e341cbc72d81 Binary files /dev/null and b/sd/qa/unit/data/odg/ooo124143-1.odg differ diff --git a/sd/qa/unit/data/odp/tdf103567.odp b/sd/qa/unit/data/odp/tdf103567.odp new file mode 100644 index 0000000000000..a6f72c414f7cf Binary files /dev/null and b/sd/qa/unit/data/odp/tdf103567.odp differ diff --git a/sd/qa/unit/data/odp/tdf108925.odp b/sd/qa/unit/data/odp/tdf108925.odp new file mode 100755 index 0000000000000..5b6dfc4ca4a20 Binary files /dev/null and b/sd/qa/unit/data/odp/tdf108925.odp differ diff --git a/sd/qa/unit/data/odp/tdf112552.odp b/sd/qa/unit/data/odp/tdf112552.odp new file mode 100755 index 0000000000000..df4afb76b14ae Binary files /dev/null and b/sd/qa/unit/data/odp/tdf112552.odp differ diff --git a/sd/qa/unit/data/odp/tdf112647.odp b/sd/qa/unit/data/odp/tdf112647.odp new file mode 100755 index 0000000000000..72a6621b8e866 Binary files /dev/null and b/sd/qa/unit/data/odp/tdf112647.odp differ diff --git a/sd/qa/unit/data/pptx/accent-color.pptx b/sd/qa/unit/data/pptx/accent-color.pptx new file mode 100755 index 0000000000000..b23de21776a2e Binary files /dev/null and b/sd/qa/unit/data/pptx/accent-color.pptx differ diff --git a/sd/qa/unit/data/pptx/group-rot.pptx b/sd/qa/unit/data/pptx/group-rot.pptx new file mode 100755 index 0000000000000..11b2d6367da01 Binary files /dev/null and b/sd/qa/unit/data/pptx/group-rot.pptx differ diff --git a/sd/qa/unit/data/pptx/group.pptx b/sd/qa/unit/data/pptx/group.pptx new file mode 100755 index 0000000000000..8895fe2a22031 Binary files /dev/null and b/sd/qa/unit/data/pptx/group.pptx differ diff --git a/sd/qa/unit/data/pptx/shape-text-rotate.pptx b/sd/qa/unit/data/pptx/shape-text-rotate.pptx new file mode 100755 index 0000000000000..4a433c748d32e Binary files /dev/null and b/sd/qa/unit/data/pptx/shape-text-rotate.pptx differ diff --git a/sd/qa/unit/data/pptx/smartart-rotation2.pptx b/sd/qa/unit/data/pptx/smartart-rotation2.pptx new file mode 100755 index 0000000000000..e1c4493a74073 Binary files /dev/null and b/sd/qa/unit/data/pptx/smartart-rotation2.pptx differ diff --git a/sd/qa/unit/data/pptx/tdf104201.pptx b/sd/qa/unit/data/pptx/tdf104201.pptx new file mode 100755 index 0000000000000..99a6532a6f397 Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf104201.pptx differ diff --git a/sd/qa/unit/data/pptx/tdf104445.pptx b/sd/qa/unit/data/pptx/tdf104445.pptx new file mode 100755 index 0000000000000..bee32dc0022f1 Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf104445.pptx differ diff --git a/sd/qa/unit/data/pptx/tdf105739.pptx b/sd/qa/unit/data/pptx/tdf105739.pptx new file mode 100755 index 0000000000000..08e26f55a91dd Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf105739.pptx differ diff --git a/sd/qa/unit/data/pptx/tdf109223.pptx b/sd/qa/unit/data/pptx/tdf109223.pptx new file mode 100755 index 0000000000000..0f68796e8e142 Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf109223.pptx differ diff --git a/sd/qa/unit/data/pptx/tdf114848.pptx b/sd/qa/unit/data/pptx/tdf114848.pptx new file mode 100644 index 0000000000000..5b8b6c3fad7f5 Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf114848.pptx differ diff --git a/sd/qa/unit/export-tests-ooxml1.cxx b/sd/qa/unit/export-tests-ooxml1.cxx index 8f2ef494ff7c8..2fc233bf836ab 100644 --- a/sd/qa/unit/export-tests-ooxml1.cxx +++ b/sd/qa/unit/export-tests-ooxml1.cxx @@ -254,11 +254,11 @@ void SdOOXMLExportTest1::testN828390_4() SdrTextObj *pTxtObj = dynamic_cast( pObj ); CPPUNIT_ASSERT( pTxtObj ); const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject(); - aEdit.GetCharAttribs(1, rLst); + aEdit.GetCharAttribs(0, rLst); for( std::vector::reverse_iterator it = rLst.rbegin(); it!=rLst.rend(); ++it) { const SvxFontHeightItem * pFontHeight = dynamic_cast((*it).pAttr); - if( pFontHeight ) + if( pFontHeight && (*it).nStart == 18 ) CPPUNIT_ASSERT_EQUAL_MESSAGE( "Font height is wrong", static_cast(1129), pFontHeight->GetHeight() ); const SvxFontItem *pFont = dynamic_cast((*it).pAttr); if( pFont ) @@ -267,7 +267,7 @@ void SdOOXMLExportTest1::testN828390_4() bPassed = true; } const SvxWeightItem *pWeight = dynamic_cast((*it).pAttr); - if( pWeight ) + if( pWeight && (*it).nStart == 18 ) CPPUNIT_ASSERT_EQUAL_MESSAGE( "Font Weight is wrong", WEIGHT_BOLD, pWeight->GetWeight() ); } } diff --git a/sd/qa/unit/export-tests-ooxml2.cxx b/sd/qa/unit/export-tests-ooxml2.cxx index 05ef4aa700aa8..f678ab64f9402 100644 --- a/sd/qa/unit/export-tests-ooxml2.cxx +++ b/sd/qa/unit/export-tests-ooxml2.cxx @@ -66,6 +66,8 @@ #include #include #include +#include +#include #include #include #include @@ -103,6 +105,14 @@ class SdOOXMLExportTest2 : public SdModelTestBaseXML void testTdf99224(); void testTdf92076(); void testTdf59046(); + void testTdf105739(); + void testTdf112552(); + void testTdf112647(); + void testSmartartRotation2(); + void testGroupsPosition(); + void testGroupsRotatedPosition(); + void testAccentColor(); + void testTdf114848(); CPPUNIT_TEST_SUITE(SdOOXMLExportTest2); @@ -129,6 +139,14 @@ class SdOOXMLExportTest2 : public SdModelTestBaseXML CPPUNIT_TEST(testTdf99224); CPPUNIT_TEST(testTdf92076); CPPUNIT_TEST(testTdf59046); + CPPUNIT_TEST(testTdf105739); + CPPUNIT_TEST(testTdf112552); + CPPUNIT_TEST(testTdf112647); + CPPUNIT_TEST(testSmartartRotation2); + CPPUNIT_TEST(testGroupsPosition); + CPPUNIT_TEST(testGroupsRotatedPosition); + CPPUNIT_TEST(testAccentColor); + CPPUNIT_TEST(testTdf114848); CPPUNIT_TEST_SUITE_END(); @@ -467,8 +485,6 @@ void SdOOXMLExportTest2::testPresetShapesExport() "adj1","val 10490", "donut", "adj","val 9601", - "noSmoking", - "adj","val 16118", "bevel", "adj","val 42587", "foldedCorner", @@ -759,6 +775,135 @@ void SdOOXMLExportTest2::testTdf59046() assertXPath(pXmlDocRels, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:custGeom/a:pathLst/a:path", 1); } +void SdOOXMLExportTest2::testTdf105739() +{ + // Gradient was lost during saving to ODP + sd::DrawDocShellRef xShell = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf105739.pptx"), PPTX); + utl::TempFile tempFile; + xShell = saveAndReload(xShell.get(), ODP, &tempFile); + uno::Reference xPage = getPage(0, xShell); + uno::Reference xPropSet(xPage, uno::UNO_QUERY); + uno::Any aAny = xPropSet->getPropertyValue("Background"); + CPPUNIT_ASSERT(aAny.hasValue()); + if (aAny.hasValue()) + { + uno::Reference< beans::XPropertySet > aXBackgroundPropSet; + aAny >>= aXBackgroundPropSet; + + // Test fill type + drawing::FillStyle aFillStyle(drawing::FillStyle_NONE); + aXBackgroundPropSet->getPropertyValue("FillStyle") >>= aFillStyle; + CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_GRADIENT, aFillStyle); + + // Test gradient properties + com::sun::star::awt::Gradient aFillGradient; + aXBackgroundPropSet->getPropertyValue("FillGradient") >>= aFillGradient; + CPPUNIT_ASSERT_EQUAL(awt::GradientStyle_LINEAR, aFillGradient.Style); + CPPUNIT_ASSERT_EQUAL(util::Color(0xff0000), aFillGradient.StartColor); + CPPUNIT_ASSERT_EQUAL(util::Color(0x00b050), aFillGradient.EndColor); + } + + xShell->DoClose(); +} + + +void SdOOXMLExportTest2::testTdf112552() +{ + // Background fill was not displayed, but it was because of the wrong geometry + ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf112552.odp"), ODP); + utl::TempFile tempFile; + xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile); + + xmlDocPtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml"); + assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:custGeom/a:pathLst/a:path", "w", "21600"); + assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:custGeom/a:pathLst/a:path", "h", "21600"); + assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:custGeom/a:pathLst/a:path/a:lnTo[1]/a:pt", "x", "21600"); + assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:custGeom/a:pathLst/a:path/a:lnTo[1]/a:pt", "y", "0"); + xDocShRef->DoClose(); +} + +void SdOOXMLExportTest2::testTdf112647() +{ + ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf112647.odp"), ODP); + xDocShRef = saveAndReload( xDocShRef.get(), PPTX ); + uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) ); + uno::Reference xParagraph( getParagraphFromShape( 0, xShape ) ); + uno::Reference< beans::XPropertySet > xPropSet( xParagraph, uno::UNO_QUERY_THROW ); + + css::style::LineSpacing aLineSpacing; + xPropSet->getPropertyValue("ParaLineSpacing") >>= aLineSpacing; + CPPUNIT_ASSERT_EQUAL(sal_Int16(css::style::LineSpacingMode::FIX), aLineSpacing.Mode); + CPPUNIT_ASSERT_EQUAL(sal_Int16(2117), aLineSpacing.Height); + xDocShRef->DoClose(); +} + +void SdOOXMLExportTest2::testSmartartRotation2() +{ + ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/smartart-rotation2.pptx"), PPTX); + utl::TempFile tempFile; + xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile); + xDocShRef->DoClose(); + + xmlDocPtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml"); + assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[3]/p:txBody/a:bodyPr", "rot", "10800000"); +} + +void SdOOXMLExportTest2::testGroupsPosition() +{ + ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/group.pptx"), PPTX); + utl::TempFile tempFile; + xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile); + xDocShRef->DoClose(); + + xmlDocPtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml"); + assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[3]/p:spPr/a:xfrm/a:off", "x", "4817880"); + assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[3]/p:spPr/a:xfrm/a:off", "y", "1810440"); + assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[1]/p:spPr/a:xfrm/a:off", "x", "457200"); + assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[1]/p:spPr/a:xfrm/a:off", "y", "1798560"); +} + +void SdOOXMLExportTest2::testGroupsRotatedPosition() +{ + ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/group-rot.pptx"), PPTX); + utl::TempFile tempFile; + xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile); + xDocShRef->DoClose(); + + xmlDocPtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml"); + assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[3]/p:spPr/a:xfrm/a:off", "x", "2857320"); + assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[3]/p:spPr/a:xfrm/a:off", "y", "4026960"); +} + +void SdOOXMLExportTest2::testAccentColor() +{ + ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/accent-color.pptx"), PPTX); + utl::TempFile tempFile; + xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile); + xDocShRef->DoClose(); + + xmlDocPtr pXmlDocContent1 = parseExport(tempFile, "ppt/slides/slide1.xml"); + assertXPath(pXmlDocContent1, "/p:sld/p:cSld/p:spTree/p:sp/p:style/a:fillRef/a:schemeClr", "val", "accent6"); + xmlDocPtr pXmlDocContent2 = parseExport(tempFile, "ppt/slides/slide2.xml"); + assertXPath(pXmlDocContent2, "/p:sld/p:cSld/p:spTree/p:sp/p:style/a:fillRef/a:schemeClr", "val", "accent6"); + xmlDocPtr pXmlDocTheme1 = parseExport(tempFile, "ppt/theme/theme1.xml"); + assertXPath(pXmlDocTheme1, "/a:theme/a:themeElements/a:clrScheme/a:accent6/a:srgbClr", "val", "70ad47"); + xmlDocPtr pXmlDocTheme2 = parseExport(tempFile, "ppt/theme/theme2.xml"); + assertXPath(pXmlDocTheme2, "/a:theme/a:themeElements/a:clrScheme/a:accent6/a:srgbClr", "val", "deb340"); +} + +void SdOOXMLExportTest2::testTdf114848() +{ + ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf114848.pptx"), PPTX); + utl::TempFile tempFile; + xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile); + xDocShRef->DoClose(); + + xmlDocPtr pXmlDocTheme1 = parseExport(tempFile, "ppt/theme/theme1.xml"); + assertXPath(pXmlDocTheme1, "/a:theme/a:themeElements/a:clrScheme/a:dk2/a:srgbClr", "val", "1f497d"); + xmlDocPtr pXmlDocTheme2 = parseExport(tempFile, "ppt/theme/theme2.xml"); + assertXPath(pXmlDocTheme2, "/a:theme/a:themeElements/a:clrScheme/a:dk2/a:srgbClr", "val", "1f497d"); +} + CPPUNIT_TEST_SUITE_REGISTRATION(SdOOXMLExportTest2); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sd/qa/unit/export-tests.cxx b/sd/qa/unit/export-tests.cxx index 3f28823840311..f7240647814d4 100644 --- a/sd/qa/unit/export-tests.cxx +++ b/sd/qa/unit/export-tests.cxx @@ -84,6 +84,7 @@ class SdExportTest : public SdModelTestBaseXML void testN821567(); void testMediaEmbedding(); void testFdo84043(); + void testTdf97630(); void testSwappedOutImageExport(); void testOOoXMLAnimations(); void testTdf80020(); @@ -92,12 +93,14 @@ class SdExportTest : public SdModelTestBaseXML void testTdf62176(); void testTransparentBackground(); void testEmbeddedPdf(); + void testTextRotation(); CPPUNIT_TEST_SUITE(SdExportTest); CPPUNIT_TEST(testN821567); CPPUNIT_TEST(testMediaEmbedding); CPPUNIT_TEST(testFdo84043); + CPPUNIT_TEST(testTdf97630); CPPUNIT_TEST(testSwappedOutImageExport); CPPUNIT_TEST(testOOoXMLAnimations); CPPUNIT_TEST(testTdf80020); @@ -106,6 +109,7 @@ class SdExportTest : public SdModelTestBaseXML CPPUNIT_TEST(testTdf62176); CPPUNIT_TEST(testTransparentBackground); CPPUNIT_TEST(testEmbeddedPdf); + CPPUNIT_TEST(testTextRotation); CPPUNIT_TEST_SUITE_END(); @@ -125,6 +129,7 @@ class SdExportTest : public SdModelTestBaseXML { "table", "urn:oasis:names:tc:opendocument:xmlns:table:1.0" }, { "text", "urn:oasis:names:tc:opendocument:xmlns:text:1.0" }, { "xlink", "http://www.w3c.org/1999/xlink" }, + { "loext", "urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" }, }; for (size_t i = 0; i < SAL_N_ELEMENTS(namespaces); ++i) { @@ -246,6 +251,104 @@ void SdExportTest::testFdo84043() xDocShRef->DoClose(); } +void SdExportTest::testTdf97630() +{ + ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/fit-to-size.fodp"), FODP); + + { + uno::Reference xDPS(xDocShRef->GetModel(), uno::UNO_QUERY); + uno::Reference xDP(xDPS->getDrawPages()->getByIndex(0), uno::UNO_QUERY); + + drawing::TextFitToSizeType tmp; + // text shapes + uno::Reference xShape0(xDP->getByIndex(0), uno::UNO_QUERY); + xShape0->getPropertyValue("TextFitToSize") >>= tmp; + CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_NONE, tmp); + uno::Reference xShape1(xDP->getByIndex(1), uno::UNO_QUERY); + xShape1->getPropertyValue("TextFitToSize") >>= tmp; + CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_PROPORTIONAL, tmp); + uno::Reference xShape2(xDP->getByIndex(2), uno::UNO_QUERY); + xShape2->getPropertyValue("TextFitToSize") >>= tmp; + CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_ALLLINES, tmp); + uno::Reference xShape3(xDP->getByIndex(3), uno::UNO_QUERY); + xShape3->getPropertyValue("TextFitToSize") >>= tmp; + CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_AUTOFIT, tmp); + + // fontworks + uno::Reference xShape4(xDP->getByIndex(4), uno::UNO_QUERY); + xShape4->getPropertyValue("TextFitToSize") >>= tmp; + CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_NONE, tmp); + uno::Reference xShape5(xDP->getByIndex(5), uno::UNO_QUERY); + xShape5->getPropertyValue("TextFitToSize") >>= tmp; + CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_ALLLINES, tmp); + + } + + utl::TempFile aTempFile; + xDocShRef = saveAndReload(xDocShRef.get(), ODP, &aTempFile); + + { + uno::Reference xDPS(xDocShRef->GetModel(), uno::UNO_QUERY); + uno::Reference xDP(xDPS->getDrawPages()->getByIndex(0), uno::UNO_QUERY); + + drawing::TextFitToSizeType tmp; + // text shapes + uno::Reference xShape0(xDP->getByIndex(0), uno::UNO_QUERY); + xShape0->getPropertyValue("TextFitToSize") >>= tmp; + CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_NONE, tmp); + uno::Reference xShape1(xDP->getByIndex(1), uno::UNO_QUERY); + xShape1->getPropertyValue("TextFitToSize") >>= tmp; + CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_PROPORTIONAL, tmp); + uno::Reference xShape2(xDP->getByIndex(2), uno::UNO_QUERY); + xShape2->getPropertyValue("TextFitToSize") >>= tmp; +#if 1 +// TODO see TODO in sdpropls.cxx + CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_ALLLINES, tmp); +#else + CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_PROPORTIONAL, tmp); +#endif + uno::Reference xShape3(xDP->getByIndex(3), uno::UNO_QUERY); + xShape3->getPropertyValue("TextFitToSize") >>= tmp; + CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_AUTOFIT, tmp); + + // fontworks + uno::Reference xShape4(xDP->getByIndex(4), uno::UNO_QUERY); + xShape4->getPropertyValue("TextFitToSize") >>= tmp; + CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_NONE, tmp); + uno::Reference xShape5(xDP->getByIndex(5), uno::UNO_QUERY); + xShape5->getPropertyValue("TextFitToSize") >>= tmp; +#if 1 +// TODO see TODO in sdpropls.cxx + CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_ALLLINES, tmp); +#else + CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_PROPORTIONAL, tmp); +#endif + } + + xmlDocPtr pXmlDoc = parseExport(aTempFile, "content.xml"); + // text shapes + assertXPath(pXmlDoc, "//style:style[@style:family='presentation']/style:graphic-properties[@draw:fit-to-size='false' and @style:shrink-to-fit='false']", 1); +#if 1 +// TODO see TODO in sdpropls.cxx + assertXPath(pXmlDoc, "//style:style[@style:family='presentation']/style:graphic-properties[@draw:fit-to-size='true' and @style:shrink-to-fit='false']", 1); + assertXPath(pXmlDoc, "//style:style[@style:family='presentation']/style:graphic-properties[@draw:fit-to-size='all' and @style:shrink-to-fit='false']", 1); + assertXPath(pXmlDoc, "//style:style[@style:family='presentation']/style:graphic-properties[@draw:fit-to-size='shrink-to-fit' and @style:shrink-to-fit='true']", 1); +#else + assertXPath(pXmlDoc, "//style:style[@style:family='presentation']/style:graphic-properties[@draw:fit-to-size='true' and @style:shrink-to-fit='false']", 2); + assertXPath(pXmlDoc, "//style:style[@style:family='presentation']/style:graphic-properties[@draw:fit-to-size='false' and @style:shrink-to-fit='true']", 1); +#endif + // fontworks + assertXPath(pXmlDoc, "//style:style[@style:family='graphic']/style:graphic-properties[@draw:fit-to-size='false' and @style:shrink-to-fit='false']", 1); +#if 1 +// TODO see TODO in sdpropls.cxx + assertXPath(pXmlDoc, "//style:style[@style:family='graphic']/style:graphic-properties[@draw:fit-to-size='all' and @style:shrink-to-fit='false']", 1); +#else + assertXPath(pXmlDoc, "//style:style[@style:family='graphic']/style:graphic-properties[@draw:fit-to-size='true' and @style:shrink-to-fit='false']", 1); +#endif + + xDocShRef->DoClose(); +} + void SdExportTest::testSwappedOutImageExport() { // Problem was with the swapped out images, which were not swapped in during export. @@ -552,6 +655,28 @@ void SdExportTest::testEmbeddedPdf() #endif } +void SdExportTest::testTextRotation() +{ + ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/shape-text-rotate.pptx"), PPTX); + utl::TempFile tempFile; + xDocShRef = saveAndReload(xDocShRef.get(), ODP, &tempFile); + + uno::Reference xPage(getPage(0, xDocShRef)); + uno::Reference xPropSet(getShape(0, xPage)); + + CPPUNIT_ASSERT(xPropSet.is()); + + auto aGeomPropSeq = xPropSet->getPropertyValue("CustomShapeGeometry").get>(); + comphelper::SequenceAsHashMap aCustomShapeGeometry(aGeomPropSeq); + + auto it = aCustomShapeGeometry.find("TextRotateAngle"); + CPPUNIT_ASSERT(it != aCustomShapeGeometry.end()); + + CPPUNIT_ASSERT_EQUAL((double)(-90), aCustomShapeGeometry["TextRotateAngle"].get()); + + xDocShRef->DoClose(); +} + CPPUNIT_TEST_SUITE_REGISTRATION(SdExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx index 6c14bd5da3dc8..aa2035ccc7101 100644 --- a/sd/qa/unit/import-tests.cxx +++ b/sd/qa/unit/import-tests.cxx @@ -42,10 +42,15 @@ #include #include +#include +#include #include #include #include #include +#include +#include +#include #include #include #include @@ -63,9 +68,11 @@ #include #include #include +#include #include #include +#include #include #include #include @@ -127,9 +134,15 @@ class SdImportTest : public SdModelTestBase void testTdf99030(); void testTdf49561(); void testTdf103473(); + void testAoo124143(); + void testTdf103567(); void testTdf103792(); void testTdf103876(); void testTdf104015(); + void testTdf104201(); + void testTdf104445(); + void testTdf108925(); + void testTdf109223(); CPPUNIT_TEST_SUITE(SdImportTest); @@ -182,9 +195,15 @@ class SdImportTest : public SdModelTestBase CPPUNIT_TEST(testTdf99030); CPPUNIT_TEST(testTdf49561); CPPUNIT_TEST(testTdf103473); + CPPUNIT_TEST(testAoo124143); + CPPUNIT_TEST(testTdf103567); CPPUNIT_TEST(testTdf103792); CPPUNIT_TEST(testTdf103876); CPPUNIT_TEST(testTdf104015); + CPPUNIT_TEST(testTdf104201); + CPPUNIT_TEST(testTdf104445); + CPPUNIT_TEST(testTdf108925); + CPPUNIT_TEST(testTdf109223); CPPUNIT_TEST_SUITE_END(); }; @@ -1510,6 +1529,92 @@ void SdImportTest::testTdf103473() xDocShRef->DoClose(); } +void SdImportTest::testAoo124143() +{ + sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odg/ooo124143-1.odg"), ODG); + + uno::Reference const xImage(getShapeFromPage(0, 0, xDocShRef)); + uno::Reference const xGPS(xImage, uno::UNO_QUERY); + uno::Reference const xGluePoints(xGPS->getGluePoints(), uno::UNO_QUERY); + + uno::Sequence const ids(xGluePoints->getIdentifiers()); + CPPUNIT_ASSERT_EQUAL(sal_Int32(6), ids.getLength()); + CPPUNIT_ASSERT_EQUAL(sal_Int32(0), ids[0]); + CPPUNIT_ASSERT_EQUAL(sal_Int32(1), ids[1]); + CPPUNIT_ASSERT_EQUAL(sal_Int32(2), ids[2]); + CPPUNIT_ASSERT_EQUAL(sal_Int32(3), ids[3]); + CPPUNIT_ASSERT_EQUAL(sal_Int32(4), ids[4]); + CPPUNIT_ASSERT_EQUAL(sal_Int32(5), ids[5]); + + // interesting ones are custom 4, 5 + drawing::GluePoint2 glue4; + xGluePoints->getByIdentifier(4) >>= glue4; + CPPUNIT_ASSERT_EQUAL(sal_Int32( 2470), glue4.Position.X); + CPPUNIT_ASSERT_EQUAL(sal_Int32(-1810), glue4.Position.Y); + + drawing::GluePoint2 glue5; + xGluePoints->getByIdentifier(5) >>= glue5; + CPPUNIT_ASSERT_EQUAL(sal_Int32(-2975), glue5.Position.X); + CPPUNIT_ASSERT_EQUAL(sal_Int32(-2165), glue5.Position.Y); + + // now check connectors + uno::Reference const xEllipse(getShapeFromPage(1, 0, xDocShRef)); + uno::Reference const xConn1(getShapeFromPage(2, 0, xDocShRef)); + CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xConn1->getPropertyValue("StartGluePointIndex").get()); + CPPUNIT_ASSERT_EQUAL(xEllipse, xConn1->getPropertyValue("StartShape").get>()); + CPPUNIT_ASSERT_EQUAL(sal_Int32(4), xConn1->getPropertyValue("EndGluePointIndex").get()); + CPPUNIT_ASSERT_EQUAL(xImage, xConn1->getPropertyValue("EndShape").get>()); + uno::Reference const xConn2(getShapeFromPage(3, 0, xDocShRef)); + CPPUNIT_ASSERT_EQUAL(sal_Int32(3), xConn2->getPropertyValue("StartGluePointIndex").get()); + CPPUNIT_ASSERT_EQUAL(xEllipse, xConn2->getPropertyValue("StartShape").get>()); + CPPUNIT_ASSERT_EQUAL(sal_Int32(5), xConn2->getPropertyValue("EndGluePointIndex").get()); + CPPUNIT_ASSERT_EQUAL(xImage, xConn2->getPropertyValue("EndShape").get>()); + + xDocShRef->DoClose(); +} + +void SdImportTest::testTdf103567() +{ + sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf103567.odp"), ODP); + for (int i = 0; i < 4; ++i) + { + uno::Reference const xShape(getShapeFromPage(i, 0, xDocShRef)); + uno::Reference const xEventsSupplier(xShape, uno::UNO_QUERY); + uno::Reference const xEvents(xEventsSupplier->getEvents()); + OString const msg("shape " + OString::number(i) + ": "); + + CPPUNIT_ASSERT(xEvents->hasByName("OnClick")); + uno::Sequence props; + xEvents->getByName("OnClick") >>= props; + comphelper::SequenceAsHashMap const map(props); + { + auto iter(map.find("EventType")); + CPPUNIT_ASSERT_MESSAGE(OString(msg + "no EventType").getStr(), iter != map.end()); + CPPUNIT_ASSERT_EQUAL_MESSAGE(msg.getStr(), OUString("Presentation"), iter->second.get()); + } + { + auto iter(map.find("ClickAction")); + CPPUNIT_ASSERT_MESSAGE(OString(msg + "no ClickAction").getStr(), iter != map.end()); + if (i % 2 == 0) + { + CPPUNIT_ASSERT_EQUAL_MESSAGE(msg.getStr(), css::presentation::ClickAction_DOCUMENT, iter->second.get()); + } + else + { + CPPUNIT_ASSERT_EQUAL_MESSAGE(msg.getStr(), css::presentation::ClickAction_NEXTPAGE, iter->second.get()); + } + } + if (i % 2 == 0) + { + auto iter(map.find("Bookmark")); + CPPUNIT_ASSERT_MESSAGE(OString(msg + "no Bookmark").getStr(), iter != map.end()); + CPPUNIT_ASSERT_EQUAL_MESSAGE(msg.getStr(), OUString("http://example.com/"), iter->second.get()); + } + } + + xDocShRef->DoClose(); +} + void SdImportTest::testTdf103792() { // Title text shape on the actual slide contained no text neither a placeholder text. @@ -1585,6 +1690,139 @@ void SdImportTest::testTdf104015() xDocShRef->DoClose(); } +void SdImportTest::testTdf104201() +{ + // Group shape properties did not overwrite the child shapes' fill + sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf104201.pptx"), PPTX); + + const SdrPage *pPage = GetPage(1, xDocShRef); + CPPUNIT_ASSERT_MESSAGE("No page found", pPage != nullptr); + + // First shape has red fill, but this should be overwritten by green group fill + { + SdrObject *const pObj = pPage->GetObj(0); + CPPUNIT_ASSERT_MESSAGE("Wrong object", pObj != nullptr); + const XFillStyleItem& rStyleItem = dynamic_cast( + pObj->GetMergedItem(XATTR_FILLSTYLE)); + CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, rStyleItem.GetValue()); + const XFillColorItem& rColorItem = dynamic_cast( + pObj->GetMergedItem(XATTR_FILLCOLOR)); + CPPUNIT_ASSERT_EQUAL(ColorData(0x00FF00), rColorItem.GetColorValue().GetColor()); + } + // Scond shape has blue fill, but this should be overwritten by green group fill + { + SdrObject *const pObj = pPage->GetObj(0); + CPPUNIT_ASSERT_MESSAGE("Wrong object", pObj != nullptr); + const XFillStyleItem& rStyleItem = dynamic_cast( + pObj->GetMergedItem(XATTR_FILLSTYLE)); + CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, rStyleItem.GetValue()); + const XFillColorItem& rColorItem = dynamic_cast( + pObj->GetMergedItem(XATTR_FILLCOLOR)); + CPPUNIT_ASSERT_EQUAL(ColorData(0x00FF00), rColorItem.GetColorValue().GetColor()); + } + + xDocShRef->DoClose(); +} + +void SdImportTest::testTdf104445() +{ + // Extra bullets were added to the first shape + sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf104445.pptx"), PPTX); + + // First shape should not have bullet + { + uno::Reference< beans::XPropertySet > xShape(getShapeFromPage(0, 0, xDocShRef)); + uno::Reference< text::XText > xText = uno::Reference< text::XTextRange>(xShape, uno::UNO_QUERY)->getText(); + CPPUNIT_ASSERT_MESSAGE("Not a text shape", xText.is()); + uno::Reference< beans::XPropertySet > xPropSet(xText, uno::UNO_QUERY_THROW); + + uno::Reference< container::XIndexAccess > xNumRule; + xPropSet->getPropertyValue("NumberingRules") >>= xNumRule; + uno::Sequence aBulletProps; + xNumRule->getByIndex(0) >>= aBulletProps; + + for (int i = 0; i < aBulletProps.getLength(); ++i) + { + const beans::PropertyValue& rProp = aBulletProps[i]; + if(rProp.Name == "NumberingType") + CPPUNIT_ASSERT_EQUAL(sal_Int16(style::NumberingType::NUMBER_NONE), rProp.Value.get()); + if(rProp.Name == "LeftMargin") + CPPUNIT_ASSERT_EQUAL(sal_Int32(0), rProp.Value.get()); + } + } + // Second shape should have bullet set + { + uno::Reference< beans::XPropertySet > xShape(getShapeFromPage(1, 0, xDocShRef)); + uno::Reference< text::XText > xText = uno::Reference< text::XTextRange>(xShape, uno::UNO_QUERY)->getText(); + CPPUNIT_ASSERT_MESSAGE("Not a text shape", xText.is()); + uno::Reference< beans::XPropertySet > xPropSet(xText, uno::UNO_QUERY_THROW); + + uno::Reference< container::XIndexAccess > xNumRule; + xPropSet->getPropertyValue("NumberingRules") >>= xNumRule; + uno::Sequence aBulletProps; + xNumRule->getByIndex(0) >>= aBulletProps; + + for(int i = 0; i < aBulletProps.getLength(); ++i) + { + const beans::PropertyValue& rProp = aBulletProps[i]; + if(rProp.Name == "NumberingType") + CPPUNIT_ASSERT_EQUAL(sal_Int16(style::NumberingType::CHAR_SPECIAL), rProp.Value.get()); + if(rProp.Name == "LeftMargin") + CPPUNIT_ASSERT_EQUAL(sal_Int32(635), rProp.Value.get()); + } + } + xDocShRef->DoClose(); +} + +void SdImportTest::testTdf108925() +{ + // Test document contains bulleting with too small bullet size (1%) which breaks the lower constraint + // So it should be converted to the lowest allowed value (25%). + sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf108925.odp"), ODP); + const SdrPage *pPage = GetPage(1, xDocShRef); + SdrTextObj *pTxtObj = dynamic_cast(pPage->GetObj(0)); + CPPUNIT_ASSERT_MESSAGE("No text object", pTxtObj != nullptr); + const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject(); + + const SvxNumBulletItem *pNumFmt = dynamic_cast(aEdit.GetParaAttribs(0).GetItem(EE_PARA_NUMBULLET)); + CPPUNIT_ASSERT(pNumFmt); + CPPUNIT_ASSERT_EQUAL(pNumFmt->GetNumRule()->GetLevel(0).GetBulletRelSize(), sal_uInt16(25)); + + xDocShRef->DoClose(); +} + +void SdImportTest::testTdf109223() +{ + // In the test document flipV attribute is defined for a group shape + // This transformation is not applied on child shapes + // To make the text direction right at least I added an additional text rotation when parent shape is flipped. + sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf109223.pptx"), PPTX); + uno::Reference< container::XIndexAccess > xGroupShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW); + uno::Reference< beans::XPropertySet > xShape(xGroupShape->getByIndex(1), uno::UNO_QUERY); + + // Check the shape text to make sure we test the right shape + OUString sText = uno::Reference(xShape, uno::UNO_QUERY)->getString(); + CPPUNIT_ASSERT_EQUAL(OUString("Tested child shape"), sText); + + // Check the attribute inherited from parent shape + bool bAttributeFound = false; + uno::Sequence aProps; + CPPUNIT_ASSERT(xShape->getPropertyValue("CustomShapeGeometry") >>= aProps); + for (sal_Int32 i = 0; i < aProps.getLength(); ++i) + { + const beans::PropertyValue& rProp = aProps[i]; + if (rProp.Name == "TextPreRotateAngle") + { + CPPUNIT_ASSERT_EQUAL(sal_Int32(180), rProp.Value.get()); + bAttributeFound = true; + break; + } + } + + CPPUNIT_ASSERT_EQUAL(true, bAttributeFound); + xDocShRef->DoClose(); +} + CPPUNIT_TEST_SUITE_REGISTRATION(SdImportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sd/qa/unit/sdmodeltestbase.hxx b/sd/qa/unit/sdmodeltestbase.hxx index bfbb64232454c..943a5e9e55a83 100644 --- a/sd/qa/unit/sdmodeltestbase.hxx +++ b/sd/qa/unit/sdmodeltestbase.hxx @@ -76,6 +76,7 @@ FileFormat aFileFormats[] = { "fodg", "OpenDocument Drawing Flat XML", "Flat XML ODF Drawing", "", FODG_FORMAT_TYPE }, { "fodp", "OpenDocument Presentation Flat XML", "Flat XML ODF Presentation", "", FODP_FORMAT_TYPE }, { "sxi", "StarOffice XML (Impress)", "OpenOffice.org 1.0 Presentation", "", SXI_FORMAT_TYPE }, + { "odg", "draw8", "draw8", "", ODP_FORMAT_TYPE }, { nullptr, nullptr, nullptr, nullptr, SfxFilterFlags::NONE } }; @@ -87,6 +88,7 @@ FileFormat aFileFormats[] = #define FODG 5 #define FODP 6 #define SXI 7 +#define ODG 8 /// Base class for filter tests loading or roundtriping a document, and asserting the document model. class SdModelTestBase : public test::BootstrapFixture, public unotest::MacrosTest @@ -204,7 +206,7 @@ protected: pTempFile = pNewTempFile.get(); } save(pShell, pFormat, *pTempFile); - if(nExportType == ODP) + if (nExportType == ODP || nExportType == ODG) { // BootstrapFixture::validate(pTempFile->GetFileName(), test::ODF); } diff --git a/sd/qa/unit/tiledrendering/data/tdf104405.fodp b/sd/qa/unit/tiledrendering/data/tdf104405.fodp new file mode 100644 index 0000000000000..cce6dd51386f0 --- /dev/null +++ b/sd/qa/unit/tiledrendering/data/tdf104405.fodp @@ -0,0 +1,1103 @@ + + + + 2016-11-16T15:27:08.2227083542016-11-16T15:30:23.342583235PT3M18S1LibreOfficeDev/5.3.0.0.alpha1$Linux_X86_64 LibreOffice_project/f0c20dc458d8fe9e86b323c8c24df2f3d31610ad + + + 0 + 0 + 14099 + 9999 + + + view1 + false + false + true + true + true + true + false + false + true + 1500 + false + //////////////////////////////////////////8= + //////////////////////////////////////////8= + + false + true + false + 0 + 0 + false + true + true + 4 + 0 + -310 + -2139 + 32314 + 21646 + 2000 + 2000 + 200 + 200 + 200 + 1 + 200 + 1 + false + 1500 + true + false + + + + + true + $(inst)/share/palette%3B$(user)/config/standard.sob + 0 + $(inst)/share/palette%3B$(user)/config/standard.soc + $(inst)/share/palette%3B$(user)/config/standard.sod + 1250 + false + + + en + ZA + + + + + + $(inst)/share/palette%3B$(user)/config/standard.sog + true + $(inst)/share/palette%3B$(user)/config/standard.soh + false + false + true + true + false + true + false + false + true + false + false + false + false + false + $(inst)/share/palette%3B$(user)/config/standard.soe + false + 4 + false + 0 + low-resolution + + + false + 6 + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <number> + + + + + + + + + + + + + + + + + + + + + + + <number> + + + + + + + + + + + + + + + + + + + + + + + + + <number> + + + + + + + + + + + + + + + + + + + + + + + + aaa + + + aa + + + aaaa + + + aaaaa + + + aaaa + + + + + aaa + + + aaa + + + aaa + + + aaa + + + aaaaaa + + + + + aaa + + + aaaaa + + + aaa + + + aaaa + + + aaaaaa + + + + + aaa + + + aaaaaa + + + aaa + + + aaa + + + aaa + + + + VkNMTVRGAQAxAAAAAAAAAAEAGwAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAPpcAACK + LAAAAAIAAIkAAQAhAAAAAQAbAAAADQD5+P//6er//wEAAAABAAAAAQAAAAEAAAAAlgABAAIA + AAAJAIUAAQAFAAAAs7OzAAGEAAEABQAAAAAAAAAAbwACAC4AAAABAAUACAcAABgVAACeGQAA + GBUAAJ4ZAAA4IAAACAcAADggAAAIBwAAGBUAAAAAAAIBACAAAAAWAFhURVhUX1BBSU5UU0hB + UEVfQkVHSU4AAAAAAAAAAIoAAQBBAAAAAwA7AAAADwBMaWJlcmF0aW9uIFNhbnMAAAAAAAB7 + AgAA//8AAAIABQAAAAAAAAAJHAAAAAAAAAAAAP8DAAAAAACIAAEAAgAAAAEAhwABAAUAAAD/ + ////AIYAAQAEAAAAAAAAAHEAAgAuAAAAAggAANoXAAADAAAAYQBhAGEAAAADAAMAAABfAQAA + vwIAAB4EAAADAGEAYQBhAAACAQATAAAACQBYVEVYVF9FT0MAAAAAAAAAAAACAQATAAAACQBY + VEVYVF9FT0MBAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0MCAAAAAAAAAAACAQATAAAACQBY + VEVYVF9FT0wAAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT1AAAAAAAAAAAAACAQAeAAAAFABY + VEVYVF9QQUlOVFNIQVBFX0VORAAAAAAAAAAAhQABAAUAAACzs7MAAYQAAQAFAAAAAAAAAABv + AAIALgAAAAEABQCeGQAAGBUAADQsAAAYFQAANCwAADggAACeGQAAOCAAAJ4ZAAAYFQAAAAAA + AgEAIAAAABYAWFRFWFRfUEFJTlRTSEFQRV9CRUdJTgAAAAAAAAAAigABAEEAAAADADsAAAAP + AExpYmVyYXRpb24gU2FucwAAAAAAAHsCAAD//wAAAgAFAAAAAAAAAAkcAAAAAAAAAAAA/wMA + AAAAAIgAAQACAAAAAQCHAAEABQAAAP////8AhgABAAQAAAAAAAAAcQACACYAAACYGgAA2hcA + AAIAAABhAGEAAAACAAIAAABfAQAAvwIAAAIAYQBhAAACAQATAAAACQBYVEVYVF9FT0MAAAAA + AAAAAAACAQATAAAACQBYVEVYVF9FT0MBAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0wAAAAA + AAAAAAACAQATAAAACQBYVEVYVF9FT1AAAAAAAAAAAAACAQAeAAAAFABYVEVYVF9QQUlOVFNI + QVBFX0VORAAAAAAAAAAAhQABAAUAAACzs7MAAYQAAQAFAAAAAAAAAABvAAIALgAAAAEABQA0 + LAAAGBUAAMo+AAAYFQAAyj4AADggAAA0LAAAOCAAADQsAAAYFQAAAAAAAgEAIAAAABYAWFRF + WFRfUEFJTlRTSEFQRV9CRUdJTgAAAAAAAAAAigABAEEAAAADADsAAAAPAExpYmVyYXRpb24g + U2FucwAAAAAAAHsCAAD//wAAAgAFAAAAAAAAAAkcAAAAAAAAAAAA/wMAAAAAAIgAAQACAAAA + AQCHAAEABQAAAP////8AhgABAAQAAAAAAAAAcQACADYAAAC+MgAA2hcAAAQAAABhAGEAYQBh + AAAABAAEAAAAXwEAAL8CAAAeBAAAfQUAAAQAYQBhAGEAYQAAAgEAEwAAAAkAWFRFWFRfRU9D + AAAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9DAQAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9D + AgAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9DAwAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9M + AAAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9QAAAAAAAAAAAAAgEAHgAAABQAWFRFWFRfUEFJ + TlRTSEFQRV9FTkQAAAAAAAAAAIUAAQAFAAAAs7OzAAGEAAEABQAAAAAAAAAAbwACAC4AAAAB + AAUAyj4AABgVAABgUQAAGBUAAGBRAAA4IAAAyj4AADggAADKPgAAGBUAAAAAAAIBACAAAAAW + AFhURVhUX1BBSU5UU0hBUEVfQkVHSU4AAAAAAAAAAIoAAQBBAAAAAwA7AAAADwBMaWJlcmF0 + aW9uIFNhbnMAAAAAAAB7AgAA//8AAAIABQAAAAAAAAAJHAAAAAAAAAAAAP8DAAAAAACIAAEA + AgAAAAEAhwABAAUAAAD/////AIYAAQAEAAAAAAAAAHEAAgA+AAAAxD8AANoXAAAFAAAAYQBh + AGEAYQBhAAAABQAFAAAAXwEAAL8CAAAeBAAAfQUAAN0GAAAFAGEAYQBhAGEAYQAAAgEAEwAA + AAkAWFRFWFRfRU9DAAAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9DAQAAAAAAAAAAAgEAEwAA + AAkAWFRFWFRfRU9DAgAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9DAwAAAAAAAAAAAgEAEwAA + AAkAWFRFWFRfRU9DBAAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9MAAAAAAAAAAAAAgEAEwAA + AAkAWFRFWFRfRU9QAAAAAAAAAAAAAgEAHgAAABQAWFRFWFRfUEFJTlRTSEFQRV9FTkQAAAAA + AAAAAIUAAQAFAAAAs7OzAAGEAAEABQAAAAAAAAAAbwACAC4AAAABAAUAYFEAABgVAAD/YwAA + GBUAAP9jAAA4IAAAYFEAADggAABgUQAAGBUAAAAAAAIBACAAAAAWAFhURVhUX1BBSU5UU0hB + UEVfQkVHSU4AAAAAAAAAAIoAAQBBAAAAAwA7AAAADwBMaWJlcmF0aW9uIFNhbnMAAAAAAAB7 + AgAA//8AAAIABQAAAAAAAAAJHAAAAAAAAAAAAP8DAAAAAACIAAEAAgAAAAEAhwABAAUAAAD/ + ////AIYAAQAEAAAAAAAAAHEAAgA2AAAAWlIAANoXAAAEAAAAYQBhAGEAYQAAAAQABAAAAF8B + AAC/AgAAHgQAAH0FAAAEAGEAYQBhAGEAAAIBABMAAAAJAFhURVhUX0VPQwAAAAAAAAAAAAIB + ABMAAAAJAFhURVhUX0VPQwEAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPQwIAAAAAAAAAAAIB + ABMAAAAJAFhURVhUX0VPQwMAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPTAAAAAAAAAAAAAIB + ABMAAAAJAFhURVhUX0VPUAAAAAAAAAAAAAIBAB4AAAAUAFhURVhUX1BBSU5UU0hBUEVfRU5E + AAAAAAAAAACFAAEABQAAAMzMzAABhAABAAUAAAAAAAAAAG8AAgAuAAAAAQAFAAgHAAA4IAAA + nhkAADggAACeGQAAWCsAAAgHAABYKwAACAcAADggAAAAAAACAQAgAAAAFgBYVEVYVF9QQUlO + VFNIQVBFX0JFR0lOAAAAAAAAAACKAAEAQQAAAAMAOwAAAA8ATGliZXJhdGlvbiBTYW5zAAAA + AAAAewIAAP//AAACAAUAAAAAAAAACRwAAAAAAAAAAAD/AwAAAAAAiAABAAIAAAABAIcAAQAF + AAAA/////wCGAAEABAAAAAAAAABxAAIALgAAAAIIAAD6IgAAAwAAAGEAYQBhAAAAAwADAAAA + XwEAAL8CAAAeBAAAAwBhAGEAYQAAAgEAEwAAAAkAWFRFWFRfRU9DAAAAAAAAAAAAAgEAEwAA + AAkAWFRFWFRfRU9DAQAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9DAgAAAAAAAAAAAgEAEwAA + AAkAWFRFWFRfRU9MAAAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9QAAAAAAAAAAAAAgEAHgAA + ABQAWFRFWFRfUEFJTlRTSEFQRV9FTkQAAAAAAAAAAIUAAQAFAAAAzMzMAAGEAAEABQAAAAAA + AAAAbwACAC4AAAABAAUAnhkAADggAAA0LAAAOCAAADQsAABYKwAAnhkAAFgrAACeGQAAOCAA + AAAAAAIBACAAAAAWAFhURVhUX1BBSU5UU0hBUEVfQkVHSU4AAAAAAAAAAIoAAQBBAAAAAwA7 + AAAADwBMaWJlcmF0aW9uIFNhbnMAAAAAAAB7AgAA//8AAAIABQAAAAAAAAAJHAAAAAAAAAAA + AP8DAAAAAACIAAEAAgAAAAEAhwABAAUAAAD/////AIYAAQAEAAAAAAAAAHEAAgAuAAAAmBoA + APoiAAADAAAAYQBhAGEAAAADAAMAAABfAQAAvwIAAB4EAAADAGEAYQBhAAACAQATAAAACQBY + VEVYVF9FT0MAAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0MBAAAAAAAAAAACAQATAAAACQBY + VEVYVF9FT0MCAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0wAAAAAAAAAAAACAQATAAAACQBY + VEVYVF9FT1AAAAAAAAAAAAACAQAeAAAAFABYVEVYVF9QQUlOVFNIQVBFX0VORAAAAAAAAAAA + hQABAAUAAADMzMwAAYQAAQAFAAAAAAAAAABvAAIALgAAAAEABQA0LAAAOCAAAMo+AAA4IAAA + yj4AAFgrAAA0LAAAWCsAADQsAAA4IAAAAAAAAgEAIAAAABYAWFRFWFRfUEFJTlRTSEFQRV9C + RUdJTgAAAAAAAAAAigABAEEAAAADADsAAAAPAExpYmVyYXRpb24gU2FucwAAAAAAAHsCAAD/ + /wAAAgAFAAAAAAAAAAkcAAAAAAAAAAAA/wMAAAAAAIgAAQACAAAAAQCHAAEABQAAAP////8A + hgABAAQAAAAAAAAAcQACAC4AAABuMwAATyoAAAMAAABhAGEAYQAAAAMAAwAAAF8BAAC/AgAA + HgQAAAMAYQBhAGEAAAIBABMAAAAJAFhURVhUX0VPQwAAAAAAAAAAAAIBABMAAAAJAFhURVhU + X0VPQwEAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPQwIAAAAAAAAAAAIBABMAAAAJAFhURVhU + X0VPTAAAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPUAAAAAAAAAAAAAIBAB4AAAAUAFhURVhU + X1BBSU5UU0hBUEVfRU5EAAAAAAAAAACFAAEABQAAAMzMzAABhAABAAUAAAAAAAAAAG8AAgAu + AAAAAQAFAMo+AAA4IAAAYFEAADggAABgUQAAWCsAAMo+AABYKwAAyj4AADggAAAAAAACAQAg + AAAAFgBYVEVYVF9QQUlOVFNIQVBFX0JFR0lOAAAAAAAAAACKAAEAQQAAAAMAOwAAAA8ATGli + ZXJhdGlvbiBTYW5zAAAAAAAAewIAAP//AAACAAUAAAAAAAAACRwAAAAAAAAAAAD/AwAAAAAA + iAABAAIAAAABAIcAAQAFAAAA/////wCGAAEABAAAAAAAAABxAAIALgAAAMQ/AAD6IgAAAwAA + AGEAYQBhAAAAAwADAAAAXwEAAL8CAAAeBAAAAwBhAGEAYQAAAgEAEwAAAAkAWFRFWFRfRU9D + AAAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9DAQAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9D + AgAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9MAAAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9Q + AAAAAAAAAAAAAgEAHgAAABQAWFRFWFRfUEFJTlRTSEFQRV9FTkQAAAAAAAAAAIUAAQAFAAAA + zMzMAAGEAAEABQAAAAAAAAAAbwACAC4AAAABAAUAYFEAADggAAD/YwAAOCAAAP9jAABYKwAA + YFEAAFgrAABgUQAAOCAAAAAAAAIBACAAAAAWAFhURVhUX1BBSU5UU0hBUEVfQkVHSU4AAAAA + AAAAAIoAAQBBAAAAAwA7AAAADwBMaWJlcmF0aW9uIFNhbnMAAAAAAAB7AgAA//8AAAIABQAA + AAAAAAAJHAAAAAAAAAAAAP8DAAAAAACIAAEAAgAAAAEAhwABAAUAAAD/////AIYAAQAEAAAA + AAAAAHEAAgBGAAAAWlIAAPoiAAAGAAAAYQBhAGEAYQBhAGEAAAAGAAYAAABfAQAAvwIAAB4E + AAB9BQAA3QYAADwIAAAGAGEAYQBhAGEAYQBhAAACAQATAAAACQBYVEVYVF9FT0MAAAAAAAAA + AAACAQATAAAACQBYVEVYVF9FT0MBAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0MCAAAAAAAA + AAACAQATAAAACQBYVEVYVF9FT0MDAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0MEAAAAAAAA + AAACAQATAAAACQBYVEVYVF9FT0MFAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0wAAAAAAAAA + AAACAQATAAAACQBYVEVYVF9FT1AAAAAAAAAAAAACAQAeAAAAFABYVEVYVF9QQUlOVFNIQVBF + X0VORAAAAAAAAAAAhQABAAUAAADm5uYAAYQAAQAFAAAAAAAAAABvAAIALgAAAAEABQAIBwAA + WCsAAJ4ZAABYKwAAnhkAAHg2AAAIBwAAeDYAAAgHAABYKwAAAAAAAgEAIAAAABYAWFRFWFRf + UEFJTlRTSEFQRV9CRUdJTgAAAAAAAAAAigABAEEAAAADADsAAAAPAExpYmVyYXRpb24gU2Fu + cwAAAAAAAHsCAAD//wAAAgAFAAAAAAAAAAkcAAAAAAAAAAAA/wMAAAAAAIgAAQACAAAAAQCH + AAEABQAAAP////8AhgABAAQAAAAAAAAAcQACAC4AAAACCAAAGi4AAAMAAABhAGEAYQAAAAMA + AwAAAF8BAAC/AgAAHgQAAAMAYQBhAGEAAAIBABMAAAAJAFhURVhUX0VPQwAAAAAAAAAAAAIB + ABMAAAAJAFhURVhUX0VPQwEAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPQwIAAAAAAAAAAAIB + ABMAAAAJAFhURVhUX0VPTAAAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPUAAAAAAAAAAAAAIB + AB4AAAAUAFhURVhUX1BBSU5UU0hBUEVfRU5EAAAAAAAAAACFAAEABQAAAObm5gABhAABAAUA + AAAAAAAAAG8AAgAuAAAAAQAFAJ4ZAABYKwAANCwAAFgrAAA0LAAAeDYAAJ4ZAAB4NgAAnhkA + AFgrAAAAAAACAQAgAAAAFgBYVEVYVF9QQUlOVFNIQVBFX0JFR0lOAAAAAAAAAACKAAEAQQAA + AAMAOwAAAA8ATGliZXJhdGlvbiBTYW5zAAAAAAAAewIAAP//AAACAAUAAAAAAAAACRwAAAAA + AAAAAAD/AwAAAAAAiAABAAIAAAABAIcAAQAFAAAA/////wCGAAEABAAAAAAAAABxAAIAPgAA + AJgaAAAaLgAABQAAAGEAYQBhAGEAYQAAAAUABQAAAF8BAAC/AgAAHgQAAH0FAADdBgAABQBh + AGEAYQBhAGEAAAIBABMAAAAJAFhURVhUX0VPQwAAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VP + QwEAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPQwIAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VP + QwMAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPQwQAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VP + TAAAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPUAAAAAAAAAAAAAIBAB4AAAAUAFhURVhUX1BB + SU5UU0hBUEVfRU5EAAAAAAAAAACFAAEABQAAAObm5gABhAABAAUAAAAAAAAAAG8AAgAuAAAA + AQAFADQsAABYKwAAyj4AAFgrAADKPgAAeDYAADQsAAB4NgAANCwAAFgrAAAAAAACAQAgAAAA + FgBYVEVYVF9QQUlOVFNIQVBFX0JFR0lOAAAAAAAAAACKAAEAQQAAAAMAOwAAAA8ATGliZXJh + dGlvbiBTYW5zAAAAAAAAewIAAP//AAACAAUAAAAAAAAACRwAAAAAAAAAAAD/AwAAAAAAiAAB + AAIAAAABAIcAAQAFAAAA/////wCGAAEABAAAAAAAAABxAAIALgAAAC4tAAAaLgAAAwAAAGEA + YQBhAAAAAwADAAAAXwEAAL8CAAAeBAAAAwBhAGEAYQAAAgEAEwAAAAkAWFRFWFRfRU9DAAAA + AAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9DAQAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9DAgAA + AAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9MAAAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9QAAAA + AAAAAAAAAgEAHgAAABQAWFRFWFRfUEFJTlRTSEFQRV9FTkQAAAAAAAAAAIUAAQAFAAAA5ubm + AAGEAAEABQAAAAAAAAAAbwACAC4AAAABAAUAyj4AAFgrAABgUQAAWCsAAGBRAAB4NgAAyj4A + AHg2AADKPgAAWCsAAAAAAAIBACAAAAAWAFhURVhUX1BBSU5UU0hBUEVfQkVHSU4AAAAAAAAA + AIoAAQBBAAAAAwA7AAAADwBMaWJlcmF0aW9uIFNhbnMAAAAAAAB7AgAA//8AAAIABQAAAAAA + AAAJHAAAAAAAAAAAAP8DAAAAAACIAAEAAgAAAAEAhwABAAUAAAD/////AIYAAQAEAAAAAAAA + AHEAAgA2AAAAxD8AABouAAAEAAAAYQBhAGEAYQAAAAQABAAAAF8BAAC/AgAAHgQAAH0FAAAE + AGEAYQBhAGEAAAIBABMAAAAJAFhURVhUX0VPQwAAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VP + QwEAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPQwIAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VP + QwMAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPTAAAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VP + UAAAAAAAAAAAAAIBAB4AAAAUAFhURVhUX1BBSU5UU0hBUEVfRU5EAAAAAAAAAACFAAEABQAA + AObm5gABhAABAAUAAAAAAAAAAG8AAgAuAAAAAQAFAGBRAABYKwAA/2MAAFgrAAD/YwAAeDYA + AGBRAAB4NgAAYFEAAFgrAAAAAAACAQAgAAAAFgBYVEVYVF9QQUlOVFNIQVBFX0JFR0lOAAAA + AAAAAACKAAEAQQAAAAMAOwAAAA8ATGliZXJhdGlvbiBTYW5zAAAAAAAAewIAAP//AAACAAUA + AAAAAAAACRwAAAAAAAAAAAD/AwAAAAAAiAABAAIAAAABAIcAAQAFAAAA/////wCGAAEABAAA + AAAAAABxAAIARgAAAFpSAAAaLgAABgAAAGEAYQBhAGEAYQBhAAAABgAGAAAAXwEAAL8CAAAe + BAAAfQUAAN0GAAA8CAAABgBhAGEAYQBhAGEAYQAAAgEAEwAAAAkAWFRFWFRfRU9DAAAAAAAA + AAAAAgEAEwAAAAkAWFRFWFRfRU9DAQAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9DAgAAAAAA + AAAAAgEAEwAAAAkAWFRFWFRfRU9DAwAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9DBAAAAAAA + AAAAAgEAEwAAAAkAWFRFWFRfRU9DBQAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9MAAAAAAAA + AAAAAgEAEwAAAAkAWFRFWFRfRU9QAAAAAAAAAAAAAgEAHgAAABQAWFRFWFRfUEFJTlRTSEFQ + RV9FTkQAAAAAAAAAAIUAAQAFAAAAzMzMAAGEAAEABQAAAAAAAAAAbwACAC4AAAABAAUACAcA + AHg2AACeGQAAeDYAAJ4ZAACfQQAACAcAAJ9BAAAIBwAAeDYAAAAAAAIBACAAAAAWAFhURVhU + X1BBSU5UU0hBUEVfQkVHSU4AAAAAAAAAAIoAAQBBAAAAAwA7AAAADwBMaWJlcmF0aW9uIFNh + bnMAAAAAAAB7AgAA//8AAAIABQAAAAAAAAAJHAAAAAAAAAAAAP8DAAAAAACIAAEAAgAAAAEA + hwABAAUAAAD/////AIYAAQAEAAAAAAAAAHEAAgAuAAAAAggAADo5AAADAAAAYQBhAGEAAAAD + AAMAAABfAQAAvwIAAB4EAAADAGEAYQBhAAACAQATAAAACQBYVEVYVF9FT0MAAAAAAAAAAAAC + AQATAAAACQBYVEVYVF9FT0MBAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0MCAAAAAAAAAAAC + AQATAAAACQBYVEVYVF9FT0wAAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT1AAAAAAAAAAAAAC + AQAeAAAAFABYVEVYVF9QQUlOVFNIQVBFX0VORAAAAAAAAAAAhQABAAUAAADMzMwAAYQAAQAF + AAAAAAAAAABvAAIALgAAAAEABQCeGQAAeDYAADQsAAB4NgAANCwAAJ9BAACeGQAAn0EAAJ4Z + AAB4NgAAAAAAAgEAIAAAABYAWFRFWFRfUEFJTlRTSEFQRV9CRUdJTgAAAAAAAAAAigABAEEA + AAADADsAAAAPAExpYmVyYXRpb24gU2FucwAAAAAAAHsCAAD//wAAAgAFAAAAAAAAAAkcAAAA + AAAAAAAA/wMAAAAAAIgAAQACAAAAAQCHAAEABQAAAP////8AhgABAAQAAAAAAAAAcQACAEYA + AACYGgAAOjkAAAYAAABhAGEAYQBhAGEAYQAAAAYABgAAAF8BAAC/AgAAHgQAAH0FAADdBgAA + PAgAAAYAYQBhAGEAYQBhAGEAAAIBABMAAAAJAFhURVhUX0VPQwAAAAAAAAAAAAIBABMAAAAJ + AFhURVhUX0VPQwEAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPQwIAAAAAAAAAAAIBABMAAAAJ + AFhURVhUX0VPQwMAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPQwQAAAAAAAAAAAIBABMAAAAJ + AFhURVhUX0VPQwUAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPTAAAAAAAAAAAAAIBABMAAAAJ + AFhURVhUX0VPUAAAAAAAAAAAAAIBAB4AAAAUAFhURVhUX1BBSU5UU0hBUEVfRU5EAAAAAAAA + AACFAAEABQAAAMzMzAABhAABAAUAAAAAAAAAAG8AAgAuAAAAAQAFADQsAAB4NgAAyj4AAHg2 + AADKPgAAn0EAADQsAACfQQAANCwAAHg2AAAAAAACAQAgAAAAFgBYVEVYVF9QQUlOVFNIQVBF + X0JFR0lOAAAAAAAAAACKAAEAQQAAAAMAOwAAAA8ATGliZXJhdGlvbiBTYW5zAAAAAAAAewIA + AP//AAACAAUAAAAAAAAACRwAAAAAAAAAAAD/AwAAAAAAiAABAAIAAAABAIcAAQAFAAAA//// + /wCGAAEABAAAAAAAAABxAAIALgAAAC4tAAA6OQAAAwAAAGEAYQBhAAAAAwADAAAAXwEAAL8C + AAAeBAAAAwBhAGEAYQAAAgEAEwAAAAkAWFRFWFRfRU9DAAAAAAAAAAAAAgEAEwAAAAkAWFRF + WFRfRU9DAQAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9DAgAAAAAAAAAAAgEAEwAAAAkAWFRF + WFRfRU9MAAAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9QAAAAAAAAAAAAAgEAHgAAABQAWFRF + WFRfUEFJTlRTSEFQRV9FTkQAAAAAAAAAAIUAAQAFAAAAzMzMAAGEAAEABQAAAAAAAAAAbwAC + AC4AAAABAAUAyj4AAHg2AABgUQAAeDYAAGBRAACfQQAAyj4AAJ9BAADKPgAAeDYAAAAAAAIB + ACAAAAAWAFhURVhUX1BBSU5UU0hBUEVfQkVHSU4AAAAAAAAAAIoAAQBBAAAAAwA7AAAADwBM + aWJlcmF0aW9uIFNhbnMAAAAAAAB7AgAA//8AAAIABQAAAAAAAAAJHAAAAAAAAAAAAP8DAAAA + AACIAAEAAgAAAAEAhwABAAUAAAD/////AIYAAQAEAAAAAAAAAHEAAgAuAAAAxD8AADo5AAAD + AAAAYQBhAGEAAAADAAMAAABfAQAAvwIAAB4EAAADAGEAYQBhAAACAQATAAAACQBYVEVYVF9F + T0MAAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0MBAAAAAAAAAAACAQATAAAACQBYVEVYVF9F + T0MCAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0wAAAAAAAAAAAACAQATAAAACQBYVEVYVF9F + T1AAAAAAAAAAAAACAQAeAAAAFABYVEVYVF9QQUlOVFNIQVBFX0VORAAAAAAAAAAAhQABAAUA + AADMzMwAAYQAAQAFAAAAAAAAAABvAAIALgAAAAEABQBgUQAAeDYAAP9jAAB4NgAA/2MAAJ9B + AABgUQAAn0EAAGBRAAB4NgAAAAAAAgEAIAAAABYAWFRFWFRfUEFJTlRTSEFQRV9CRUdJTgAA + AAAAAAAAigABAEEAAAADADsAAAAPAExpYmVyYXRpb24gU2FucwAAAAAAAHsCAAD//wAAAgAF + AAAAAAAAAAkcAAAAAAAAAAAA/wMAAAAAAIgAAQACAAAAAQCHAAEABQAAAP////8AhgABAAQA + AAAAAAAAcQACAC4AAABaUgAAOjkAAAMAAABhAGEAYQAAAAMAAwAAAF8BAAC/AgAAHgQAAAMA + YQBhAGEAAAIBABMAAAAJAFhURVhUX0VPQwAAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPQwEA + AAAAAAAAAAIBABMAAAAJAFhURVhUX0VPQwIAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPTAAA + AAAAAAAAAAIBABMAAAAJAFhURVhUX0VPUAAAAAAAAAAAAAIBAB4AAAAUAFhURVhUX1BBSU5U + U0hBUEVfRU5EAAAAAAAAAACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgAI + BwAAGBUAAAgHAAA4IAAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUA + AAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIAnhkAABgVAACeGQAAOCAAAAQAGgAAAAEA + AAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAAbQAD + ADMAAAACAAgHAAAYFQAAnhkAABgVAAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgCeGQAAGBUAAJ4ZAAA4IAAA + BAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAA + AAAAAABtAAMAMwAAAAIANCwAABgVAAA0LAAAOCAAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAA + AAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAAbQADADMAAAACAJ4ZAAAYFQAA + NCwAABgVAAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP///wAB + hQABAAUAAAAAAAAAAG0AAwAzAAAAAgA0LAAAGBUAADQsAAA4IAAABAAaAAAAAQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIA + yj4AABgVAADKPgAAOCAAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAF + AAAA////AAGFAAEABQAAAAAAAAAAbQADADMAAAACADQsAAAYFQAAyj4AABgVAAAEABoAAAAB + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0A + AwAzAAAAAgDKPgAAGBUAAMo+AAA4IAAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQA + AAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIAYFEAABgVAABgUQAAOCAA + AAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAA + AAAAAAAAbQADADMAAAACAMo+AAAYFQAAYFEAABgVAAAEABoAAAABAAAAAAAAAAAAAAAAAAAA + AAAAAAAABAAAAACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgBgUQAAGBUA + AGBRAAA4IAAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8A + AYUAAQAFAAAAAAAAAABtAAMAMwAAAAIA/2MAABgVAAD/YwAAOCAAAAQAGgAAAAEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAAbQADADMAAAAC + AGBRAAAYFQAA/2MAABgVAAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEA + BQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgAIBwAAOCAAAAgHAABYKwAABAAaAAAA + AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABt + AAMAMwAAAAIAnhkAADggAACeGQAAWCsAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAE + AAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAAbQADADMAAAACAAgHAAA4IAAAnhkAADgg + AAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP///wABhQABAAUA + AAAAAAAAAG0AAwAzAAAAAgCeGQAAOCAAAJ4ZAABYKwAABAAaAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIANCwAADgg + AAA0LAAAWCsAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA//// + AAGFAAEABQAAAAAAAAAAbQADADMAAAACAJ4ZAAA4IAAANCwAADggAAAEABoAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAA + AgA0LAAAOCAAADQsAABYKwAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAAB + AAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIAyj4AADggAADKPgAAWCsAAAQAGgAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAA + bQADADMAAAACADQsAAA4IAAAyj4AADggAAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA + BAAAAACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgDKPgAAOCAAAMo+AABY + KwAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAF + AAAAAAAAAABtAAMAMwAAAAIAYFEAADggAABgUQAAWCsAAAQAGgAAAAEAAAAAAAAAAAAAAAAA + AAAAAAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAAbQADADMAAAACAMo+AAA4 + IAAAYFEAADggAAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP// + /wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgBgUQAAOCAAAGBRAABYKwAABAAaAAAAAQAAAAAA + AAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAA + AAIA/2MAADggAAD/YwAAWCsAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQA + AQAFAAAA////AAGFAAEABQAAAAAAAAAAbQADADMAAAACAGBRAAA4IAAA/2MAADggAAAEABoA + AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP///wABhQABAAUAAAAAAAAA + AG0AAwAzAAAAAgAIBwAAWCsAAAgHAAB4NgAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIAnhkAAFgrAACeGQAA + eDYAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEA + BQAAAAAAAAAAbQADADMAAAACAAgHAABYKwAAnhkAAFgrAAAEABoAAAABAAAAAAAAAAAAAAAA + AAAAAAAAAAAABAAAAACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgCeGQAA + WCsAAJ4ZAAB4NgAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD/ + //8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIANCwAAFgrAAA0LAAAeDYAAAQAGgAAAAEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAAbQADADMA + AAACAJ4ZAABYKwAANCwAAFgrAAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACE + AAEABQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgA0LAAAWCsAADQsAAB4NgAABAAa + AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAA + AABtAAMAMwAAAAIAyj4AAFgrAADKPgAAeDYAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA + AAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAAbQADADMAAAACADQsAABYKwAAyj4A + AFgrAAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP///wABhQAB + AAUAAAAAAAAAAG0AAwAzAAAAAgDKPgAAWCsAAMo+AAB4NgAABAAaAAAAAQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIAYFEA + AFgrAABgUQAAeDYAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA + ////AAGFAAEABQAAAAAAAAAAbQADADMAAAACAMo+AABYKwAAYFEAAFgrAAAEABoAAAABAAAA + AAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAz + AAAAAgBgUQAAWCsAAGBRAAB4NgAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAA + hAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIA/2MAAFgrAAD/YwAAeDYAAAQA + GgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAA + AAAAbQADADMAAAACAGBRAABYKwAA/2MAAFgrAAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAABAAAAACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgAIBwAAeDYAAAgH + AACfQQAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUA + AQAFAAAAAAAAAABtAAMAMwAAAAIACAcAAJ9BAACeGQAAn0EAAAQAGgAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAAbQADADMAAAACAJ4Z + AAB4NgAAnhkAAJ9BAAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAA + AP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgAIBwAAeDYAAJ4ZAAB4NgAABAAaAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMA + MwAAAAIAnhkAAHg2AACeGQAAn0EAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA + AIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAAbQADADMAAAACAJ4ZAACfQQAANCwAAJ9BAAAE + ABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP///wABhQABAAUAAAAA + AAAAAG0AAwAzAAAAAgA0LAAAeDYAADQsAACfQQAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAA + AAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIAnhkAAHg2AAA0 + LAAAeDYAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA////AAGF + AAEABQAAAAAAAAAAbQADADMAAAACADQsAAB4NgAANCwAAJ9BAAAEABoAAAABAAAAAAAAAAAA + AAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgA0 + LAAAn0EAAMo+AACfQQAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUA + AAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIAyj4AAHg2AADKPgAAn0EAAAQAGgAAAAEA + AAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAAbQAD + ADMAAAACADQsAAB4NgAAyj4AAHg2AAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgDKPgAAeDYAAMo+AACfQQAA + BAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAA + AAAAAABtAAMAMwAAAAIAyj4AAJ9BAABgUQAAn0EAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAA + AAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAAbQADADMAAAACAGBRAAB4NgAA + YFEAAJ9BAAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP///wAB + hQABAAUAAAAAAAAAAG0AAwAzAAAAAgDKPgAAeDYAAGBRAAB4NgAABAAaAAAAAQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIA + YFEAAHg2AABgUQAAn0EAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAF + AAAA////AAGFAAEABQAAAAAAAAAAbQADADMAAAACAGBRAACfQQAA/2MAAJ9BAAAEABoAAAAB + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0A + AwAzAAAAAgD/YwAAeDYAAP9jAACfQQAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQA + AAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIAYFEAAHg2AAD/YwAAeDYA + AAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAA== + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sd/qa/unit/tiledrendering/tiledrendering.cxx b/sd/qa/unit/tiledrendering/tiledrendering.cxx index 4122adce3289f..d8f7f23be73d3 100644 --- a/sd/qa/unit/tiledrendering/tiledrendering.cxx +++ b/sd/qa/unit/tiledrendering/tiledrendering.cxx @@ -80,6 +80,7 @@ class SdTiledRenderingTest : public test::BootstrapFixture, public unotest::Macr void testTdf102223(); void testPostKeyEventInvalidation(); void testTdf103083(); + void testTdf104405(); CPPUNIT_TEST_SUITE(SdTiledRenderingTest); CPPUNIT_TEST(testRegisterCallback); @@ -110,6 +111,7 @@ class SdTiledRenderingTest : public test::BootstrapFixture, public unotest::Macr CPPUNIT_TEST(testTdf102223); CPPUNIT_TEST(testPostKeyEventInvalidation); CPPUNIT_TEST(testTdf103083); + CPPUNIT_TEST(testTdf104405); CPPUNIT_TEST_SUITE_END(); private: @@ -1407,6 +1409,63 @@ void SdTiledRenderingTest::testTdf103083() comphelper::LibreOfficeKit::setActive(false); } +/** + * tests a clone-formatting bug around table cell attributes + */ +void SdTiledRenderingTest::testTdf104405() +{ + // Load the document. + comphelper::LibreOfficeKit::setActive(); + SdXImpressDocument* pXImpressDocument = createDoc("tdf104405.fodp"); + sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + SdPage* pActualPage = pViewShell->GetActualPage(); + SdrObject* pObject = pActualPage->GetObj(2); + auto pTableObject = dynamic_cast(pObject); + CPPUNIT_ASSERT(pTableObject); + + // select the middle cell + SdrView* pView = pViewShell->GetView(); + pView->MarkObj(pTableObject, pView->GetSdrPageView()); + pTableObject->setActiveCell(sdr::table::CellPos(2,1)); + pView->SdrBeginTextEdit(pTableObject); + EditView& rEditView = pView->GetTextEditOutlinerView()->GetEditView(); + rEditView.SetSelection(ESelection(0, 0, 0, 3)); // start para, start char, end para, end char. + + // trigger the clone-formatting/paintbrush command to copy formatting contents of cell + uno::Sequence< beans::PropertyValue > aArgs( 1 ); + aArgs[0].Name = "PersistentCopy"; + aArgs[0].Value = uno::makeAny( true ); + comphelper::dispatchCommand(".uno:FormatPaintbrush", aArgs); + + Scheduler::ProcessEventsToIdle(); + + // now click on the table + pView->MarkObj(pTableObject, pView->GetSdrPageView()); + pTableObject->setActiveCell(sdr::table::CellPos(0,0)); + pView->SdrBeginTextEdit(pTableObject); + EditView& rEditView2 = pView->GetTextEditOutlinerView()->GetEditView(); + rEditView2.SetSelection(ESelection(0, 0, 0, 3)); // start para, start char, end para, end char. + Rectangle aRect = pTableObject->GetCurrentBoundRect(); + pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONDOWN, + convertMm100ToTwip(aRect.getX() ), convertMm100ToTwip(aRect.getY() ), + 1, MOUSE_LEFT, 0); + pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONUP, + convertMm100ToTwip(aRect.getX() ), convertMm100ToTwip(aRect.getY() ), + 1, MOUSE_LEFT, 0); + + Scheduler::ProcessEventsToIdle(); + + // check that the first cell has acquired the resulting vertical style + xmlDocPtr pXmlDoc = parseXmlDump(); + OString aPrefix = "/SdDrawDocument/SdrModel/SdPage/SdrObjList/SdrTableObj/SdrTableObjImpl" + "/TableModel/Cell[1]/DefaultProperties/SfxItemSet/SdrTextVertAdjustItem"; + // the following name has a compiler-dependant part + CPPUNIT_ASSERT_EQUAL( getXPath(pXmlDoc, aPrefix, "value"), OUString("2") ); + xmlFreeDoc(pXmlDoc); + + comphelper::LibreOfficeKit::setActive(false); +} + CPPUNIT_TEST_SUITE_REGISTRATION(SdTiledRenderingTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sd/source/filter/eppt/epptooxml.hxx b/sd/source/filter/eppt/epptooxml.hxx index 178261b7e4497..c38be6881d2ce 100644 --- a/sd/source/filter/eppt/epptooxml.hxx +++ b/sd/source/filter/eppt/epptooxml.hxx @@ -26,6 +26,8 @@ #include #include "epptbase.hxx" +using ::sax_fastparser::FSHelperPtr; + namespace com { namespace sun { namespace star { namespace animations { class XAnimate; @@ -92,6 +94,8 @@ protected: virtual void ImplWriteSlideMaster( sal_uInt32 nPageNum, css::uno::Reference< css::beans::XPropertySet > const & aXBackgroundPropSet ) override; virtual void ImplWriteLayout( sal_Int32 nOffset, sal_uInt32 nMasterNum ) override; void ImplWritePPTXLayout( sal_Int32 nOffset, sal_uInt32 nMasterNum ); + bool WriteColorSchemes(FSHelperPtr pFS, const OUString& rThemePath); + static void WriteDefaultColorSchemes(FSHelperPtr pFS); void WriteTheme( sal_Int32 nThemeNum ); virtual bool ImplCreateDocument() override; diff --git a/sd/source/filter/eppt/pptx-epptooxml.cxx b/sd/source/filter/eppt/pptx-epptooxml.cxx index 8069c7adaaa07..0e6793deb9cc6 100644 --- a/sd/source/filter/eppt/pptx-epptooxml.cxx +++ b/sd/source/filter/eppt/pptx-epptooxml.cxx @@ -20,6 +20,8 @@ #include #include #include +#include +#include #include #include #include @@ -28,6 +30,7 @@ #include #include +#include #include #include #include @@ -67,6 +70,7 @@ #include // presentation namespaces +#define DMLNS "http://schemas.openxmlformats.org/drawingml/2006/main" #define PNMSS FSNS(XML_xmlns, XML_a), "http://schemas.openxmlformats.org/drawingml/2006/main", \ FSNS(XML_xmlns, XML_p), "http://schemas.openxmlformats.org/presentationml/2006/main", \ FSNS(XML_xmlns, XML_r), "http://schemas.openxmlformats.org/officeDocument/2006/relationships", \ @@ -93,7 +97,10 @@ using ::com::sun::star::container::XIndexAccess; using ::sax_fastparser::FSHelperPtr; +#if OSL_DEBUG_LEVEL > 1 void dump_pset(Reference< XPropertySet > const & rXPropSet); +#endif + #define IDS(x) OString(OStringLiteral(#x " ") + OString::number( mnShapeIdMax++ )).getStr() namespace oox { @@ -1788,7 +1795,9 @@ void PowerPointExport::ImplWritePPTXLayout( sal_Int32 nOffset, sal_uInt32 nMaste Reference< beans::XPropertySet > xPropSet( xSlide, uno::UNO_QUERY ); xPropSet->setPropertyValue( "Layout", makeAny( short( aLayoutInfo[ nOffset ].nType ) ) ); +#if OSL_DEBUG_LEVEL > 1 dump_pset(xPropSet); +#endif mXPagePropSet.set( xSlide, UNO_QUERY ); mXShapes.set( xSlide, UNO_QUERY ); @@ -1953,46 +1962,14 @@ ShapeExport& PowerPointShapeExport::WritePlaceholderShape( const Reference< XSha return *this; } -#define MINIMAL_THEME " \ - \ - \ +#define SYS_COLOR_SCHEMES " \ \ \ \ \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ + " + +#define MINIMAL_THEME " \ \ \ \ @@ -2169,25 +2146,166 @@ ShapeExport& PowerPointShapeExport::WritePlaceholderShape( const Reference< XSha \ \ \ - \ - " + " + +void PowerPointExport::WriteDefaultColorSchemes(FSHelperPtr pFS) +{ + for (int nId = PredefinedClrSchemeId::dk2; nId != PredefinedClrSchemeId::Count; nId++) + { + OUString sName = PredefinedClrNames[static_cast(nId)]; + sal_Int32 nColor = 0; + + switch (nId) + { + case PredefinedClrSchemeId::dk2: + nColor = 0x1F497D; + break; + case PredefinedClrSchemeId::lt2: + nColor = 0xEEECE1; + break; + case PredefinedClrSchemeId::accent1: + nColor = 0x4F81BD; + break; + case PredefinedClrSchemeId::accent2: + nColor = 0xC0504D; + break; + case PredefinedClrSchemeId::accent3: + nColor = 0x9BBB59; + break; + case PredefinedClrSchemeId::accent4: + nColor = 0x8064A2; + break; + case PredefinedClrSchemeId::accent5: + nColor = 0x4BACC6; + break; + case PredefinedClrSchemeId::accent6: + nColor = 0xF79646; + break; + case PredefinedClrSchemeId::hlink: + nColor = 0x0000FF; + break; + case PredefinedClrSchemeId::folHlink: + nColor = 0x800080; + break; + } + + OUString sOpenColorScheme = OUStringBuffer() + .append("") + .makeStringAndClear(); + pFS->write(sOpenColorScheme); + + pFS->singleElementNS(XML_a, XML_srgbClr, XML_val, I32SHEX(nColor), FSEND); + + OUString sCloseColorScheme = OUStringBuffer() + .append("") + .makeStringAndClear(); + pFS->write(sCloseColorScheme); + } +} + +bool PowerPointExport::WriteColorSchemes(FSHelperPtr pFS, const OUString& rThemePath) +{ + try + { + uno::Reference xDocProps(getModel(), uno::UNO_QUERY); + if (xDocProps.is()) + { + uno::Reference xPropsInfo = xDocProps->getPropertySetInfo(); + + const OUString aGrabBagPropName = "InteropGrabBag"; + if (xPropsInfo.is() && xPropsInfo->hasPropertyByName(aGrabBagPropName)) + { + comphelper::SequenceAsHashMap aGrabBag(xDocProps->getPropertyValue(aGrabBagPropName)); + uno::Sequence aCurrentTheme; + + aGrabBag.getValue(rThemePath) >>= aCurrentTheme; + + if (!aCurrentTheme.getLength()) + return false; + + // Order is important + for (int nId = PredefinedClrSchemeId::dk2; nId != PredefinedClrSchemeId::Count; nId++) + { + OUString sName = PredefinedClrNames[static_cast(nId)]; + sal_Int32 nColor = 0; + + for (auto aIt = aCurrentTheme.begin(); aIt != aCurrentTheme.end(); aIt++) + { + if (aIt->Name == sName) + { + aIt->Value >>= nColor; + break; + } + } + + OUString sOpenColorScheme = OUStringBuffer() + .append("") + .makeStringAndClear(); + pFS->write(sOpenColorScheme); + + pFS->singleElementNS(XML_a, XML_srgbClr, XML_val, I32SHEX(nColor), FSEND); + + OUString sCloseColorScheme = OUStringBuffer() + .append("") + .makeStringAndClear(); + pFS->write(sCloseColorScheme); + } + + // TODO: write complete color schemes & only if successful, protection against partial export + return true; + } + } + } + catch (const uno::Exception&) + { + SAL_WARN("writerfilter", "Failed to save documents grab bag"); + } + + return false; +} void PowerPointExport::WriteTheme( sal_Int32 nThemeNum ) { - FSHelperPtr pFS = openFragmentStreamWithSerializer( OUStringBuffer() - .append( "ppt/theme/theme" ) - .append( (sal_Int32) nThemeNum + 1 ) - .append( ".xml" ) - .makeStringAndClear(), - "application/vnd.openxmlformats-officedocument.theme+xml" ); - - pFS->startElementNS( XML_a, XML_theme, - FSNS( XML_xmlns, XML_a), "http://schemas.openxmlformats.org/drawingml/2006/main", - XML_name, "Office Theme", - FSEND ); + OUString sThemePath = OUStringBuffer() + .append("ppt/theme/theme") + .append(nThemeNum + 1) + .append(".xml") + .makeStringAndClear(); + + FSHelperPtr pFS = openFragmentStreamWithSerializer(sThemePath, + "application/vnd.openxmlformats-officedocument.theme+xml"); + + pFS->startElementNS(XML_a, XML_theme, + FSNS(XML_xmlns, XML_a), OString(DMLNS), + XML_name, "Office Theme", + FSEND); + + pFS->startElementNS(XML_a, XML_themeElements, FSEND); + pFS->startElementNS(XML_a, XML_clrScheme, XML_name, "Office", FSEND); - pFS->write( MINIMAL_THEME ); - pFS->endElementNS( XML_a, XML_theme ); + pFS->write(SYS_COLOR_SCHEMES); + + if (!WriteColorSchemes(pFS, sThemePath)) + { + // color schemes are required - use default values + WriteDefaultColorSchemes(pFS); + } + + pFS->endElementNS(XML_a, XML_clrScheme); + + // export remaining part + pFS->write(MINIMAL_THEME); + + pFS->endElementNS(XML_a, XML_themeElements); + pFS->endElementNS(XML_a, XML_theme); } bool PowerPointExport::ImplCreateDocument() @@ -2329,6 +2447,7 @@ SAL_DLLPUBLIC_EXPORT void* SAL_CALL sdfilt_component_getFactory( const sal_Char* } +#if OSL_DEBUG_LEVEL > 1 void dump_pset(Reference< XPropertySet > const & rXPropSet) { Reference< XPropertySetInfo > info = rXPropSet->getPropertySetInfo (); @@ -2356,5 +2475,6 @@ void dump_pset(Reference< XPropertySet > const & rXPropSet) SAL_INFO("sd.eppt", "??? "); } } +#endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/source/filter/ppt/pptin.cxx b/sd/source/filter/ppt/pptin.cxx index 78b5e274c7cdc..f2e90fc41cb6d 100644 --- a/sd/source/filter/ppt/pptin.cxx +++ b/sd/source/filter/ppt/pptin.cxx @@ -100,10 +100,8 @@ using namespace ::com::sun::star; SdPPTImport::SdPPTImport( SdDrawDocument* pDocument, SvStream& rDocStream, SotStorage& rStorage, SfxMedium& rMedium ) + : maParam(rDocStream, 0) { - - sal_uInt32 nImportFlags = 0; - #ifdef DBG_UTIL PropRead* pSummaryInformation = new PropRead( rStorage, OUString( "\005SummaryInformation" ) ); if ( pSummaryInformation->IsValid() ) @@ -123,7 +121,7 @@ SdPPTImport::SdPPTImport( SdDrawDocument* pDocument, SvStream& rDocStream, SotSt aPropItem.Read( aComment ); if ( aComment.indexOf( "Applixware" ) >= 0 ) { - nImportFlags |= PPT_IMPORTFLAGS_NO_TEXT_ASSERT; + maParam.nImportFlags |= PPT_IMPORTFLAGS_NO_TEXT_ASSERT; } } } @@ -131,11 +129,10 @@ SdPPTImport::SdPPTImport( SdDrawDocument* pDocument, SvStream& rDocStream, SotSt delete pSummaryInformation; #endif - PowerPointImportParam aParam( rDocStream, nImportFlags ); SvStream* pCurrentUserStream = rStorage.OpenSotStream( "Current User", StreamMode::STD_READ ); if( pCurrentUserStream ) { - ReadPptCurrentUserAtom( *pCurrentUserStream, aParam.aCurrentUserAtom ); + ReadPptCurrentUserAtom(*pCurrentUserStream, maParam.aCurrentUserAtom); delete pCurrentUserStream; } @@ -155,7 +152,7 @@ SdPPTImport::SdPPTImport( SdDrawDocument* pDocument, SvStream& rDocStream, SotSt } } - pFilter = new ImplSdPPTImport( pDocument, rStorage, rMedium, aParam ); + pFilter = new ImplSdPPTImport(pDocument, rStorage, rMedium, maParam); } bool SdPPTImport::Import() diff --git a/sd/source/filter/ppt/pptin.hxx b/sd/source/filter/ppt/pptin.hxx index f9435922facfb..7fb951fe48fc7 100644 --- a/sd/source/filter/ppt/pptin.hxx +++ b/sd/source/filter/ppt/pptin.hxx @@ -48,7 +48,6 @@ class ImplSdPPTImport : public SdrPowerPointImport { SfxMedium& mrMed; SotStorage& mrStorage; -// SvStream* mpPicStream; DffRecordHeader maDocHd; std::vector maSlideNameList; bool mbDocumentFound; @@ -82,14 +81,15 @@ public: class SdPPTImport { + PowerPointImportParam maParam; ImplSdPPTImport* pFilter; - public: +public: - SdPPTImport( SdDrawDocument* pDoc, SvStream& rDocStream, SotStorage& rStorage, SfxMedium& rMed ); - ~SdPPTImport(); + SdPPTImport( SdDrawDocument* pDoc, SvStream& rDocStream, SotStorage& rStorage, SfxMedium& rMed ); + ~SdPPTImport(); - bool Import(); + bool Import(); }; #endif // INCLUDED_SD_SOURCE_FILTER_PPT_PPTIN_HXX diff --git a/sd/source/ui/animations/CustomAnimationDialog.cxx b/sd/source/ui/animations/CustomAnimationDialog.cxx index 6726317d95bab..ef4169836c9ff 100644 --- a/sd/source/ui/animations/CustomAnimationDialog.cxx +++ b/sd/source/ui/animations/CustomAnimationDialog.cxx @@ -119,6 +119,7 @@ PresetPropertyBox::PresetPropertyBox( sal_Int32 nControlType, vcl::Window* pPare : PropertySubControl( nControlType ), maModifyLink(rModifyHdl) { mpControl = VclPtr::Create( pParent, WB_BORDER|WB_TABSTOP|WB_DROPDOWN ); + mpControl->set_hexpand(true); mpControl->SetDropDownLineCount( 10 ); mpControl->SetSelectHdl( LINK(this, PresetPropertyBox, OnSelect) ); mpControl->SetHelpId( HID_SD_CUSTOMANIMATIONPANE_PRESETPROPERTYBOX ); @@ -201,6 +202,7 @@ ColorPropertyBox::ColorPropertyBox( sal_Int32 nControlType, vcl::Window* pParent : PropertySubControl( nControlType ), maModifyLink(rModifyHdl) { mpControl = VclPtr::Create(pParent); + mpControl->set_hexpand(true); mpControl->SetSelectHdl( LINK(this, ColorPropertyBox, OnSelect) ); mpControl->SetHelpId( HID_SD_CUSTOMANIMATIONPANE_COLORPROPERTYBOX ); @@ -262,6 +264,7 @@ FontPropertyBox::FontPropertyBox( sal_Int32 nControlType, vcl::Window* pParent, : PropertySubControl( nControlType ), maModifyHdl(rModifyHdl) { mpControl = VclPtr::Create( pParent, WB_BORDER|WB_TABSTOP|WB_DROPDOWN ); + mpControl->set_hexpand(true); mpControl->SetDropDownLineCount( 10 ); mpControl->SetSelectHdl( LINK(this, FontPropertyBox, ControlSelectHdl) ); mpControl->SetHelpId( HID_SD_CUSTOMANIMATIONPANE_FONTPROPERTYBOX ); @@ -349,6 +352,7 @@ DropdownMenuBox::DropdownMenuBox( vcl::Window* pParent, Edit* pSubControl, Popup mpDropdownButton->SetPopupMenu( pMenu ); SetSubEdit( mpSubControl ); + set_hexpand(true); mpSubControl->SetParent( this ); mpSubControl->Show(); } diff --git a/sd/source/ui/animations/CustomAnimationPane.cxx b/sd/source/ui/animations/CustomAnimationPane.cxx index 237bdd198a7aa..7e2fc961e67ea 100644 --- a/sd/source/ui/animations/CustomAnimationPane.cxx +++ b/sd/source/ui/animations/CustomAnimationPane.cxx @@ -130,6 +130,7 @@ CustomAnimationPane::CustomAnimationPane( Window* pParent, ViewShellBase& rBase, mrBase( rBase ), mpCustomAnimationPresets(nullptr), mnPropertyType( nPropertyTypeNone ), + mnMotionPathPos( 3 ), mnCurvePathPos( LISTBOX_ENTRY_NOTFOUND ), mnPolygonPathPos( LISTBOX_ENTRY_NOTFOUND ), mnFreeformPathPos( LISTBOX_ENTRY_NOTFOUND ), @@ -146,6 +147,7 @@ CustomAnimationPane::CustomAnimationPane( Window* pParent, ViewShellBase& rBase, mrBase( rBase ), mpCustomAnimationPresets(nullptr), mnPropertyType( nPropertyTypeNone ), + mnMotionPathPos( 3 ), mnCurvePathPos( LISTBOX_ENTRY_NOTFOUND ), mnPolygonPathPos( LISTBOX_ENTRY_NOTFOUND ), mnFreeformPathPos( LISTBOX_ENTRY_NOTFOUND ), @@ -308,14 +310,7 @@ void CustomAnimationPane::KeyInput( const KeyEvent& rKEvt ) void CustomAnimationPane::addListener() { Link aLink( LINK(this,CustomAnimationPane,EventMultiplexerListener) ); - mrBase.GetEventMultiplexer()->AddEventListener ( - aLink, - EventMultiplexerEventId::EditViewSelection - | EventMultiplexerEventId::CurrentPageChanged - | EventMultiplexerEventId::MainViewRemoved - | EventMultiplexerEventId::MainViewAdded - | EventMultiplexerEventId::Disposing - | EventMultiplexerEventId::EndTextEdit); + mrBase.GetEventMultiplexer()->AddEventListener(aLink); } void CustomAnimationPane::removeListener() @@ -1983,6 +1978,64 @@ double CustomAnimationPane::getDuration() return fDuration; } +PathKind CustomAnimationPane::getCreatePathKind() const +{ + PathKind eKind = PathKind::NONE; + + if( ( mpLBAnimation->GetSelectEntryCount() == 1 ) && + ( mpLBCategory->GetSelectEntryPos() == mnMotionPathPos ) ) + { + const sal_Int32 nPos = mpLBAnimation->GetSelectEntryPos(); + if( nPos == mnCurvePathPos ) + { + eKind = PathKind::CURVE; + } + else if( nPos == mnPolygonPathPos ) + { + eKind = PathKind::POLYGON; + } + else if( nPos == mnFreeformPathPos ) + { + eKind = PathKind::FREEFORM; + } + } + + return eKind; +} + +void CustomAnimationPane::createPath( PathKind eKind, std::vector< Any >& rTargets, double fDuration) +{ + sal_uInt16 nSID = 0; + + switch( eKind ) + { + case PathKind::CURVE: nSID = SID_DRAW_BEZIER_NOFILL; break; + case PathKind::POLYGON: nSID = SID_DRAW_POLYGON_NOFILL; break; + case PathKind::FREEFORM: nSID = SID_DRAW_FREELINE_NOFILL; break; + default: break; + } + + if( nSID ) + { + DrawViewShell* pViewShell = dynamic_cast< DrawViewShell* >( + FrameworkHelper::Instance(mrBase)->GetViewShell(FrameworkHelper::msCenterPaneURL).get()); + + if( pViewShell ) + { + DrawView* pView = pViewShell->GetDrawView(); + if( pView ) + pView->UnmarkAllObj(); + + std::vector< Any > aTargets( 1, Any( fDuration ) ); + aTargets.insert( aTargets.end(), rTargets.begin(), rTargets.end() ); + Sequence< Any > aTargetSequence( comphelper::containerToSequence( aTargets ) ); + const SfxUnoAnyItem aItem( SID_ADD_MOTION_PATH, Any( aTargetSequence ) ); + pViewShell->GetViewFrame()->GetDispatcher()->ExecuteList( nSID, SfxCallMode::ASYNCHRON, {&aItem} ); + } + } +} + + /// this link is called when the property box is modified by the user IMPL_LINK_NOARG(CustomAnimationPane, implPropertyHdl, LinkParamNone*, void) { @@ -2023,17 +2076,45 @@ IMPL_LINK_NOARG(CustomAnimationPane, AnimationSelectHdl, ListBox&, void) if( maListSelection.size() == 1 ) { CustomAnimationPresetPtr* pPreset = static_cast< CustomAnimationPresetPtr* >(mpLBAnimation->GetSelectEntryData()); + PathKind ePathKind = getCreatePathKind(); + // tdf#99137, the selected entry may also be a subcategory title, so not an effect // just leave in this case - if (!pPreset) + if ( !pPreset && ( ePathKind == PathKind::NONE ) ) return; - const double fDuration = (*pPreset)->getDuration(); + + EffectSequence::iterator aIter( maListSelection.begin() ); + const EffectSequence::iterator aEnd( maListSelection.end() ); + + if ( ePathKind != PathKind::NONE ) + { + std::vector< Any > aTargets; + MainSequenceRebuildGuard aGuard( mpMainSequence ); + + while( aIter != aEnd ) + { + aTargets.push_back( (*aIter)->getTarget() ); + CustomAnimationEffectPtr pEffect = (*aIter++); + + EffectSequenceHelper* pEffectSequence = pEffect->getEffectSequence(); + if( !pEffectSequence ) + pEffectSequence = mpMainSequence.get(); + + // delete the old animation, new one will be appended + // by createPath and SID_ADD_MOTION_PATH therein + pEffectSequence->remove( pEffect ); + } + + createPath( ePathKind, aTargets, 0.0 ); + updateMotionPathTags(); + return; + } + CustomAnimationPresetPtr pDescriptor(*pPreset); + const double fDuration = (*pPreset)->getDuration(); MainSequenceRebuildGuard aGuard( mpMainSequence ); // get selected effect - EffectSequence::iterator aIter( maListSelection.begin() ); - const EffectSequence::iterator aEnd( maListSelection.end() ); while( aIter != aEnd ) { CustomAnimationEffectPtr pEffect = (*aIter++); @@ -2044,6 +2125,7 @@ IMPL_LINK_NOARG(CustomAnimationPane, AnimationSelectHdl, ListBox&, void) pEffectSequence->replace( pEffect, pDescriptor, fDuration ); } + onPreview(false); } } @@ -2084,18 +2166,19 @@ sal_uInt32 CustomAnimationPane::fillAnimationLB( bool bHasText ) sal_uInt32 nFirstEffect = LISTBOX_ENTRY_NOTFOUND; - if(nPosition == 0) + PresetCategoryList::const_iterator aCategoryIter( rCategoryList.begin() ); + const PresetCategoryList::const_iterator aCategoryEnd( rCategoryList.end() ); + mpLBAnimation->Clear(); + + if(nPosition == mnMotionPathPos) { OUString sMotionPathLabel( SD_RESSTR( STR_CUSTOMANIMATION_USERPATH ) ); mpLBAnimation->InsertCategory( sMotionPathLabel ); mnCurvePathPos = mpLBAnimation->InsertEntry( sdr::GetResourceString(STR_ObjNameSingulCOMBLINE) ); mnPolygonPathPos = mpLBAnimation->InsertEntry( sdr::GetResourceString(STR_ObjNameSingulPOLY) ); mnFreeformPathPos = mpLBAnimation->InsertEntry( sdr::GetResourceString(STR_ObjNameSingulFREELINE) ); - } - PresetCategoryList::const_iterator aCategoryIter( rCategoryList.begin() ); - const PresetCategoryList::const_iterator aCategoryEnd( rCategoryList.end() ); - mpLBAnimation->Clear(); + while(aCategoryIter != aCategoryEnd) { PresetCategoryPtr pCategory( *aCategoryIter++ ); diff --git a/sd/source/ui/animations/CustomAnimationPane.hxx b/sd/source/ui/animations/CustomAnimationPane.hxx index 636fff1edcb01..f6cef94dbafd8 100644 --- a/sd/source/ui/animations/CustomAnimationPane.hxx +++ b/sd/source/ui/animations/CustomAnimationPane.hxx @@ -118,6 +118,8 @@ private: bool setProperty1Value( sal_Int32 nType, const CustomAnimationEffectPtr& pEffect, const css::uno::Any& rValue ); void UpdateLook(); sal_uInt32 fillAnimationLB( bool bHasText ); + PathKind getCreatePathKind() const; + void createPath( PathKind eKind, std::vector< ::com::sun::star::uno::Any >& rTargets, double fDuration ); DECL_LINK( implControlListBoxHdl, ListBox&, void ); DECL_LINK( implClickHdl, Button*, void ); @@ -159,6 +161,7 @@ private: OUString maStrProperty; sal_Int32 mnPropertyType; + sal_Int32 mnMotionPathPos; sal_Int32 mnCurvePathPos; sal_Int32 mnPolygonPathPos; sal_Int32 mnFreeformPathPos; diff --git a/sd/source/ui/animations/SlideTransitionPane.cxx b/sd/source/ui/animations/SlideTransitionPane.cxx index dc65fdde43dae..05a1734498752 100644 --- a/sd/source/ui/animations/SlideTransitionPane.cxx +++ b/sd/source/ui/animations/SlideTransitionPane.cxx @@ -947,14 +947,7 @@ void SlideTransitionPane::playCurrentEffect() void SlideTransitionPane::addListener() { Link aLink( LINK(this,SlideTransitionPane,EventMultiplexerListener) ); - mrBase.GetEventMultiplexer()->AddEventListener ( - aLink, - EventMultiplexerEventId::EditViewSelection - | EventMultiplexerEventId::SlideSortedSelection - | EventMultiplexerEventId::CurrentPageChanged - | EventMultiplexerEventId::MainViewRemoved - | EventMultiplexerEventId::MainViewAdded - | EventMultiplexerEventId::ConfigurationUpdated); + mrBase.GetEventMultiplexer()->AddEventListener( aLink ); } void SlideTransitionPane::removeListener() diff --git a/sd/source/ui/annotations/annotationmanager.cxx b/sd/source/ui/annotations/annotationmanager.cxx index 1eda7533e41f7..f2fcd2ce71125 100644 --- a/sd/source/ui/annotations/annotationmanager.cxx +++ b/sd/source/ui/annotations/annotationmanager.cxx @@ -866,12 +866,7 @@ void AnnotationManagerImpl::DisposeTags() void AnnotationManagerImpl::addListener() { Link aLink( LINK(this,AnnotationManagerImpl,EventMultiplexerListener) ); - mrBase.GetEventMultiplexer()->AddEventListener ( - aLink, - EventMultiplexerEventId::EditViewSelection - | EventMultiplexerEventId::CurrentPageChanged - | EventMultiplexerEventId::MainViewRemoved - | EventMultiplexerEventId::MainViewAdded); + mrBase.GetEventMultiplexer()->AddEventListener(aLink); } void AnnotationManagerImpl::removeListener() diff --git a/sd/source/ui/app/sdmod.cxx b/sd/source/ui/app/sdmod.cxx index d5cfa2a62fe04..067db175bf49e 100644 --- a/sd/source/ui/app/sdmod.cxx +++ b/sd/source/ui/app/sdmod.cxx @@ -53,7 +53,6 @@ #include "strings.hrc" #include "res_bmp.hrc" #include "cfgids.hxx" -#include "tools/SdGlobalResourceContainer.hxx" #define SdModule @@ -77,7 +76,6 @@ SdModule::SdModule(SfxObjectFactory* pFact1, SfxObjectFactory* pFact2 ) pSearchItem(nullptr), pNumberFormatter( nullptr ), bWaterCan(false), - mpResourceContainer(new ::sd::SdGlobalResourceContainer()), mbEventListenerAdded(false), mpColorConfig(new svtools::ColorConfig) { @@ -110,8 +108,6 @@ SdModule::~SdModule() Application::RemoveEventListener( LINK( this, SdModule, EventListenerHdl ) ); } - mpResourceContainer.reset(); - delete mpErrorHdl; mpVirtualRefDevice.disposeAndClear(); } diff --git a/sd/source/ui/app/sdxfer.cxx b/sd/source/ui/app/sdxfer.cxx index 12b55eeb1d8ff..dc93f8975f17b 100644 --- a/sd/source/ui/app/sdxfer.cxx +++ b/sd/source/ui/app/sdxfer.cxx @@ -445,8 +445,10 @@ void SdTransferable::AddSupportedFormats() AddFormat( SotClipboardFormatId::BITMAP ); } - if( lcl_HasOnlyOneTable( mpSdDrawDocument ) ) + if( lcl_HasOnlyOneTable( mpSdDrawDocument ) ) { AddFormat( SotClipboardFormatId::RTF ); + AddFormat( SotClipboardFormatId::RICHTEXT ); + } } if( mpImageMap ) diff --git a/sd/source/ui/dlg/PhotoAlbumDialog.cxx b/sd/source/ui/dlg/PhotoAlbumDialog.cxx index 54c6be14b1bb4..7a285f93cd193 100644 --- a/sd/source/ui/dlg/PhotoAlbumDialog.cxx +++ b/sd/source/ui/dlg/PhotoAlbumDialog.cxx @@ -531,7 +531,7 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, FileHdl, Button*, void) // Store full path, show filename only. Use INetURLObject to display spaces in filename correctly INetURLObject aUrl = INetURLObject(aFilesArr[i]); sal_Int16 nPos = pImagesLst->InsertEntry( aUrl.GetLastName(INetURLObject::DECODE_WITH_CHARSET) ); - pImagesLst->SetEntryData(nPos, new OUString(aUrl.GetMainURL(INetURLObject::DECODE_WITH_CHARSET))); + pImagesLst->SetEntryData(nPos, new OUString(aUrl.GetMainURL(INetURLObject::NO_DECODE))); } } } diff --git a/sd/source/ui/dlg/dlgsnap.cxx b/sd/source/ui/dlg/dlgsnap.cxx index 1b9a51655c5aa..342108f3d6b82 100644 --- a/sd/source/ui/dlg/dlgsnap.cxx +++ b/sd/source/ui/dlg/dlgsnap.cxx @@ -156,8 +156,8 @@ void SdSnapLineDlg::GetAttr(SfxItemSet& rOutAttrs) nYValue = Fraction( GetCoreValue( *m_pMtrFldY, MapUnit::Map100thMM) ) * aUIScale; rOutAttrs.Put(SfxAllEnumItem(ATTR_SNAPLINE_KIND, (sal_uInt16)eKind)); - rOutAttrs.Put(SfxUInt32Item(ATTR_SNAPLINE_X, nXValue)); - rOutAttrs.Put(SfxUInt32Item(ATTR_SNAPLINE_Y, nYValue)); + rOutAttrs.Put(SfxInt32Item(ATTR_SNAPLINE_X, nXValue)); + rOutAttrs.Put(SfxInt32Item(ATTR_SNAPLINE_Y, nYValue)); } void SdSnapLineDlg::HideRadioGroup() diff --git a/sd/source/ui/dlg/navigatr.cxx b/sd/source/ui/dlg/navigatr.cxx index 084fdaf2fc038..d689036e3072a 100644 --- a/sd/source/ui/dlg/navigatr.cxx +++ b/sd/source/ui/dlg/navigatr.cxx @@ -82,6 +82,9 @@ SdNavigatorWin::SdNavigatorWin(vcl::Window* pParent, SfxBindings* pInBindings) maTlbObjects->SetAccessibleName(SD_RESSTR(STR_OBJECTS_TREE)); + maTlbObjects->SetDoubleClickHdl(LINK(this, SdNavigatorWin, ClickObjectHdl)); + maTlbObjects->SetSelectionMode(SelectionMode::Single); + maToolbox->SetSelectHdl( LINK( this, SdNavigatorWin, SelectToolboxHdl ) ); maToolbox->SetDropdownClickHdl( LINK(this, SdNavigatorWin, DropdownClickToolBoxHdl) ); const sal_uInt16 nDragTypeId = maToolbox->GetItemId("dragmode"); diff --git a/sd/source/ui/dlg/prltempl.cxx b/sd/source/ui/dlg/prltempl.cxx index 7c254907be917..0e28ee5e9ab56 100644 --- a/sd/source/ui/dlg/prltempl.cxx +++ b/sd/source/ui/dlg/prltempl.cxx @@ -243,6 +243,7 @@ void SdPresLayoutTemplateDlg::PageCreated( sal_uInt16 nId, SfxTabPage &rPage ) aSet.Put (SvxGradientListItem(pGradientList,SID_GRADIENT_LIST)); aSet.Put (SvxHatchListItem(pHatchingList,SID_HATCH_LIST)); aSet.Put (SvxBitmapListItem(pBitmapList,SID_BITMAP_LIST)); + aSet.Put (SvxPatternListItem(pPatternList,SID_PATTERN_LIST)); aSet.Put (SfxUInt16Item(SID_PAGE_TYPE,0)); aSet.Put (SfxUInt16Item(SID_DLG_TYPE,1)); aSet.Put (SfxUInt16Item(SID_TABPAGE_POS,0)); diff --git a/sd/source/ui/dlg/sdpreslt.cxx b/sd/source/ui/dlg/sdpreslt.cxx index 6ee9b9a24b204..3e4f60861fea3 100644 --- a/sd/source/ui/dlg/sdpreslt.cxx +++ b/sd/source/ui/dlg/sdpreslt.cxx @@ -120,7 +120,7 @@ void SdPresLayoutDlg::GetAttr(SfxItemSet& rOutAttrs) { aLayoutName = maName + "#" + maLayoutNames[ nId - 1 ]; } - else + else if (nId) { aLayoutName = maLayoutNames[ nId - 1 ]; if( aLayoutName == maStrNone ) diff --git a/sd/source/ui/dlg/tpaction.cxx b/sd/source/ui/dlg/tpaction.cxx index d1a0b7472dd85..3ab1e5ad9a5e1 100644 --- a/sd/source/ui/dlg/tpaction.cxx +++ b/sd/source/ui/dlg/tpaction.cxx @@ -662,30 +662,39 @@ IMPL_LINK_NOARG(SdTPAction, CheckFileHdl, Control&, void) { WaitObject aWait( GetParentDialog() ); + bool bHideTreeDocument = true; + // is it a draw file? // open with READ, otherwise the Storages might write into the file! uno::Reference < embed::XStorage > xStorage = aMedium.GetStorage(); DBG_ASSERT( xStorage.is(), "No storage!" ); uno::Reference < container::XNameAccess > xAccess( xStorage, uno::UNO_QUERY ); - if( xAccess.is() && - ( xAccess->hasByName( pStarDrawXMLContent ) || - xAccess->hasByName( pStarDrawOldXMLContent ) ) ) + if (xAccess.is()) { - SdDrawDocument* pBookmarkDoc = mpDoc->OpenBookmarkDoc( aFile ); - if( pBookmarkDoc ) + try + { + if (xAccess->hasByName(pStarDrawXMLContent) || + xAccess->hasByName(pStarDrawOldXMLContent)) + { + if (SdDrawDocument* pBookmarkDoc = mpDoc->OpenBookmarkDoc(aFile)) + { + aLastFile = aFile; + + m_pLbTreeDocument->Clear(); + m_pLbTreeDocument->Fill(pBookmarkDoc, true, aFile); + mpDoc->CloseBookmarkDoc(); + m_pLbTreeDocument->Show(); + bHideTreeDocument = false; + } + } + } + catch (...) { - aLastFile = aFile; - - m_pLbTreeDocument->Clear(); - m_pLbTreeDocument->Fill( pBookmarkDoc, true, aFile ); - mpDoc->CloseBookmarkDoc(); - m_pLbTreeDocument->Show(); } - else - m_pLbTreeDocument->Hide(); } - else + + if (bHideTreeDocument) m_pLbTreeDocument->Hide(); } diff --git a/sd/source/ui/func/fuconbez.cxx b/sd/source/ui/func/fuconbez.cxx index a3e09bd490362..6212dc62af3f7 100644 --- a/sd/source/ui/func/fuconbez.cxx +++ b/sd/source/ui/func/fuconbez.cxx @@ -70,6 +70,19 @@ rtl::Reference FuConstructBezierPolygon::Create( ViewShell* pViewSh, ::s return xFunc; } +void FuConstructBezierPolygon::DoExecute( SfxRequest& rReq ) +{ + FuConstruct::DoExecute( rReq ); + + const SfxItemSet* pArgs = rReq.GetArgs(); + if( pArgs ) + { + const SfxPoolItem* pPoolItem = nullptr; + if( SfxItemState::SET == pArgs->GetItemState( SID_ADD_MOTION_PATH, true, &pPoolItem ) ) + maTargets = static_cast( pPoolItem )->GetValue(); + } +} + bool FuConstructBezierPolygon::MouseButtonDown(const MouseEvent& rMEvt) { bool bReturn = FuConstruct::MouseButtonDown(rMEvt); diff --git a/sd/source/ui/func/fuinsert.cxx b/sd/source/ui/func/fuinsert.cxx index f68e92bfa0ca5..c7ae0abcd395a 100644 --- a/sd/source/ui/func/fuinsert.cxx +++ b/sd/source/ui/func/fuinsert.cxx @@ -253,6 +253,7 @@ void FuInsertClipboard::DoExecute( SfxRequest& ) pDlg->Insert( SotClipboardFormatId::STRING, OUString() ); pDlg->Insert( SotClipboardFormatId::HTML, OUString() ); pDlg->Insert( SotClipboardFormatId::RTF, OUString() ); + pDlg->Insert( SotClipboardFormatId::RICHTEXT, OUString() ); pDlg->Insert( SotClipboardFormatId::EDITENGINE, OUString() ); //TODO/MBA: testing diff --git a/sd/source/ui/func/futext.cxx b/sd/source/ui/func/futext.cxx index 1657d2a39895c..37fb65c979430 100644 --- a/sd/source/ui/func/futext.cxx +++ b/sd/source/ui/func/futext.cxx @@ -40,6 +40,7 @@ #include #include #include +#include #include #include #include @@ -1358,6 +1359,24 @@ bool FuText::cancel() } } +/// Is rCell covered by the rFirst - rLast selection? +static bool IsInSelection(const sdr::table::CellPos& rFirst, const sdr::table::CellPos& rLast, sdr::table::CellPos& rCell) +{ + if (rCell.mnCol < rFirst.mnCol) + return false; + + if (rCell.mnCol > rLast.mnCol) + return false; + + if (rCell.mnRow < rFirst.mnRow) + return false; + + if (rCell.mnRow > rLast.mnRow) + return false; + + return true; +} + void FuText::ChangeFontSize( bool bGrow, OutlinerView* pOLV, const FontList* pFontList, ::sd::View* pView ) { if( !pFontList || !pView ) @@ -1377,8 +1396,32 @@ void FuText::ChangeFontSize( bool bGrow, OutlinerView* pOLV, const FontList* pFo SdrTextObj* pTextObj = dynamic_cast< SdrTextObj* >( rMarkList.GetMark(nMark)->GetMarkedSdrObj() ); if( pTextObj ) { + rtl::Reference xSelectionController(pView->getSelectionController()); + sdr::table::CellPos aFirstCell; + sdr::table::CellPos aLastCell; + sdr::table::SdrTableObj* pTableObject = nullptr; + if (xSelectionController.is() && xSelectionController->hasSelectedCells()) + { + // This is a table object, and one or more of its cells are + // selected. + xSelectionController->getSelectedCells(aFirstCell, aLastCell); + pTableObject = dynamic_cast(pTextObj); + } for( sal_Int32 nText = 0; nText < pTextObj->getTextCount(); nText++ ) { + if (pTableObject) + { + sal_Int32 nColCount = pTableObject->getColumnCount(); + if (nColCount > 0) + { + sdr::table::CellPos aPos(nText % nColCount, nText / nColCount); + if (!IsInSelection(aFirstCell, aLastCell, aPos)) + // There is a selection, but this cell is not + // part of it: don't change font size. + continue; + } + } + pTextObj->setActiveText( nText ); // Put text object into edit mode. diff --git a/sd/source/ui/inc/EventMultiplexer.hxx b/sd/source/ui/inc/EventMultiplexer.hxx index 2e8aeb2fbe4a3..45e8e8f841331 100644 --- a/sd/source/ui/inc/EventMultiplexer.hxx +++ b/sd/source/ui/inc/EventMultiplexer.hxx @@ -35,101 +35,93 @@ class ViewShellBase; } -enum class EventMultiplexerEventId : sal_uInt32 { +enum class EventMultiplexerEventId +{ /** The EventMultiplexer itself is being disposed. Called for a live EventMultiplexer. Removing a listener as response is not necessary, though. */ - Disposing = 0x00000001, + Disposing, /** The selection in the center pane has changed. */ - EditViewSelection = 0x00000002, + EditViewSelection, /** The selection in the slide sorter has changed, regardless of whether the slide sorter is displayed in the left pane or the center pane. */ - SlideSortedSelection = 0x00000004, + SlideSortedSelection, /** The current page has changed. */ - CurrentPageChanged = 0x00000008, + CurrentPageChanged, /** The current MainViewShell (the ViewShell displayed in the center pane) has been removed. */ - MainViewRemoved = 0x00000010, + MainViewRemoved, /** A new ViewShell has been made the MainViewShell. */ - MainViewAdded = 0x00000020, + MainViewAdded, /** A new ViewShell is being displayed in one of the panes. Note that for the ViewShell in the center pane both this event type and EventId::MainViewAdded is broadcasted. */ - ViewAdded = 0x00000040, + ViewAdded, /** The PaneManager is being destroyed. */ - PaneManagerDying = 0x00000080, + PaneManagerDying, /** Edit mode was (or is being) switched to normal mode. Find EventId::EditModeMaster below. */ - EditModeNormal = 0x00000100, + EditModeNormal, /** One or more pages have been inserted into or deleted from the model. */ - PageOrder = 0x00000200, + PageOrder, /** Text editing in one of the shapes in the MainViewShell has started. */ - BeginTextEdit = 0x00000400, + BeginTextEdit, /** Text editing in one of the shapes in the MainViewShell has ended. */ - EndTextEdit = 0x00000800, + EndTextEdit, /** A UNO controller has been attached to the UNO frame. */ - ControllerAttached = 0x00001000, + ControllerAttached, /** A UNO controller has been detached to the UNO frame. */ - ControllerDetached = 0x00002000, + ControllerDetached, /** The state of a shape has changed. The page is available in the user data. */ - ShapeChanged = 0x00004000, + ShapeChanged, /** A shape has been inserted to a page. The page is available in the user data. */ - ShapeInserted = 0x00008000, + ShapeInserted, /** A shape has been removed from a page. The page is available in the user data. */ - ShapeRemoved = 0x00010000, + ShapeRemoved, /** A configuration update has been completed. */ - ConfigurationUpdated = 0x00020000, + ConfigurationUpdated, /** Edit mode was (or is being) switched to master mode. */ - EditModeMaster = 0x00040000, - - /** Some constants that make it easier to remove a listener for all - event types at once. - */ - AllMask = 0x0007ffff, - NONE = 0x00000000 + EditModeMaster, }; -namespace o3tl { - template<> struct typed_flags : is_typed_flags {}; -} namespace sd { namespace tools { @@ -150,14 +142,6 @@ public: There is usually one EventMultiplexer instance per ViewShellBase(). Call the laters GetEventMultiplexer() method to get access to that instance. - - When a listener is registered it can specify the events it - wants to be informed of. This can be done with code like the following: - - mrViewShellBase.GetEventMultiplexer().AddEventListener ( - LINK(this,MasterPagesSelector,EventMultiplexerListener), - EventMultiplexerEventId::MainViewAdded - | EventMultiplexerEventId::MainViewRemoved); */ class EventMultiplexer { @@ -172,24 +156,12 @@ public: @param rCallback The callback to call as soon as one of the event specified by aEventTypeSet is received by the EventMultiplexer. - @param aEventTypeSet - A, possibly empty, set of event types that the listener wants to - be informed about. */ - void AddEventListener ( - const Link& rCallback, - EventMultiplexerEventId aEventTypeSet); + void AddEventListener(const Link& rCallback); /** Remove an event listener for the specified event types. - @param aEventTypeSet - The listener will not be called anymore for any of the event - types in this set. Use EventMultiplexerEventId::AllMask, the default value, to - remove the listener for all event types it has been registered - for. - */ - void RemoveEventListener ( - const Link& rCallback, - EventMultiplexerEventId aEventTypeSet = EventMultiplexerEventId::AllMask); + */ + void RemoveEventListener(const Link& rCallback); /** This method is used for out-of-line events. An event of the specified type will be sent to all listeners that are registered for diff --git a/sd/source/ui/inc/ViewShellBase.hxx b/sd/source/ui/inc/ViewShellBase.hxx index a2b15a5a2246a..65e481ec0fdc6 100644 --- a/sd/source/ui/inc/ViewShellBase.hxx +++ b/sd/source/ui/inc/ViewShellBase.hxx @@ -118,7 +118,7 @@ public: virtual bool HasSelection(bool = true ) const override; SvBorder GetBorder (bool bOuterResize); - virtual void InnerResizePixel (const Point& rOrigin, const Size& rSize) override; + virtual void InnerResizePixel (const Point& rOrigin, const Size& rSize, bool inplaceEditModeChange) override; virtual void OuterResizePixel (const Point& rOrigin, const Size& rSize) override; /** This call is forwarded to the main sub-shell. diff --git a/sd/source/ui/inc/fuconbez.hxx b/sd/source/ui/inc/fuconbez.hxx index f43069632ae0a..68a922dd3a512 100644 --- a/sd/source/ui/inc/fuconbez.hxx +++ b/sd/source/ui/inc/fuconbez.hxx @@ -33,6 +33,7 @@ class FuConstructBezierPolygon public: static rtl::Reference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq, bool bPermanent ); + void DoExecute( SfxRequest& rReq ) override; // Mouse- & Key-Events virtual bool MouseButtonUp(const MouseEvent& rMEvt) override; diff --git a/sd/source/ui/inc/tools/SdGlobalResourceContainer.hxx b/sd/source/ui/inc/tools/SdGlobalResourceContainer.hxx index e1c483eec439f..c8afe89a2f9a2 100644 --- a/sd/source/ui/inc/tools/SdGlobalResourceContainer.hxx +++ b/sd/source/ui/inc/tools/SdGlobalResourceContainer.hxx @@ -82,7 +82,7 @@ public: void AddResource (const css::uno::Reference& rxResource); protected: - friend class ::SdModule; + friend class SdGlobalResourceContainerInstance; friend struct ::std::default_delete; class Implementation; diff --git a/sd/source/ui/presenter/CanvasUpdateRequester.cxx b/sd/source/ui/presenter/CanvasUpdateRequester.cxx index 90202e8138b43..456c37d43a58d 100644 --- a/sd/source/ui/presenter/CanvasUpdateRequester.cxx +++ b/sd/source/ui/presenter/CanvasUpdateRequester.cxx @@ -20,6 +20,7 @@ #include "CanvasUpdateRequester.hxx" #include #include +#include using namespace ::com::sun::star; using namespace ::com::sun::star::uno; @@ -36,30 +37,54 @@ class CanvasUpdateRequester::Deleter //===== CanvasUpdateRequester ================================================= -CanvasUpdateRequester::RequesterMap CanvasUpdateRequester::maRequesterMap; - std::shared_ptr CanvasUpdateRequester::Instance ( const Reference& rxSharedCanvas) { - RequesterMap::const_iterator iRequester; - for (iRequester=maRequesterMap.begin(); iRequester!=maRequesterMap.end(); ++iRequester) + // this global must not own anything or we crash on shutdown + static std::vector, + std::weak_ptr>> s_RequesterMap; + for (auto it = s_RequesterMap.begin(); it != s_RequesterMap.end(); ) { - if (iRequester->first == rxSharedCanvas) - return iRequester->second; + uno::Reference const xCanvas(it->first); + if (!xCanvas.is()) + { + it = s_RequesterMap.erase(it); // remove stale entry + } + else if (xCanvas == rxSharedCanvas) + { + std::shared_ptr pRequester(it->second); + if (pRequester) + { + return pRequester; + } + else + { + std::shared_ptr const pNew( + new CanvasUpdateRequester(rxSharedCanvas), Deleter()); + it->second = pNew; + return pNew; + } + } + else + { + ++it; + } } // No requester for the given canvas found. Create a new one. std::shared_ptr pRequester ( new CanvasUpdateRequester(rxSharedCanvas), Deleter()); - maRequesterMap.push_back(RequesterMap::value_type(rxSharedCanvas,pRequester)); + s_RequesterMap.push_back(std::make_pair(rxSharedCanvas, pRequester)); return pRequester; } + CanvasUpdateRequester::CanvasUpdateRequester ( - const Reference& rxCanvas) - : mxCanvas(rxCanvas), - mnUserEventId(nullptr), - mbUpdateFlag(false) + const Reference& rxCanvas) + : mxCanvas(rxCanvas) + , m_pUserEventId(nullptr) + , mbUpdateFlag(false) { Reference xComponent (mxCanvas, UNO_QUERY); if (xComponent.is()) @@ -70,16 +95,16 @@ CanvasUpdateRequester::CanvasUpdateRequester ( CanvasUpdateRequester::~CanvasUpdateRequester() { - if (mnUserEventId != nullptr) - Application::RemoveUserEvent(mnUserEventId); + assert(m_pUserEventId == nullptr); } void CanvasUpdateRequester::RequestUpdate (const bool bUpdateAll) { - if (mnUserEventId == nullptr) + if (m_pUserEventId == nullptr) { + m_pThis = shared_from_this(); // keep instance alive until dispatch mbUpdateFlag = bUpdateAll; - mnUserEventId = Application::PostUserEvent(LINK(this, CanvasUpdateRequester, Callback)); + m_pUserEventId = Application::PostUserEvent(LINK(this, CanvasUpdateRequester, Callback)); } else { @@ -89,12 +114,14 @@ void CanvasUpdateRequester::RequestUpdate (const bool bUpdateAll) IMPL_LINK_NOARG(CanvasUpdateRequester, Callback, void*, void) { - mnUserEventId = nullptr; + m_pUserEventId = nullptr; if (mxCanvas.is()) { mxCanvas->updateScreen(mbUpdateFlag); mbUpdateFlag = false; } + assert(m_pThis); + m_pThis.reset(); // possibly delete "this" } } } // end of namespace ::sd::presenter diff --git a/sd/source/ui/presenter/CanvasUpdateRequester.hxx b/sd/source/ui/presenter/CanvasUpdateRequester.hxx index a712cc502200c..471b9ab53b729 100644 --- a/sd/source/ui/presenter/CanvasUpdateRequester.hxx +++ b/sd/source/ui/presenter/CanvasUpdateRequester.hxx @@ -22,10 +22,8 @@ #include #include -#include #include #include -#include struct ImplSVEvent; @@ -37,6 +35,7 @@ namespace sd { namespace presenter { to a single call to updateScreen. */ class CanvasUpdateRequester + : public std::enable_shared_from_this { public: CanvasUpdateRequester(const CanvasUpdateRequester&) = delete; @@ -55,15 +54,12 @@ private: ~CanvasUpdateRequester(); class Deleter; friend class Deleter; - typedef ::std::vector< - ::std::pair< - css::uno::Reference, - std::shared_ptr > > RequesterMap; - static RequesterMap maRequesterMap; - + /// keep instance alive waiting for event dispatch + std::shared_ptr m_pThis; css::uno::Reference mxCanvas; - ImplSVEvent * mnUserEventId; + ImplSVEvent * m_pUserEventId; bool mbUpdateFlag; + DECL_LINK(Callback, void*, void); }; diff --git a/sd/source/ui/presenter/PresenterCanvas.cxx b/sd/source/ui/presenter/PresenterCanvas.cxx index 6333a536123e3..0bd4ecc43d18c 100644 --- a/sd/source/ui/presenter/PresenterCanvas.cxx +++ b/sd/source/ui/presenter/PresenterCanvas.cxx @@ -119,7 +119,6 @@ PresenterCanvas::PresenterCanvas ( mxSharedWindow(rxSharedWindow), mxWindow(rxWindow), maOffset(), - mpUpdateRequester(), maClipRectangle(), mbOffsetUpdatePending(true) { @@ -127,7 +126,9 @@ PresenterCanvas::PresenterCanvas ( mxWindow->addWindowListener(this); if (mxUpdateCanvas.is()) - mpUpdateRequester = CanvasUpdateRequester::Instance(mxUpdateCanvas); + { + m_pUpdateRequester = CanvasUpdateRequester::Instance(mxUpdateCanvas); + } } PresenterCanvas::~PresenterCanvas() @@ -465,9 +466,9 @@ sal_Bool SAL_CALL PresenterCanvas::updateScreen (sal_Bool bUpdateAll) ThrowIfDisposed(); mbOffsetUpdatePending = true; - if (mpUpdateRequester.get() != nullptr) + if (m_pUpdateRequester.get() != nullptr) { - mpUpdateRequester->RequestUpdate(bUpdateAll); + m_pUpdateRequester->RequestUpdate(bUpdateAll); return true; } else diff --git a/sd/source/ui/presenter/PresenterCanvas.hxx b/sd/source/ui/presenter/PresenterCanvas.hxx index a31e899d02343..4c57842517348 100644 --- a/sd/source/ui/presenter/PresenterCanvas.hxx +++ b/sd/source/ui/presenter/PresenterCanvas.hxx @@ -353,7 +353,7 @@ private: /** The UpdateRequester is used by updateScreen() to schedule updateScreen() calls at the shared canvas. */ - std::shared_ptr mpUpdateRequester; + std::shared_ptr m_pUpdateRequester; /** The clip rectangle as given to SetClip(). */ diff --git a/sd/source/ui/sidebar/CurrentMasterPagesSelector.cxx b/sd/source/ui/sidebar/CurrentMasterPagesSelector.cxx index 465938a4e02ce..9db8fcbf204e5 100644 --- a/sd/source/ui/sidebar/CurrentMasterPagesSelector.cxx +++ b/sd/source/ui/sidebar/CurrentMasterPagesSelector.cxx @@ -74,14 +74,7 @@ CurrentMasterPagesSelector::CurrentMasterPagesSelector ( : MasterPagesSelector (pParent, rDocument, rBase, rpContainer, rxSidebar) { Link aLink (LINK(this,CurrentMasterPagesSelector,EventMultiplexerListener)); - rBase.GetEventMultiplexer()->AddEventListener(aLink, - EventMultiplexerEventId::CurrentPageChanged - | EventMultiplexerEventId::EditModeNormal - | EventMultiplexerEventId::EditModeMaster - | EventMultiplexerEventId::PageOrder - | EventMultiplexerEventId::ShapeChanged - | EventMultiplexerEventId::ShapeInserted - | EventMultiplexerEventId::ShapeRemoved); + rBase.GetEventMultiplexer()->AddEventListener(aLink); } CurrentMasterPagesSelector::~CurrentMasterPagesSelector() diff --git a/sd/source/ui/sidebar/LayoutMenu.cxx b/sd/source/ui/sidebar/LayoutMenu.cxx index b9b99ba5564d8..5efff01c5b828 100644 --- a/sd/source/ui/sidebar/LayoutMenu.cxx +++ b/sd/source/ui/sidebar/LayoutMenu.cxx @@ -168,14 +168,7 @@ void LayoutMenu::implConstruct( DrawDocShell& rDocumentShell ) InvalidateContent(); Link<::sd::tools::EventMultiplexerEvent&,void> aEventListenerLink (LINK(this,LayoutMenu,EventMultiplexerListener)); - mrBase.GetEventMultiplexer()->AddEventListener(aEventListenerLink, - EventMultiplexerEventId::CurrentPageChanged - | EventMultiplexerEventId::SlideSortedSelection - | EventMultiplexerEventId::MainViewAdded - | EventMultiplexerEventId::MainViewRemoved - | EventMultiplexerEventId::ConfigurationUpdated - | EventMultiplexerEventId::EditModeNormal - | EventMultiplexerEventId::EditModeMaster); + mrBase.GetEventMultiplexer()->AddEventListener(aEventListenerLink); Window::SetHelpId(HID_SD_TASK_PANE_PREVIEW_LAYOUTS); SetAccessibleName(SdResId(STR_TASKPANEL_LAYOUT_MENU_TITLE)); @@ -728,7 +721,6 @@ IMPL_LINK(LayoutMenu, EventMultiplexerListener, ::sd::tools::EventMultiplexerEve break; default: - /* Ignored */ break; } } diff --git a/sd/source/ui/sidebar/SlideBackground.cxx b/sd/source/ui/sidebar/SlideBackground.cxx index 3957fbafbd0d6..854929f764ca2 100644 --- a/sd/source/ui/sidebar/SlideBackground.cxx +++ b/sd/source/ui/sidebar/SlideBackground.cxx @@ -118,6 +118,9 @@ SlideBackground::SlideBackground( get(mpPaperSizeBox,"paperformat"); get(mpPaperOrientation, "orientation"); get(mpMasterSlide, "masterslide"); + //let the listbox shrink to any size so the sidebar isn't forced to grow to + //the size of the longest master slide name in the document + mpMasterSlide->set_width_request(0); get(mpFillAttr, "fillattr1"); get(mpFillGrad, "fillattr2"); get(mpFillStyle, "fillstyle"); @@ -295,7 +298,7 @@ void SlideBackground::SetPanelTitle( const OUString& rTitle ) return; Reference xPanel ( xPanels->getByName("SlideBackgroundPanel"), uno::UNO_QUERY); - if ( !xPanels.is() ) + if ( !xPanel.is() ) return; xPanel->setTitle( rTitle ); @@ -304,16 +307,7 @@ void SlideBackground::SetPanelTitle( const OUString& rTitle ) void SlideBackground::addListener() { Link aLink( LINK(this, SlideBackground, EventMultiplexerListener) ); - mrBase.GetEventMultiplexer()->AddEventListener ( - aLink, - EventMultiplexerEventId::CurrentPageChanged | - EventMultiplexerEventId::MainViewAdded | - EventMultiplexerEventId::ShapeChanged | - EventMultiplexerEventId::EditModeNormal | - EventMultiplexerEventId::EditModeMaster | - EventMultiplexerEventId::EditViewSelection | - EventMultiplexerEventId::EndTextEdit | - EventMultiplexerEventId::ViewAdded); + mrBase.GetEventMultiplexer()->AddEventListener( aLink ); } void SlideBackground::removeListener() @@ -822,7 +816,9 @@ IMPL_LINK_NOARG(SlideBackground, FillColorHdl, SvxColorListBox&, void) aGradient.SetStartColor(mpFillLB->GetSelectEntryColor()); aGradient.SetEndColor(mpFillGrad->GetSelectEntryColor()); - XFillGradientItem aItem(aGradient); + // the name doesn't really matter, it'll be converted to unique one eventually, + // but it has to be non-empty + XFillGradientItem aItem("gradient", aGradient); GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_GRADIENT, SfxCallMode::RECORD, { &aItem }); } break; diff --git a/sd/source/ui/slideshow/slideshowimpl.cxx b/sd/source/ui/slideshow/slideshowimpl.cxx index dd430e2b3bf27..e3d5a4c59c292 100644 --- a/sd/source/ui/slideshow/slideshowimpl.cxx +++ b/sd/source/ui/slideshow/slideshowimpl.cxx @@ -716,7 +716,7 @@ void SAL_CALL SlideshowImpl::disposing() if( mpShowWindow ) { - mpShowWindow.clear(); + mpShowWindow.disposeAndClear(); } setActiveXToolbarsVisible( true ); @@ -1187,8 +1187,10 @@ bool SlideshowImpl::swipe(const CommandSwipeData &rSwipeData) { if (mbUsePen || mnContextMenuEvent) return false; - double nVelocityX = rSwipeData.getVelocityX(); + // tdf#108475 make it swipe only if some reasonable movement was involved + if (fabs(nVelocityX) < 50) + return false; if (nVelocityX > 0) { gotoPreviousSlide(); diff --git a/sd/source/ui/slidesorter/controller/SlideSorterController.cxx b/sd/source/ui/slidesorter/controller/SlideSorterController.cxx index c66987be6f8d4..dc3d4570223a8 100644 --- a/sd/source/ui/slidesorter/controller/SlideSorterController.cxx +++ b/sd/source/ui/slidesorter/controller/SlideSorterController.cxx @@ -111,6 +111,7 @@ SlideSorterController::SlideSorterController (SlideSorter& rSlideSorter) mpListener(), mnModelChangeLockCount(0), mbIsForcedRearrangePending(false), + mbContextMenuOpen(false), mbPreModelChangeDone(false), mbPostModelChangePending(false), maSelectionBeforeSwitch(), @@ -386,7 +387,9 @@ bool SlideSorterController::Command ( SfxDispatcher* pDispatcher = pViewShell->GetDispatcher(); if (pDispatcher != nullptr) { + mbContextMenuOpen = true; pDispatcher->ExecutePopup( aPopupId, pWindow, &aMenuLocation ); + mbContextMenuOpen = false; mrSlideSorter.GetView().UpdatePageUnderMouse(); ::rtl::Reference pFunction(GetCurrentSelectionFunction()); if (pFunction.is()) @@ -553,9 +556,14 @@ IMPL_LINK(SlideSorterController, WindowEventHandler, VclWindowEvent&, rEvent, vo GetFocusManager().HideFocus(); mrView.GetToolTip().Hide(); - // Select the current slide so that it is properly - // visualized when the focus is moved to the edit view. - GetPageSelector().SelectPage(GetCurrentSlideManager()->GetCurrentSlide()); + //don't scroll back to the selected slide when we lose + //focus due to a temporary active context menu + if (!mbContextMenuOpen) + { + // Select the current slide so that it is properly + // visualized when the focus is moved to the edit view. + GetPageSelector().SelectPage(GetCurrentSlideManager()->GetCurrentSlide()); + } } break; diff --git a/sd/source/ui/slidesorter/controller/SlsListener.cxx b/sd/source/ui/slidesorter/controller/SlsListener.cxx index 4e7ed41677523..b9d3f21cc3495 100644 --- a/sd/source/ui/slidesorter/controller/SlsListener.cxx +++ b/sd/source/ui/slidesorter/controller/SlsListener.cxx @@ -126,13 +126,7 @@ Listener::Listener ( } Link aLink (LINK(this, Listener, EventMultiplexerCallback)); - mpBase->GetEventMultiplexer()->AddEventListener( - aLink, - EventMultiplexerEventId::MainViewRemoved - | EventMultiplexerEventId::MainViewAdded - | EventMultiplexerEventId::ControllerAttached - | EventMultiplexerEventId::ControllerDetached - | EventMultiplexerEventId::ConfigurationUpdated); + mpBase->GetEventMultiplexer()->AddEventListener(aLink); } } @@ -186,13 +180,7 @@ void Listener::ReleaseListeners() if (mpBase != nullptr) { Link aLink (LINK(this, Listener, EventMultiplexerCallback)); - mpBase->GetEventMultiplexer()->RemoveEventListener( - aLink, - EventMultiplexerEventId::MainViewRemoved - | EventMultiplexerEventId::MainViewAdded - | EventMultiplexerEventId::ControllerAttached - | EventMultiplexerEventId::ControllerDetached - | EventMultiplexerEventId::ConfigurationUpdated); + mpBase->GetEventMultiplexer()->RemoveEventListener(aLink); } } diff --git a/sd/source/ui/slidesorter/inc/controller/SlideSorterController.hxx b/sd/source/ui/slidesorter/inc/controller/SlideSorterController.hxx index 80f981cfe23c7..b66785e3a2f32 100644 --- a/sd/source/ui/slidesorter/inc/controller/SlideSorterController.hxx +++ b/sd/source/ui/slidesorter/inc/controller/SlideSorterController.hxx @@ -240,6 +240,7 @@ private: int mnModelChangeLockCount; bool mbIsForcedRearrangePending; + bool mbContextMenuOpen; bool mbPreModelChangeDone; bool mbPostModelChangePending; diff --git a/sd/source/ui/table/TableDesignPane.cxx b/sd/source/ui/table/TableDesignPane.cxx index 93bd711931fe5..d2feaa446417e 100644 --- a/sd/source/ui/table/TableDesignPane.cxx +++ b/sd/source/ui/table/TableDesignPane.cxx @@ -415,13 +415,7 @@ void TableDesignWidget::updateControls() void TableDesignWidget::addListener() { Link aLink( LINK(this,TableDesignWidget,EventMultiplexerListener) ); - mrBase.GetEventMultiplexer()->AddEventListener ( - aLink, - EventMultiplexerEventId::EditViewSelection - | EventMultiplexerEventId::CurrentPageChanged - | EventMultiplexerEventId::MainViewRemoved - | EventMultiplexerEventId::MainViewAdded - | EventMultiplexerEventId::Disposing); + mrBase.GetEventMultiplexer()->AddEventListener( aLink ); } void TableDesignWidget::removeListener() diff --git a/sd/source/ui/tools/EventMultiplexer.cxx b/sd/source/ui/tools/EventMultiplexer.cxx index 924a5e91e6a92..5442c40fe40b0 100644 --- a/sd/source/ui/tools/EventMultiplexer.cxx +++ b/sd/source/ui/tools/EventMultiplexer.cxx @@ -68,12 +68,10 @@ class EventMultiplexer::Implementation virtual ~Implementation() override; void AddEventListener ( - const Link& rCallback, - EventMultiplexerEventId aEventTypes); + const Link& rCallback); void RemoveEventListener ( - const Link& rCallback, - EventMultiplexerEventId aEventTypes); + const Link& rCallback); void CallListeners (EventMultiplexerEvent& rEvent); @@ -118,8 +116,7 @@ class EventMultiplexer::Implementation private: ViewShellBase& mrBase; - typedef ::std::pair,EventMultiplexerEventId> ListenerDescriptor; - typedef ::std::vector ListenerList; + typedef ::std::vector> ListenerList; ListenerList maListeners; /// Remember whether we are listening to the UNO controller. @@ -170,17 +167,15 @@ EventMultiplexer::~EventMultiplexer() } void EventMultiplexer::AddEventListener ( - const Link& rCallback, - EventMultiplexerEventId aEventTypes) + const Link& rCallback) { - mpImpl->AddEventListener (rCallback, aEventTypes); + mpImpl->AddEventListener(rCallback); } void EventMultiplexer::RemoveEventListener ( - const Link& rCallback, - EventMultiplexerEventId aEventTypes) + const Link& rCallback) { - mpImpl->RemoveEventListener (rCallback, aEventTypes); + mpImpl->RemoveEventListener(rCallback); } void EventMultiplexer::MultiplexEvent( @@ -300,42 +295,25 @@ void EventMultiplexer::Implementation::ReleaseListeners() } void EventMultiplexer::Implementation::AddEventListener ( - const Link& rCallback, - EventMultiplexerEventId aEventTypes) + const Link& rCallback) { - ListenerList::iterator iListener (maListeners.begin()); - ListenerList::const_iterator iEnd (maListeners.end()); - for (;iListener!=iEnd; ++iListener) - if (iListener->first == rCallback) - break; - if (iListener != maListeners.end()) - { - // Listener exists. Update its event type set. - iListener->second |= aEventTypes; - } - else - { - maListeners.push_back (ListenerDescriptor(rCallback,aEventTypes)); - } + for (auto const & i : maListeners) + if (i == rCallback) + return; + maListeners.push_back(rCallback); } void EventMultiplexer::Implementation::RemoveEventListener ( - const Link& rCallback, - EventMultiplexerEventId aEventTypes) + const Link& rCallback) { ListenerList::iterator iListener (maListeners.begin()); ListenerList::const_iterator iEnd (maListeners.end()); for (;iListener!=iEnd; ++iListener) - if (iListener->first == rCallback) + if (*iListener == rCallback) + { + maListeners.erase(iListener); break; - if (iListener != maListeners.end()) - { - // Update the event type set. - iListener->second &= ~aEventTypes; - // When no events remain in the set then remove the listener. - if (iListener->second == EventMultiplexerEventId::NONE) - maListeners.erase (iListener); - } + } } void EventMultiplexer::Implementation::ConnectToController() @@ -675,8 +653,7 @@ void EventMultiplexer::Implementation::CallListeners (EventMultiplexerEvent& rEv ListenerList::const_iterator iListenerEnd (aCopyListeners.end()); for (; iListener!=iListenerEnd; ++iListener) { - if (iListener->second & rEvent.meEventId) - iListener->first.Call(rEvent); + iListener->Call(rEvent); } } diff --git a/sd/source/ui/tools/SdGlobalResourceContainer.cxx b/sd/source/ui/tools/SdGlobalResourceContainer.cxx index dadc8db91480f..595f3f79bd343 100644 --- a/sd/source/ui/tools/SdGlobalResourceContainer.cxx +++ b/sd/source/ui/tools/SdGlobalResourceContainer.cxx @@ -19,6 +19,13 @@ #include "tools/SdGlobalResourceContainer.hxx" +#include +#include + +#include + +#include + #include #include @@ -27,13 +34,30 @@ using namespace ::com::sun::star::uno; namespace sd { +class SdGlobalResourceContainerInstance + : public comphelper::unique_disposing_solar_mutex_reset_ptr +{ +public: + SdGlobalResourceContainerInstance() + : comphelper::unique_disposing_solar_mutex_reset_ptr( + uno::Reference(frame::Desktop::create(comphelper::getProcessComponentContext()), uno::UNO_QUERY_THROW), + new SdGlobalResourceContainer, true) + { + } +}; + +namespace { + +struct theSdGlobalResourceContainerInstance : public rtl::Static {}; + +} // namespace + //===== SdGlobalResourceContainer::Implementation ============================= class SdGlobalResourceContainer::Implementation { private: friend class SdGlobalResourceContainer; - static SdGlobalResourceContainer* mpInstance; ::osl::Mutex maMutex; @@ -53,15 +77,11 @@ class SdGlobalResourceContainer::Implementation // static SdGlobalResourceContainer& SdGlobalResourceContainer::Instance() { - DBG_ASSERT(Implementation::mpInstance!=nullptr, - "SdGlobalResourceContainer::Instance(): instance has been deleted"); - // Maybe we should throw an exception when the instance has been deleted. - return *Implementation::mpInstance; + SdGlobalResourceContainer *const pRet(theSdGlobalResourceContainerInstance::get().get()); + assert(pRet); // error if it has been deleted and is null + return *pRet; } -SdGlobalResourceContainer* - SdGlobalResourceContainer::Implementation::mpInstance = nullptr; - //===== SdGlobalResourceContainer ============================================= void SdGlobalResourceContainer::AddResource ( @@ -128,7 +148,6 @@ void SdGlobalResourceContainer::AddResource (const Reference& rxReso SdGlobalResourceContainer::SdGlobalResourceContainer() : mpImpl (new SdGlobalResourceContainer::Implementation()) { - Implementation::mpInstance = this; } SdGlobalResourceContainer::~SdGlobalResourceContainer() @@ -174,10 +193,6 @@ SdGlobalResourceContainer::~SdGlobalResourceContainer() if (xComponent.is()) xComponent->dispose(); } - - DBG_ASSERT(Implementation::mpInstance == this, - "~SdGlobalResourceContainer(): more than one instance of singleton"); - Implementation::mpInstance = nullptr; } } // end of namespace sd diff --git a/sd/source/ui/view/FormShellManager.cxx b/sd/source/ui/view/FormShellManager.cxx index fc57bec856a16..97184ae1a8094 100644 --- a/sd/source/ui/view/FormShellManager.cxx +++ b/sd/source/ui/view/FormShellManager.cxx @@ -58,11 +58,7 @@ FormShellManager::FormShellManager (ViewShellBase& rBase) // Register at the EventMultiplexer to be informed about changes in the // center pane. Link aLink (LINK(this, FormShellManager, ConfigurationUpdateHandler)); - mrBase.GetEventMultiplexer()->AddEventListener( - aLink, - EventMultiplexerEventId::MainViewRemoved - | EventMultiplexerEventId::MainViewAdded - | EventMultiplexerEventId::ConfigurationUpdated); + mrBase.GetEventMultiplexer()->AddEventListener(aLink); RegisterAtCenterPane(); } diff --git a/sd/source/ui/view/Outliner.cxx b/sd/source/ui/view/Outliner.cxx index 959cfa4f4690d..396e0ef754695 100644 --- a/sd/source/ui/view/Outliner.cxx +++ b/sd/source/ui/view/Outliner.cxx @@ -583,7 +583,10 @@ void SdOutliner::Initialize (bool bDirectionIsForward) // The iterator has pointed to the object one ahead/before the current // one. Now move it to the one before/ahead the current one. ++maObjectIterator; - ++maObjectIterator; + if (maObjectIterator != sd::outliner::OutlinerContainer(this).end()) + { + ++maObjectIterator; + } } mbMatchMayExist = true; diff --git a/sd/source/ui/view/ToolBarManager.cxx b/sd/source/ui/view/ToolBarManager.cxx index 971f408e34788..ec8918863e113 100644 --- a/sd/source/ui/view/ToolBarManager.cxx +++ b/sd/source/ui/view/ToolBarManager.cxx @@ -532,11 +532,7 @@ ToolBarManager::Implementation::Implementation ( maToolBarRules(rpToolBarManager,rpViewShellManager) { Link aLink (LINK(this,ToolBarManager::Implementation,EventMultiplexerCallback)); - mpEventMultiplexer->AddEventListener( - aLink, - EventMultiplexerEventId::ControllerAttached - | EventMultiplexerEventId::ControllerDetached - | EventMultiplexerEventId::PaneManagerDying); + mpEventMultiplexer->AddEventListener( aLink ); } /** The order of statements is important. diff --git a/sd/source/ui/view/ViewShellBase.cxx b/sd/source/ui/view/ViewShellBase.cxx index 668127a48ed20..598ec11227c8b 100644 --- a/sd/source/ui/view/ViewShellBase.cxx +++ b/sd/source/ui/view/ViewShellBase.cxx @@ -470,7 +470,7 @@ bool ViewShellBase::HasSelection(bool bText) const : SfxViewShell::HasSelection(bText); } -void ViewShellBase::InnerResizePixel (const Point& rOrigin, const Size &rSize) +void ViewShellBase::InnerResizePixel (const Point& rOrigin, const Size &rSize, bool) { Size aObjSize = GetObjectShell()->GetVisArea().GetSize(); if ( aObjSize.Width() > 0 && aObjSize.Height() > 0 ) diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx index 68f0e38f58482..1dc6eb853fc16 100644 --- a/sd/source/ui/view/drviews2.cxx +++ b/sd/source/ui/view/drviews2.cxx @@ -1110,7 +1110,8 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) // Set the selection tool as the old one. This in particular important for the // zoom function, in which clicking without dragging zooms as well, and that // makes exiting the object editing mode impossible. - SetOldFunction( FuSelection::Create( this, GetActiveWindow(), mpDrawView, GetDoc(), rReq ) ); + if (dynamic_cast( GetOldFunction().get() ) == nullptr) + SetOldFunction( FuSelection::Create( this, GetActiveWindow(), mpDrawView, GetDoc(), rReq ) ); Cancel(); rReq.Ignore (); } diff --git a/sd/source/ui/view/drviews3.cxx b/sd/source/ui/view/drviews3.cxx index d24e4cbeaefbf..e1655ac096e06 100644 --- a/sd/source/ui/view/drviews3.cxx +++ b/sd/source/ui/view/drviews3.cxx @@ -493,167 +493,166 @@ void DrawViewShell::ExecRuler(SfxRequest& rReq) switch ( rReq.GetSlot() ) { case SID_ATTR_LONG_LRSPACE: - { - SdUndoGroup* pUndoGroup = new SdUndoGroup(GetDoc()); - pUndoGroup->SetComment(SdResId(STR_UNDO_CHANGE_PAGEBORDER)); + if (pArgs) + { + SdUndoGroup* pUndoGroup = new SdUndoGroup(GetDoc()); + pUndoGroup->SetComment(SdResId(STR_UNDO_CHANGE_PAGEBORDER)); - const SvxLongLRSpaceItem& rLRSpace = static_cast( - pArgs->Get(GetPool().GetWhich(SID_ATTR_LONG_LRSPACE))); + const SvxLongLRSpaceItem& rLRSpace = static_cast( + pArgs->Get(GetPool().GetWhich(SID_ATTR_LONG_LRSPACE))); - if( mpDrawView->IsTextEdit() ) - { - Rectangle aRect = maMarkRect; - aRect.SetPos(aRect.TopLeft() + aPagePos); - aRect.Left() = rLRSpace.GetLeft(); - aRect.Right() = aViewSize.Width() - rLRSpace.GetRight(); - aRect.SetPos(aRect.TopLeft() - aPagePos); - if ( aRect != maMarkRect) + if( mpDrawView->IsTextEdit() ) { - mpDrawView->SetAllMarkedRect(aRect); - maMarkRect = mpDrawView->GetAllMarkedRect(); - Invalidate( SID_RULER_OBJECT ); + Rectangle aRect = maMarkRect; + aRect.SetPos(aRect.TopLeft() + aPagePos); + aRect.Left() = rLRSpace.GetLeft(); + aRect.Right() = aViewSize.Width() - rLRSpace.GetRight(); + aRect.SetPos(aRect.TopLeft() - aPagePos); + if ( aRect != maMarkRect) + { + mpDrawView->SetAllMarkedRect(aRect); + maMarkRect = mpDrawView->GetAllMarkedRect(); + Invalidate( SID_RULER_OBJECT ); + } + } + else + { + long nLeft = std::max(0L, rLRSpace.GetLeft() - aPagePos.X()); + long nRight = std::max(0L, rLRSpace.GetRight() + aPagePos.X() + + aPageSize.Width() - aViewSize.Width()); + + sal_uInt16 nPageCnt = GetDoc()->GetSdPageCount(mePageKind); + sal_uInt16 i; + for ( i = 0; i < nPageCnt; i++) + { + SdPage* pPage = GetDoc()->GetSdPage(i, mePageKind); + SdUndoAction* pUndo = new SdPageLRUndoAction(GetDoc(), + pPage, + pPage->GetLftBorder(), + pPage->GetRgtBorder(), + nLeft, nRight); + pUndoGroup->AddAction(pUndo); + pPage->SetLftBorder(nLeft); + pPage->SetRgtBorder(nRight); + } + nPageCnt = GetDoc()->GetMasterSdPageCount(mePageKind); + + for (i = 0; i < nPageCnt; i++) + { + SdPage* pPage = GetDoc()->GetMasterSdPage(i, mePageKind); + SdUndoAction* pUndo = new SdPageLRUndoAction(GetDoc(), + pPage, + pPage->GetLftBorder(), + pPage->GetRgtBorder(), + nLeft, nRight); + pUndoGroup->AddAction(pUndo); + pPage->SetLftBorder(nLeft); + pPage->SetRgtBorder(nRight); + } + InvalidateWindows(); } + + // give the undo group to the undo manager + GetViewFrame()->GetObjectShell()->GetUndoManager()-> + AddUndoAction(pUndoGroup); } - else + break; + case SID_ATTR_LONG_ULSPACE: + if (pArgs) { - long nLeft = std::max(0L, rLRSpace.GetLeft() - aPagePos.X()); - long nRight = std::max(0L, rLRSpace.GetRight() + aPagePos.X() + - aPageSize.Width() - aViewSize.Width()); + SdUndoGroup* pUndoGroup = new SdUndoGroup(GetDoc()); + pUndoGroup->SetComment(SdResId(STR_UNDO_CHANGE_PAGEBORDER)); - sal_uInt16 nPageCnt = GetDoc()->GetSdPageCount(mePageKind); - sal_uInt16 i; - for ( i = 0; i < nPageCnt; i++) - { - SdPage* pPage = GetDoc()->GetSdPage(i, mePageKind); - SdUndoAction* pUndo = new SdPageLRUndoAction(GetDoc(), - pPage, - pPage->GetLftBorder(), - pPage->GetRgtBorder(), - nLeft, nRight); - pUndoGroup->AddAction(pUndo); - pPage->SetLftBorder(nLeft); - pPage->SetRgtBorder(nRight); - } - nPageCnt = GetDoc()->GetMasterSdPageCount(mePageKind); + const SvxLongULSpaceItem& rULSpace = static_cast( + pArgs->Get(GetPool().GetWhich(SID_ATTR_LONG_ULSPACE))); - for (i = 0; i < nPageCnt; i++) + if( mpDrawView->IsTextEdit() ) { - SdPage* pPage = GetDoc()->GetMasterSdPage(i, mePageKind); - SdUndoAction* pUndo = new SdPageLRUndoAction(GetDoc(), - pPage, - pPage->GetLftBorder(), - pPage->GetRgtBorder(), - nLeft, nRight); - pUndoGroup->AddAction(pUndo); - pPage->SetLftBorder(nLeft); - pPage->SetRgtBorder(nRight); + Rectangle aRect = maMarkRect; + aRect.SetPos(aRect.TopLeft() + aPagePos); + aRect.Top() = rULSpace.GetUpper(); + aRect.Bottom() = aViewSize.Height() - rULSpace.GetLower(); + aRect.SetPos(aRect.TopLeft() - aPagePos); + + if ( aRect != maMarkRect) + { + mpDrawView->SetAllMarkedRect(aRect); + maMarkRect = mpDrawView->GetAllMarkedRect(); + Invalidate( SID_RULER_OBJECT ); + } } - InvalidateWindows(); - } + else + { + long nUpper = std::max(0L, rULSpace.GetUpper() - aPagePos.Y()); + long nLower = std::max(0L, rULSpace.GetLower() + aPagePos.Y() + + aPageSize.Height() - aViewSize.Height()); - // give the undo group to the undo manager - GetViewFrame()->GetObjectShell()->GetUndoManager()-> - AddUndoAction(pUndoGroup); - break; - } - case SID_ATTR_LONG_ULSPACE: - { - SdUndoGroup* pUndoGroup = new SdUndoGroup(GetDoc()); - pUndoGroup->SetComment(SdResId(STR_UNDO_CHANGE_PAGEBORDER)); + sal_uInt16 nPageCnt = GetDoc()->GetSdPageCount(mePageKind); + sal_uInt16 i; + for ( i = 0; i < nPageCnt; i++) + { + SdPage* pPage = GetDoc()->GetSdPage(i, mePageKind); + SdUndoAction* pUndo = new SdPageULUndoAction(GetDoc(), + pPage, + pPage->GetUppBorder(), + pPage->GetLwrBorder(), + nUpper, nLower); + pUndoGroup->AddAction(pUndo); + pPage->SetUppBorder(nUpper); + pPage->SetLwrBorder(nLower); + } + nPageCnt = GetDoc()->GetMasterSdPageCount(mePageKind); - const SvxLongULSpaceItem& rULSpace = static_cast( - pArgs->Get(GetPool().GetWhich(SID_ATTR_LONG_ULSPACE))); + for (i = 0; i < nPageCnt; i++) + { + SdPage* pPage = GetDoc()->GetMasterSdPage(i, mePageKind); + SdUndoAction* pUndo = new SdPageULUndoAction(GetDoc(), + pPage, + pPage->GetUppBorder(), + pPage->GetLwrBorder(), + nUpper, nLower); + pUndoGroup->AddAction(pUndo); + pPage->SetUppBorder(nUpper); + pPage->SetLwrBorder(nLower); + } + InvalidateWindows(); + } - if( mpDrawView->IsTextEdit() ) + // give the undo group to the undo manager + GetViewFrame()->GetObjectShell()->GetUndoManager()-> + AddUndoAction(pUndoGroup); + } + break; + case SID_RULER_OBJECT: + if (pArgs) { Rectangle aRect = maMarkRect; aRect.SetPos(aRect.TopLeft() + aPagePos); - aRect.Top() = rULSpace.GetUpper(); - aRect.Bottom() = aViewSize.Height() - rULSpace.GetLower(); - aRect.SetPos(aRect.TopLeft() - aPagePos); - if ( aRect != maMarkRect) + const SvxObjectItem& rOI = static_cast( + pArgs->Get(GetPool().GetWhich(SID_RULER_OBJECT))); + + if ( rOI.GetStartX() != rOI.GetEndX() ) { - mpDrawView->SetAllMarkedRect(aRect); - maMarkRect = mpDrawView->GetAllMarkedRect(); - Invalidate( SID_RULER_OBJECT ); + aRect.Left() = rOI.GetStartX(); + aRect.Right() = rOI.GetEndX(); } - } - else - { - long nUpper = std::max(0L, rULSpace.GetUpper() - aPagePos.Y()); - long nLower = std::max(0L, rULSpace.GetLower() + aPagePos.Y() + - aPageSize.Height() - aViewSize.Height()); - - sal_uInt16 nPageCnt = GetDoc()->GetSdPageCount(mePageKind); - sal_uInt16 i; - for ( i = 0; i < nPageCnt; i++) + if ( rOI.GetStartY() != rOI.GetEndY() ) { - SdPage* pPage = GetDoc()->GetSdPage(i, mePageKind); - SdUndoAction* pUndo = new SdPageULUndoAction(GetDoc(), - pPage, - pPage->GetUppBorder(), - pPage->GetLwrBorder(), - nUpper, nLower); - pUndoGroup->AddAction(pUndo); - pPage->SetUppBorder(nUpper); - pPage->SetLwrBorder(nLower); + aRect.Top() = rOI.GetStartY(); + aRect.Bottom() = rOI.GetEndY(); } - nPageCnt = GetDoc()->GetMasterSdPageCount(mePageKind); - - for (i = 0; i < nPageCnt; i++) + aRect.SetPos(aRect.TopLeft() - aPagePos); + if ( aRect != maMarkRect) { - SdPage* pPage = GetDoc()->GetMasterSdPage(i, mePageKind); - SdUndoAction* pUndo = new SdPageULUndoAction(GetDoc(), - pPage, - pPage->GetUppBorder(), - pPage->GetLwrBorder(), - nUpper, nLower); - pUndoGroup->AddAction(pUndo); - pPage->SetUppBorder(nUpper); - pPage->SetLwrBorder(nLower); + mpDrawView->SetAllMarkedRect(aRect); + maMarkRect = mpDrawView->GetAllMarkedRect(); + Invalidate( SID_RULER_OBJECT ); } - InvalidateWindows(); } - - // give the undo group to the undo manager - GetViewFrame()->GetObjectShell()->GetUndoManager()-> - AddUndoAction(pUndoGroup); - break; - } - - case SID_RULER_OBJECT: - { - Rectangle aRect = maMarkRect; - aRect.SetPos(aRect.TopLeft() + aPagePos); - - const SvxObjectItem& rOI = static_cast( - pArgs->Get(GetPool().GetWhich(SID_RULER_OBJECT))); - - if ( rOI.GetStartX() != rOI.GetEndX() ) - { - aRect.Left() = rOI.GetStartX(); - aRect.Right() = rOI.GetEndX(); - } - if ( rOI.GetStartY() != rOI.GetEndY() ) - { - aRect.Top() = rOI.GetStartY(); - aRect.Bottom() = rOI.GetEndY(); - } - aRect.SetPos(aRect.TopLeft() - aPagePos); - if ( aRect != maMarkRect) - { - mpDrawView->SetAllMarkedRect(aRect); - maMarkRect = mpDrawView->GetAllMarkedRect(); - Invalidate( SID_RULER_OBJECT ); - } - break; - } - case SID_ATTR_TABSTOP: - { - if( mpDrawView->IsTextEdit() ) + if (pArgs && mpDrawView->IsTextEdit()) { const SvxTabStopItem& rItem = static_cast( pArgs->Get( EE_PARA_TABS )); @@ -666,23 +665,22 @@ void DrawViewShell::ExecRuler(SfxRequest& rReq) Invalidate(SID_ATTR_TABSTOP); } break; - } - case SID_ATTR_PARA_LINESPACE: - { - sal_uInt16 nSlot = SID_ATTR_PARA_LINESPACE; - SvxLineSpacingItem aParaLineSP = static_cast(pArgs->Get( - GetPool().GetWhich(nSlot))); + if (pArgs) + { + sal_uInt16 nSlot = SID_ATTR_PARA_LINESPACE; + SvxLineSpacingItem aParaLineSP = static_cast(pArgs->Get( + GetPool().GetWhich(nSlot))); - SfxItemSet aEditAttr( GetPool(), EE_PARA_SBL, EE_PARA_SBL ); - aParaLineSP.SetWhich( EE_PARA_SBL ); + SfxItemSet aEditAttr( GetPool(), EE_PARA_SBL, EE_PARA_SBL ); + aParaLineSP.SetWhich( EE_PARA_SBL ); - aEditAttr.Put( aParaLineSP ); - mpDrawView->SetAttributes( aEditAttr ); + aEditAttr.Put( aParaLineSP ); + mpDrawView->SetAttributes( aEditAttr ); - Invalidate(SID_ATTR_PARA_LINESPACE); - } - break; + Invalidate(SID_ATTR_PARA_LINESPACE); + } + break; case SID_ATTR_PARA_ADJUST_LEFT: { SvxAdjustItem aItem( SVX_ADJUST_LEFT, EE_PARA_JUST ); @@ -692,8 +690,8 @@ void DrawViewShell::ExecRuler(SfxRequest& rReq) mpDrawView->SetAttributes( aEditAttr ); Invalidate(SID_ATTR_PARA_ADJUST_LEFT); + break; } - break; case SID_ATTR_PARA_ADJUST_CENTER: { SvxAdjustItem aItem( SVX_ADJUST_CENTER, EE_PARA_JUST ); @@ -703,8 +701,8 @@ void DrawViewShell::ExecRuler(SfxRequest& rReq) mpDrawView->SetAttributes( aEditAttr ); Invalidate(SID_ATTR_PARA_ADJUST_CENTER); + break; } - break; case SID_ATTR_PARA_ADJUST_RIGHT: { SvxAdjustItem aItem( SVX_ADJUST_RIGHT, EE_PARA_JUST ); @@ -714,8 +712,8 @@ void DrawViewShell::ExecRuler(SfxRequest& rReq) mpDrawView->SetAttributes( aEditAttr ); Invalidate(SID_ATTR_PARA_ADJUST_RIGHT); + break; } - break; case SID_ATTR_PARA_ADJUST_BLOCK: { SvxAdjustItem aItem( SVX_ADJUST_BLOCK, EE_PARA_JUST ); @@ -725,41 +723,41 @@ void DrawViewShell::ExecRuler(SfxRequest& rReq) mpDrawView->SetAttributes( aEditAttr ); Invalidate(SID_ATTR_PARA_ADJUST_BLOCK); + break; } - break; case SID_ATTR_PARA_ULSPACE: - { - sal_uInt16 nSlot = SID_ATTR_PARA_ULSPACE; - SvxULSpaceItem aULSP = static_cast(pArgs->Get( - GetPool().GetWhich(nSlot))); - SfxItemSet aEditAttr( GetPool(), EE_PARA_ULSPACE, EE_PARA_ULSPACE ); - aULSP.SetWhich( EE_PARA_ULSPACE ); - - aEditAttr.Put( aULSP ); - mpDrawView->SetAttributes( aEditAttr ); + if (pArgs) + { + sal_uInt16 nSlot = SID_ATTR_PARA_ULSPACE; + SvxULSpaceItem aULSP = static_cast(pArgs->Get( + GetPool().GetWhich(nSlot))); + SfxItemSet aEditAttr( GetPool(), EE_PARA_ULSPACE, EE_PARA_ULSPACE ); + aULSP.SetWhich( EE_PARA_ULSPACE ); - Invalidate(SID_ATTR_PARA_ULSPACE); - } - break; + aEditAttr.Put( aULSP ); + mpDrawView->SetAttributes( aEditAttr ); + Invalidate(SID_ATTR_PARA_ULSPACE); + } + break; case SID_ATTR_PARA_LRSPACE: - { - sal_uInt16 nSlot = SID_ATTR_PARA_LRSPACE; - SvxLRSpaceItem aLRSpace = static_cast(pArgs->Get( - GetPool().GetWhich(nSlot))); + if (pArgs) + { + sal_uInt16 nSlot = SID_ATTR_PARA_LRSPACE; + SvxLRSpaceItem aLRSpace = static_cast(pArgs->Get( + GetPool().GetWhich(nSlot))); - SfxItemSet aEditAttr( GetPool(), EE_PARA_LRSPACE, EE_PARA_LRSPACE ); - aLRSpace.SetWhich( EE_PARA_LRSPACE ); + SfxItemSet aEditAttr( GetPool(), EE_PARA_LRSPACE, EE_PARA_LRSPACE ); + aLRSpace.SetWhich( EE_PARA_LRSPACE ); - aEditAttr.Put( aLRSpace ); - mpDrawView->SetAttributes( aEditAttr ); + aEditAttr.Put( aLRSpace ); + mpDrawView->SetAttributes( aEditAttr ); - Invalidate(SID_ATTR_PARA_LRSPACE); + Invalidate(SID_ATTR_PARA_LRSPACE); + } break; - } case SID_ATTR_LRSPACE: - { - if( mpDrawView->IsTextEdit() ) + if (pArgs && mpDrawView->IsTextEdit()) { sal_uInt16 nId = SID_ATTR_PARA_LRSPACE; const SvxLRSpaceItem& rItem = static_cast( @@ -846,7 +844,6 @@ void DrawViewShell::ExecRuler(SfxRequest& rReq) Invalidate(SID_ATTR_PARA_LRSPACE); } break; - } } } diff --git a/sd/source/ui/view/drviews6.cxx b/sd/source/ui/view/drviews6.cxx index 1e137982404e5..ec445e75fe37f 100644 --- a/sd/source/ui/view/drviews6.cxx +++ b/sd/source/ui/view/drviews6.cxx @@ -276,20 +276,17 @@ void DrawViewShell::ExecBmpMask( SfxRequest& rReq ) if ( pObj && !mpDrawView->IsTextEdit() ) { - SdrGrafObj* pNewObj = pObj->Clone(); + std::unique_ptr xNewObj(pObj->Clone()); bool bCont = true; - if( pNewObj->IsLinkedGraphic() ) + if (xNewObj->IsLinkedGraphic()) { ScopedVclPtrInstance< MessageDialog > aQueryBox( static_cast(GetActiveWindow()),"QueryUnlinkImageDialog","modules/sdraw/ui/queryunlinkimagedialog.ui"); if (RET_YES == aQueryBox->Execute()) - pNewObj->ReleaseGraphicLink(); + xNewObj->ReleaseGraphicLink(); else - { - delete pNewObj; bCont = false; - } } SfxChildWindow* pWnd = GetViewFrame()->GetChildWindow( @@ -298,21 +295,21 @@ void DrawViewShell::ExecBmpMask( SfxRequest& rReq ) assert(pBmpMask); if (bCont && pBmpMask) { - const Graphic& rOldGraphic = pNewObj->GetGraphic(); + const Graphic& rOldGraphic = xNewObj->GetGraphic(); const Graphic aNewGraphic(pBmpMask->Mask(rOldGraphic)); if( aNewGraphic != rOldGraphic ) { SdrPageView* pPV = mpDrawView->GetSdrPageView(); - pNewObj->SetEmptyPresObj( false ); - pNewObj->SetGraphic(pBmpMask->Mask(pNewObj->GetGraphic())); + xNewObj->SetEmptyPresObj(false); + xNewObj->SetGraphic(pBmpMask->Mask(xNewObj->GetGraphic())); OUString aStr( mpDrawView->GetDescriptionOfMarkedObjects() ); aStr += " " + SD_RESSTR(STR_EYEDROPPER); mpDrawView->BegUndo( aStr ); - mpDrawView->ReplaceObjectAtView( pObj, *pPV, pNewObj ); + mpDrawView->ReplaceObjectAtView(pObj, *pPV, xNewObj.release()); mpDrawView->EndUndo(); } } diff --git a/sd/source/ui/view/drviews7.cxx b/sd/source/ui/view/drviews7.cxx index 9af3432cf1199..6539152a49fe5 100644 --- a/sd/source/ui/view/drviews7.cxx +++ b/sd/source/ui/view/drviews7.cxx @@ -157,6 +157,7 @@ ::std::unique_ptr GetSupportedClipboardFormats ( case SotClipboardFormatId::STRING: case SotClipboardFormatId::HTML: case SotClipboardFormatId::RTF: + case SotClipboardFormatId::RICHTEXT: case SotClipboardFormatId::EDITENGINE: pResult->AddClipbrdFormat(nTestFormat); break; @@ -1674,8 +1675,8 @@ void DrawViewShell::GetPageProperties( SfxItemSet &rSet ) case (drawing::FillStyle_GRADIENT): { - const XGradient& xGradient = static_cast( rPageAttr.GetItem( XATTR_FILLGRADIENT ) )->GetGradientValue(); - XFillGradientItem aFillGradientItem( OUString(), xGradient, SID_ATTR_PAGE_GRADIENT ); + const XFillGradientItem *pGradient = static_cast( rPageAttr.GetItem( XATTR_FILLGRADIENT ) ); + XFillGradientItem aFillGradientItem( pGradient->GetName(), pGradient->GetGradientValue(), SID_ATTR_PAGE_GRADIENT ); rSet.Put( aFillGradientItem ); } break; @@ -1715,6 +1716,9 @@ void DrawViewShell::SetPageProperties (SfxRequest& rReq) if ( ( nSlotId >= SID_ATTR_PAGE_COLOR ) && ( nSlotId <= SID_ATTR_PAGE_FILLSTYLE ) ) { SdrPageProperties& rPageProperties = pPage->getSdrPageProperties(); + const SfxItemSet &aPageItemSet = rPageProperties.GetItemSet(); + SfxItemSet *pTempSet = aPageItemSet.Clone(false, &mpDrawView->GetModel()->GetItemPool()); + rPageProperties.ClearItem(XATTR_FILLSTYLE); rPageProperties.ClearItem(XATTR_FILLGRADIENT); rPageProperties.ClearItem(XATTR_FILLHATCH); @@ -1743,8 +1747,14 @@ void DrawViewShell::SetPageProperties (SfxRequest& rReq) case(SID_ATTR_PAGE_GRADIENT): { XFillGradientItem aGradientItem( static_cast(pArgs->Get( XATTR_FILLGRADIENT )) ); + + // MigrateItemSet guarantees unique gradient names + SfxItemSet aMigrateSet( mpDrawView->GetModel()->GetItemPool(), XATTR_FILLGRADIENT, XATTR_FILLGRADIENT ); + aMigrateSet.Put( aGradientItem ); + SdrModel::MigrateItemSet( &aMigrateSet, pTempSet, mpDrawView->GetModel() ); + + rPageProperties.PutItemSet( *pTempSet ); rPageProperties.PutItem( XFillStyleItem( drawing::FillStyle_GRADIENT ) ); - rPageProperties.PutItem( XFillGradientItem( aGradientItem ) ); } break; @@ -1768,6 +1778,8 @@ void DrawViewShell::SetPageProperties (SfxRequest& rReq) break; } + delete pTempSet; + rReq.Done(); } } diff --git a/sd/source/ui/view/drviewse.cxx b/sd/source/ui/view/drviewse.cxx index cff011ed0dc27..e48126db1870d 100644 --- a/sd/source/ui/view/drviewse.cxx +++ b/sd/source/ui/view/drviewse.cxx @@ -60,6 +60,7 @@ #include #include #include +#include #include "DrawViewShell.hxx" #include "slideshow.hxx" @@ -722,8 +723,12 @@ void DrawViewShell::FuSupport(SfxRequest& rReq) case SID_PRESENTATION_CURRENT_SLIDE: case SID_REHEARSE_TIMINGS: { + sfx2::SfxNotebookBar::LockNotebookBar(); + slideshowhelp::ShowSlideShow(rReq, *GetDoc()); rReq.Ignore (); + + sfx2::SfxNotebookBar::UnlockNotebookBar(); } break; diff --git a/sd/source/ui/view/outlnvsh.cxx b/sd/source/ui/view/outlnvsh.cxx index e9ab3e560e7b2..5dfe6f6009087 100644 --- a/sd/source/ui/view/outlnvsh.cxx +++ b/sd/source/ui/view/outlnvsh.cxx @@ -707,6 +707,7 @@ IMPL_LINK( OutlineViewShell, ClipboardChanged, TransferableDataHelper*, pDataHel bPastePossible = pDataHelper->GetFormatCount() != 0 && ( pDataHelper->HasFormat( SotClipboardFormatId::STRING ) || pDataHelper->HasFormat( SotClipboardFormatId::RTF ) || + pDataHelper->HasFormat( SotClipboardFormatId::RICHTEXT ) || pDataHelper->HasFormat( SotClipboardFormatId::HTML ) ); SfxBindings& rBindings = GetViewFrame()->GetBindings(); @@ -890,6 +891,7 @@ void OutlineViewShell::GetMenuState( SfxItemSet &rSet ) bPastePossible = ( aDataHelper.GetFormatCount() != 0 && ( aDataHelper.HasFormat( SotClipboardFormatId::STRING ) || aDataHelper.HasFormat( SotClipboardFormatId::RTF ) || + aDataHelper.HasFormat( SotClipboardFormatId::RICHTEXT ) || aDataHelper.HasFormat( SotClipboardFormatId::HTML ) ) ); } diff --git a/sd/source/ui/view/outlview.cxx b/sd/source/ui/view/outlview.cxx index edc461fe7f1d4..9eda921bb7a90 100644 --- a/sd/source/ui/view/outlview.cxx +++ b/sd/source/ui/view/outlview.cxx @@ -127,10 +127,7 @@ OutlineView::OutlineView( DrawDocShell& rDocSh, vcl::Window* pWindow, OutlineVie } Link aLink( LINK(this,OutlineView,EventMultiplexerListener) ); - mrOutlineViewShell.GetViewShellBase().GetEventMultiplexer()->AddEventListener( - aLink, - EventMultiplexerEventId::CurrentPageChanged - | EventMultiplexerEventId::PageOrder); + mrOutlineViewShell.GetViewShellBase().GetEventMultiplexer()->AddEventListener(aLink); LanguageType eLang = mrOutliner.GetDefaultLanguage(); maPageNumberFont = OutputDevice::GetDefaultFont( DefaultFontType::SANS_UNICODE, eLang, GetDefaultFontFlags::NONE ); diff --git a/sd/source/ui/view/sdview3.cxx b/sd/source/ui/view/sdview3.cxx index 6490032b32c97..00eb9066d5e32 100644 --- a/sd/source/ui/view/sdview3.cxx +++ b/sd/source/ui/view/sdview3.cxx @@ -327,14 +327,16 @@ bool View::InsertData( const TransferableDataHelper& rDataHelper, bool bTable = false; // check special cases for pasting table formats as RTL - if( !bLink && (nFormat == SotClipboardFormatId::NONE || (nFormat == SotClipboardFormatId::RTF)) ) + if( !bLink && (nFormat == SotClipboardFormatId::NONE || (nFormat == SotClipboardFormatId::RTF) || (nFormat == SotClipboardFormatId::RICHTEXT)) ) { // if the objekt supports rtf and there is a table involved, default is to create a table - if( aDataHelper.HasFormat( SotClipboardFormatId::RTF ) && ! aDataHelper.HasFormat( SotClipboardFormatId::DRAWING ) ) + bool bIsRTF = aDataHelper.HasFormat( SotClipboardFormatId::RTF ); + if( ( bIsRTF || aDataHelper.HasFormat( SotClipboardFormatId::RICHTEXT ) ) + && ! aDataHelper.HasFormat( SotClipboardFormatId::DRAWING ) ) { ::tools::SvRef xStm; - if( aDataHelper.GetSotStorageStream( SotClipboardFormatId::RTF, xStm ) ) + if( aDataHelper.GetSotStorageStream( bIsRTF ? SotClipboardFormatId::RTF : SotClipboardFormatId::RICHTEXT, xStm ) ) { xStm->Seek( 0 ); @@ -345,7 +347,7 @@ bool View::InsertData( const TransferableDataHelper& rDataHelper, if (x != -1) { bTable = true; - nFormat = SotClipboardFormatId::RTF; + nFormat = bIsRTF ? SotClipboardFormatId::RTF : SotClipboardFormatId::RICHTEXT; break; } } @@ -1419,11 +1421,12 @@ bool View::InsertData( const TransferableDataHelper& rDataHelper, } } - if(!bReturn && !bLink && CHECK_FORMAT_TRANS(SotClipboardFormatId::RTF)) + bool bIsRTF = false; + if(!bReturn && !bLink && (( bIsRTF = CHECK_FORMAT_TRANS(SotClipboardFormatId::RTF) ) || CHECK_FORMAT_TRANS(SotClipboardFormatId::RICHTEXT) )) { ::tools::SvRef xStm; - if( aDataHelper.GetSotStorageStream( SotClipboardFormatId::RTF, xStm ) ) + if( aDataHelper.GetSotStorageStream( bIsRTF ? SotClipboardFormatId::RTF : SotClipboardFormatId::RICHTEXT, xStm ) ) { xStm->Seek( 0 ); diff --git a/sd/source/ui/view/sdview4.cxx b/sd/source/ui/view/sdview4.cxx index 96a2ffc5363ce..63f8260e4aac9 100644 --- a/sd/source/ui/view/sdview4.cxx +++ b/sd/source/ui/view/sdview4.cxx @@ -341,8 +341,12 @@ SdrMediaObj* View::InsertMediaObj( const OUString& rMediaURL, const OUString& rM else if( pPV ) { Rectangle aRect( rPos, rSize ); + SdrObjUserCall* pUserCall = nullptr; if( pPickObj ) + { aRect = pPickObj->GetLogicRect(); + pUserCall = pPickObj->GetUserCall(); // ReplaceObjectAtView can free pPickObj + } pNewMediaObj = new SdrMediaObj( aRect ); @@ -371,9 +375,9 @@ SdrMediaObj* View::InsertMediaObj( const OUString& rMediaURL, const OUString& rM if( pPickObj ) { - pNewMediaObj->AdjustToMaxRect( pPickObj->GetLogicRect() ); + pNewMediaObj->AdjustToMaxRect( aRect ); if( bIsPres ) - pNewMediaObj->SetUserCall(pPickObj->GetUserCall()); + pNewMediaObj->SetUserCall( pUserCall ); } } diff --git a/sd/source/ui/view/viewoverlaymanager.cxx b/sd/source/ui/view/viewoverlaymanager.cxx index 6cff6d7b2879c..f27ef3662b5cc 100644 --- a/sd/source/ui/view/viewoverlaymanager.cxx +++ b/sd/source/ui/view/viewoverlaymanager.cxx @@ -399,11 +399,7 @@ ViewOverlayManager::ViewOverlayManager( ViewShellBase& rViewShellBase ) , mnUpdateTagsEvent( nullptr ) { Link aLink( LINK(this,ViewOverlayManager,EventMultiplexerListener) ); - mrBase.GetEventMultiplexer()->AddEventListener(aLink, EventMultiplexerEventId::CurrentPageChanged - | EventMultiplexerEventId::MainViewAdded - | EventMultiplexerEventId::ViewAdded - | EventMultiplexerEventId::BeginTextEdit - | EventMultiplexerEventId::EndTextEdit ); + mrBase.GetEventMultiplexer()->AddEventListener(aLink); StartListening( *mrBase.GetDocShell() ); } diff --git a/sd/uiconfig/simpress/ui/navigatorpanel.ui b/sd/uiconfig/simpress/ui/navigatorpanel.ui index 93e454ad20c6b..55f9b19580836 100644 --- a/sd/uiconfig/simpress/ui/navigatorpanel.ui +++ b/sd/uiconfig/simpress/ui/navigatorpanel.ui @@ -119,7 +119,7 @@ False Drag Mode dragmode - sc/imglst/na09.png + sd/imglst/nv09.png
False diff --git a/sd/uiconfig/simpress/ui/sidebarslidebackground.ui b/sd/uiconfig/simpress/ui/sidebarslidebackground.ui index 5025ede8429a6..b3e30100b91cb 100644 --- a/sd/uiconfig/simpress/ui/sidebarslidebackground.ui +++ b/sd/uiconfig/simpress/ui/sidebarslidebackground.ui @@ -1,19 +1,20 @@ - + True False + True True False - center start 9 15 + True 6 6 6 @@ -46,6 +47,7 @@ True False + True Landscape Portrait @@ -60,6 +62,7 @@ True False + True 1 @@ -71,6 +74,7 @@ 150 False True + True 1 @@ -84,6 +88,7 @@ True True False + True 0 True @@ -96,6 +101,7 @@ True False + True 1 @@ -107,7 +113,6 @@ True False end - True end @@ -121,6 +126,7 @@ True True True + True .uno:SelectBackground
@@ -133,6 +139,7 @@ 150 True False + True 1 @@ -144,6 +151,7 @@ 150 True False + True 1 @@ -156,6 +164,7 @@ True True False + True 0 True @@ -168,6 +177,7 @@ True False + True 1 @@ -190,6 +200,7 @@ True False + True True diff --git a/sdext/Library_PresentationMinimizer.mk b/sdext/Library_PresentationMinimizer.mk index 2ae650a5f855d..eb8995f00be0d 100644 --- a/sdext/Library_PresentationMinimizer.mk +++ b/sdext/Library_PresentationMinimizer.mk @@ -28,6 +28,7 @@ $(eval $(call gb_Library_use_libraries,PresentationMinimizer,\ cppu \ cppuhelper \ sal \ + tl \ )) $(eval $(call gb_Library_add_exception_objects,PresentationMinimizer,\ diff --git a/sdext/source/minimizer/optimizerdialog.cxx b/sdext/source/minimizer/optimizerdialog.cxx index 78c044a752c54..40d8132496ae1 100644 --- a/sdext/source/minimizer/optimizerdialog.cxx +++ b/sdext/source/minimizer/optimizerdialog.cxx @@ -29,6 +29,7 @@ #include #include #include +#include using namespace ::com::sun::star::io; @@ -511,24 +512,14 @@ void ActionListener::actionPerformed( const ActionEvent& rEvent ) Reference< XStorable > xStorable( mrOptimizerDialog.mxController->getModel(), UNO_QUERY ); if ( xStorable.is() && xStorable->hasLocation() ) { - OUString aLocation( xStorable->getLocation() ); - if ( !aLocation.isEmpty() ) - { - sal_Int32 nIndex = aLocation.lastIndexOf( '/', aLocation.getLength() - 1 ); - if ( nIndex >= 0 ) - { - if ( nIndex < aLocation.getLength() - 1 ) - aLocation = aLocation.copy( nIndex + 1 ); - - // remove extension - nIndex = aLocation.lastIndexOf( '.', aLocation.getLength() - 1 ); - if ( nIndex >= 0 ) - aLocation = aLocation.copy( 0, nIndex ); - - // adding .mini - aLocation = aLocation.concat( ".mini" ); - aFileOpenDialog.setDefaultName( aLocation ); - } + INetURLObject aURLObj( xStorable->getLocation() ); + if ( !aURLObj.hasFinalSlash() && + aURLObj.setExtension( "mini", INetURLObject::LAST_SEGMENT, false ) ) { + // tdf#105382 uri-decode file name + auto aName( aURLObj.getName( INetURLObject::LAST_SEGMENT, + false, + INetURLObject::DECODE_WITH_CHARSET ) ); + aFileOpenDialog.setDefaultName( aName ); } } bool bDialogExecuted = aFileOpenDialog.execute() == dialogs::ExecutableDialogResults::OK; diff --git a/sdext/source/presenter/PresenterAccessibility.cxx b/sdext/source/presenter/PresenterAccessibility.cxx index 7c474b288dafc..48916ebf025a4 100644 --- a/sdext/source/presenter/PresenterAccessibility.cxx +++ b/sdext/source/presenter/PresenterAccessibility.cxx @@ -1109,7 +1109,11 @@ void SAL_CALL PresenterAccessible::AccessibleObject::removeAccessibleEventListen { const osl::MutexGuard aGuard(m_aMutex); - maListeners.erase(std::remove(maListeners.begin(), maListeners.end(), rxListener)); + auto const it(std::remove(maListeners.begin(), maListeners.end(), rxListener)); + if (it != maListeners.end()) + { + maListeners.erase(it); + } } } diff --git a/sdext/source/presenter/PresenterScrollBar.cxx b/sdext/source/presenter/PresenterScrollBar.cxx index 8cba1bcafa01b..831c0ec274bbe 100644 --- a/sdext/source/presenter/PresenterScrollBar.cxx +++ b/sdext/source/presenter/PresenterScrollBar.cxx @@ -802,6 +802,7 @@ void PresenterScrollBar::MousePressRepeater::Start (const PresenterScrollBar::Ar // Schedule repeated executions. auto pThis(shared_from_this()); mnMousePressRepeaterTaskId = PresenterTimer::ScheduleRepeatedTask ( + mpScrollBar->GetComponentContext(), [pThis] (TimeValue const& rTime) { return pThis->Callback(rTime); }, 500000000, 250000000); diff --git a/sdext/source/presenter/PresenterScrollBar.hxx b/sdext/source/presenter/PresenterScrollBar.hxx index 7706ce4ea5aab..1c51194e897b3 100644 --- a/sdext/source/presenter/PresenterScrollBar.hxx +++ b/sdext/source/presenter/PresenterScrollBar.hxx @@ -60,6 +60,9 @@ public: virtual void SAL_CALL disposing() override; + css::uno::Reference const& + GetComponentContext() { return mxComponentContext; } + void SetVisible (const bool bIsVisible); /** Set the bounding box of the scroll bar. diff --git a/sdext/source/presenter/PresenterTextView.cxx b/sdext/source/presenter/PresenterTextView.cxx index 8e3800b46479a..1946696b4b894 100644 --- a/sdext/source/presenter/PresenterTextView.cxx +++ b/sdext/source/presenter/PresenterTextView.cxx @@ -73,6 +73,7 @@ PresenterTextView::PresenterTextView ( mpFont(), maParagraphs(), mpCaret(new PresenterTextCaret( + rxContext, [this] (sal_Int32 const nParagraphIndex, sal_Int32 const nCharacterIndex) { return this->GetCaretBounds(nParagraphIndex, nCharacterIndex); }, rInvalidator)), @@ -1077,9 +1078,11 @@ void PresenterTextParagraph::SetupCellArray ( //===== PresenterTextCaret ================================================---- PresenterTextCaret::PresenterTextCaret ( + uno::Reference const& xContext, const ::std::function& rCharacterBoundsAccess, const ::std::function& rInvalidator) - : mnParagraphIndex(-1), + : m_xContext(xContext) + , mnParagraphIndex(-1), mnCharacterIndex(-1), mnCaretBlinkTaskId(0), mbIsCaretVisible(false), @@ -1100,6 +1103,7 @@ void PresenterTextCaret::ShowCaret() if (mnCaretBlinkTaskId == 0) { mnCaretBlinkTaskId = PresenterTimer::ScheduleRepeatedTask ( + m_xContext, [this] (TimeValue const&) { return this->InvertCaret(); }, CaretBlinkIntervall, CaretBlinkIntervall); diff --git a/sdext/source/presenter/PresenterTextView.hxx b/sdext/source/presenter/PresenterTextView.hxx index b56bd5a85f315..9fc7fd663e1fc 100644 --- a/sdext/source/presenter/PresenterTextView.hxx +++ b/sdext/source/presenter/PresenterTextView.hxx @@ -41,6 +41,7 @@ class PresenterTextCaret { public: PresenterTextCaret ( + css::uno::Reference const& xContext, const ::std::function& rCharacterBoundsAccess, const ::std::function& @@ -69,6 +70,7 @@ public: const css::awt::Rectangle& GetBounds() const; private: + css::uno::Reference const& m_xContext; sal_Int32 mnParagraphIndex; sal_Int32 mnCharacterIndex; sal_Int32 mnCaretBlinkTaskId; diff --git a/sdext/source/presenter/PresenterTimer.cxx b/sdext/source/presenter/PresenterTimer.cxx index e9d3117ba323d..6d4897642c42d 100644 --- a/sdext/source/presenter/PresenterTimer.cxx +++ b/sdext/source/presenter/PresenterTimer.cxx @@ -18,10 +18,15 @@ */ #include "PresenterTimer.hxx" + #include #include +#include +#include + #include #include +#include #include #include @@ -71,7 +76,8 @@ class TimerScheduler public ::osl::Thread { public: - static std::shared_ptr Instance(); + static std::shared_ptr Instance( + uno::Reference const& xContext); static SharedTimerTask CreateTimerTask ( const PresenterTimer::Task& rTask, const TimeValue& rDueTime, @@ -90,6 +96,9 @@ class TimerScheduler static sal_Int64 ConvertFromTimeValue ( const TimeValue& rTimeValue); + static void NotifyTermination(); + static bool HasInstance() { return mpInstance != nullptr; } + private: static std::shared_ptr mpInstance; static ::osl::Mutex maInstanceMutex; @@ -101,8 +110,10 @@ class TimerScheduler TaskContainer maScheduledTasks; ::osl::Mutex maCurrentTaskMutex; SharedTimerTask mpCurrentTask; + ::osl::Condition m_Shutdown; - TimerScheduler(); + TimerScheduler( + uno::Reference const& xContext); virtual ~TimerScheduler() override; class Deleter {public: void operator () (TimerScheduler* pScheduler) { delete pScheduler; } }; friend class Deleter; @@ -111,15 +122,42 @@ class TimerScheduler virtual void SAL_CALL onTerminated() override { mpLateDestroy.reset(); } }; +class TerminateListener + : public ::cppu::WeakImplHelper +{ + virtual ~TerminateListener() override + { + assert(!TimerScheduler::HasInstance()); + } + + virtual void SAL_CALL disposing(lang::EventObject const&) + throw (uno::RuntimeException, std::exception) override + { + } + + virtual void SAL_CALL queryTermination(lang::EventObject const&) + throw (uno::RuntimeException, std::exception) override + { + } + + virtual void SAL_CALL notifyTermination(lang::EventObject const&) + throw (uno::RuntimeException, std::exception) override + { + TimerScheduler::NotifyTermination(); + } +}; + } // end of anonymous namespace //===== PresenterTimer ======================================================== sal_Int32 PresenterTimer::ScheduleRepeatedTask ( + const uno::Reference& xContext, const Task& rTask, const sal_Int64 nDelay, const sal_Int64 nIntervall) { + assert(xContext.is()); TimeValue aCurrentTime; if (TimerScheduler::GetCurrentTime(aCurrentTime)) { @@ -128,7 +166,7 @@ sal_Int32 PresenterTimer::ScheduleRepeatedTask ( aDueTime, TimerScheduler::ConvertFromTimeValue (aCurrentTime) + nDelay); SharedTimerTask pTask (TimerScheduler::CreateTimerTask(rTask, aDueTime, nIntervall)); - TimerScheduler::Instance()->ScheduleTask(pTask); + TimerScheduler::Instance(xContext)->ScheduleTask(pTask); return pTask->mnTaskId; } @@ -137,7 +175,11 @@ sal_Int32 PresenterTimer::ScheduleRepeatedTask ( void PresenterTimer::CancelTask (const sal_Int32 nTaskId) { - return TimerScheduler::Instance()->CancelTask(nTaskId); + auto const pInstance(TimerScheduler::Instance(nullptr)); + if (pInstance) + { + pInstance->CancelTask(nTaskId); + } } //===== TimerScheduler ======================================================== @@ -146,23 +188,33 @@ std::shared_ptr TimerScheduler::mpInstance; ::osl::Mutex TimerScheduler::maInstanceMutex; sal_Int32 TimerScheduler::mnTaskId = PresenterTimer::NotAValidTaskId; -std::shared_ptr TimerScheduler::Instance() +std::shared_ptr TimerScheduler::Instance( + uno::Reference const& xContext) { ::osl::MutexGuard aGuard (maInstanceMutex); if (mpInstance.get() == nullptr) { - mpInstance.reset(new TimerScheduler(), TimerScheduler::Deleter()); + if (!xContext.is()) + return nullptr; + mpInstance.reset(new TimerScheduler(xContext), TimerScheduler::Deleter()); mpInstance->create(); } return mpInstance; } -TimerScheduler::TimerScheduler() +TimerScheduler::TimerScheduler( + uno::Reference const& xContext) : maTaskContainerMutex(), maScheduledTasks(), maCurrentTaskMutex(), mpCurrentTask() { + uno::Reference const xDesktop( + frame::Desktop::create(xContext)); + uno::Reference const xListener( + new TerminateListener); + // assuming the desktop can take ownership + xDesktop->addTerminateListener(xListener); } TimerScheduler::~TimerScheduler() @@ -222,6 +274,33 @@ void TimerScheduler::CancelTask (const sal_Int32 nTaskId) // Let the main-loop cleanup in its own time } +void TimerScheduler::NotifyTermination() +{ + std::shared_ptr const pInstance(TimerScheduler::mpInstance); + if (!pInstance) + { + return; + } + + { + ::osl::MutexGuard aGuard(pInstance->maTaskContainerMutex); + pInstance->maScheduledTasks.clear(); + } + + { + ::osl::MutexGuard aGuard(pInstance->maCurrentTaskMutex); + if (pInstance->mpCurrentTask) + { + pInstance->mpCurrentTask->mbIsCanceled = true; + } + } + + pInstance->m_Shutdown.set(); + + // rhbz#1425304 join thread before shutdown + pInstance->join(); +} + void SAL_CALL TimerScheduler::run() { osl_setThreadName("sdext::presenter::TimerScheduler"); @@ -269,7 +348,8 @@ void SAL_CALL TimerScheduler::run() // Wait until the first task becomes due. TimeValue aTimeValue; ConvertToTimeValue(aTimeValue, nDifference); - wait(aTimeValue); + // wait on condition variable, so the thread can be stopped + m_Shutdown.wait(&aTimeValue); } else { @@ -381,7 +461,9 @@ PresenterClockTimer::PresenterClockTimer (const Reference& rx mnTimerTaskId(PresenterTimer::NotAValidTaskId), mbIsCallbackPending(false), mxRequestCallback() + , m_xContext(rxContext) { + assert(m_xContext.is()); Reference xFactory ( rxContext->getServiceManager(), UNO_QUERY); if (xFactory.is()) @@ -416,6 +498,7 @@ void PresenterClockTimer::AddListener (const SharedListener& rListener) if (mnTimerTaskId==PresenterTimer::NotAValidTaskId) { mnTimerTaskId = PresenterTimer::ScheduleRepeatedTask( + m_xContext, [this] (TimeValue const& rTime) { return this->CheckCurrentTime(rTime); }, 0, 250000000 /*ns*/); diff --git a/sdext/source/presenter/PresenterTimer.hxx b/sdext/source/presenter/PresenterTimer.hxx index 6b6ce0eef0290..48784970b2a8b 100644 --- a/sdext/source/presenter/PresenterTimer.hxx +++ b/sdext/source/presenter/PresenterTimer.hxx @@ -57,6 +57,7 @@ public: nIntervall ns long until CancelTask is called. */ static sal_Int32 ScheduleRepeatedTask ( + const css::uno::Reference& xContext, const Task& rTask, const sal_Int64 nFirst, const sal_Int64 nIntervall); @@ -108,6 +109,7 @@ private: sal_Int32 mnTimerTaskId; bool mbIsCallbackPending; css::uno::Reference mxRequestCallback; + const css::uno::Reference m_xContext; PresenterClockTimer ( const css::uno::Reference& rxContext); diff --git a/setup_native/source/packinfo/DS_Store b/setup_native/source/packinfo/DS_Store index fec0edc61bc53..d519d73670403 100644 Binary files a/setup_native/source/packinfo/DS_Store and b/setup_native/source/packinfo/DS_Store differ diff --git a/setup_native/source/packinfo/packinfo_brand.txt b/setup_native/source/packinfo/packinfo_brand.txt index 4284ad0052132..ba039a5539c2a 100644 --- a/setup_native/source/packinfo/packinfo_brand.txt +++ b/setup_native/source/packinfo/packinfo_brand.txt @@ -22,7 +22,7 @@ solarispackagename = "%WITHOUTDOTUNIXPACKAGENAME%BRANDPACKAGEVERSION" packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-images %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure (Name="UNO Runtime Environment"), %BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core (Name="Core module for %PRODUCTNAME %PRODUCTVERSION"), %BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-images (Name="Images module for %PRODUCTNAME %PRODUCTVERSION")" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Brand module for %PRODUCTNAME %PRODUCTVERSION" @@ -36,7 +36,7 @@ solarispackagename = "%WITHOUTDOTUNIXPACKAGENAME%BRANDPACKAGEVERSION-writer" packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-writer" requires = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-writer %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" solarisrequires = "%WITHOUTDOTUNIXPACKAGENAME%BRANDPACKAGEVERSION,%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-writer" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Writer brand module for %PRODUCTNAME %PRODUCTVERSION" @@ -50,7 +50,7 @@ solarispackagename = "%WITHOUTDOTUNIXPACKAGENAME%BRANDPACKAGEVERSION-calc" packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-calc" requires = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-calc %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" solarisrequires = "%WITHOUTDOTUNIXPACKAGENAME%BRANDPACKAGEVERSION,%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-calc" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Calc brand module for %PRODUCTNAME %PRODUCTVERSION" @@ -64,7 +64,7 @@ solarispackagename = "%WITHOUTDOTUNIXPACKAGENAME%BRANDPACKAGEVERSION-impress" packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-impress" requires = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-impress %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" solarisrequires = "%WITHOUTDOTUNIXPACKAGENAME%BRANDPACKAGEVERSION,%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-impress" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Impress brand module for %PRODUCTNAME %PRODUCTVERSION" @@ -78,7 +78,7 @@ solarispackagename = "%WITHOUTDOTUNIXPACKAGENAME%BRANDPACKAGEVERSION-draw" packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-draw" requires = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-draw %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" solarisrequires = "%WITHOUTDOTUNIXPACKAGENAME%BRANDPACKAGEVERSION,%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-draw" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Draw brand module for %PRODUCTNAME %PRODUCTVERSION" @@ -92,7 +92,7 @@ solarispackagename = "%WITHOUTDOTUNIXPACKAGENAME%BRANDPACKAGEVERSION-math" packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-math" requires = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-math %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" solarisrequires = "%WITHOUTDOTUNIXPACKAGENAME%BRANDPACKAGEVERSION,%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-math" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Math brand module for %PRODUCTNAME %PRODUCTVERSION" @@ -106,7 +106,7 @@ solarispackagename = "%WITHOUTDOTUNIXPACKAGENAME%BRANDPACKAGEVERSION-base" packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-base" requires = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-base %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" solarisrequires = "%WITHOUTDOTUNIXPACKAGENAME%BRANDPACKAGEVERSION,%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-base" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Base brand module for %PRODUCTNAME %PRODUCTVERSION" @@ -120,7 +120,7 @@ solarispackagename = "%WITHOUTDOTUNIXPACKAGENAME%BRANDPACKAGEVERSION-%LANGUAGEST packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-%LANGUAGESTRING" requires = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-base %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-calc %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-math %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-res %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-writer %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" solarisrequires = "%WITHOUTDOTUNIXPACKAGENAME%BRANDPACKAGEVERSION,%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-%LANGUAGESTRING (Name="Language module for %PRODUCTNAME %PRODUCTVERSION\, language %LANGUAGESTRING"),%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-%LANGUAGESTRING-base (Name="Base language module for %PRODUCTNAME %PRODUCTVERSION\, language %LANGUAGESTRING"),%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-%LANGUAGESTRING-calc (Name="Calc language module for %PRODUCTNAME %PRODUCTVERSION\, language %LANGUAGESTRING"),%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-%LANGUAGESTRING-math (Name="Math language module for %PRODUCTNAME %PRODUCTVERSION\, language %LANGUAGESTRING"),%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-%LANGUAGESTRING-res (Name="Resource language module for %PRODUCTNAME %PRODUCTVERSION\, language %LANGUAGESTRING"),%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-%LANGUAGESTRING-writer (Name="Writer language module for %PRODUCTNAME %PRODUCTVERSION\, language %LANGUAGESTRING")" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Brand language module for %PRODUCTNAME %PRODUCTVERSION" diff --git a/setup_native/source/packinfo/packinfo_extensions.txt b/setup_native/source/packinfo/packinfo_extensions.txt index 54a2950254166..e5ac70ea894d7 100644 --- a/setup_native/source/packinfo/packinfo_extensions.txt +++ b/setup_native/source/packinfo/packinfo_extensions.txt @@ -41,7 +41,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core (Name="Cor packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-extension-mediawiki-publisher" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "MediaWiki publisher extension for %PRODUCTNAME %PRODUCTVERSION" @@ -101,7 +101,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core (Name="Cor packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-extension-nlpsolver" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "NLPSolver extension for %PRODUCTNAME %PRODUCTVERSION" @@ -131,7 +131,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core (Name="Cor packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-extension-mysql-connector" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "MySQL Connector extension for %PRODUCTNAME %PRODUCTVERSION" @@ -146,7 +146,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core (Name="Cor packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-extension-beanshell-script-provider" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Script provider for BeanShell extension for %PRODUCTNAME %PRODUCTVERSION" @@ -161,7 +161,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core (Name="Cor packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-extension-javascript-script-provider" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Script provider for JavaScript extension for %PRODUCTNAME %PRODUCTVERSION" diff --git a/setup_native/source/packinfo/packinfo_office.txt b/setup_native/source/packinfo/packinfo_office.txt index 613c79b9e3a9c..a8f8491546f87 100644 --- a/setup_native/source/packinfo/packinfo_office.txt +++ b/setup_native/source/packinfo/packinfo_office.txt @@ -42,7 +42,7 @@ packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-gnome-integration" freebsdrequires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" findrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Gnome integration module for %PRODUCTNAME %PRODUCTVERSION" @@ -57,7 +57,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-tde-integration" freebsdrequires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "TDE integration module for %PRODUCTNAME %PRODUCTVERSION" @@ -72,7 +72,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-kde-integration" freebsdrequires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "KDE integration module for %PRODUCTNAME %PRODUCTVERSION" @@ -89,7 +89,7 @@ requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVE solarisrequires = "SUNWcar, SUNWkvm, SUNWcsr, SUNWcsu, SUNWcsd, SUNWcsl, SUNWxwrtl, SUNWxwplt, SUNWlibC, %SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure" freebsdrequires = "" findrequires = "find-requires-x11.sh" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Core module for %PRODUCTNAME %PRODUCTVERSION" @@ -104,7 +104,7 @@ packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-writer" solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core, SUNWlibC" freebsdrequires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Writer module for %PRODUCTNAME %PRODUCTVERSION" @@ -119,7 +119,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core, SUNWlibC" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-calc" freebsdrequires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Calc module for %PRODUCTNAME %PRODUCTVERSION" @@ -134,7 +134,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core, SUNWlibC" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-draw" freebsdrequires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Draw module for %PRODUCTNAME %PRODUCTVERSION" @@ -149,7 +149,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core, SUNWlibC" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-impress" freebsdrequires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Impress module for %PRODUCTNAME %PRODUCTVERSION" @@ -164,7 +164,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core, SUNWlibC" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-base" freebsdrequires = "%BASISPACKAGEPREFIX%PRODUCTVERSIONg-core" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Base module for %PRODUCTNAME %PRODUCTVERSION" @@ -179,7 +179,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core, SUNWlibC" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-math" freebsdrequires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Math module for %PRODUCTNAME %PRODUCTVERSION" @@ -194,7 +194,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-firebird" freebsdrequires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Firebird module for %PRODUCTNAME %PRODUCTVERSION" @@ -209,7 +209,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-graphicfilter" freebsdrequires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Graphic filter module for %PRODUCTNAME %PRODUCTVERSION" @@ -224,7 +224,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-xsltfilter" freebsdrequires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "XSLT filter samples module for %PRODUCTNAME %PRODUCTVERSION" @@ -239,7 +239,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-activex" freebsdrequires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "ActiveX control for %PRODUCTNAME %PRODUCTVERSION" @@ -253,7 +253,7 @@ solarispackagename = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-onlineupdate" solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core, SUNWlibC, SUNWgzip" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-onlineupdate" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Online update module for %PRODUCTNAME %PRODUCTVERSION" @@ -268,7 +268,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core, SUNWPython packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-pyuno" freebsdrequires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Pyuno module for %PRODUCTNAME %PRODUCTVERSION" @@ -283,7 +283,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-pyuno,%BASISPACK packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-librelogo" freebsdrequires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-pyuno,%BASISPACKAGEPREFIX%PRODUCTVERSION-writer" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-pyuno %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-writer %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "LibreLogo toolbar for %PRODUCTNAME %PRODUCTVERSION Writer" @@ -298,7 +298,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core (Name="Cor packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-python-script-provider" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" freebsdrequires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Script provider for Python for %PRODUCTNAME %PRODUCTVERSION" @@ -313,7 +313,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-images" freebsdrequires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Images module for %PRODUCTNAME %PRODUCTVERSION" @@ -328,7 +328,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-ooofonts" freebsdrequires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "3rd party free fonts for %PRODUCTNAME %PRODUCTVERSION" @@ -343,7 +343,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-ooolinguistic" freebsdrequires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Linguistic module for %PRODUCTNAME %PRODUCTVERSION" @@ -358,7 +358,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-af" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Af dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -441,6 +441,21 @@ destpath = "/opt" packageversion = "%PACKAGEVERSION" End +Start +module = "gid_Module_Root_Extension_Dictionary_Bo" +solarispackagename = "%PACKAGEPREFIX%SOLARISBRANDPACKAGENAME%BRANDPACKAGEVERSION-dict-bo" +solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core, %PACKAGEPREFIX%SOLARISBRANDPACKAGENAME%BRANDPACKAGEVERSION" +packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-bo" +requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" +linuxpatchrequires = "" +copyright = "2016 Elie Roux" +solariscopyright = "solariscopyrightfile" +vendor = "The Document Foundation" +description = "Bo dictionary for %PRODUCTNAME %PRODUCTVERSION" +destpath = "/opt" +packageversion = "%PACKAGEVERSION" +End + Start module = "gid_Module_Root_Extension_Dictionary_Br" solarispackagename = "%PACKAGEPREFIX%SOLARISBRANDPACKAGENAME%BRANDPACKAGEVERSION-dict-br" @@ -478,7 +493,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-ca" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Ca dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -493,7 +508,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-cs" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Cs dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -508,7 +523,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-da" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Da dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -523,7 +538,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-de" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "De dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -538,7 +553,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-en" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "En dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -568,7 +583,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-es" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Es dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -583,7 +598,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-et" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Et dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -598,7 +613,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-fr" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Fr dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -628,7 +643,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-gl" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Gl dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -658,7 +673,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-he" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "He dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -688,7 +703,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-hu" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Hu dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -718,7 +733,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-is" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The hunspell-is project" description = "Is dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -733,7 +748,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-it" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "It dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -748,7 +763,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPRODUCTNAME%BRANDPACKAGEVERSION-dict-kmr-Latn" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPRODUCTNAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Kmr-Latn dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -778,7 +793,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-lt" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Lt dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -808,7 +823,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-ne" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Ne dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -823,7 +838,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-nl" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Nl dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -838,7 +853,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-no" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "No dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -868,7 +883,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-pl" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Pl dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -883,7 +898,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-pt-BR" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Pt-BR dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -898,7 +913,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-pt-PT" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Pt-PT dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -913,7 +928,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-ro" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Ro dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -928,7 +943,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-ru" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Ru dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -958,7 +973,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-sk" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Sk dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -973,7 +988,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-sl" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Sl dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -988,7 +1003,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-sr" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Sr dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -1003,7 +1018,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-sv" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Sv dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -1018,7 +1033,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-sw" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Sw dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -1048,7 +1063,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-th" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Th dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -1078,7 +1093,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-vi" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Vietnamese dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -1093,7 +1108,7 @@ solarisrequires = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure, %BASISPACKAGEP packagename = "%UNIXPACKAGENAME%BRANDPACKAGEVERSION-dict-zu" requires = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION,%UNIXPACKAGENAME%BRANDPACKAGEVERSION %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Zu dictionary for %PRODUCTNAME %PRODUCTVERSION" @@ -1109,7 +1124,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-impress" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-ogltrans" freebsdrequires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-impress" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-impress %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "OpenGL slide transitions module for %PRODUCTNAME %PRODUCTVERSION" @@ -1124,7 +1139,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-base" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-postgresql-sdbc" freebsdrequires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-base" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-base %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "PostgreSQL Connector driver for %PRODUCTNAME %PRODUCTVERSION" @@ -1139,7 +1154,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core (Name="Core packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-extension-pdf-import" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "PDF import extension for %PRODUCTNAME %PRODUCTVERSION" @@ -1154,7 +1169,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core (Name="Core packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-filter-data" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Filter data for %PRODUCTNAME %PRODUCTVERSION" @@ -1169,7 +1184,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core (Name="Core packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-extension-report-builder" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Report Builder extension for %PRODUCTNAME %PRODUCTVERSION" @@ -1184,7 +1199,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core (Name="Core packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-libreofficekit-data" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" linuxpatchrequires = "" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Libreofficekit data files for %PRODUCTNAME %PRODUCTVERSION" diff --git a/setup_native/source/packinfo/packinfo_office_help.txt b/setup_native/source/packinfo/packinfo_office_help.txt index 386cd3fe20992..5c970aa3b705d 100644 --- a/setup_native/source/packinfo/packinfo_office_help.txt +++ b/setup_native/source/packinfo/packinfo_office_help.txt @@ -41,7 +41,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-%LANGUAGESTRING" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-help" provides = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-help" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Help module for %PRODUCTNAME %PRODUCTVERSION, language %LANGUAGESTRING" diff --git a/setup_native/source/packinfo/packinfo_office_lang.txt b/setup_native/source/packinfo/packinfo_office_lang.txt index 16add98eb6434..f041c48de1a42 100644 --- a/setup_native/source/packinfo/packinfo_office_lang.txt +++ b/setup_native/source/packinfo/packinfo_office_lang.txt @@ -41,7 +41,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING" provides = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Language module for %PRODUCTNAME %PRODUCTVERSION, language %LANGUAGESTRING" @@ -57,7 +57,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-%LANGUAGESTRING" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-fonts" provides = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-fonts" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Language fonts module for %PRODUCTNAME %PRODUCTVERSION, language %LANGUAGESTRING" @@ -73,7 +73,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-%LANGUAGESTRING" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-res" provides = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-res" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Language resource module for %PRODUCTNAME %PRODUCTVERSION, language %LANGUAGESTRING" @@ -89,7 +89,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-%LANGUAGESTRING" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-writer" provides = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-writer" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Writer language module for %PRODUCTNAME %PRODUCTVERSION, language %LANGUAGESTRING" @@ -105,7 +105,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-%LANGUAGESTRING" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-calc" provides = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-calc" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Calc language module for %PRODUCTNAME %PRODUCTVERSION, language %LANGUAGESTRING" @@ -121,7 +121,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-%LANGUAGESTRING" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-impress" provides = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-impress" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Impress language module for %PRODUCTNAME %PRODUCTVERSION, language %LANGUAGESTRING" @@ -137,7 +137,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-%LANGUAGESTRING" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-draw" provides = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-draw" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Draw language module for %PRODUCTNAME %PRODUCTVERSION, language %LANGUAGESTRING" @@ -153,7 +153,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-%LANGUAGESTRING" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-math" provides = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-math" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Math language module for %PRODUCTNAME %PRODUCTVERSION, language %LANGUAGESTRING" @@ -169,7 +169,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-%LANGUAGESTRING" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-base" provides = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-base" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Base language module for %PRODUCTNAME %PRODUCTVERSION, language %LANGUAGESTRING" @@ -185,7 +185,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-%LANGUAGESTRING" packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-onlineupd" provides = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING-onlineupd" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-%LANGUAGESTRING %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Online update language module for %PRODUCTNAME %PRODUCTVERSION, language %LANGUAGESTRING" diff --git a/setup_native/source/packinfo/packinfo_sdkoo.txt b/setup_native/source/packinfo/packinfo_sdkoo.txt index cfac714e55dc3..3be4a6e0050b4 100644 --- a/setup_native/source/packinfo/packinfo_sdkoo.txt +++ b/setup_native/source/packinfo/packinfo_sdkoo.txt @@ -23,7 +23,7 @@ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core, SUNWbtool packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-sdk" freebsdrequires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core" requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core %PACKAGEVERSION %PACKAGEVERSION-%PACKAGEREVISION" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "Software Development Kit for LibreOffice %PRODUCTVERSION" diff --git a/setup_native/source/packinfo/packinfo_ure.txt b/setup_native/source/packinfo/packinfo_ure.txt index ff20319f0c78c..0cba8e7029010 100644 --- a/setup_native/source/packinfo/packinfo_ure.txt +++ b/setup_native/source/packinfo/packinfo_ure.txt @@ -24,7 +24,7 @@ solarisprovides = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-stdlibs" linuxreplaces = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-stdlibs" linuxincompat = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-stdlibs" packagename = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "UNO Runtime Environment" @@ -40,7 +40,7 @@ solarisprovides = "%SOLSUREPACKAGEPREFIX%BRANDPACKAGEVERSION-stdlibs" linuxreplaces = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-stdlibs" linuxincompat = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-stdlibs" packagename = "%UREPACKAGEPREFIX%BRANDPACKAGEVERSION-ure" -copyright = "2016 The Document Foundation" +copyright = "2017 The Document Foundation" solariscopyright = "solariscopyrightfile" vendor = "The Document Foundation" description = "UNO Runtime Environment" diff --git a/setup_native/source/packinfo/spellchecker_selection.txt b/setup_native/source/packinfo/spellchecker_selection.txt index 12e5f59a5b15e..3a343b002b1a1 100644 --- a/setup_native/source/packinfo/spellchecker_selection.txt +++ b/setup_native/source/packinfo/spellchecker_selection.txt @@ -31,6 +31,7 @@ ar = "ar" be = "be" bg = "bg" bn = "bn" +bo = "bo" br = "br,fr" bs = "bs" ca = "ca,an,es,fr,it,oc" diff --git a/sfx2/emojiconfig/emoji.json b/sfx2/emojiconfig/emoji.json index 4716dc9a2e7e1..4b2a9974639dc 100644 --- a/sfx2/emojiconfig/emoji.json +++ b/sfx2/emojiconfig/emoji.json @@ -20696,7 +20696,8 @@ "emoji_order": "1296", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "raised_hands_tone3": { "unicode": "1f64c-1f3fd", @@ -20707,7 +20708,8 @@ "emoji_order": "1297", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "raised_hands_tone4": { "unicode": "1f64c-1f3fe", @@ -20718,7 +20720,8 @@ "emoji_order": "1298", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "raised_hands_tone5": { "unicode": "1f64c-1f3ff", @@ -20729,7 +20732,8 @@ "emoji_order": "1299", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "clap_tone1": { "unicode": "1f44f-1f3fb", @@ -20751,7 +20755,8 @@ "emoji_order": "1301", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "clap_tone3": { "unicode": "1f44f-1f3fd", @@ -20762,7 +20767,8 @@ "emoji_order": "1302", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "clap_tone4": { "unicode": "1f44f-1f3fe", @@ -20773,7 +20779,8 @@ "emoji_order": "1303", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "clap_tone5": { "unicode": "1f44f-1f3ff", @@ -20784,7 +20791,8 @@ "emoji_order": "1304", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "wave_tone1": { "unicode": "1f44b-1f3fb", @@ -20806,7 +20814,8 @@ "emoji_order": "1306", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "wave_tone3": { "unicode": "1f44b-1f3fd", @@ -20817,7 +20826,8 @@ "emoji_order": "1307", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "wave_tone4": { "unicode": "1f44b-1f3fe", @@ -20828,7 +20838,8 @@ "emoji_order": "1308", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "wave_tone5": { "unicode": "1f44b-1f3ff", @@ -20839,7 +20850,8 @@ "emoji_order": "1309", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "thumbsup_tone1": { "unicode": "1f44d-1f3fb", @@ -20867,7 +20879,8 @@ ":thumbup_tone2:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "thumbsup_tone3": { "unicode": "1f44d-1f3fd", @@ -20881,7 +20894,8 @@ ":thumbup_tone3:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "thumbsup_tone4": { "unicode": "1f44d-1f3fe", @@ -20895,7 +20909,8 @@ ":thumbup_tone4:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "thumbsup_tone5": { "unicode": "1f44d-1f3ff", @@ -20909,7 +20924,8 @@ ":thumbup_tone5:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "thumbsdown_tone1": { "unicode": "1f44e-1f3fb", @@ -20937,7 +20953,8 @@ ":thumbdown_tone2:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "thumbsdown_tone3": { "unicode": "1f44e-1f3fd", @@ -20951,7 +20968,8 @@ ":thumbdown_tone3:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "thumbsdown_tone4": { "unicode": "1f44e-1f3fe", @@ -20965,7 +20983,8 @@ ":thumbdown_tone4:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "thumbsdown_tone5": { "unicode": "1f44e-1f3ff", @@ -20979,7 +20998,8 @@ ":thumbdown_tone5:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "punch_tone1": { "unicode": "1f44a-1f3fb", @@ -21001,7 +21021,8 @@ "emoji_order": "1321", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "punch_tone3": { "unicode": "1f44a-1f3fd", @@ -21012,7 +21033,8 @@ "emoji_order": "1322", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "punch_tone4": { "unicode": "1f44a-1f3fe", @@ -21023,7 +21045,8 @@ "emoji_order": "1323", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "punch_tone5": { "unicode": "1f44a-1f3ff", @@ -21034,7 +21057,8 @@ "emoji_order": "1324", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "fist_tone1": { "unicode": "270a-1f3fb", @@ -21056,7 +21080,8 @@ "emoji_order": "1326", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "fist_tone3": { "unicode": "270a-1f3fd", @@ -21067,7 +21092,8 @@ "emoji_order": "1327", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "fist_tone4": { "unicode": "270a-1f3fe", @@ -21078,7 +21104,8 @@ "emoji_order": "1328", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "fist_tone5": { "unicode": "270a-1f3ff", @@ -21089,7 +21116,8 @@ "emoji_order": "1329", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "v_tone1": { "unicode": "270c-1f3fb", @@ -21111,7 +21139,8 @@ "emoji_order": "1331", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "v_tone3": { "unicode": "270c-1f3fd", @@ -21122,7 +21151,8 @@ "emoji_order": "1332", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "v_tone4": { "unicode": "270c-1f3fe", @@ -21133,7 +21163,8 @@ "emoji_order": "1333", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "v_tone5": { "unicode": "270c-1f3ff", @@ -21144,7 +21175,8 @@ "emoji_order": "1334", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "ok_hand_tone1": { "unicode": "1f44c-1f3fb", @@ -21166,7 +21198,8 @@ "emoji_order": "1336", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "ok_hand_tone3": { "unicode": "1f44c-1f3fd", @@ -21177,7 +21210,8 @@ "emoji_order": "1337", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "ok_hand_tone4": { "unicode": "1f44c-1f3fe", @@ -21188,7 +21222,8 @@ "emoji_order": "1338", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "ok_hand_tone5": { "unicode": "1f44c-1f3ff", @@ -21199,7 +21234,8 @@ "emoji_order": "1339", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "raised_hand_tone1": { "unicode": "270b-1f3fb", @@ -21221,7 +21257,8 @@ "emoji_order": "1341", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "raised_hand_tone3": { "unicode": "270b-1f3fd", @@ -21232,7 +21269,8 @@ "emoji_order": "1342", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "raised_hand_tone4": { "unicode": "270b-1f3fe", @@ -21243,7 +21281,8 @@ "emoji_order": "1343", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "raised_hand_tone5": { "unicode": "270b-1f3ff", @@ -21254,7 +21293,8 @@ "emoji_order": "1344", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "open_hands_tone1": { "unicode": "1f450-1f3fb", @@ -21276,7 +21316,8 @@ "emoji_order": "1346", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "open_hands_tone3": { "unicode": "1f450-1f3fd", @@ -21287,7 +21328,8 @@ "emoji_order": "1347", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "open_hands_tone4": { "unicode": "1f450-1f3fe", @@ -21298,7 +21340,8 @@ "emoji_order": "1348", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "open_hands_tone5": { "unicode": "1f450-1f3ff", @@ -21309,7 +21352,8 @@ "emoji_order": "1349", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "muscle_tone1": { "unicode": "1f4aa-1f3fb", @@ -21331,7 +21375,8 @@ "emoji_order": "1351", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "muscle_tone3": { "unicode": "1f4aa-1f3fd", @@ -21342,7 +21387,8 @@ "emoji_order": "1352", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "muscle_tone4": { "unicode": "1f4aa-1f3fe", @@ -21353,7 +21399,8 @@ "emoji_order": "1353", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "muscle_tone5": { "unicode": "1f4aa-1f3ff", @@ -21364,7 +21411,8 @@ "emoji_order": "1354", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "pray_tone1": { "unicode": "1f64f-1f3fb", @@ -21386,7 +21434,8 @@ "emoji_order": "1356", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "pray_tone3": { "unicode": "1f64f-1f3fd", @@ -21397,7 +21446,8 @@ "emoji_order": "1357", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "pray_tone4": { "unicode": "1f64f-1f3fe", @@ -21408,7 +21458,8 @@ "emoji_order": "1358", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "pray_tone5": { "unicode": "1f64f-1f3ff", @@ -21419,7 +21470,8 @@ "emoji_order": "1359", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "point_up_tone1": { "unicode": "261d-1f3fb", @@ -21441,7 +21493,8 @@ "emoji_order": "1361", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "point_up_tone3": { "unicode": "261d-1f3fd", @@ -21452,7 +21505,8 @@ "emoji_order": "1362", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "point_up_tone4": { "unicode": "261d-1f3fe", @@ -21463,7 +21517,8 @@ "emoji_order": "1363", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "point_up_tone5": { "unicode": "261d-1f3ff", @@ -21474,7 +21529,8 @@ "emoji_order": "1364", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "point_up_2_tone1": { "unicode": "1f446-1f3fb", @@ -21496,7 +21552,8 @@ "emoji_order": "1366", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "point_up_2_tone3": { "unicode": "1f446-1f3fd", @@ -21507,7 +21564,8 @@ "emoji_order": "1367", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "point_up_2_tone4": { "unicode": "1f446-1f3fe", @@ -21518,7 +21576,8 @@ "emoji_order": "1368", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "point_up_2_tone5": { "unicode": "1f446-1f3ff", @@ -21529,7 +21588,8 @@ "emoji_order": "1369", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "point_down_tone1": { "unicode": "1f447-1f3fb", @@ -21551,7 +21611,8 @@ "emoji_order": "1371", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "point_down_tone3": { "unicode": "1f447-1f3fd", @@ -21562,7 +21623,8 @@ "emoji_order": "1372", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "point_down_tone4": { "unicode": "1f447-1f3fe", @@ -21573,7 +21635,8 @@ "emoji_order": "1373", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "point_down_tone5": { "unicode": "1f447-1f3ff", @@ -21584,7 +21647,8 @@ "emoji_order": "1374", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "point_left_tone1": { "unicode": "1f448-1f3fb", @@ -21606,7 +21670,8 @@ "emoji_order": "1376", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "point_left_tone3": { "unicode": "1f448-1f3fd", @@ -21617,7 +21682,8 @@ "emoji_order": "1377", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "point_left_tone4": { "unicode": "1f448-1f3fe", @@ -21628,7 +21694,8 @@ "emoji_order": "1378", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "point_left_tone5": { "unicode": "1f448-1f3ff", @@ -21639,7 +21706,8 @@ "emoji_order": "1379", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "point_right_tone1": { "unicode": "1f449-1f3fb", @@ -21661,7 +21729,8 @@ "emoji_order": "1381", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "point_right_tone3": { "unicode": "1f449-1f3fd", @@ -21672,7 +21741,8 @@ "emoji_order": "1382", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "point_right_tone4": { "unicode": "1f449-1f3fe", @@ -21683,7 +21753,8 @@ "emoji_order": "1383", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "point_right_tone5": { "unicode": "1f449-1f3ff", @@ -21694,7 +21765,8 @@ "emoji_order": "1384", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "middle_finger_tone1": { "unicode": "1f595-1f3fb", @@ -21720,7 +21792,8 @@ ":reversed_hand_with_middle_finger_extended_tone2:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "middle_finger_tone3": { "unicode": "1f595-1f3fd", @@ -21733,7 +21806,8 @@ ":reversed_hand_with_middle_finger_extended_tone3:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "middle_finger_tone4": { "unicode": "1f595-1f3fe", @@ -21746,7 +21820,8 @@ ":reversed_hand_with_middle_finger_extended_tone4:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "middle_finger_tone5": { "unicode": "1f595-1f3ff", @@ -21759,7 +21834,8 @@ ":reversed_hand_with_middle_finger_extended_tone5:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "hand_splayed_tone1": { "unicode": "1f590-1f3fb", @@ -21785,7 +21861,8 @@ ":raised_hand_with_fingers_splayed_tone2:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "hand_splayed_tone3": { "unicode": "1f590-1f3fd", @@ -21798,7 +21875,8 @@ ":raised_hand_with_fingers_splayed_tone3:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "hand_splayed_tone4": { "unicode": "1f590-1f3fe", @@ -21811,7 +21889,8 @@ ":raised_hand_with_fingers_splayed_tone4:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "hand_splayed_tone5": { "unicode": "1f590-1f3ff", @@ -21824,7 +21903,8 @@ ":raised_hand_with_fingers_splayed_tone5:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "metal_tone1": { "unicode": "1f918-1f3fb", @@ -21850,7 +21930,8 @@ ":sign_of_the_horns_tone2:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "metal_tone3": { "unicode": "1f918-1f3fd", @@ -21863,7 +21944,8 @@ ":sign_of_the_horns_tone3:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "metal_tone4": { "unicode": "1f918-1f3fe", @@ -21876,7 +21958,8 @@ ":sign_of_the_horns_tone4:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "metal_tone5": { "unicode": "1f918-1f3ff", @@ -21889,7 +21972,8 @@ ":sign_of_the_horns_tone5:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "vulcan_tone1": { "unicode": "1f596-1f3fb", @@ -21915,7 +21999,8 @@ ":raised_hand_with_part_between_middle_and_ring_fingers_tone2:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "vulcan_tone3": { "unicode": "1f596-1f3fd", @@ -21928,7 +22013,8 @@ ":raised_hand_with_part_between_middle_and_ring_fingers_tone3:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "vulcan_tone4": { "unicode": "1f596-1f3fe", @@ -21941,7 +22027,8 @@ ":raised_hand_with_part_between_middle_and_ring_fingers_tone4:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "vulcan_tone5": { "unicode": "1f596-1f3ff", @@ -21954,7 +22041,8 @@ ":raised_hand_with_part_between_middle_and_ring_fingers_tone5:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "writing_hand_tone1": { "unicode": "270d-1f3fb", @@ -21976,7 +22064,8 @@ "emoji_order": "1406", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "writing_hand_tone3": { "unicode": "270d-1f3fd", @@ -21987,7 +22076,8 @@ "emoji_order": "1407", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "writing_hand_tone4": { "unicode": "270d-1f3fe", @@ -21998,7 +22088,8 @@ "emoji_order": "1408", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "writing_hand_tone5": { "unicode": "270d-1f3ff", @@ -22009,7 +22100,8 @@ "emoji_order": "1409", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "nail_care_tone1": { "unicode": "1f485-1f3fb", @@ -22031,7 +22123,8 @@ "emoji_order": "1411", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "nail_care_tone3": { "unicode": "1f485-1f3fd", @@ -22042,7 +22135,8 @@ "emoji_order": "1412", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "nail_care_tone4": { "unicode": "1f485-1f3fe", @@ -22053,7 +22147,8 @@ "emoji_order": "1413", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "nail_care_tone5": { "unicode": "1f485-1f3ff", @@ -22064,7 +22159,8 @@ "emoji_order": "1414", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "ear_tone1": { "unicode": "1f442-1f3fb", @@ -22086,7 +22182,8 @@ "emoji_order": "1416", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "ear_tone3": { "unicode": "1f442-1f3fd", @@ -22097,7 +22194,8 @@ "emoji_order": "1417", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "ear_tone4": { "unicode": "1f442-1f3fe", @@ -22108,7 +22206,8 @@ "emoji_order": "1418", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "ear_tone5": { "unicode": "1f442-1f3ff", @@ -22119,7 +22218,8 @@ "emoji_order": "1419", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "nose_tone1": { "unicode": "1f443-1f3fb", @@ -22141,7 +22241,8 @@ "emoji_order": "1421", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "nose_tone3": { "unicode": "1f443-1f3fd", @@ -22152,7 +22253,8 @@ "emoji_order": "1422", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "nose_tone4": { "unicode": "1f443-1f3fe", @@ -22163,7 +22265,8 @@ "emoji_order": "1423", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "nose_tone5": { "unicode": "1f443-1f3ff", @@ -22174,7 +22277,8 @@ "emoji_order": "1424", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "baby_tone1": { "unicode": "1f476-1f3fb", @@ -22196,7 +22300,8 @@ "emoji_order": "1426", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "baby_tone3": { "unicode": "1f476-1f3fd", @@ -22207,7 +22312,8 @@ "emoji_order": "1427", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "baby_tone4": { "unicode": "1f476-1f3fe", @@ -22218,7 +22324,8 @@ "emoji_order": "1428", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "baby_tone5": { "unicode": "1f476-1f3ff", @@ -22229,7 +22336,8 @@ "emoji_order": "1429", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "boy_tone1": { "unicode": "1f466-1f3fb", @@ -22251,7 +22359,8 @@ "emoji_order": "1431", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "boy_tone3": { "unicode": "1f466-1f3fd", @@ -22262,7 +22371,8 @@ "emoji_order": "1432", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "boy_tone4": { "unicode": "1f466-1f3fe", @@ -22273,7 +22383,8 @@ "emoji_order": "1433", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "boy_tone5": { "unicode": "1f466-1f3ff", @@ -22284,7 +22395,8 @@ "emoji_order": "1434", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "girl_tone1": { "unicode": "1f467-1f3fb", @@ -22306,7 +22418,8 @@ "emoji_order": "1436", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "girl_tone3": { "unicode": "1f467-1f3fd", @@ -22317,7 +22430,8 @@ "emoji_order": "1437", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "girl_tone4": { "unicode": "1f467-1f3fe", @@ -22328,7 +22442,8 @@ "emoji_order": "1438", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "girl_tone5": { "unicode": "1f467-1f3ff", @@ -22339,7 +22454,8 @@ "emoji_order": "1439", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "man_tone1": { "unicode": "1f468-1f3fb", @@ -22361,7 +22477,8 @@ "emoji_order": "1441", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "man_tone3": { "unicode": "1f468-1f3fd", @@ -22372,7 +22489,8 @@ "emoji_order": "1442", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "man_tone4": { "unicode": "1f468-1f3fe", @@ -22383,7 +22501,8 @@ "emoji_order": "1443", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "man_tone5": { "unicode": "1f468-1f3ff", @@ -22394,7 +22513,8 @@ "emoji_order": "1444", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "woman_tone1": { "unicode": "1f469-1f3fb", @@ -22416,7 +22536,8 @@ "emoji_order": "1446", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "woman_tone3": { "unicode": "1f469-1f3fd", @@ -22427,7 +22548,8 @@ "emoji_order": "1447", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "woman_tone4": { "unicode": "1f469-1f3fe", @@ -22438,7 +22560,8 @@ "emoji_order": "1448", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "woman_tone5": { "unicode": "1f469-1f3ff", @@ -22449,7 +22572,8 @@ "emoji_order": "1449", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "person_with_blond_hair_tone1": { "unicode": "1f471-1f3fb", @@ -22471,7 +22595,8 @@ "emoji_order": "1451", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "person_with_blond_hair_tone3": { "unicode": "1f471-1f3fd", @@ -22482,7 +22607,8 @@ "emoji_order": "1452", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "person_with_blond_hair_tone4": { "unicode": "1f471-1f3fe", @@ -22493,7 +22619,8 @@ "emoji_order": "1453", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "person_with_blond_hair_tone5": { "unicode": "1f471-1f3ff", @@ -22504,7 +22631,8 @@ "emoji_order": "1454", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "older_man_tone1": { "unicode": "1f474-1f3fb", @@ -22526,7 +22654,8 @@ "emoji_order": "1456", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "older_man_tone3": { "unicode": "1f474-1f3fd", @@ -22537,7 +22666,8 @@ "emoji_order": "1457", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "older_man_tone4": { "unicode": "1f474-1f3fe", @@ -22548,7 +22678,8 @@ "emoji_order": "1458", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "older_man_tone5": { "unicode": "1f474-1f3ff", @@ -22559,7 +22690,8 @@ "emoji_order": "1459", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "older_woman_tone1": { "unicode": "1f475-1f3fb", @@ -22585,7 +22717,8 @@ ":grandma_tone2:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "older_woman_tone3": { "unicode": "1f475-1f3fd", @@ -22598,7 +22731,8 @@ ":grandma_tone3:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "older_woman_tone4": { "unicode": "1f475-1f3fe", @@ -22611,7 +22745,8 @@ ":grandma_tone4:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "older_woman_tone5": { "unicode": "1f475-1f3ff", @@ -22624,7 +22759,8 @@ ":grandma_tone5:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "man_with_gua_pi_mao_tone1": { "unicode": "1f472-1f3fb", @@ -22646,7 +22782,8 @@ "emoji_order": "1466", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "man_with_gua_pi_mao_tone3": { "unicode": "1f472-1f3fd", @@ -22657,7 +22794,8 @@ "emoji_order": "1467", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "man_with_gua_pi_mao_tone4": { "unicode": "1f472-1f3fe", @@ -22668,7 +22806,8 @@ "emoji_order": "1468", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "man_with_gua_pi_mao_tone5": { "unicode": "1f472-1f3ff", @@ -22679,7 +22818,8 @@ "emoji_order": "1469", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "man_with_turban_tone1": { "unicode": "1f473-1f3fb", @@ -22701,7 +22841,8 @@ "emoji_order": "1471", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "man_with_turban_tone3": { "unicode": "1f473-1f3fd", @@ -22712,7 +22853,8 @@ "emoji_order": "1472", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "man_with_turban_tone4": { "unicode": "1f473-1f3fe", @@ -22723,7 +22865,8 @@ "emoji_order": "1473", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "man_with_turban_tone5": { "unicode": "1f473-1f3ff", @@ -22734,7 +22877,8 @@ "emoji_order": "1474", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "cop_tone1": { "unicode": "1f46e-1f3fb", @@ -22756,7 +22900,8 @@ "emoji_order": "1476", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "cop_tone3": { "unicode": "1f46e-1f3fd", @@ -22767,7 +22912,8 @@ "emoji_order": "1477", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "cop_tone4": { "unicode": "1f46e-1f3fe", @@ -22778,7 +22924,8 @@ "emoji_order": "1478", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "cop_tone5": { "unicode": "1f46e-1f3ff", @@ -22789,7 +22936,8 @@ "emoji_order": "1479", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "construction_worker_tone1": { "unicode": "1f477-1f3fb", @@ -22811,7 +22959,8 @@ "emoji_order": "1481", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "construction_worker_tone3": { "unicode": "1f477-1f3fd", @@ -22822,7 +22971,8 @@ "emoji_order": "1482", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "construction_worker_tone4": { "unicode": "1f477-1f3fe", @@ -22833,7 +22983,8 @@ "emoji_order": "1483", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "construction_worker_tone5": { "unicode": "1f477-1f3ff", @@ -22844,7 +22995,8 @@ "emoji_order": "1484", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "guardsman_tone1": { "unicode": "1f482-1f3fb", @@ -22866,7 +23018,8 @@ "emoji_order": "1486", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "guardsman_tone3": { "unicode": "1f482-1f3fd", @@ -22877,7 +23030,8 @@ "emoji_order": "1487", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "guardsman_tone4": { "unicode": "1f482-1f3fe", @@ -22888,7 +23042,8 @@ "emoji_order": "1488", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "guardsman_tone5": { "unicode": "1f482-1f3ff", @@ -22899,7 +23054,8 @@ "emoji_order": "1489", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "santa_tone1": { "unicode": "1f385-1f3fb", @@ -22921,7 +23077,8 @@ "emoji_order": "1491", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "santa_tone3": { "unicode": "1f385-1f3fd", @@ -22932,7 +23089,8 @@ "emoji_order": "1492", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "santa_tone4": { "unicode": "1f385-1f3fe", @@ -22943,7 +23101,8 @@ "emoji_order": "1493", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "santa_tone5": { "unicode": "1f385-1f3ff", @@ -22954,7 +23113,8 @@ "emoji_order": "1494", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "angel_tone1": { "unicode": "1f47c-1f3fb", @@ -22976,7 +23136,8 @@ "emoji_order": "1496", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "angel_tone3": { "unicode": "1f47c-1f3fd", @@ -22987,7 +23148,8 @@ "emoji_order": "1497", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "angel_tone4": { "unicode": "1f47c-1f3fe", @@ -22998,7 +23160,8 @@ "emoji_order": "1498", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "angel_tone5": { "unicode": "1f47c-1f3ff", @@ -23009,7 +23172,8 @@ "emoji_order": "1499", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "princess_tone1": { "unicode": "1f478-1f3fb", @@ -23031,7 +23195,8 @@ "emoji_order": "1501", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "princess_tone3": { "unicode": "1f478-1f3fd", @@ -23042,7 +23207,8 @@ "emoji_order": "1502", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "princess_tone4": { "unicode": "1f478-1f3fe", @@ -23053,7 +23219,8 @@ "emoji_order": "1503", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "princess_tone5": { "unicode": "1f478-1f3ff", @@ -23064,7 +23231,8 @@ "emoji_order": "1504", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "bride_with_veil_tone1": { "unicode": "1f470-1f3fb", @@ -23086,7 +23254,8 @@ "emoji_order": "1506", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "bride_with_veil_tone3": { "unicode": "1f470-1f3fd", @@ -23097,7 +23266,8 @@ "emoji_order": "1507", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "bride_with_veil_tone4": { "unicode": "1f470-1f3fe", @@ -23108,7 +23278,8 @@ "emoji_order": "1508", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "bride_with_veil_tone5": { "unicode": "1f470-1f3ff", @@ -23119,7 +23290,8 @@ "emoji_order": "1509", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "walking_tone1": { "unicode": "1f6b6-1f3fb", @@ -23141,7 +23313,8 @@ "emoji_order": "1511", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "walking_tone3": { "unicode": "1f6b6-1f3fd", @@ -23152,7 +23325,8 @@ "emoji_order": "1512", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "walking_tone4": { "unicode": "1f6b6-1f3fe", @@ -23163,7 +23337,8 @@ "emoji_order": "1513", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "walking_tone5": { "unicode": "1f6b6-1f3ff", @@ -23174,7 +23349,8 @@ "emoji_order": "1514", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "runner_tone1": { "unicode": "1f3c3-1f3fb", @@ -23196,7 +23372,8 @@ "emoji_order": "1516", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "runner_tone3": { "unicode": "1f3c3-1f3fd", @@ -23207,7 +23384,8 @@ "emoji_order": "1517", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "runner_tone4": { "unicode": "1f3c3-1f3fe", @@ -23218,7 +23396,8 @@ "emoji_order": "1518", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "runner_tone5": { "unicode": "1f3c3-1f3ff", @@ -23229,7 +23408,8 @@ "emoji_order": "1519", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "dancer_tone1": { "unicode": "1f483-1f3fb", @@ -23251,7 +23431,8 @@ "emoji_order": "1521", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "dancer_tone3": { "unicode": "1f483-1f3fd", @@ -23262,7 +23443,8 @@ "emoji_order": "1522", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "dancer_tone4": { "unicode": "1f483-1f3fe", @@ -23273,7 +23455,8 @@ "emoji_order": "1523", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "dancer_tone5": { "unicode": "1f483-1f3ff", @@ -23284,7 +23467,8 @@ "emoji_order": "1524", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "bow_tone1": { "unicode": "1f647-1f3fb", @@ -23306,7 +23490,8 @@ "emoji_order": "1526", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "bow_tone3": { "unicode": "1f647-1f3fd", @@ -23317,7 +23502,8 @@ "emoji_order": "1527", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "bow_tone4": { "unicode": "1f647-1f3fe", @@ -23328,7 +23514,8 @@ "emoji_order": "1528", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "bow_tone5": { "unicode": "1f647-1f3ff", @@ -23339,7 +23526,8 @@ "emoji_order": "1529", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "information_desk_person_tone1": { "unicode": "1f481-1f3fb", @@ -23361,7 +23549,8 @@ "emoji_order": "1531", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "information_desk_person_tone3": { "unicode": "1f481-1f3fd", @@ -23372,7 +23561,8 @@ "emoji_order": "1532", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "information_desk_person_tone4": { "unicode": "1f481-1f3fe", @@ -23383,7 +23573,8 @@ "emoji_order": "1533", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "information_desk_person_tone5": { "unicode": "1f481-1f3ff", @@ -23394,7 +23585,8 @@ "emoji_order": "1534", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "no_good_tone1": { "unicode": "1f645-1f3fb", @@ -23416,7 +23608,8 @@ "emoji_order": "1536", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "no_good_tone3": { "unicode": "1f645-1f3fd", @@ -23427,7 +23620,8 @@ "emoji_order": "1537", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "no_good_tone4": { "unicode": "1f645-1f3fe", @@ -23438,7 +23632,8 @@ "emoji_order": "1538", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "no_good_tone5": { "unicode": "1f645-1f3ff", @@ -23449,7 +23644,8 @@ "emoji_order": "1539", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "ok_woman_tone1": { "unicode": "1f646-1f3fb", @@ -23471,7 +23667,8 @@ "emoji_order": "1541", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "ok_woman_tone3": { "unicode": "1f646-1f3fd", @@ -23482,7 +23679,8 @@ "emoji_order": "1542", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "ok_woman_tone4": { "unicode": "1f646-1f3fe", @@ -23493,7 +23691,8 @@ "emoji_order": "1543", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "ok_woman_tone5": { "unicode": "1f646-1f3ff", @@ -23504,7 +23703,8 @@ "emoji_order": "1544", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "raising_hand_tone1": { "unicode": "1f64b-1f3fb", @@ -23526,7 +23726,8 @@ "emoji_order": "1546", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "raising_hand_tone3": { "unicode": "1f64b-1f3fd", @@ -23537,7 +23738,8 @@ "emoji_order": "1547", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "raising_hand_tone4": { "unicode": "1f64b-1f3fe", @@ -23548,7 +23750,8 @@ "emoji_order": "1548", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "raising_hand_tone5": { "unicode": "1f64b-1f3ff", @@ -23559,7 +23762,8 @@ "emoji_order": "1549", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "person_with_pouting_face_tone1": { "unicode": "1f64e-1f3fb", @@ -23581,7 +23785,8 @@ "emoji_order": "1551", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "person_with_pouting_face_tone3": { "unicode": "1f64e-1f3fd", @@ -23592,7 +23797,8 @@ "emoji_order": "1552", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "person_with_pouting_face_tone4": { "unicode": "1f64e-1f3fe", @@ -23603,7 +23809,8 @@ "emoji_order": "1553", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "person_with_pouting_face_tone5": { "unicode": "1f64e-1f3ff", @@ -23614,7 +23821,8 @@ "emoji_order": "1554", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "person_frowning_tone1": { "unicode": "1f64d-1f3fb", @@ -23636,7 +23844,8 @@ "emoji_order": "1556", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "person_frowning_tone3": { "unicode": "1f64d-1f3fd", @@ -23647,7 +23856,8 @@ "emoji_order": "1557", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "person_frowning_tone4": { "unicode": "1f64d-1f3fe", @@ -23658,7 +23868,8 @@ "emoji_order": "1558", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "person_frowning_tone5": { "unicode": "1f64d-1f3ff", @@ -23669,7 +23880,8 @@ "emoji_order": "1559", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "haircut_tone1": { "unicode": "1f487-1f3fb", @@ -23691,7 +23903,8 @@ "emoji_order": "1561", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "haircut_tone3": { "unicode": "1f487-1f3fd", @@ -23702,7 +23915,8 @@ "emoji_order": "1562", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "haircut_tone4": { "unicode": "1f487-1f3fe", @@ -23713,7 +23927,8 @@ "emoji_order": "1563", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "haircut_tone5": { "unicode": "1f487-1f3ff", @@ -23724,7 +23939,8 @@ "emoji_order": "1564", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "massage_tone1": { "unicode": "1f486-1f3fb", @@ -23746,7 +23962,8 @@ "emoji_order": "1566", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "massage_tone3": { "unicode": "1f486-1f3fd", @@ -23757,7 +23974,8 @@ "emoji_order": "1567", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "massage_tone4": { "unicode": "1f486-1f3fe", @@ -23768,7 +23986,8 @@ "emoji_order": "1568", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "massage_tone5": { "unicode": "1f486-1f3ff", @@ -23779,7 +23998,8 @@ "emoji_order": "1569", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "rowboat_tone1": { "unicode": "1f6a3-1f3fb", @@ -23801,7 +24021,8 @@ "emoji_order": "1571", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "rowboat_tone3": { "unicode": "1f6a3-1f3fd", @@ -23812,7 +24033,8 @@ "emoji_order": "1572", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "rowboat_tone4": { "unicode": "1f6a3-1f3fe", @@ -23823,7 +24045,8 @@ "emoji_order": "1573", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "rowboat_tone5": { "unicode": "1f6a3-1f3ff", @@ -23834,7 +24057,8 @@ "emoji_order": "1574", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "swimmer_tone1": { "unicode": "1f3ca-1f3fb", @@ -23856,7 +24080,8 @@ "emoji_order": "1576", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "swimmer_tone3": { "unicode": "1f3ca-1f3fd", @@ -23867,7 +24092,8 @@ "emoji_order": "1577", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "swimmer_tone4": { "unicode": "1f3ca-1f3fe", @@ -23878,7 +24104,8 @@ "emoji_order": "1578", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "swimmer_tone5": { "unicode": "1f3ca-1f3ff", @@ -23889,7 +24116,8 @@ "emoji_order": "1579", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "surfer_tone1": { "unicode": "1f3c4-1f3fb", @@ -23911,7 +24139,8 @@ "emoji_order": "1581", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "surfer_tone3": { "unicode": "1f3c4-1f3fd", @@ -23922,7 +24151,8 @@ "emoji_order": "1582", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "surfer_tone4": { "unicode": "1f3c4-1f3fe", @@ -23933,7 +24163,8 @@ "emoji_order": "1583", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "surfer_tone5": { "unicode": "1f3c4-1f3ff", @@ -23944,7 +24175,8 @@ "emoji_order": "1584", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "bath_tone1": { "unicode": "1f6c0-1f3fb", @@ -23966,7 +24198,8 @@ "emoji_order": "1586", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "bath_tone3": { "unicode": "1f6c0-1f3fd", @@ -23977,7 +24210,8 @@ "emoji_order": "1587", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "bath_tone4": { "unicode": "1f6c0-1f3fe", @@ -23988,7 +24222,8 @@ "emoji_order": "1588", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "bath_tone5": { "unicode": "1f6c0-1f3ff", @@ -23999,7 +24234,8 @@ "emoji_order": "1589", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "basketball_player_tone1": { "unicode": "26f9-1f3fb", @@ -24025,7 +24261,8 @@ ":person_with_ball_tone2:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "basketball_player_tone3": { "unicode": "26f9-1f3fd", @@ -24038,7 +24275,8 @@ ":person_with_ball_tone3:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "basketball_player_tone4": { "unicode": "26f9-1f3fe", @@ -24051,7 +24289,8 @@ ":person_with_ball_tone4:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "basketball_player_tone5": { "unicode": "26f9-1f3ff", @@ -24064,7 +24303,8 @@ ":person_with_ball_tone5:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "lifter_tone1": { "unicode": "1f3cb-1f3fb", @@ -24090,7 +24330,8 @@ ":weight_lifter_tone2:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "lifter_tone3": { "unicode": "1f3cb-1f3fd", @@ -24103,7 +24344,8 @@ ":weight_lifter_tone3:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "lifter_tone4": { "unicode": "1f3cb-1f3fe", @@ -24116,7 +24358,8 @@ ":weight_lifter_tone4:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "lifter_tone5": { "unicode": "1f3cb-1f3ff", @@ -24129,7 +24372,8 @@ ":weight_lifter_tone5:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "bicyclist_tone1": { "unicode": "1f6b4-1f3fb", @@ -24151,7 +24395,8 @@ "emoji_order": "1601", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "bicyclist_tone3": { "unicode": "1f6b4-1f3fd", @@ -24162,7 +24407,8 @@ "emoji_order": "1602", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "bicyclist_tone4": { "unicode": "1f6b4-1f3fe", @@ -24173,7 +24419,8 @@ "emoji_order": "1603", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "bicyclist_tone5": { "unicode": "1f6b4-1f3ff", @@ -24184,7 +24431,8 @@ "emoji_order": "1604", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "mountain_bicyclist_tone1": { "unicode": "1f6b5-1f3fb", @@ -24206,7 +24454,8 @@ "emoji_order": "1606", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "mountain_bicyclist_tone3": { "unicode": "1f6b5-1f3fd", @@ -24217,7 +24466,8 @@ "emoji_order": "1607", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "mountain_bicyclist_tone4": { "unicode": "1f6b5-1f3fe", @@ -24228,7 +24478,8 @@ "emoji_order": "1608", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "mountain_bicyclist_tone5": { "unicode": "1f6b5-1f3ff", @@ -24239,7 +24490,8 @@ "emoji_order": "1609", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "horse_racing_tone1": { "unicode": "1f3c7-1f3fb", @@ -24261,7 +24513,8 @@ "emoji_order": "1611", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "horse_racing_tone3": { "unicode": "1f3c7-1f3fd", @@ -24272,7 +24525,8 @@ "emoji_order": "1612", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "horse_racing_tone4": { "unicode": "1f3c7-1f3fe", @@ -24283,7 +24537,8 @@ "emoji_order": "1613", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "horse_racing_tone5": { "unicode": "1f3c7-1f3ff", @@ -24294,7 +24549,8 @@ "emoji_order": "1614", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "spy_tone1": { "unicode": "1f575-1f3fb", @@ -24320,7 +24576,8 @@ ":sleuth_or_spy_tone2:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "spy_tone3": { "unicode": "1f575-1f3fd", @@ -24333,7 +24590,8 @@ ":sleuth_or_spy_tone3:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "spy_tone4": { "unicode": "1f575-1f3fe", @@ -24346,7 +24604,8 @@ ":sleuth_or_spy_tone4:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "spy_tone5": { "unicode": "1f575-1f3ff", @@ -24359,7 +24618,8 @@ ":sleuth_or_spy_tone5:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "tone1": { "unicode": "1f3fb", @@ -24381,7 +24641,8 @@ "emoji_order": "1621", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "tone3": { "unicode": "1f3fd", @@ -24392,7 +24653,8 @@ "emoji_order": "1622", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "tone4": { "unicode": "1f3fe", @@ -24403,7 +24665,8 @@ "emoji_order": "1623", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "tone5": { "unicode": "1f3ff", @@ -24414,7 +24677,8 @@ "emoji_order": "1624", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "cowboy": { "unicode": "1f920", @@ -25324,7 +25588,8 @@ "emoji_order": "10001", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "prince_tone3": { "unicode": "1f934-1f3fd", @@ -25335,7 +25600,8 @@ "emoji_order": "10002", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "prince_tone4": { "unicode": "1f934-1f3fe", @@ -25346,7 +25612,8 @@ "emoji_order": "10003", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "prince_tone5": { "unicode": "1f934-1f3ff", @@ -25357,7 +25624,8 @@ "emoji_order": "10004", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "mrs_clause_tone1": { "unicode": "1f936-1f3fb", @@ -25383,7 +25651,8 @@ ":mother_christmas_tone2:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "mrs_clause_tone3": { "unicode": "1f936-1f3fd", @@ -25396,7 +25665,8 @@ ":mother_christmas_tone3:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "mrs_clause_tone4": { "unicode": "1f936-1f3fe", @@ -25409,7 +25679,8 @@ ":mother_christmas_tone4:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "mrs_clause_tone5": { "unicode": "1f936-1f3ff", @@ -25422,7 +25693,8 @@ ":mother_christmas_tone5:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "man_in_tuxedo_tone1": { "unicode": "1f935-1f3fb", @@ -25448,7 +25720,8 @@ ":tuxedo_tone2:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "man_in_tuxedo_tone3": { "unicode": "1f935-1f3fd", @@ -25461,7 +25734,8 @@ ":tuxedo_tone3:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "man_in_tuxedo_tone4": { "unicode": "1f935-1f3fe", @@ -25474,7 +25748,8 @@ ":tuxedo_tone4:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "man_in_tuxedo_tone5": { "unicode": "1f935-1f3ff", @@ -25487,7 +25762,8 @@ ":tuxedo_tone5:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "shrug_tone1": { "unicode": "1f937-1f3fb", @@ -25509,7 +25785,8 @@ "emoji_order": "10016", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "shrug_tone3": { "unicode": "1f937-1f3fd", @@ -25520,7 +25797,8 @@ "emoji_order": "10017", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "shrug_tone4": { "unicode": "1f937-1f3fe", @@ -25531,7 +25809,8 @@ "emoji_order": "10018", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "shrug_tone5": { "unicode": "1f937-1f3ff", @@ -25542,7 +25821,8 @@ "emoji_order": "10019", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "face_palm_tone1": { "unicode": "1f926-1f3fb", @@ -25564,7 +25844,8 @@ "emoji_order": "10021", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "face_palm_tone3": { "unicode": "1f926-1f3fd", @@ -25575,7 +25856,8 @@ "emoji_order": "10022", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "face_palm_tone4": { "unicode": "1f926-1f3fe", @@ -25586,7 +25868,8 @@ "emoji_order": "10023", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "face_palm_tone5": { "unicode": "1f926-1f3ff", @@ -25597,7 +25880,8 @@ "emoji_order": "10024", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "pregnant_woman_tone1": { "unicode": "1f930-1f3fb", @@ -25623,7 +25907,8 @@ ":expecting_woman_tone2:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "pregnant_woman_tone3": { "unicode": "1f930-1f3fd", @@ -25636,7 +25921,8 @@ ":expecting_woman_tone3:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "pregnant_woman_tone4": { "unicode": "1f930-1f3fe", @@ -25649,7 +25935,8 @@ ":expecting_woman_tone4:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "pregnant_woman_tone5": { "unicode": "1f930-1f3ff", @@ -25662,7 +25949,8 @@ ":expecting_woman_tone5:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "man_dancing_tone1": { "unicode": "1f57a-1f3fb", @@ -25688,7 +25976,8 @@ ":male_dancer_tone2:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "man_dancing_tone3": { "unicode": "1f57a-1f3fd", @@ -25701,7 +25990,8 @@ ":male_dancer_tone3:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "man_dancing_tone4": { "unicode": "1f57a-1f3fe", @@ -25714,7 +26004,8 @@ ":male_dancer_tone4:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "man_dancing_tone5": { "unicode": "1f57a-1f3ff", @@ -25727,7 +26018,8 @@ ":male_dancer_tone5:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "selfie_tone1": { "unicode": "1f933-1f3fb", @@ -25749,7 +26041,8 @@ "emoji_order": "10036", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "selfie_tone3": { "unicode": "1f933-1f3fd", @@ -25760,7 +26053,8 @@ "emoji_order": "10037", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "selfie_tone4": { "unicode": "1f933-1f3fe", @@ -25771,7 +26065,8 @@ "emoji_order": "10038", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "selfie_tone5": { "unicode": "1f933-1f3ff", @@ -25782,7 +26077,8 @@ "emoji_order": "10039", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "fingers_crossed_tone1": { "unicode": "1f91e-1f3fb", @@ -25808,7 +26104,8 @@ ":hand_with_index_and_middle_fingers_crossed_tone2:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "fingers_crossed_tone3": { "unicode": "1f91e-1f3fd", @@ -25821,7 +26118,8 @@ ":hand_with_index_and_middle_fingers_crossed_tone3:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "fingers_crossed_tone4": { "unicode": "1f91e-1f3fe", @@ -25834,7 +26132,8 @@ ":hand_with_index_and_middle_fingers_crossed_tone4:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "fingers_crossed_tone5": { "unicode": "1f91e-1f3ff", @@ -25847,7 +26146,8 @@ ":hand_with_index_and_middle_fingers_crossed_tone5:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "call_me_tone1": { "unicode": "1f919-1f3fb", @@ -25873,7 +26173,8 @@ ":call_me_hand_tone2:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "call_me_tone3": { "unicode": "1f919-1f3fd", @@ -25886,7 +26187,8 @@ ":call_me_hand_tone3:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "call_me_tone4": { "unicode": "1f919-1f3fe", @@ -25899,7 +26201,8 @@ ":call_me_hand_tone4:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "call_me_tone5": { "unicode": "1f919-1f3ff", @@ -25912,7 +26215,8 @@ ":call_me_hand_tone5:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "left_facing_fist_tone1": { "unicode": "1f91b-1f3fb", @@ -25938,7 +26242,8 @@ ":left_fist_tone2:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "left_facing_fist_tone3": { "unicode": "1f91b-1f3fd", @@ -25951,7 +26256,8 @@ ":left_fist_tone3:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "left_facing_fist_tone4": { "unicode": "1f91b-1f3fe", @@ -25964,7 +26270,8 @@ ":left_fist_tone4:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "left_facing_fist_tone5": { "unicode": "1f91b-1f3ff", @@ -25977,7 +26284,8 @@ ":left_fist_tone5:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "right_facing_fist_tone1": { "unicode": "1f91c-1f3fb", @@ -26003,7 +26311,8 @@ ":right_fist_tone2:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "right_facing_fist_tone3": { "unicode": "1f91c-1f3fd", @@ -26016,7 +26325,8 @@ ":right_fist_tone3:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "right_facing_fist_tone4": { "unicode": "1f91c-1f3fe", @@ -26029,7 +26339,8 @@ ":right_fist_tone4:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "right_facing_fist_tone5": { "unicode": "1f91c-1f3ff", @@ -26042,7 +26353,8 @@ ":right_fist_tone5:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "raised_back_of_hand_tone1": { "unicode": "1f91a-1f3fb", @@ -26068,7 +26380,8 @@ ":back_of_hand_tone2:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "raised_back_of_hand_tone3": { "unicode": "1f91a-1f3fd", @@ -26081,7 +26394,8 @@ ":back_of_hand_tone3:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "raised_back_of_hand_tone4": { "unicode": "1f91a-1f3fe", @@ -26094,7 +26408,8 @@ ":back_of_hand_tone4:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "raised_back_of_hand_tone5": { "unicode": "1f91a-1f3ff", @@ -26107,7 +26422,8 @@ ":back_of_hand_tone5:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "handshake_tone1": { "unicode": "1f91d-1f3fb", @@ -26133,7 +26449,8 @@ ":shaking_hands_tone2:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "handshake_tone3": { "unicode": "1f91d-1f3fd", @@ -26146,7 +26463,8 @@ ":shaking_hands_tone3:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "handshake_tone4": { "unicode": "1f91d-1f3fe", @@ -26159,7 +26477,8 @@ ":shaking_hands_tone4:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "handshake_tone5": { "unicode": "1f91d-1f3ff", @@ -26172,7 +26491,8 @@ ":shaking_hands_tone5:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "cartwheel_tone1": { "unicode": "1f938-1f3fb", @@ -26198,7 +26518,8 @@ ":person_doing_cartwheel_tone2:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "cartwheel_tone3": { "unicode": "1f938-1f3fd", @@ -26211,7 +26532,8 @@ ":person_doing_cartwheel_tone3:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "cartwheel_tone4": { "unicode": "1f938-1f3fe", @@ -26224,7 +26546,8 @@ ":person_doing_cartwheel_tone4:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "cartwheel_tone5": { "unicode": "1f938-1f3ff", @@ -26237,7 +26560,8 @@ ":person_doing_cartwheel_tone5:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "wrestlers_tone1": { "unicode": "1f93c-1f3fb", @@ -26263,7 +26587,8 @@ ":wrestling_tone2:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "wrestlers_tone3": { "unicode": "1f93c-1f3fd", @@ -26276,7 +26601,8 @@ ":wrestling_tone3:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "wrestlers_tone4": { "unicode": "1f93c-1f3fe", @@ -26289,7 +26615,8 @@ ":wrestling_tone4:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "wrestlers_tone5": { "unicode": "1f93c-1f3ff", @@ -26302,7 +26629,8 @@ ":wrestling_tone5:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "water_polo_tone1": { "unicode": "1f93d-1f3fb", @@ -26324,7 +26652,8 @@ "emoji_order": "10086", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "water_polo_tone3": { "unicode": "1f93d-1f3fd", @@ -26335,7 +26664,8 @@ "emoji_order": "10087", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "water_polo_tone4": { "unicode": "1f93d-1f3fe", @@ -26346,7 +26676,8 @@ "emoji_order": "10088", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "water_polo_tone5": { "unicode": "1f93d-1f3ff", @@ -26357,7 +26688,8 @@ "emoji_order": "10089", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "handball_tone1": { "unicode": "1f93e-1f3fb", @@ -26379,7 +26711,8 @@ "emoji_order": "10091", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "handball_tone3": { "unicode": "1f93e-1f3fd", @@ -26390,7 +26723,8 @@ "emoji_order": "10092", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "handball_tone4": { "unicode": "1f93e-1f3fe", @@ -26401,7 +26735,8 @@ "emoji_order": "10093", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "handball_tone5": { "unicode": "1f93e-1f3ff", @@ -26412,7 +26747,8 @@ "emoji_order": "10094", "aliases": [], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "juggling_tone1": { "unicode": "1f939-1f3fb", @@ -26438,7 +26774,8 @@ ":juggler_tone2:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "juggling_tone3": { "unicode": "1f939-1f3fd", @@ -26451,7 +26788,8 @@ ":juggler_tone3:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "juggling_tone4": { "unicode": "1f939-1f3fe", @@ -26464,7 +26802,8 @@ ":juggler_tone4:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true }, "juggling_tone5": { "unicode": "1f939-1f3ff", @@ -26477,6 +26816,7 @@ ":juggler_tone5:" ], "aliases_ascii": [], - "keywords": [] + "keywords": [], + "duplicate": true } -} \ No newline at end of file +} diff --git a/sfx2/qa/complex/sfx2/UndoManager.java b/sfx2/qa/complex/sfx2/UndoManager.java index ad82ca4c9db85..a8e6bcdba8616 100644 --- a/sfx2/qa/complex/sfx2/UndoManager.java +++ b/sfx2/qa/complex/sfx2/UndoManager.java @@ -24,6 +24,7 @@ import com.sun.star.awt.Size; import com.sun.star.awt.XControl; import com.sun.star.awt.XControlModel; +import com.sun.star.awt.XToolkitExperimental; import com.sun.star.beans.NamedValue; import com.sun.star.beans.XPropertySet; import com.sun.star.container.NoSuchElementException; @@ -182,6 +183,10 @@ public void checkBrokenScripts() throws com.sun.star.uno.Exception, InterruptedE // switch the doc's view to form alive mode (so the button will actually work) m_currentDocument.getCurrentView().dispatch( ".uno:SwitchControlDesignMode" ); + XToolkitExperimental xToolkit = UnoRuntime.queryInterface( + XToolkitExperimental.class, + getORB().createInstance("com.sun.star.awt.Toolkit")); + xToolkit.processEventsToIdle(); // click the button m_callbackCalled = false; diff --git a/sfx2/source/appl/appdde.cxx b/sfx2/source/appl/appdde.cxx index 06569040d1f00..6b2347d0b365d 100644 --- a/sfx2/source/appl/appdde.cxx +++ b/sfx2/source/appl/appdde.cxx @@ -434,6 +434,7 @@ bool SfxApplication::InitializeDde() // we certainly want to support RTF! pImpl->pDdeService->AddFormat( SotClipboardFormatId::RTF ); + pImpl->pDdeService->AddFormat( SotClipboardFormatId::RICHTEXT ); // Config path as a topic because of multiple starts INetURLObject aOfficeLockFile( SvtPathOptions().GetUserConfigPath() ); diff --git a/sfx2/source/appl/childwin.cxx b/sfx2/source/appl/childwin.cxx index a637818b227a6..e08141e7e303d 100644 --- a/sfx2/source/appl/childwin.cxx +++ b/sfx2/source/appl/childwin.cxx @@ -519,22 +519,22 @@ SfxChildWindowContext::~SfxChildWindowContext() pWindow.disposeAndClear(); } -FloatingWindow* SfxChildWindowContext::GetFloatingWindow() const +FloatingWindow* SfxChildWindowContext::GetFloatingWindow(vcl::Window *pParent) { - vcl::Window *pParent = pWindow->GetParent(); if (pParent->GetType() == WINDOW_DOCKINGWINDOW || pParent->GetType() == WINDOW_TOOLBOX) { return static_cast(pParent)->GetFloatingWindow(); } - else if (pParent->GetType() == WINDOW_FLOATINGWINDOW) + if (pParent->GetType() == WINDOW_FLOATINGWINDOW) { return static_cast(pParent); } - else - { - OSL_FAIL("No FloatingWindow-Context!"); - return nullptr; - } + return nullptr; +} + +FloatingWindow* SfxChildWindowContext::GetFloatingWindow() const +{ + return SfxChildWindowContext::GetFloatingWindow(pWindow->GetParent()); } void SfxChildWindow::SetFactory_Impl( SfxChildWinFactory *pF ) diff --git a/sfx2/source/control/emojicontrol.cxx b/sfx2/source/control/emojicontrol.cxx index dc66b1fbecd79..f27f1027929e5 100644 --- a/sfx2/source/control/emojicontrol.cxx +++ b/sfx2/source/control/emojicontrol.cxx @@ -85,6 +85,10 @@ SfxEmojiControl::SfxEmojiControl(sal_uInt16 nId, const css::uno::Reference< css: nCurPageId = mpTabControl->GetPageId(FILTER_UNICODE9); mpTabControl->SetTabPage(nCurPageId, pTabPage); ConvertLabelToUnicode(nCurPageId); + + vcl::Font rFont = mpTabControl->GetControlFont(); + rFont.SetFontHeight(TAB_FONT_SIZE); + mpTabControl->SetControlFont(rFont); pTabPage->Show(); mpEmojiView->SetStyle(mpEmojiView->GetStyle() | WB_VSCROLL); diff --git a/sfx2/source/control/emojiview.cxx b/sfx2/source/control/emojiview.cxx index 6ab877f9d4c2f..da1e88feb2bbc 100644 --- a/sfx2/source/control/emojiview.cxx +++ b/sfx2/source/control/emojiview.cxx @@ -68,7 +68,7 @@ bool ViewFilter_Category::operator () (const ThumbnailViewItem *pItem) EmojiView::EmojiView (vcl::Window *pParent) : ThumbnailView(pParent, WB_TABSTOP | WB_VSCROLL) { - //locate json data file + // locate json data file OUString sPath("$BRAND_BASE_DIR/" LIBO_SHARE_FOLDER "/emojiconfig/emoji.json"); rtl::Bootstrap::expandMacros(sPath); std::string strPath = OUStringToOString(sPath.copy(strlen("file://")), RTL_TEXTENCODING_UTF8).getStr(); @@ -103,10 +103,10 @@ void EmojiView::Populate() return; } - //TODO::populate view using the orcus json parser + // TODO::populate view using the orcus json parser using node = orcus::json_document_tree::node; - //default json config + // default json config orcus::json_config config; orcus::json_document_tree aEmojiInfo; @@ -124,16 +124,17 @@ void EmojiView::Populate() if(value.type() == orcus::json_node_t::object) { - //iterate each element to get the keys + // iterate each element to get the keys std::vector aEmojiParams = value.keys(); OUString sTitle, sCategory; + bool bDuplicate = false; for (auto paramIter = aEmojiParams.begin(); paramIter != aEmojiParams.end(); ++paramIter) { orcus::pstring paramVal = *paramIter; node prop = value.child(paramVal); - //get values of parameters in AppendItem() function + // get values of parameters in AppendItem() function if(paramVal == "unicode") { sTitle = rtl::OStringToOUString(OString( prop.string_value().get(), prop.string_value().size() ), RTL_TEXTENCODING_UTF8); @@ -142,15 +143,30 @@ void EmojiView::Populate() { sCategory = rtl::OStringToOUString(OString( prop.string_value().get(), prop.string_value().size() ), RTL_TEXTENCODING_UTF8); } + else if(paramVal == "duplicate") + { + bDuplicate = true; + } } - //TODO: Check whether the glyph is present in the font file - //If the glyph is present, Call EmojiView::AppendItem() to populate each template as it is parsed - AppendItem(sTitle, sCategory); + // TODO: Check whether the glyph is present in the font file + // If the glyph is present, Call EmojiView::AppendItem() to populate each template as it is parsed + // Don't append if a duplicate emoji + if(!bDuplicate) + { + AppendItem(sTitle, sCategory); + } } } } +void EmojiView::ApplySettings(vcl::RenderContext& rRenderContext) +{ + ThumbnailView::ApplySettings(rRenderContext); + mpItemAttrs->aFontSize.setX(ITEM_MAX_WIDTH - 2*ITEM_PADDING); + mpItemAttrs->aFontSize.setY(ITEM_MAX_HEIGHT - 2*ITEM_PADDING); +} + void EmojiView::MouseButtonDown( const MouseEvent& rMEvt ) { GrabFocus(); diff --git a/sfx2/source/control/templatedefaultview.cxx b/sfx2/source/control/templatedefaultview.cxx index 9884e0628d404..219c533ff0ebb 100644 --- a/sfx2/source/control/templatedefaultview.cxx +++ b/sfx2/source/control/templatedefaultview.cxx @@ -26,7 +26,7 @@ VCL_BUILDER_FACTORY(TemplateDefaultView) static const int gnItemPadding(5); //TODO:: Change padding to 10. It looks really crowded and occupied. TemplateDefaultView::TemplateDefaultView( Window* pParent) - : TemplateLocalView(pParent) + : TemplateLocalView(pParent, WB_TABSTOP) , mnTextHeight(30) { Rectangle aScreen = Application::GetScreenPosSizePixel(Application::GetDisplayBuiltInScreen()); diff --git a/sfx2/source/control/templatelocalview.cxx b/sfx2/source/control/templatelocalview.cxx index a37dab2b76b0c..6603a3ca6266b 100644 --- a/sfx2/source/control/templatelocalview.cxx +++ b/sfx2/source/control/templatelocalview.cxx @@ -88,8 +88,8 @@ bool ViewFilter_Application::operator () (const ThumbnailViewItem *pItem) return true; } -TemplateLocalView::TemplateLocalView ( vcl::Window* pParent) - : ThumbnailView(pParent), +TemplateLocalView::TemplateLocalView ( vcl::Window* pParent, WinBits nWinStyle) + : ThumbnailView(pParent, nWinStyle), mnCurRegionId(0), maSelectedItem(nullptr), mnThumbnailWidth(TEMPLATE_THUMBNAIL_MAX_WIDTH), diff --git a/sfx2/source/control/templatesearchview.cxx b/sfx2/source/control/templatesearchview.cxx index e1db4e53c65f5..8403143d34b80 100644 --- a/sfx2/source/control/templatesearchview.cxx +++ b/sfx2/source/control/templatesearchview.cxx @@ -24,7 +24,7 @@ #define MNI_DELETE 4 TemplateSearchView::TemplateSearchView (vcl::Window *pParent) - : ThumbnailView(pParent,WB_TABSTOP | WB_VSCROLL), + : ThumbnailView(pParent,WB_TABSTOP | WB_VSCROLL | WB_BORDER), maSelectedItem(nullptr), maPosition(0,0) { diff --git a/sfx2/source/control/unoctitm.cxx b/sfx2/source/control/unoctitm.cxx index cb7590c96c946..920f921a5cfb7 100644 --- a/sfx2/source/control/unoctitm.cxx +++ b/sfx2/source/control/unoctitm.cxx @@ -472,6 +472,9 @@ class UsageInfo { /// Command vs. how many times it was used UsageMap maUsage; + /// config path, get it long before atexit time + OUString msConfigPath; + public: UsageInfo() : mbIsCollecting(false) { @@ -489,7 +492,12 @@ class UsageInfo { void save(); /// Modify the flag whether we are collecting. - void setCollecting(bool bIsCollecting) { mbIsCollecting = bIsCollecting; } + void setCollecting(bool bIsCollecting) + { + mbIsCollecting = bIsCollecting; + if (mbIsCollecting) + msConfigPath = SvtPathOptions().GetConfigPath(); + } }; void UsageInfo::increment(const OUString &rCommand) @@ -507,7 +515,7 @@ void UsageInfo::save() if (!mbIsCollecting) return; - OUString path(SvtPathOptions().GetConfigPath()); + OUString path(msConfigPath); path += "usage/"; osl::Directory::createPath(path); diff --git a/sfx2/source/dialog/dialog.hrc b/sfx2/source/dialog/dialog.hrc index 800f71750b188..5d4f2538c4718 100644 --- a/sfx2/source/dialog/dialog.hrc +++ b/sfx2/source/dialog/dialog.hrc @@ -62,6 +62,9 @@ #define STR_STYLE_ELEMTLIST ( RC_DIALOG_BEGIN + 125 ) #define STR_FONT_TABPAGE ( RC_DIALOG_BEGIN + 126 ) #define STR_PREVIEW_CHECKBOX ( RC_DIALOG_BEGIN + 127 ) +#define STR_STYLE_FILL_FORMAT_MODE ( RC_DIALOG_BEGIN + 128 ) +#define STR_STYLE_NEW_STYLE_FROM_SELECTION ( RC_DIALOG_BEGIN + 129 ) +#define STR_STYLE_UPDATE_STYLE ( RC_DIALOG_BEGIN + 130 ) #endif diff --git a/sfx2/source/dialog/dinfdlg.cxx b/sfx2/source/dialog/dinfdlg.cxx index dd1d784665f45..b2bcbf23c41d9 100644 --- a/sfx2/source/dialog/dinfdlg.cxx +++ b/sfx2/source/dialog/dinfdlg.cxx @@ -744,8 +744,10 @@ namespace ++nContStart; // now its start of content, directly after Id sal_Int32 nContEnd = _rRawString.indexOf( ',', nContStart ); - - s = _rRawString.copy( nContStart, nContEnd - nContStart ); + if (nContEnd != -1) + s = _rRawString.copy( nContStart, nContEnd - nContStart ); + else + s = _rRawString.copy(nContStart); } return s; diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx index bb25c2b602dda..994e3ccb1a3f7 100644 --- a/sfx2/source/dialog/templdlg.cxx +++ b/sfx2/source/dialog/templdlg.cxx @@ -2147,6 +2147,13 @@ VclPtr SfxCommonTemplateDialog_Impl::CreateContextMenu() pMenu->EnableItem( ID_HIDE, bCanHide ); pMenu->EnableItem( ID_SHOW, bCanShow ); + const SfxStyleFamilyItem* pItem = GetFamilyItem_Impl(); + if (pItem && pItem->GetFamily() == SfxStyleFamily::Table) //tdf#101648, no ui for this yet + { + pMenu->EnableItem(ID_EDIT, false); + pMenu->EnableItem(ID_NEW, false); + } + return pMenu; } @@ -2189,18 +2196,15 @@ SfxTemplateDialog_Impl::SfxTemplateDialog_Impl(SfxBindings* pB, SfxTemplatePanel if (xUICommands.is()) { uno::Any aCommand = xUICommands->getByName(".uno:StyleApply"); - OUString sLabel = lcl_GetLabel( aCommand ); - m_aActionTbR->InsertItem( SID_STYLE_WATERCAN, sLabel ); + m_aActionTbR->InsertItem( SID_STYLE_WATERCAN, SfxResId(STR_STYLE_FILL_FORMAT_MODE).toString() ); m_aActionTbR->SetHelpId(SID_STYLE_WATERCAN, HID_TEMPLDLG_WATERCAN); aCommand = xUICommands->getByName(".uno:StyleNewByExample"); - sLabel = lcl_GetLabel( aCommand ); - m_aActionTbR->InsertItem( SID_STYLE_NEW_BY_EXAMPLE, sLabel ); + m_aActionTbR->InsertItem( SID_STYLE_NEW_BY_EXAMPLE, SfxResId(STR_STYLE_NEW_STYLE_FROM_SELECTION).toString() ); m_aActionTbR->SetHelpId(SID_STYLE_NEW_BY_EXAMPLE, HID_TEMPLDLG_NEWBYEXAMPLE); aCommand = xUICommands->getByName(".uno:StyleUpdateByExample"); - sLabel = lcl_GetLabel( aCommand ); - m_aActionTbR->InsertItem( SID_STYLE_UPDATE_BY_EXAMPLE, sLabel ); + m_aActionTbR->InsertItem( SID_STYLE_UPDATE_BY_EXAMPLE, SfxResId(STR_STYLE_UPDATE_STYLE).toString() ); m_aActionTbR->SetHelpId(SID_STYLE_UPDATE_BY_EXAMPLE, HID_TEMPLDLG_UPDATEBYEXAMPLE); } } diff --git a/sfx2/source/dialog/templdlg.src b/sfx2/source/dialog/templdlg.src index 0381acfbb7c8b..f0c1e50cdfd62 100644 --- a/sfx2/source/dialog/templdlg.src +++ b/sfx2/source/dialog/templdlg.src @@ -44,4 +44,19 @@ String STR_STYLE_FILTER_HIERARCHICAL Text [ en-US ] = "Hierarchical" ; }; +String STR_STYLE_FILL_FORMAT_MODE +{ + Text [ en-US ] = "Fill Format Mode" ; +}; + +String STR_STYLE_NEW_STYLE_FROM_SELECTION +{ + Text [ en-US ] = "New Style from Selection" ; +}; + +String STR_STYLE_UPDATE_STYLE +{ + Text [ en-US ] = "Update Style" ; +}; + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sfx2/source/doc/objserv.cxx b/sfx2/source/doc/objserv.cxx index 4f5b420ee1786..6547aff74b5d4 100644 --- a/sfx2/source/doc/objserv.cxx +++ b/sfx2/source/doc/objserv.cxx @@ -634,7 +634,8 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq) *rReq.GetArgs(), aDispatchArgs ); - const SfxSlot* pSlot = GetModule()->GetSlotPool()->GetSlot( nId ); + bool bForceSaveAs = nId == SID_SAVEDOC && IsReadOnlyMedium(); + const SfxSlot* pSlot = GetModule()->GetSlotPool()->GetSlot( bForceSaveAs ? SID_SAVEASDOC : nId ); if ( !pSlot ) throw uno::Exception(); @@ -968,7 +969,7 @@ void SfxObjectShell::GetState_Impl(SfxItemSet &rSet) } case SID_SAVEDOC: { - if ( !IsReadOnlyMedium() ) + if ( !IsReadOnly() ) rSet.Put(SfxStringItem( nWhich, SfxResId(STR_SAVEDOC).toString())); else diff --git a/sfx2/source/doc/objxtor.cxx b/sfx2/source/doc/objxtor.cxx index 55f256cf21214..e4784b00adbfd 100644 --- a/sfx2/source/doc/objxtor.cxx +++ b/sfx2/source/doc/objxtor.cxx @@ -611,7 +611,7 @@ bool SfxObjectShell::PrepareClose { SfxBoolItem aWarnItem( SID_FAIL_ON_WARNING, bUI ); const SfxPoolItem* ppArgs[] = { &aWarnItem, nullptr }; - pPoolItem = pFrame->GetBindings().ExecuteSynchron( IsReadOnlyMedium() ? SID_SAVEASDOC : SID_SAVEDOC, ppArgs ); + pPoolItem = pFrame->GetBindings().ExecuteSynchron( SID_SAVEDOC, ppArgs ); } if ( !pPoolItem || dynamic_cast< const SfxVoidItem *>( pPoolItem ) != nullptr || ( dynamic_cast< const SfxBoolItem *>( pPoolItem ) != nullptr && !static_cast( pPoolItem )->GetValue() ) ) diff --git a/sfx2/source/notebookbar/SfxNotebookBar.cxx b/sfx2/source/notebookbar/SfxNotebookBar.cxx index c3821b6d6ff96..00cc7e99c01d5 100644 --- a/sfx2/source/notebookbar/SfxNotebookBar.cxx +++ b/sfx2/source/notebookbar/SfxNotebookBar.cxx @@ -35,6 +35,7 @@ using namespace css; #define MENUBAR_STR "private:resource/menubar/menubar" bool SfxNotebookBar::m_bLock = false; +bool SfxNotebookBar::m_bHide = false; static Reference lcl_getLayoutManager( const Reference& xFrame ) { @@ -168,8 +169,21 @@ void SfxNotebookBar::CloseMethod(SystemWindow* pSysWindow) } } +void SfxNotebookBar::LockNotebookBar() +{ + m_bHide = true; +} + +void SfxNotebookBar::UnlockNotebookBar() +{ + m_bHide = false; +} + bool SfxNotebookBar::IsActive() { + if (m_bHide) + return false; + vcl::EnumContext::Application eApp = vcl::EnumContext::Application::Application_Any; if (SfxViewFrame::Current()) diff --git a/sfx2/source/safemode/safemode.cxx b/sfx2/source/safemode/safemode.cxx index 3e84f7ed02e6d..6d8dcf981a4d0 100644 --- a/sfx2/source/safemode/safemode.cxx +++ b/sfx2/source/safemode/safemode.cxx @@ -20,7 +20,7 @@ namespace sfx2 { bool SafeMode::putFlag() { - File safeModeFile(getFileName()); + File safeModeFile(getFilePath("safemode")); if (safeModeFile.open(osl_File_OpenFlag_Create) == FileBase::E_None) { safeModeFile.close(); @@ -30,7 +30,7 @@ bool SafeMode::putFlag() } bool SafeMode::hasFlag() { - File safeModeFile(getFileName()); + File safeModeFile(getFilePath("safemode")); if (safeModeFile.open(osl_File_OpenFlag_Read) == FileBase::E_None) { safeModeFile.close(); @@ -40,17 +40,42 @@ bool SafeMode::hasFlag() } bool SafeMode::removeFlag() { - return File::remove(getFileName()) == FileBase::E_None; + return File::remove(getFilePath("safemode")) == FileBase::E_None; } -OUString SafeMode::getFileName() +bool SafeMode::putRestartFlag() +{ + File restartFile(getFilePath("safemode_restart")); + if (restartFile.open(osl_File_OpenFlag_Create) == FileBase::E_None) + { + restartFile.close(); + return true; + } + return false; +} +bool SafeMode::hasRestartFlag() +{ + File restartFile(getFilePath("safemode_restart")); + if (restartFile.open(osl_File_OpenFlag_Read) == FileBase::E_None) + { + restartFile.close(); + return true; + } + return false; +} +bool SafeMode::removeRestartFlag() +{ + return File::remove(getFilePath("safemode_restart")) == FileBase::E_None; +} + +OUString SafeMode::getFilePath(const OUString& sFilename) { OUString url("${$BRAND_BASE_DIR/" LIBO_ETC_FOLDER "/" SAL_CONFIGFILE("bootstrap") ":UserInstallation}/"); rtl::Bootstrap::expandMacros(url); OUString aProfilePath; FileBase::getSystemPathFromFileURL(url, aProfilePath); - FileBase::getAbsoluteFileURL(url, "safemode", aProfilePath); + FileBase::getAbsoluteFileURL(url, sFilename, aProfilePath); return aProfilePath; } diff --git a/sfx2/source/sidebar/Panel.cxx b/sfx2/source/sidebar/Panel.cxx index 8b2bb7bd67ca4..b87d0ddb57e41 100644 --- a/sfx2/source/sidebar/Panel.cxx +++ b/sfx2/source/sidebar/Panel.cxx @@ -115,14 +115,14 @@ void Panel::SetUIElement (const Reference& rxElement) void Panel::SetExpanded (const bool bIsExpanded) { - SidebarController* pSidebarController= SidebarController::GetSidebarControllerForFrame(mxFrame); + SidebarController* pSidebarController = SidebarController::GetSidebarControllerForFrame(mxFrame); if (mbIsExpanded != bIsExpanded) { mbIsExpanded = bIsExpanded; maDeckLayoutTrigger(); - if (maContextAccess) + if (maContextAccess && pSidebarController) { pSidebarController->GetResourceManager()->StorePanelExpansionState( msPanelId, diff --git a/sfx2/source/sidebar/ResourceManager.cxx b/sfx2/source/sidebar/ResourceManager.cxx index d6a51a01f2e92..57aa237a4194e 100644 --- a/sfx2/source/sidebar/ResourceManager.cxx +++ b/sfx2/source/sidebar/ResourceManager.cxx @@ -719,7 +719,10 @@ void ResourceManager::UpdateModel(const css::uno::Reference& for (SharedPanelContainer::const_iterator it = rContainer.begin(); it != rContainer.end(); ++it) { css::uno::Reference xPanel((*it)->GetPanelComponent(), css::uno::UNO_QUERY); - xPanel->updateModel(xModel); + if (xPanel.is()) // tdf#108814 interface is optional + { + xPanel->updateModel(xModel); + } } } } diff --git a/sfx2/source/sidebar/SidebarController.cxx b/sfx2/source/sidebar/SidebarController.cxx index 98112eb0028e6..58117bd336db3 100644 --- a/sfx2/source/sidebar/SidebarController.cxx +++ b/sfx2/source/sidebar/SidebarController.cxx @@ -118,6 +118,7 @@ SidebarController::SidebarController ( mpResourceManager = o3tl::make_unique(); registerSidebarForFrame(this, mxFrame->getController()); + rxFrame->addFrameActionListener(this); // Listen for window events. mpParentWindow->AddEventListener(LINK(this, SidebarController, WindowEventHandler)); @@ -184,6 +185,7 @@ void SidebarController::unregisterSidebarForFrame(SidebarController* pController void SidebarController::disposeDecks() { + SolarMutexGuard aSolarMutexGuard; mpCurrentDeck.clear(); maFocusManager.Clear(); mpResourceManager->disposeDecks(); @@ -228,6 +230,7 @@ void SAL_CALL SidebarController::disposing() if (!xController.is()) xController = mxCurrentController; + mxFrame->removeFrameActionListener(this); unregisterSidebarForFrame(this, xController); if (mxReadOnlyModeDispatch.is()) @@ -1311,6 +1314,17 @@ void SidebarController::FadeIn() mpSplitWindow->FadeIn(); } +void SidebarController::frameAction(const css::frame::FrameActionEvent& rEvent) + throw (com::sun::star::uno::RuntimeException, std::exception) +{ + if (rEvent.Frame == mxFrame) + { + if (rEvent.Action == css::frame::FrameAction_COMPONENT_DETACHING) + unregisterSidebarForFrame(this, mxFrame->getController()); + else if (rEvent.Action == css::frame::FrameAction_COMPONENT_REATTACHED) + registerSidebarForFrame(this, mxFrame->getController()); + } +} } } // end of namespace sfx2::sidebar diff --git a/sfx2/source/view/classificationhelper.cxx b/sfx2/source/view/classificationhelper.cxx index 0a6974f52a702..cb6ece74c30ac 100644 --- a/sfx2/source/view/classificationhelper.cxx +++ b/sfx2/source/view/classificationhelper.cxx @@ -334,7 +334,7 @@ class SfxClassificationHelper::Impl std::map m_aCategory; /// Possible categories of a policy to choose from. std::vector m_aCategories; - const uno::Reference& m_xDocumentProperties; + uno::Reference m_xDocumentProperties; explicit Impl(const uno::Reference& xDocumentProperties); void parsePolicy(); diff --git a/sfx2/source/view/ipclient.cxx b/sfx2/source/view/ipclient.cxx index 504997fb34593..e894546b4346e 100644 --- a/sfx2/source/view/ipclient.cxx +++ b/sfx2/source/view/ipclient.cxx @@ -938,7 +938,7 @@ ErrCode SfxInPlaceClient::DoVerb( long nVerb ) } catch ( embed::UnreachableStateException& ) { - if ( nVerb == 0 || nVerb == embed::EmbedVerbs::MS_OLEVERB_OPEN ) + if (nVerb == embed::EmbedVerbs::MS_OLEVERB_PRIMARY || nVerb == embed::EmbedVerbs::MS_OLEVERB_OPEN || nVerb == embed::EmbedVerbs::MS_OLEVERB_SHOW) { // a workaround for the default verb, usually makes sense for alien objects try diff --git a/sfx2/source/view/viewfrm.cxx b/sfx2/source/view/viewfrm.cxx index 3586a9ac35591..551cb94ae14a2 100644 --- a/sfx2/source/view/viewfrm.cxx +++ b/sfx2/source/view/viewfrm.cxx @@ -1096,7 +1096,8 @@ void SfxViewFrame::InvalidateBorderImpl( const SfxViewShell* pSh ) } DoAdjustPosSizePixel( GetViewShell(), Point(), - GetWindow().GetOutputSizePixel() ); + GetWindow().GetOutputSizePixel(), + false ); } } } @@ -1512,7 +1513,8 @@ void SfxViewFrame::DoAdjustPosSizePixel //! divide on Inner.../Outer... ( SfxViewShell* pSh, const Point& rPos, - const Size& rSize + const Size& rSize, + bool inplaceEditModeChange ) { @@ -1521,7 +1523,7 @@ void SfxViewFrame::DoAdjustPosSizePixel //! divide on Inner.../Outer... { m_nAdjustPosPixelLock++; if ( m_pImpl->bResizeInToOut ) - pSh->InnerResizePixel( rPos, rSize ); + pSh->InnerResizePixel( rPos, rSize, inplaceEditModeChange ); else pSh->OuterResizePixel( rPos, rSize ); m_nAdjustPosPixelLock--; @@ -2002,7 +2004,7 @@ bool SfxViewFrame::SwitchToViewShell_Impl UnlockAdjustPosSizePixel(); if ( GetWindow().IsReallyVisible() ) - DoAdjustPosSizePixel( pNewSh, Point(), GetWindow().GetOutputSizePixel() ); + DoAdjustPosSizePixel( pNewSh, Point(), GetWindow().GetOutputSizePixel(), false ); GetBindings().LEAVEREGISTRATIONS(); delete pOldSh; @@ -2314,11 +2316,11 @@ void SfxViewFrame::Resize( bool bForce ) if ( GetFrame().IsInPlace() ) { Point aPoint = GetWindow().GetPosPixel(); - DoAdjustPosSizePixel( pShell, aPoint, aSize ); + DoAdjustPosSizePixel( pShell, aPoint, aSize, true ); } else { - DoAdjustPosSizePixel( pShell, Point(), aSize ); + DoAdjustPosSizePixel( pShell, Point(), aSize, false ); } } } diff --git a/sfx2/source/view/viewsh.cxx b/sfx2/source/view/viewsh.cxx index ad6d6cc5d0ce9..4d55babc23eec 100644 --- a/sfx2/source/view/viewsh.cxx +++ b/sfx2/source/view/viewsh.cxx @@ -967,7 +967,8 @@ void SfxViewShell::OuterResizePixel void SfxViewShell::InnerResizePixel ( const Point& /*rToolOffset*/,// Upper left corner Tools in Frame-Window - const Size& /*rSize*/ // All available sizes. + const Size& /*rSize*/, // All available sizes. + bool ) /* [Description] diff --git a/sfx2/uiconfig/ui/emojicontrol.ui b/sfx2/uiconfig/ui/emojicontrol.ui index 4a480ccd65201..df829f2fa7833 100644 --- a/sfx2/uiconfig/ui/emojicontrol.ui +++ b/sfx2/uiconfig/ui/emojicontrol.ui @@ -35,7 +35,7 @@ True False center - 1f603 + 1f603 False @@ -49,7 +49,7 @@ 40 True False - 1f43c + 1f43c 1 @@ -64,7 +64,7 @@ 40 True False - 1f34f + 1f34f 2 @@ -78,7 +78,7 @@ True False - 1f3c8 + 1f3c8 3 @@ -92,7 +92,7 @@ True False - 1f697 + 1f697 4 @@ -106,7 +106,7 @@ True False - 1f4f1 + 1f4f1 5 @@ -120,7 +120,7 @@ True False - 1f499 + 1f499 6 @@ -134,7 +134,7 @@ True False - 1f1ee-1f1f3 + 1f1ee-1f1f3 7 @@ -148,7 +148,7 @@ True False - 1f939 + 1f939 8 diff --git a/sfx2/uiconfig/ui/licensedialog.ui b/sfx2/uiconfig/ui/licensedialog.ui index 9219c8f2d055a..1f9c30919faf4 100644 --- a/sfx2/uiconfig/ui/licensedialog.ui +++ b/sfx2/uiconfig/ui/licensedialog.ui @@ -66,7 +66,7 @@ Third Party Code Additional copyright notices and license terms applicable to po All trademarks and registered trademarks mentioned herein are the property of their respective owners. -Copyright © 2000–2016 LibreOffice contributors. All rights reserved. +Copyright © 2000–2017 LibreOffice contributors. All rights reserved. This product was created by %OOOVENDOR, based on OpenOffice.org, which is Copyright 2000, 2011 Oracle and/or its affiliates. %OOOVENDOR acknowledges all community members, please see http://www.libreoffice.org/ for more details. True diff --git a/sfx2/uiconfig/ui/safemodequerydialog.ui b/sfx2/uiconfig/ui/safemodequerydialog.ui index 8a246910dd9fe..60d6b3a426ed2 100644 --- a/sfx2/uiconfig/ui/safemodequerydialog.ui +++ b/sfx2/uiconfig/ui/safemodequerydialog.ui @@ -37,7 +37,7 @@
- _Restart + _Restart True True True diff --git a/shell/source/win32/SysShExec.cxx b/shell/source/win32/SysShExec.cxx index c69d3f2a0c59a..6cb31942ba023 100644 --- a/shell/source/win32/SysShExec.cxx +++ b/shell/source/win32/SysShExec.cxx @@ -323,6 +323,28 @@ void SAL_CALL CSysShExec::execute( const OUString& aCommand, const OUString& aPa static_cast< XSystemShellExecute* >(this), psxErr); } + else + { + // Get Permission make changes to the Window of the created Process + HWND procHandle = 0; + DWORD procId = GetProcessId(sei.hProcess); + AllowSetForegroundWindow(procId); + + // Get the handle of the created Window + DWORD check = 0; + GetWindowThreadProcessId(procHandle, &check); + SAL_WARN_IF(check != procId, "shell", "Could not get handle of process called by shell."); + + // Move created Window into the foreground + if(procHandle != 0) + { + SetForegroundWindow(procHandle); + SetActiveWindow(procHandle); + } + } + + // Close the handle for the created childprocess when we are done + CloseHandle(sei.hProcess); } // XServiceInfo diff --git a/slideshow/source/engine/opengl/TransitionImpl.cxx b/slideshow/source/engine/opengl/TransitionImpl.cxx index 33e7f4ba0f438..60ab587471ae5 100644 --- a/slideshow/source/engine/opengl/TransitionImpl.cxx +++ b/slideshow/source/engine/opengl/TransitionImpl.cxx @@ -316,8 +316,6 @@ OGLTransitionImpl::displayUnbufferedSlide( const sal_Int32 glSlideTex, const Primitives_t& primitives, double SlideWidthScale, double SlideHeightScale ) { - CHECK_GL_ERROR(); - glPushMatrix(); CHECK_GL_ERROR(); glBindTexture(GL_TEXTURE_2D, glSlideTex); CHECK_GL_ERROR(); @@ -336,8 +334,6 @@ OGLTransitionImpl::displayUnbufferedSlide( CHECK_GL_ERROR(); glBindBuffer(GL_ARRAY_BUFFER, m_nVertexBufferObject); CHECK_GL_ERROR(); - glPopMatrix(); - CHECK_GL_ERROR(); } void OGLTransitionImpl::displayScene( double nTime, double SlideWidth, double SlideHeight, double DispWidth, double DispHeight ) @@ -360,16 +356,30 @@ void Primitive::display(GLint primitiveTransformLocation, double nTime, double W CHECK_GL_ERROR(); } - glPushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT); + GLuint nVertexArrayObject; + glGenVertexArrays(1, &nVertexArrayObject); CHECK_GL_ERROR(); - glEnableClientState( GL_VERTEX_ARRAY ); + glBindVertexArray(nVertexArrayObject); CHECK_GL_ERROR(); - glVertexPointer( 3, GL_FLOAT, sizeof(Vertex), &Vertices[0] ); + + GLuint nBuffer; + glGenBuffers(1, &nBuffer); CHECK_GL_ERROR(); - glDrawArrays( GL_TRIANGLES, 0, getVerticesSize() ); + glBindBuffer(GL_ARRAY_BUFFER, nBuffer); + CHECK_GL_ERROR(); + glBufferData(GL_ARRAY_BUFFER, getVerticesSize(), Vertices.data(), GL_STATIC_DRAW); + + glEnableVertexAttribArray(0); + CHECK_GL_ERROR(); + glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), nullptr); + CHECK_GL_ERROR(); + glDrawArrays( GL_TRIANGLES, 0, Vertices.size() ); + CHECK_GL_ERROR(); + + glDeleteBuffers(1, &nBuffer); CHECK_GL_ERROR(); - glPopClientAttrib(); + glDeleteVertexArrays(1, &nVertexArrayObject); CHECK_GL_ERROR(); } diff --git a/slideshow/source/engine/opengl/TransitionerImpl.cxx b/slideshow/source/engine/opengl/TransitionerImpl.cxx index ef1d385e77fb2..61a28e9422ff5 100644 --- a/slideshow/source/engine/opengl/TransitionerImpl.cxx +++ b/slideshow/source/engine/opengl/TransitionerImpl.cxx @@ -367,6 +367,26 @@ void OGLTransitionerImpl::setSlides( const uno::Reference< rendering::XBitmap >& SAL_INFO("slideshow.opengl", "leaving bitmap area: " << maSlideSize.Width << "x" << maSlideSize.Height); maSlideSize = mxEnteringBitmap->getSize(); SAL_INFO("slideshow.opengl", "entering bitmap area: " << maSlideSize.Width << "x" << maSlideSize.Height); + + //to avoid annoying flashing under X entering and leaving slides with opengl effects set the leaving + //bitmap as the background pixmap of the opengl child window and the entering bitmap as the background + //pixmap of the non-opengl parent window. If any expose events occur around the start and end of + //the transition then those windows are default filled by X with the desired start/end image so there's + //no visible flash + if (SystemChildWindow* pChildWindow = mpContext->getChildWindow()) + { + css::uno::Reference xEnteringFastPropertySet(mxEnteringBitmap, css::uno::UNO_QUERY); + css::uno::Reference xLeavingFastPropertySet(mxLeavingBitmap, css::uno::UNO_QUERY); + css::uno::Sequence aEnteringBitmap; + css::uno::Sequence aLeavingBitmap; + if (xEnteringFastPropertySet.get() && xLeavingFastPropertySet.get()) + { + xEnteringFastPropertySet->getFastPropertyValue(1) >>= aEnteringBitmap; + xLeavingFastPropertySet->getFastPropertyValue(1) >>= aLeavingBitmap; + } + if (aEnteringBitmap.getLength() == 3 && aLeavingBitmap.getLength() == 3) + pChildWindow->SetLeaveEnterBackgrounds(aLeavingBitmap, aEnteringBitmap); + } } diff --git a/solenv/bin/macosx-codesign-app-bundle b/solenv/bin/macosx-codesign-app-bundle index e7942eb693e53..a330205e9915c 100755 --- a/solenv/bin/macosx-codesign-app-bundle +++ b/solenv/bin/macosx-codesign-app-bundle @@ -1,5 +1,12 @@ #!/bin/bash +# Exit on errors +set -e +# Use of unset variable is an error +set -u +# If any part of a pipeline of commands fails, the whole pipeline fails +set -o pipefail + # Script to sign executables, dylibs and frameworks in an app bundle # plus the bundle itself. Called from # the test-install target in Makefile.in @@ -19,7 +26,7 @@ for V in \ done APP_BUNDLE="$1" - +entitlements= if test -n "$ENABLE_MACOSX_SANDBOX"; then # In a sandboxed build executables need the entitlements entitlements="--entitlements $BUILDDIR/lo.xcent" @@ -28,16 +35,25 @@ if test -n "$ENABLE_MACOSX_SANDBOX"; then # through that. I think. other_files='' else - # In a non-sandboxed build (distributed outside the App Store) - # we traditionally have use --resource-rules. Let's not touch that? - resource_rules="--resource-rules $SRCDIR/setup_native/source/mac/CodesignRules.plist" - # And there we then want to sign data files, too, hmm. + # We then want to sign data files, too, hmm. other_files="\ -or -name '*.fodt' -or -name 'schema.strings' -or -name 'schema.xml' \ - -or -name '*.jar' -or -name '*.jnilib' -or -name 'LICENSE' -or -name 'LICENSE.html' \ + -or -name '*.jar' -or -name 'LICENSE' -or -name 'LICENSE.html' \ -or -name '*.applescript' -or -name '*.odt'" fi +# Sign jnilibs first as workaround for signing issue on old baseline +# order matters/screws things up otherwise +find -d "$APP_BUNDLE" \( -name '*.jnilib' \) ! -type l | + while read file; do + id=`echo ${file#${APP_BUNDLE}/Contents/} | sed -e 's,/,.,g'` + codesign --verbose --force --identifier=$MACOSX_BUNDLE_IDENTIFIER.$id --sign "$MACOSX_CODESIGNING_IDENTITY" "$file" > "/tmp/codesign_$(basename "$file").log" 2>&1 + if [ "$?" != "0" ] ; then + exit 1 + fi + rm "/tmp/codesign_$(basename "$file").log" +done + # Sign dylibs # # The dylibs in the Python framework are called *.so. Go figure @@ -50,27 +66,27 @@ find "$APP_BUNDLE" \( -name '*.dylib' -or -name '*.dylib.*' -or -name '*.so' \ $other_files \) ! -type l | while read file; do id=`echo ${file#${APP_BUNDLE}/Contents/} | sed -e 's,/,.,g'` - codesign --verbose --identifier=$MACOSX_BUNDLE_IDENTIFIER.$id --sign "$MACOSX_CODESIGNING_IDENTITY" "$file" || exit 1 -done - -# Sign executables - -find "$APP_BUNDLE/Contents/MacOS" -type f | -while read file; do - id=`echo ${file#${APP_BUNDLE}/Contents/} | sed -e 's,/,.,g'` - codesign --force --verbose --identifier=$MACOSX_BUNDLE_IDENTIFIER.$id --sign "$MACOSX_CODESIGNING_IDENTITY" $entitlements "$file" + codesign --verbose --force --identifier=$MACOSX_BUNDLE_IDENTIFIER.$id --sign "$MACOSX_CODESIGNING_IDENTITY" "$file" > "/tmp/codesign_$(basename "$file").log" 2>&1 + if [ "$?" != "0" ] ; then + exit 1 + fi + rm "/tmp/codesign_$(basename "$file").log" done # Sign included bundles. First .app ones (i.e. the Python.app inside # the LibreOfficePython.framework. Be generic for kicks...) -find "$APP_BUNDLE" -name '*.app' -type d | +find "$APP_BUNDLE"/Contents -name '*.app' -type d | while read app; do fn=`basename "$app"` fn=${fn%.*} # Assume the app has a XML (and not binary) Info.plist id=`grep -A 1 'CFBundleIdentifier' $app/Contents/Info.plist | tail -1 | sed -e 's,.*,,' -e 's,.*,,'` - codesign --verbose --identifier=$id --sign "$MACOSX_CODESIGNING_IDENTITY" $entitlements "$app" + codesign --verbose --force --identifier=$id --sign "$MACOSX_CODESIGNING_IDENTITY" $entitlements "$app" > "/tmp/codesign_${fn}.log" 2>&1 + if [ "$?" != "0" ] ; then + exit 1 + fi + rm "/tmp/codesign_${fn}.log" done # Then .framework ones. Again, be generic just for kicks. @@ -83,8 +99,12 @@ while read framework; do if test ! -L "$version" -a -d "$version"; then # Assume the framework has a XML (and not binary) Info.plist id=`grep -A 1 'CFBundleIdentifier' $version/Resources/Info.plist | tail -1 | sed -e 's,.*,,' -e 's,.*,,'` - codesign --verbose --identifier=$id --sign "$MACOSX_CODESIGNING_IDENTITY" "$version" - fi + codesign --verbose --force --identifier=$id --sign "$MACOSX_CODESIGNING_IDENTITY" "$version" > "/tmp/codesign_${fn}.log" 2>&1 + if [ "$?" != "0" ] ; then + exit 1 + fi + rm "/tmp/codesign_${fn}.log" + fi done done @@ -92,7 +112,29 @@ done find "$APP_BUNDLE" -name '*.mdimporter' -type d | while read bundle; do - codesign --verbose --prefix=$MACOSX_BUNDLE_IDENTIFIER. --sign "$MACOSX_CODESIGNING_IDENTITY" "$bundle" + codesign --verbose --force --prefix=$MACOSX_BUNDLE_IDENTIFIER. --sign "$MACOSX_CODESIGNING_IDENTITY" "$bundle" > "/tmp/codesign_$(basename "${bundle}").log" 2>&1 + if [ "$?" != "0" ] ; then + exit 1 + fi + rm "/tmp/codesign_$(basename "${bundle}").log" +done + +# Sign executables + +find "$APP_BUNDLE/Contents/MacOS" -type f | +while read file; do + case "$file" in + */soffice) + ;; + *) + id=`echo ${file#${APP_BUNDLE}/Contents/} | sed -e 's,/,.,g'` + codesign --force --verbose --identifier=$MACOSX_BUNDLE_IDENTIFIER.$id --sign "$MACOSX_CODESIGNING_IDENTITY" $entitlements "$file" > "/tmp/codesign_${MACOSX_BUNDLE_IDENTIFIER}.${id}.log" 2>&1 + if [ "$?" != "0" ] ; then + exit 1 + fi + rm "/tmp/codesign_${MACOSX_BUNDLE_IDENTIFIER}.${id}.log" + ;; + esac done # Sign the app bundle as a whole which means (re-)signing the @@ -109,6 +151,9 @@ done id=`echo ${PRODUCTNAME} | tr ' ' '-'` -codesign --force --verbose --identifier="${MACOSX_BUNDLE_IDENTIFIER}" $resource_rules --sign "$MACOSX_CODESIGNING_IDENTITY" $entitlements "$APP_BUNDLE" - +codesign --force --verbose --identifier="${MACOSX_BUNDLE_IDENTIFIER}" --sign "$MACOSX_CODESIGNING_IDENTITY" $entitlements "$APP_BUNDLE" > "/tmp/codesign_${MACOSX_BUNDLE_IDENTIFIER}.log" 2>&1 +if [ "$?" != "0" ] ; then + exit 1 +fi +rm "/tmp/codesign_${MACOSX_BUNDLE_IDENTIFIER}.log" exit 0 diff --git a/solenv/gbuild/CppunitTest.mk b/solenv/gbuild/CppunitTest.mk index 95f5fbcd0e779..cc532305fd8d8 100644 --- a/solenv/gbuild/CppunitTest.mk +++ b/solenv/gbuild/CppunitTest.mk @@ -100,7 +100,7 @@ $(call gb_CppunitTest_get_clean_target,%) : $(call gb_CppunitTest_get_target,%) :| $(gb_CppunitTest_RUNTIMEDEPS) $(call gb_Output_announce,$*,$(true),CUT,2) $(call gb_Helper_abbreviate_dirs,\ - $(if $(gb_CppunitTest_vcl_hide_windows),VCL_HIDE_WINDOWS=1 && ) \ + $(if $(gb_CppunitTest_vcl_hide_windows),export VCL_HIDE_WINDOWS=1 && ) \ $(if $(gb_CppunitTest_vcl_show_windows),unset VCL_HIDE_WINDOWS && ) \ mkdir -p $(dir $@) && \ rm -fr $@.user && mkdir $@.user && \ diff --git a/solenv/gbuild/Helper.mk b/solenv/gbuild/Helper.mk index 4e914d16cc671..c3677c011f63f 100644 --- a/solenv/gbuild/Helper.mk +++ b/solenv/gbuild/Helper.mk @@ -299,7 +299,9 @@ endef endif define gb_Helper_optional_for_host -$(if $(filter $(1),$(BUILD_TYPE_FOR_HOST)),$(2)) +$(if $(filter build,$(gb_Side)), \ + $(if $(filter $(1),$(BUILD_TYPE_FOR_HOST)),$(2)), \ + $(call gb_Output_error,gb_Helper_optional_for_host: Use only when gb_Side=build)) endef define gb_Helper_print_on_error diff --git a/solenv/gbuild/Module.mk b/solenv/gbuild/Module.mk index eb558a8033acc..6af2b5c6f72cc 100644 --- a/solenv/gbuild/Module.mk +++ b/solenv/gbuild/Module.mk @@ -144,10 +144,12 @@ $(call gb_Module_get_target,%) : all : build $(if $(CROSS_COMPILING),,unitcheck $(if $(gb_PARTIAL_BUILD),,slowcheck)) +ifeq ($(gb_Side),build) build-tools : $(gb_BUILD_TOOLS) $(call gb_Output_announce,loaded tools: $(gb_BUILD_TOOLS),$(true),ALL,6) $(call gb_Output_announce_title,build-tools done.) $(call gb_Output_announce_bell) +endif build : $(call gb_Output_announce,top level modules: $(foreach module,$(filter-out deliverlog $(WORKDIR)/bootstrap,$^),$(notdir $(module))),$(true),ALL,6) diff --git a/solenv/gbuild/extensions/pre_BuildTools.mk b/solenv/gbuild/extensions/pre_BuildTools.mk index f387df6cf9fac..5daf671e082be 100644 --- a/solenv/gbuild/extensions/pre_BuildTools.mk +++ b/solenv/gbuild/extensions/pre_BuildTools.mk @@ -8,6 +8,7 @@ # # Tools we need to build for cross-compiling +ifeq ($(gb_Side),build) gb_BUILD_TOOLS = \ $(foreach executable, \ bestreversemap \ @@ -44,4 +45,6 @@ gb_BUILD_TOOLS = \ ,$(call gb_ExternalExecutable_get_dependencies,$(executable))) \ $(INSTROOT)/$(LIBO_URE_ETC_FOLDER)/$(call gb_Helper_get_rcfile,uno) \ +endif + # vim: set noet sw=4 ts=4: diff --git a/solenv/gbuild/platform/com_GCC_defs.mk b/solenv/gbuild/platform/com_GCC_defs.mk index 6b697fc9461c4..0b89114363479 100644 --- a/solenv/gbuild/platform/com_GCC_defs.mk +++ b/solenv/gbuild/platform/com_GCC_defs.mk @@ -96,6 +96,20 @@ gb_CXXFLAGS_COMMON += \ -Wunused-const-variable=1 endif +# for release branch, exclude all new GCC7 warnings from Werror +ifeq ($(shell expr '$(GCC_VERSION)' '>=' 700),1) +gb_CFLAGS_COMMON += \ + -Wno-deprecated \ + -Wno-error=implicit-fallthrough \ + +gb_CXXFLAGS_COMMON += \ + -Wno-deprecated \ + -Wno-error=implicit-fallthrough \ + -Wno-error=format-truncation \ + -Wno-error=int-in-bool-context \ + +endif + ifeq ($(COM_IS_CLANG),TRUE) gb_CXXFLAGS_COMMON += -Wimplicit-fallthrough endif diff --git a/solenv/gbuild/platform/filter-showIncludes.awk b/solenv/gbuild/platform/filter-showIncludes.awk index 21a458521308e..6ec13e2fdb4c2 100755 --- a/solenv/gbuild/platform/filter-showIncludes.awk +++ b/solenv/gbuild/platform/filter-showIncludes.awk @@ -40,6 +40,7 @@ BEGIN { } { + sub(/\r$/, "") sub(/^ */, "") if (index($0, showincludes_prefix) == 1) { $0 = substr($0, length(showincludes_prefix) + 1) diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk index 9bf18c363978b..626f399a42c80 100644 --- a/solenv/gbuild/platform/macosx.mk +++ b/solenv/gbuild/platform/macosx.mk @@ -334,7 +334,7 @@ gb_CliAssemblyTarget_get_dll := # Extension class -gb_Extension_LICENSEFILE_DEFAULT := $(INSTROOT)/LICENSE +gb_Extension_LICENSEFILE_DEFAULT := $(INSTROOT)/Resources/LICENSE # UnpackedTarget class diff --git a/solenv/gcc-wrappers/wrapper.cxx b/solenv/gcc-wrappers/wrapper.cxx index cc312722f201e..6e3fe1393fdb0 100644 --- a/solenv/gcc-wrappers/wrapper.cxx +++ b/solenv/gcc-wrappers/wrapper.cxx @@ -49,7 +49,7 @@ void setupccenv() { } // Set-up include path - string includepath="INCLUDE=.;"; + string includepath="INCLUDE=."; char* incbuf; size_t inclen; _dupenv_s(&incbuf,&inclen,"SOLARINC"); @@ -61,16 +61,20 @@ void setupccenv() { free(incbuf); // 3 = strlen(" -I") - for(size_t pos=0; pos != string::npos;) { - size_t endpos=inctmp.find(" -I",pos+3); - size_t len=endpos-pos-3; + for(size_t pos=0,len=0;pos0) { - includepath.append(inctmp,pos+3,len); + endpos=inctmp.length(); + len=endpos-pos; + + while(len>0&&inctmp[pos+len-1]==' ') + --len; + + if(len>3) { includepath.append(";"); + includepath.append(inctmp,pos+3,len-3); } - pos=inctmp.find(" -I",pos+len); + pos=endpos; } if(_putenv(includepath.c_str())<0) { cerr << "Error: could not export INCLUDE" << endl; diff --git a/solenv/gdb/libreoffice/sal.py b/solenv/gdb/libreoffice/sal.py index c2e8384537be5..8dcfaebe66e1c 100644 --- a/solenv/gdb/libreoffice/sal.py +++ b/solenv/gdb/libreoffice/sal.py @@ -21,7 +21,7 @@ def __init__(self, typename, val, encoding = None): super(RtlStringPrinter, self).__init__(typename, val, encoding) def data(self): - return self.val['buffer'] + return self.val['buffer'].address def length(self): return self.val['length'] @@ -37,7 +37,7 @@ def valid(self): def data(self): assert self.val['pData'] - return self.val['pData'].dereference()['buffer'] + return self.val['pData'].dereference()['buffer'].address def length(self): assert self.val['pData'] diff --git a/solenv/gdb/libreoffice/util/string.py b/solenv/gdb/libreoffice/util/string.py index 32583718f83b2..742aabbaca275 100644 --- a/solenv/gdb/libreoffice/util/string.py +++ b/solenv/gdb/libreoffice/util/string.py @@ -52,15 +52,15 @@ def make_string(data, encoding = None, length = -1): if not encoding: encoding = '' - if use_lazy_string: - return data.lazy_string(encoding, length) - # we need to determine length, if not given (for sal_Unicode*) if length < 0: length = 0 while data[length] != 0 and length <= 512: # arbitrary limit length += 1 + if use_lazy_string: + return data.lazy_string(encoding, length) + # The gdb.Value.string() conversion works on array of bytes, but # the length we have is the length of the string. So we must # multiply it by width of character if the string is Unicode. diff --git a/solenv/qa/python/gbuildtoide.py b/solenv/qa/python/gbuildtoide.py index 8ff87bada3bea..7b2a2c48dc84e 100644 --- a/solenv/qa/python/gbuildtoide.py +++ b/solenv/qa/python/gbuildtoide.py @@ -98,20 +98,23 @@ def setUp(self): self.tempwork = tempfile.mkdtemp() self.tempsrc = tempfile.mkdtemp() self.srcdir = os.environ['SRCDIR'] + self.builddir = os.environ['BUILDDIR'] if os.environ['OS'] == 'WNT': self.tempworkmixed = self.tempwork.replace('\\','/') self.tempsrcmixed = self.tempsrc.replace('\\','/') self.srcdirnative = self.srcdir.replace('/','\\') + self.builddirnative = self.builddir.replace('/','\\') else: self.tempworkmixed = self.tempwork self.tempsrcmixed = self.tempsrc self.srcdirnative = self.srcdir - shutil.copyfile(os.path.join(self.srcdirnative, 'config_host.mk'), os.path.join(self.tempsrc, 'config_host.mk')) - shutil.copyfile(os.path.join(self.srcdirnative, 'config_host_lang.mk'), os.path.join(self.tempsrc, 'config_host_lang.mk')) + self.builddirnative = self.builddir + shutil.copyfile(os.path.join(self.builddirnative, 'config_host.mk'), os.path.join(self.tempsrc, 'config_host.mk')) + shutil.copyfile(os.path.join(self.builddirnative, 'config_host_lang.mk'), os.path.join(self.tempsrc, 'config_host_lang.mk')) + shutil.copytree(os.path.join(self.builddirnative, 'config_host'), os.path.join(self.tempsrc, 'config_host')) shutil.copyfile(os.path.join(self.srcdirnative, 'Repository.mk'), os.path.join(self.tempsrc, 'Repository.mk')) shutil.copyfile(os.path.join(self.srcdirnative, 'RepositoryExternal.mk'), os.path.join(self.tempsrc, 'RepositoryExternal.mk')) shutil.copyfile(os.path.join(self.srcdirnative, 'RepositoryFixes.mk'), os.path.join(self.tempsrc, 'RepositoryFixes.mk')) - shutil.copytree(os.path.join(self.srcdirnative, 'config_host'), os.path.join(self.tempsrc, 'config_host')) print('copytree from _%s_ to _%s_' % (os.path.join(self.srcdirnative, 'solenv').replace('\\', '#').replace('/', '!'), os.path.join(self.tempsrc, 'solenv').replace('\\', '#').replace('/', '!'))) shutil.copytree(os.path.join(self.srcdirnative, 'solenv'), os.path.join(self.tempsrc, 'solenv')) diff --git a/sot/source/base/exchange.cxx b/sot/source/base/exchange.cxx index 4665ec805fd68..0ddcb35c7987c 100644 --- a/sot/source/base/exchange.cxx +++ b/sot/source/base/exchange.cxx @@ -203,6 +203,7 @@ namespace /*142 SotClipboardFormatId::STARWRITERGLOB_8_TEMPLATE*/ { MIMETYPE_OASIS_OPENDOCUMENT_TEXT_GLOBAL_TEMPLATE_ASCII, "Writer/Global 8 Template", &cppu::UnoType>::get() }, /*143 SotClipboardFormatId::MATHML*/ { "application/mathml+xml", "MathML", &::cppu::UnoType>::get() }, /*144 SotClipboardFormatId::JPEG*/ { "image/jpeg", "JPEG Bitmap", &cppu::UnoType>::get() }, + /*145 SotClipboardFormatId::RICHTEXT*/ { "text/richtext", "Richtext Format", &cppu::UnoType>::get() } }; return &aInstance[0]; } diff --git a/sot/source/base/formats.cxx b/sot/source/base/formats.cxx index 55211eb336727..6ff84b171d733 100644 --- a/sot/source/base/formats.cxx +++ b/sot/source/base/formats.cxx @@ -195,6 +195,7 @@ static SotAction_Impl const aEXCHG_DEST_DOC_TEXTFRAME_Move[] = \ { SotClipboardFormatId::HTML_NO_COMMENT, EXCHG_OUT_ACTION_INSERT_HTML, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ { SotClipboardFormatId::HTML_SIMPLE, EXCHG_OUT_ACTION_INSERT_HTML, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ { SotClipboardFormatId::RTF, EXCHG_IN_ACTION_COPY, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ + { SotClipboardFormatId::RICHTEXT, EXCHG_IN_ACTION_COPY, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ { SotClipboardFormatId::NETSCAPE_IMAGE, EXCHG_IN_ACTION_COPY, SotExchangeActionFlags::InsertTargetUrl, 0 }, \ { SotClipboardFormatId::STRING, EXCHG_OUT_ACTION_INSERT_STRING, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ { SotClipboardFormatId::GDIMETAFILE, EXCHG_OUT_ACTION_INSERT_GDIMETAFILE, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ @@ -226,6 +227,7 @@ static SotAction_Impl const aEXCHG_DEST_DOC_TEXTFRAME_Copy[] = \ { SotClipboardFormatId::HTML_NO_COMMENT, EXCHG_OUT_ACTION_INSERT_HTML, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ { SotClipboardFormatId::HTML_SIMPLE, EXCHG_OUT_ACTION_INSERT_HTML, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ { SotClipboardFormatId::RTF, EXCHG_IN_ACTION_COPY, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ + { SotClipboardFormatId::RICHTEXT, EXCHG_IN_ACTION_COPY, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ { SotClipboardFormatId::NETSCAPE_IMAGE, EXCHG_IN_ACTION_COPY, SotExchangeActionFlags::InsertTargetUrl, 0 }, \ { SotClipboardFormatId::STRING, EXCHG_OUT_ACTION_INSERT_STRING, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ { SotClipboardFormatId::NETSCAPE_BOOKMARK, EXCHG_OUT_ACTION_INSERT_HYPERLINK, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ @@ -292,6 +294,7 @@ static SotAction_Impl const aEXCHG_DEST_DOC_TEXTFRAME_WEB_Move[] = \ { SotClipboardFormatId::HTML_NO_COMMENT, EXCHG_OUT_ACTION_INSERT_HTML, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ { SotClipboardFormatId::HTML_SIMPLE, EXCHG_OUT_ACTION_INSERT_HTML, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ { SotClipboardFormatId::RTF, EXCHG_IN_ACTION_COPY, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ + { SotClipboardFormatId::RICHTEXT, EXCHG_IN_ACTION_COPY, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ { SotClipboardFormatId::NETSCAPE_IMAGE, EXCHG_IN_ACTION_COPY, SotExchangeActionFlags::InsertTargetUrl, 0 }, \ { SotClipboardFormatId::STRING, EXCHG_OUT_ACTION_INSERT_STRING, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ { SotClipboardFormatId::GDIMETAFILE, EXCHG_OUT_ACTION_INSERT_GDIMETAFILE, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ @@ -317,6 +320,7 @@ static SotAction_Impl const aEXCHG_DEST_DOC_TEXTFRAME_WEB_Copy[] = \ { SotClipboardFormatId::HTML_NO_COMMENT, EXCHG_OUT_ACTION_INSERT_HTML, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ { SotClipboardFormatId::HTML_SIMPLE, EXCHG_OUT_ACTION_INSERT_HTML, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ { SotClipboardFormatId::RTF, EXCHG_IN_ACTION_COPY, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ + { SotClipboardFormatId::RICHTEXT, EXCHG_IN_ACTION_COPY, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ { SotClipboardFormatId::NETSCAPE_IMAGE, EXCHG_IN_ACTION_COPY, SotExchangeActionFlags::InsertTargetUrl, 0 }, \ { SotClipboardFormatId::STRING, EXCHG_OUT_ACTION_INSERT_STRING, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ { SotClipboardFormatId::NETSCAPE_BOOKMARK, EXCHG_OUT_ACTION_INSERT_HYPERLINK, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ @@ -832,6 +836,7 @@ static SotAction_Impl const aEXCHG_DEST_SWDOC_FREE_AREA_Def[] = \ { SotClipboardFormatId::HTML_NO_COMMENT, EXCHG_IN_ACTION_COPY }, \ { SotClipboardFormatId::HTML_SIMPLE, EXCHG_IN_ACTION_COPY }, \ { SotClipboardFormatId::RTF, EXCHG_IN_ACTION_COPY }, \ + { SotClipboardFormatId::RICHTEXT, EXCHG_IN_ACTION_COPY }, \ { SotClipboardFormatId::SVIM, EXCHG_IN_ACTION_COPY }, \ { SotClipboardFormatId::NETSCAPE_IMAGE, EXCHG_IN_ACTION_COPY }, \ { SotClipboardFormatId::STRING, EXCHG_IN_ACTION_COPY }, \ @@ -868,6 +873,7 @@ static SotAction_Impl const aEXCHG_DEST_SWDOC_FREE_AREA_Move[] = \ { SotClipboardFormatId::HTML_NO_COMMENT, EXCHG_OUT_ACTION_INSERT_HTML, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ { SotClipboardFormatId::HTML_SIMPLE, EXCHG_OUT_ACTION_INSERT_HTML, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ { SotClipboardFormatId::RTF, EXCHG_IN_ACTION_COPY, SotExchangeActionFlags::InsertTargetUrl, 0 }, \ + { SotClipboardFormatId::RICHTEXT, EXCHG_IN_ACTION_COPY, SotExchangeActionFlags::InsertTargetUrl, 0 }, \ { SotClipboardFormatId::STRING, EXCHG_OUT_ACTION_INSERT_STRING }, \ { SotClipboardFormatId::GDIMETAFILE, EXCHG_OUT_ACTION_INSERT_GDIMETAFILE, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ { SotClipboardFormatId::PNG, EXCHG_OUT_ACTION_INSERT_BITMAP, SotExchangeActionFlags::InsertImageMap | SotExchangeActionFlags::InsertTargetUrl, 0 },\ diff --git a/starmath/inc/view.hxx b/starmath/inc/view.hxx index e6bf3238bec54..840b6d27428dd 100644 --- a/starmath/inc/view.hxx +++ b/starmath/inc/view.hxx @@ -263,7 +263,7 @@ protected: virtual void Deactivate(bool IsMDIActivate) override; virtual void Activate(bool IsMDIActivate) override; virtual void AdjustPosSizePixel(const Point &rPos, const Size &rSize) override; - virtual void InnerResizePixel(const Point &rOfs, const Size &rSize) override; + virtual void InnerResizePixel(const Point &rOfs, const Size &rSize, bool inplaceEditModeChange) override; virtual void OuterResizePixel(const Point &rOfs, const Size &rSize) override; virtual void QueryObjAreaPixel( Rectangle& rRect ) const override; virtual void SetZoomFactor( const Fraction &rX, const Fraction &rY ) override; @@ -319,6 +319,9 @@ public: bInsertIntoEditWindow = bEditWindowHadFocusLast; } bool IsInlineEditEnabled() const; + +private: + void ZoomByItemSet(const SfxItemSet *pSet); }; #endif diff --git a/starmath/qa/cppunit/test_starmath.cxx b/starmath/qa/cppunit/test_starmath.cxx index 05cddc500d8ec..f7f608c163c79 100644 --- a/starmath/qa/cppunit/test_starmath.cxx +++ b/starmath/qa/cppunit/test_starmath.cxx @@ -133,6 +133,14 @@ void Test::editMarker() m_pEditWindow->Delete(); m_pEditWindow->InsertText("b"); + // tdf#106116: should be safe i.e. do nothing + m_pEditWindow->SelPrevMark(); + auto aSelection = m_pEditWindow->GetSelection(); + CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aSelection.nStartPara); + CPPUNIT_ASSERT_EQUAL(sal_Int32(9), aSelection.nStartPos); + CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aSelection.nEndPara); + CPPUNIT_ASSERT_EQUAL(sal_Int32(9), aSelection.nEndPos); + m_pEditWindow->Flush(); OUString sFinalText = m_pEditWindow->GetText(); CPPUNIT_ASSERT_EQUAL_MESSAGE("Should be a under b under c", sTargetText, sFinalText); diff --git a/starmath/source/accessibility.cxx b/starmath/source/accessibility.cxx index fece32e4c63c3..19cc51784a620 100644 --- a/starmath/source/accessibility.cxx +++ b/starmath/source/accessibility.cxx @@ -417,7 +417,7 @@ void SAL_CALL SmGraphicAccessible::removeAccessibleEventListener( const Reference< XAccessibleEventListener >& xListener ) throw (RuntimeException, std::exception) { - if (xListener.is()) + if (xListener.is() && nClientId) { SolarMutexGuard aGuard; sal_Int32 nListenerCount = comphelper::AccessibleEventNotifier::removeEventListener( nClientId, xListener ); diff --git a/starmath/source/edit.cxx b/starmath/source/edit.cxx index 43fc7557e7e2c..ff473f9ce5034 100644 --- a/starmath/source/edit.cxx +++ b/starmath/source/edit.cxx @@ -878,36 +878,20 @@ void SmEditWindow::SelPrevMark() if (pEditEngine && pEditView) { ESelection eSelection = pEditView->GetSelection(); - sal_Int32 nPos = -1; + sal_Int32 nPara = eSelection.nStartPara; sal_Int32 nMax = eSelection.nStartPos; - OUString aText(pEditEngine->GetText(eSelection.nStartPara)); - OUString aMark(""); - sal_Int32 nCounts = pEditEngine->GetParagraphCount(); - - do - { - sal_Int32 nMarkIndex = aText.indexOf(aMark); - while ((nMarkIndex < nMax) && (nMarkIndex != -1)) - { - nPos = nMarkIndex; - nMarkIndex = aText.indexOf(aMark, nMarkIndex + 1); - } - - if (nPos == -1) - { - eSelection.nStartPara--; - aText = pEditEngine->GetText(eSelection.nStartPara); - nMax = aText.getLength(); - } - } - while ((eSelection.nStartPara < nCounts) && - (nPos == -1)); + OUString aText(pEditEngine->GetText(nPara)); + const OUString aMark(""); + sal_Int32 nPos; - if (nPos != -1) + while ( (nPos = aText.lastIndexOf(aMark, nMax)) < 0 ) { - pEditView->SetSelection(ESelection( - eSelection.nStartPara, nPos, eSelection.nStartPara, nPos + 3)); + if (--nPara < 0) + return; + aText = pEditEngine->GetText(nPara); + nMax = aText.getLength(); } + pEditView->SetSelection(ESelection(nPara, nPos, nPara, nPos + 3)); } } diff --git a/starmath/source/node.cxx b/starmath/source/node.cxx index f650108664abe..84942089915dc 100644 --- a/starmath/source/node.cxx +++ b/starmath/source/node.cxx @@ -1787,34 +1787,34 @@ void SmFontNode::CreateTextFromNode(OUString &rText) rText += "color yellow "; break; case TTEAL: - rText += "color teal"; + rText += "color teal "; break; case TSILVER: - rText += "color silver"; + rText += "color silver "; break; case TGRAY: - rText += "color gray"; + rText += "color gray "; break; case TMAROON: - rText += "color maroon"; + rText += "color maroon "; break; case TPURPLE: - rText += "color purple"; + rText += "color purple "; break; case TLIME: - rText += "color lime"; + rText += "color lime "; break; case TOLIVE: - rText += "color olive"; + rText += "color olive "; break; case TNAVY: - rText += "color navy"; + rText += "color navy "; break; case TAQUA: - rText += "color aqua"; + rText += "color aqua "; break; case TFUCHSIA: - rText += "color fuchsia"; + rText += "color fuchsia "; break; case TSANS: rText += "font sans "; diff --git a/starmath/source/smdetect.cxx b/starmath/source/smdetect.cxx index 18dfa736bd513..91c8733bf13cc 100644 --- a/starmath/source/smdetect.cxx +++ b/starmath/source/smdetect.cxx @@ -93,12 +93,12 @@ OUString SAL_CALL SmFilterDetect::detect( Sequence< PropertyValue >& lDescriptor // stuff I hope? static const sal_uInt16 nBufferSize = 200; char aBuffer[nBufferSize+1]; - aBuffer[nBufferSize] = 0; pInStrm->Seek( STREAM_SEEK_TO_BEGIN ); pInStrm->StartReadingUnicodeText( RTL_TEXTENCODING_DONTKNOW ); // avoid BOM marker sal_uLong nBytesRead = pInStrm->ReadBytes( aBuffer, nBufferSize ); if (nBytesRead >= 6) { + aBuffer[nBytesRead] = 0; bool bIsMathType = false; if (0 == strncmp( "" ) || diff --git a/starmath/source/view.cxx b/starmath/source/view.cxx index 61895fbf3cf58..4796c2655fd54 100644 --- a/starmath/source/view.cxx +++ b/starmath/source/view.cxx @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include @@ -879,6 +880,7 @@ void SmViewShell::InitInterface_Impl() GetStaticInterface()->RegisterChildWindow(SmCmdBoxWrapper::GetChildWindowId()); GetStaticInterface()->RegisterChildWindow(SmElementsDockingWindowWrapper::GetChildWindowId()); + GetStaticInterface()->RegisterChildWindow(SfxInfoBarContainerChild::GetChildWindowId()); } SFX_IMPL_NAMED_VIEWFACTORY(SmViewShell, "Default") @@ -891,7 +893,7 @@ void SmViewShell::AdjustPosSizePixel(const Point &rPos, const Size &rSize) aGraphic->SetPosSizePixel(rPos, rSize); } -void SmViewShell::InnerResizePixel(const Point &rOfs, const Size &rSize) +void SmViewShell::InnerResizePixel(const Point &rOfs, const Size &rSize, bool) { Size aObjSize = GetObjectShell()->GetVisArea().GetSize(); if ( aObjSize.Width() > 0 && aObjSize.Height() > 0 ) @@ -1729,7 +1731,11 @@ void SmViewShell::Execute(SfxRequest& rReq) if ( !GetViewFrame()->GetFrame().IsInPlace() ) { const SfxItemSet *pSet = rReq.GetArgs(); - if ( !pSet ) + if ( pSet ) + { + ZoomByItemSet(pSet); + } + else { SfxItemSet aSet( SmDocShell::GetPool(), SID_ATTR_ZOOM, SID_ATTR_ZOOM); aSet.Put( SvxZoomItem( SvxZoomType::PERCENT, aGraphic->GetZoom())); @@ -1740,39 +1746,7 @@ void SmViewShell::Execute(SfxRequest& rReq) assert(xDlg); xDlg->SetLimits( MINZOOM, MAXZOOM ); if (xDlg->Execute() != RET_CANCEL) - pSet = xDlg->GetOutputItemSet(); - } - } - if ( pSet ) - { - const SvxZoomItem &rZoom = static_cast(pSet->Get(SID_ATTR_ZOOM)); - switch( rZoom.GetType() ) - { - case SvxZoomType::PERCENT: - aGraphic->SetZoom(sal::static_int_cast(rZoom.GetValue ())); - break; - - case SvxZoomType::OPTIMAL: - aGraphic->ZoomToFitInWindow(); - break; - - case SvxZoomType::PAGEWIDTH: - case SvxZoomType::WHOLEPAGE: - { - const MapMode aMap( MapUnit::Map100thMM ); - SfxPrinter *pPrinter = GetPrinter( true ); - Point aPoint; - Rectangle OutputRect(aPoint, pPrinter->GetOutputSize()); - Size OutputSize(pPrinter->LogicToPixel(Size(OutputRect.GetWidth(), - OutputRect.GetHeight()), aMap)); - Size GraphicSize(pPrinter->LogicToPixel(GetDoc()->GetSize(), aMap)); - sal_uInt16 nZ = sal::static_int_cast(std::min(long(Fraction(OutputSize.Width() * 100L, GraphicSize.Width())), - long(Fraction(OutputSize.Height() * 100L, GraphicSize.Height())))); - aGraphic->SetZoom (nZ); - break; - } - default: - break; + ZoomByItemSet(xDlg->GetOutputItemSet()); } } } @@ -2056,4 +2030,38 @@ bool SmViewShell::IsInlineEditEnabled() const return pImpl->aOpts.IsExperimentalMode(); } +void SmViewShell::ZoomByItemSet(const SfxItemSet *pSet) +{ + assert(pSet); + const SvxZoomItem &rZoom = static_cast(pSet->Get(SID_ATTR_ZOOM)); + switch( rZoom.GetType() ) + { + case SvxZoomType::PERCENT: + aGraphic->SetZoom(sal::static_int_cast(rZoom.GetValue ())); + break; + + case SvxZoomType::OPTIMAL: + aGraphic->ZoomToFitInWindow(); + break; + + case SvxZoomType::PAGEWIDTH: + case SvxZoomType::WHOLEPAGE: + { + const MapMode aMap( MapUnit::Map100thMM ); + SfxPrinter *pPrinter = GetPrinter( true ); + Point aPoint; + Rectangle OutputRect(aPoint, pPrinter->GetOutputSize()); + Size OutputSize(pPrinter->LogicToPixel(Size(OutputRect.GetWidth(), + OutputRect.GetHeight()), aMap)); + Size GraphicSize(pPrinter->LogicToPixel(GetDoc()->GetSize(), aMap)); + sal_uInt16 nZ = sal::static_int_cast(std::min(long(Fraction(OutputSize.Width() * 100L, GraphicSize.Width())), + long(Fraction(OutputSize.Height() * 100L, GraphicSize.Height())))); + aGraphic->SetZoom (nZ); + break; + } + default: + break; + } +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/stoc/source/corereflection/criface.cxx b/stoc/source/corereflection/criface.cxx index d61123cc15581..36131c1f3b858 100644 --- a/stoc/source/corereflection/criface.cxx +++ b/stoc/source/corereflection/criface.cxx @@ -673,7 +673,11 @@ Any SAL_CALL IdlInterfaceMethodImpl::invoke( const Any & rObj, Sequence< Any > & if (! bAssign) { IllegalArgumentException aExc( - "cannot coerce argument type during corereflection call!", + "cannot coerce argument type during corereflection call:" + "\narg no.: " + OUString::number(nPos) + + " expected: \"" + OUString(pTD->pTypeName) + + "\" actual: \"" + OUString(pCppArgs[nPos].getValueTypeRef()->pTypeName) + + "\"", *o3tl::doAccess>(rObj), (sal_Int16)nPos ); // cleanup diff --git a/svgio/inc/svgusenode.hxx b/svgio/inc/svgusenode.hxx index a6eccaa05cd04..26c915b6ee2a3 100644 --- a/svgio/inc/svgusenode.hxx +++ b/svgio/inc/svgusenode.hxx @@ -43,6 +43,8 @@ namespace svgio /// link to content. If maXLink is set, the node can be fetched // on demand OUString maXLink; + /// detect if maXLink causes a loop to ourself during decomposing + mutable bool mbDecomposingSvgNode; public: SvgUseNode( diff --git a/svgio/source/svgreader/svgstyleattributes.cxx b/svgio/source/svgreader/svgstyleattributes.cxx index 948f361046b2a..8cb6bb5c7eefe 100644 --- a/svgio/source/svgreader/svgstyleattributes.cxx +++ b/svgio/source/svgreader/svgstyleattributes.cxx @@ -2677,24 +2677,7 @@ namespace svgio OUString SvgStyleAttributes::getClipPathXLink() const { - if(mbIsClipPathContent) - { - return maClipPathXLink; - } - - if(!maClipPathXLink.isEmpty()) - { - return maClipPathXLink; - } - - const SvgStyleAttributes* pSvgStyleAttributes = getParentStyle(); - - if(pSvgStyleAttributes && !pSvgStyleAttributes->maClipPathXLink.isEmpty()) - { - return pSvgStyleAttributes->getClipPathXLink(); - } - - return OUString(); + return maClipPathXLink; } const SvgClipPathNode* SvgStyleAttributes::accessClipPathXLink() const diff --git a/svgio/source/svgreader/svgusenode.cxx b/svgio/source/svgreader/svgusenode.cxx index 7495c2b1d5ad3..7fdae9b3f68a5 100644 --- a/svgio/source/svgreader/svgusenode.cxx +++ b/svgio/source/svgreader/svgusenode.cxx @@ -35,7 +35,8 @@ namespace svgio maY(), maWidth(), maHeight(), - maXLink() + maXLink(), + mbDecomposingSvgNode(false) { } @@ -143,7 +144,7 @@ namespace svgio // try to access link to content const SvgNode* pXLink = getDocument().findSvgNodeById(maXLink); - if(pXLink && Display_none != pXLink->getDisplay()) + if (pXLink && Display_none != pXLink->getDisplay() && !mbDecomposingSvgNode) { // decompose children drawinglayer::primitive2d::Primitive2DContainer aNewTarget; @@ -151,9 +152,11 @@ namespace svgio // todo: in case mpXLink is a SVGTokenSvg or SVGTokenSymbol the // SVG docs want the getWidth() and getHeight() from this node // to be valid for the subtree. + mbDecomposingSvgNode = true; const_cast< SvgNode* >(pXLink)->setAlternativeParent(this); pXLink->decomposeSvgNode(aNewTarget, true); const_cast< SvgNode* >(pXLink)->setAlternativeParent(); + mbDecomposingSvgNode = false; if(!aNewTarget.empty()) { diff --git a/svl/source/numbers/zforlist.cxx b/svl/source/numbers/zforlist.cxx index c2617a534a4ba..108babe2da504 100644 --- a/svl/source/numbers/zforlist.cxx +++ b/svl/source/numbers/zforlist.cxx @@ -1963,6 +1963,15 @@ void SvNumberFormatter::GetFormatSpecialInfo(sal_uInt32 nFormat, } } +double SvNumberFormatter::GetRoundFractionValue( sal_uInt32 nFormat, double fValue ) const +{ + const SvNumberformat* pFormat = GetFormatEntry( nFormat ); + if ( pFormat ) + return pFormat->GetRoundFractionValue( fValue ); + else + return fValue; +} + sal_uInt16 SvNumberFormatter::GetFormatPrecision( sal_uInt32 nFormat ) const { const SvNumberformat* pFormat = GetFormatEntry( nFormat ); @@ -1972,6 +1981,18 @@ sal_uInt16 SvNumberFormatter::GetFormatPrecision( sal_uInt32 nFormat ) const return pFormatScanner->GetStandardPrec(); } +sal_uInt16 SvNumberFormatter::GetFormatPrecision( sal_uInt32 nFormat, double fValue ) const +{ + const SvNumberformat* pFormat = GetFormatEntry( nFormat ); + if ( pFormat ) + { + sal_uInt16 nIx = pFormat->GetSubformatIndex( fValue ); + return pFormat->GetFormatPrecision( nIx ); + } + else + return pFormatScanner->GetStandardPrec(); +} + sal_uInt16 SvNumberFormatter::GetFormatIntegerDigits( sal_uInt32 nFormat ) const { const SvNumberformat* pFormat = GetFormatEntry( nFormat ); diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx index 8178b7e4e385d..103da063321f6 100644 --- a/svl/source/numbers/zformat.cxx +++ b/svl/source/numbers/zformat.cxx @@ -2212,7 +2212,9 @@ OUString lcl_GetDenominatorString(const ImpSvNumberformatInfo &rInfo, sal_uInt16 { if( rInfo.nTypeArray[i] == NF_SYMBOLTYPE_FRAC ) { - for( i++; i < nAnz; i++ ) + while ( ( ++i < nAnz ) && rInfo.nTypeArray[i] != NF_SYMBOLTYPE_FRAC_FDIV + && rInfo.nTypeArray[i] != NF_SYMBOLTYPE_DIGIT ); + for( ; i < nAnz; i++ ) { if( rInfo.nTypeArray[i] == NF_SYMBOLTYPE_FRAC_FDIV || rInfo.nTypeArray[i] == NF_SYMBOLTYPE_DIGIT ) aDenominatorString.append( rInfo.sStrArray[i] ); @@ -2347,6 +2349,31 @@ bool SvNumberformat::GetOutputString(double fNumber, sal_uInt16 nCharCount, OUSt return true; } +sal_uInt16 SvNumberformat::GetSubformatIndex (double fNumber ) const +{ + sal_uInt16 nIx; // Index of the partial format + double fLimit_1 = fLimit1; + short nCheck = ImpCheckCondition(fNumber, fLimit_1, eOp1); + if (nCheck == -1 || nCheck == 1) // Only 1 String or True + { + nIx = 0; + } + else + { + double fLimit_2 = fLimit2; + nCheck = ImpCheckCondition(fNumber, fLimit_2, eOp2); + if (nCheck == -1 || nCheck == 1) + { + nIx = 1; + } + else + { + nIx = 2; + } + } + return nIx; +} + bool SvNumberformat::GetOutputString(double fNumber, OUString& OutString, Color** ppColor) @@ -2437,24 +2464,7 @@ bool SvNumberformat::GetOutputString(double fNumber, } if ( !bHadStandard ) { - sal_uInt16 nIx; // Index of the partial format - short nCheck = ImpCheckCondition(fNumber, fLimit1, eOp1); - if (nCheck == -1 || nCheck == 1) // Only 1 String or True - { - nIx = 0; - } - else - { - nCheck = ImpCheckCondition(fNumber, fLimit2, eOp2); - if (nCheck == -1 || nCheck == 1) - { - nIx = 1; - } - else - { - nIx = 2; - } - } + sal_uInt16 nIx = GetSubformatIndex ( fNumber ); // Index of the partial format if (fNumber < 0.0 && ((nIx == 0 && IsFirstSubformatRealNegative()) || // 1st, usually positive subformat (nIx == 1 && IsSecondSubformatRealNegative()))) // 2nd, usually negative subformat @@ -2593,11 +2603,22 @@ bool SvNumberformat::ImpGetScientificOutput(double fNumber, nExpSign = 1; } ExpStr = OUString::number( nExp ); + const sal_Unicode cFirstDigit = sStr[0]; // rescale mantissa sStr = ::rtl::math::doubleToUString( fNumber, rtl_math_StringFormat_E, nRescale + rInfo.nCntPost, '.' ); + + // sStr now may contain a rounded-up value shifted into the next + // magnitude, for example 1.000E+02 (4 digits) for fNumber 99.995 + // (9.9995E+02 rounded to 3 decimals) but we want the final result + // to be 100.00E+00 (5 digits), so for the following fill routines + // below to work correctly append a zero decimal. + /* TODO: this is awkward, could an engineering notation mode be + * introduced to rtl_math_doubleToUString()? */ sStr.truncate( sStr.indexOf('E') ); + if (sStr[0] == '1' && cFirstDigit != '1') + sStr.append('0'); } // cut any decimal delimiter @@ -2666,45 +2687,31 @@ bool SvNumberformat::ImpGetScientificOutput(double fNumber, return bRes; } -bool SvNumberformat::ImpGetFractionOutput(double fNumber, - sal_uInt16 nIx, - OUStringBuffer& sBuff) +double SvNumberformat::GetRoundFractionValue ( double fNumber ) const { - bool bRes = false; - const ImpSvNumberformatInfo& rInfo = NumFor[nIx].Info(); - const sal_uInt16 nAnz = NumFor[nIx].GetCount(); - OUStringBuffer sStr, sFrac, sDiv; // Strings, value for - sal_uInt64 nFrac=0, nDiv=1; // Integral part - bool bSign = false; // Numerator and denominator - const OUString sIntegerFormat = lcl_GetFractionIntegerString(rInfo, nAnz); - const OUString sNumeratorFormat = lcl_GetNumeratorString(rInfo, nAnz); - const OUString sDenominatorFormat = lcl_GetDenominatorString(rInfo, nAnz); + sal_uInt16 nIx = GetSubformatIndex ( fNumber ); + double fIntPart = 0.0; // integer part of fraction + sal_uInt64 nFrac = 0, nDiv = 1; // numerator and denominator + double fSign = (fNumber < 0.0) ? -1.0 : 1.0; + // fNumber is modified in ImpGetFractionElements to absolute fractional part + ImpGetFractionElements ( fNumber, nIx, fIntPart, nFrac, nDiv ); + if ( nDiv > 0 ) + return fSign * ( fIntPart + (double)nFrac / (double)nDiv ); + else + return fSign * fIntPart; +} - if (fNumber < 0) - { - if (nIx == 0) // Not in the ones at the end - bSign = true; // Formats +void SvNumberformat::ImpGetFractionElements ( double& fNumber, sal_uInt16 nIx, + double& fIntPart, sal_uInt64& nFrac, sal_uInt64& nDiv ) const +{ + if ( fNumber < 0.0 ) fNumber = -fNumber; - } - - double fNum = floor(fNumber); // Integral part - - fNumber -= fNum; // Fractional part - if (fNum > D_MAX_U_INT32 || rInfo.nCntExp > 9) // Too large - { - sBuff = rScan.GetErrorString(); - return false; - } - if (rInfo.nCntExp == 0) - { - SAL_WARN( "svl.numbers", "SvNumberformat:: Fraction, nCntExp == 0"); - sBuff.truncate(); - return false; - } - - if( sal_Int32 nForcedDiv = sDenominatorFormat.toInt32() ) + fIntPart = floor(fNumber); // Integral part + fNumber -= fIntPart; // Fractional part + const ImpSvNumberformatInfo& rInfo = NumFor[nIx].Info(); + nDiv = lcl_GetDenominatorString( rInfo, NumFor[nIx].GetCount() ).toInt32(); + if( nDiv > 0 ) { // Forced Denominator - nDiv = (sal_uInt64) nForcedDiv; nFrac = (sal_uInt64)floor ( fNumber * nDiv ); double fFracNew = (double)nFrac / (double)nDiv; double fFracNew1 = (double)(nFrac + 1) / (double)nDiv; @@ -2713,14 +2720,10 @@ bool SvNumberformat::ImpGetFractionOutput(double fNumber, { nFrac++; } - if( nFrac >= nDiv ) - { - nFrac = nDiv = 0; - fNum = fNum + 1.0; - } } else // Calculated Denominator { + nDiv = 1; sal_uInt64 nBasis = ((sal_uInt64)floor( pow(10.0,rInfo.nCntExp))) - 1; // 9, 99, 999 ,... sal_uInt64 nFracPrev = 1L, nDivPrev = 0, nFracNext, nDivNext, nPartialDenom; double fRemainder = fNumber; @@ -2758,12 +2761,43 @@ bool SvNumberformat::ImpGetFractionOutput(double fNumber, fRemainder = 0.0; // exit while loop } } - if (nFrac == nDiv) - { - ++fNum; - nFrac = 0; - } } + if (nFrac >= nDiv) + { + ++fIntPart; + nFrac = nDiv = 0; + } +} + +bool SvNumberformat::ImpGetFractionOutput(double fNumber, + sal_uInt16 nIx, + OUStringBuffer& sBuff) +{ + bool bRes = false; + const ImpSvNumberformatInfo& rInfo = NumFor[nIx].Info(); + const sal_uInt16 nAnz = NumFor[nIx].GetCount(); + OUStringBuffer sStr, sFrac, sDiv; // Strings, value for Integral part Numerator and denominator + bool bSign = ( (fNumber < 0) && (nIx == 0) ); // sign Not in the ones at the end + const OUString sIntegerFormat = lcl_GetFractionIntegerString(rInfo, nAnz); + const OUString sNumeratorFormat = lcl_GetNumeratorString(rInfo, nAnz); + const OUString sDenominatorFormat = lcl_GetDenominatorString(rInfo, nAnz); + + sal_uInt64 nFrac = 0, nDiv = 1; + double fNum = floor(fNumber); // Integral part + + if (fNum > D_MAX_U_INT32 || rInfo.nCntExp > 9) // Too large + { + sBuff = rScan.GetErrorString(); + return false; + } + if (rInfo.nCntExp == 0) + { + SAL_WARN( "svl.numbers", "SvNumberformat:: Fraction, nCntExp == 0"); + sBuff.truncate(); + return false; + } + + ImpGetFractionElements( fNumber, nIx, fNum, nFrac, nDiv); if (rInfo.nCntPre == 0) // Improper fraction { @@ -2803,15 +2837,7 @@ bool SvNumberformat::ImpGetFractionOutput(double fNumber, sal_uInt16 j = nAnz-1; // Last symbol -> backwards sal_Int32 k; // Denominator - bRes |= ImpNumberFill(sDiv, fNumber, k, j, nIx, NF_SYMBOLTYPE_FRAC); - if ( !bHideFraction ) - { - while ( sDiv[0] == ' ' ) - { - sDiv.insert( sDenominatorFormat.getLength(), " " ); - sDiv.remove( 0, 1 ); - } - } + bRes |= ImpNumberFill(sDiv, fNumber, k, j, nIx, NF_SYMBOLTYPE_FRAC, true); bool bCont = true; if (rInfo.nTypeArray[j] == NF_SYMBOLTYPE_FRAC) @@ -4466,7 +4492,8 @@ bool SvNumberformat::ImpNumberFill( OUStringBuffer& sBuff, // number string sal_Int32& k, // position within string sal_uInt16& j, // symbol index within format code sal_uInt16 nIx, // subformat index - short eSymbolType ) // type of stop condition + short eSymbolType, // type of stop condition + bool bInsertRightBlank)// insert blank on right for denominator (default = false) { bool bRes = false; bool bStop = false; @@ -4518,6 +4545,7 @@ bool SvNumberformat::ImpNumberFill( OUStringBuffer& sBuff, // number string case NF_SYMBOLTYPE_DIGIT: { bFoundNumber = true; + sal_uInt16 nPosInsertBlank = bInsertRightBlank ? k : 0; // left alignment of denominator const OUString& rStr = rInfo.sStrArray[j]; const sal_Unicode* p1 = rStr.getStr(); const sal_Unicode* p = p1 + rStr.getLength(); @@ -4535,7 +4563,7 @@ bool SvNumberformat::ImpNumberFill( OUStringBuffer& sBuff, // number string sBuff.insert(0, '0'); break; case '?': - sBuff.insert(0, ' '); + sBuff.insert(nPosInsertBlank, ' '); break; } } @@ -4555,6 +4583,10 @@ bool SvNumberformat::ImpNumberFill( OUStringBuffer& sBuff, // number string } break; case NF_SYMBOLTYPE_FRAC_FDIV: // Do Nothing + if (k > 0) + { + k--; + } break; default: diff --git a/svl/source/numbers/zforscan.cxx b/svl/source/numbers/zforscan.cxx index 0542cf34c1343..73e2c1d62f98b 100644 --- a/svl/source/numbers/zforscan.cxx +++ b/svl/source/numbers/zforscan.cxx @@ -814,18 +814,21 @@ short ImpSvNumberformatScan::Next_Symbol( const OUString& rStr, switch (cToken) { case '/': // AM/PM, A/P - cNext = rStr[nPos]; - if ( cNext == 'P' || cNext == 'p' ) + if (nPos < rStr.getLength()) { - sal_Int32 nLen = sSymbol.getLength(); - if ( 1 <= nLen && - (sSymbol[0] == 'A' || sSymbol[0] == 'a') && - (nLen == 1 || - (nLen == 2 && (sSymbol[1] == 'M' || sSymbol[1] == 'm') - && (rStr[nPos + 1] == 'M' || rStr[nPos + 1] == 'm')))) + cNext = rStr[nPos]; + if ( cNext == 'P' || cNext == 'p' ) { - sSymbol += OUStringLiteral1(cToken); - bDontStop = true; + sal_Int32 nLen = sSymbol.getLength(); + if ( 1 <= nLen && + (sSymbol[0] == 'A' || sSymbol[0] == 'a') && + (nLen == 1 || + (nLen == 2 && (sSymbol[1] == 'M' || sSymbol[1] == 'm') + && (rStr[nPos + 1] == 'M' || rStr[nPos + 1] == 'm')))) + { + sSymbol += OUStringLiteral1(cToken); + bDontStop = true; + } } } break; @@ -1561,6 +1564,7 @@ sal_Int32 ImpSvNumberformatScan::FinalScan( OUString& rString ) bDecSep = false; // reset in case already used in TypeCheck bool bThaiT = false; // Thai T NatNum modifier present bool bTimePart = false; + bool bDenomin = false; // Set when reading end of denominator switch (eScannedType) { @@ -1666,6 +1670,8 @@ sal_Int32 ImpSvNumberformatScan::FinalScan( OUString& rString ) } else if ( sStrArray[i][0] == ' ' ) nTypeArray[i] = NF_SYMBOLTYPE_FRACBLANK; + else if ( bFrac && ( nCounter > 0 ) ) + bDenomin = true; // following elements are no more part of denominator } else if (nTypeArray[i] == NF_KEY_THAI_T) { @@ -1673,7 +1679,7 @@ sal_Int32 ImpSvNumberformatScan::FinalScan( OUString& rString ) sStrArray[i] = sKeyword[nTypeArray[i]]; } else if (sStrArray[i][0] >= '0' && - sStrArray[i][0] <= '9') + sStrArray[i][0] <= '9' && !bDenomin) // denominator was not yet found { OUString sDiv; sal_uInt16 j = i; @@ -1702,10 +1708,14 @@ sal_Int32 ImpSvNumberformatScan::FinalScan( OUString& rString ) { nCntPre++; } + if ( bFrac ) + bDenomin = true; // next content should be treated as outside denominator } } else { + if ( bFrac && ( nCounter > 0 ) ) + bDenomin = true; // next content should be treated as outside denominator nTypeArray[i] = NF_SYMBOLTYPE_STRING; } nPos = nPos + sStrArray[i].getLength(); @@ -1741,19 +1751,27 @@ sal_Int32 ImpSvNumberformatScan::FinalScan( OUString& rString ) { return nPos; // Error } - nTypeArray[i] = NF_SYMBOLTYPE_DIGIT; - nPos = nPos + rStr.getLength(); - i++; - nCounter++; - while (i < nAnzStrings && - (sStrArray[i][0] == '#' || - sStrArray[i][0] == '0' || - sStrArray[i][0] == '?')) + if ( !bDenomin ) { nTypeArray[i] = NF_SYMBOLTYPE_DIGIT; - nPos = nPos + sStrArray[i].getLength(); - nCounter++; + nPos = nPos + rStr.getLength(); i++; + nCounter++; + while (i < nAnzStrings && + (sStrArray[i][0] == '#' || + sStrArray[i][0] == '0' || + sStrArray[i][0] == '?')) + { + nTypeArray[i] = NF_SYMBOLTYPE_DIGIT; + nPos = nPos + sStrArray[i].getLength(); + nCounter++; + i++; + } + } + else // after denominator, treat any character as text + { + nTypeArray[i] = NF_SYMBOLTYPE_STRING; + nPos = nPos + sStrArray[i].getLength(); } break; case '-': @@ -1816,6 +1834,8 @@ sal_Int32 ImpSvNumberformatScan::FinalScan( OUString& rString ) else { nTypeArray[i] = NF_SYMBOLTYPE_STRING; + if ( bFrac && (nCounter > 0) ) + bDenomin = true; // end of denominator } } else if (i > 0 && i < nAnzStrings-1 && @@ -1982,12 +2002,16 @@ sal_Int32 ImpSvNumberformatScan::FinalScan( OUString& rString ) nCntPre = nCounter; nCounter = 0; } + if ( bFrac && (nCounter > 0) ) + bDenomin = true; // next content is not part of denominator nTypeArray[i] = NF_SYMBOLTYPE_STRING; nPos = nPos + sStrArray[i].getLength(); } else { nTypeArray[i] = NF_SYMBOLTYPE_STRING; + if ( bFrac && (nCounter > 0) ) + bDenomin = true; // next content is not part of denominator nPos = nPos + rStr.getLength(); i++; while (i < nAnzStrings && StringEqualsChar( sStrArray[i], cSaved ) ) @@ -2325,9 +2349,9 @@ sal_Int32 ImpSvNumberformatScan::FinalScan( OUString& rString ) bDecSep = true; nTypeArray[i] = NF_SYMBOLTYPE_DIGIT; OUString& rStr = sStrArray[i]; - i++; nPos = nPos + sStrArray[i].getLength(); nCounter++; + i++; while (i < nAnzStrings && sStrArray[i][0] == '0') { @@ -2475,8 +2499,8 @@ sal_Int32 ImpSvNumberformatScan::FinalScan( OUString& rString ) bDecSep = true; nTypeArray[i] = NF_SYMBOLTYPE_DIGIT; OUString& rStr = sStrArray[i]; - i++; nPos = nPos + sStrArray[i].getLength(); + i++; nCounter++; while (i < nAnzStrings && sStrArray[i][0] == '0') diff --git a/svtools/source/brwbox/brwbox1.cxx b/svtools/source/brwbox/brwbox1.cxx index 8a7b1fac54a74..bd6b16b2305c1 100644 --- a/svtools/source/brwbox/brwbox1.cxx +++ b/svtools/source/brwbox/brwbox1.cxx @@ -2091,19 +2091,18 @@ sal_uInt16 BrowseBox::GetColumnAtXPosPixel( long nX, bool ) const return BROWSER_INVALIDID; } - -void BrowseBox::ReserveControlArea( sal_uInt16 nWidth ) +bool BrowseBox::ReserveControlArea(sal_uInt16 nWidth) { - - if ( nWidth != nControlAreaWidth ) + if (nWidth != nControlAreaWidth) { OSL_ENSURE(nWidth,"Control area of 0 is not allowed, Use USHRT_MAX instead!"); nControlAreaWidth = nWidth; UpdateScrollbars(); + return true; } + return false; } - Rectangle BrowseBox::GetControlArea() const { @@ -2113,7 +2112,6 @@ Rectangle BrowseBox::GetControlArea() const aHScroll->GetSizePixel().Height() ) ); } - void BrowseBox::SetMode( BrowserMode nMode ) { diff --git a/svtools/source/brwbox/editbrowsebox.cxx b/svtools/source/brwbox/editbrowsebox.cxx index df1df0806497a..92991023a8837 100644 --- a/svtools/source/brwbox/editbrowsebox.cxx +++ b/svtools/source/brwbox/editbrowsebox.cxx @@ -1103,7 +1103,6 @@ namespace svt return nId; } - void EditBrowseBox::Resize() { BrowseBox::Resize(); @@ -1122,15 +1121,22 @@ namespace svt if (!nX) nX = USHRT_MAX; - ReserveControlArea((sal_uInt16)nX); - } + bool bChanged = ReserveControlArea(nX); + + //tdf#97731 if the reserved area changed size, give the controls a + //chance to adapt to the new size + if (bChanged) + { + nX = (sal_uInt16)aPoint.X(); + ArrangeControls(nX, (sal_uInt16)aPoint.Y()); + } + } void EditBrowseBox::ArrangeControls(sal_uInt16&, sal_uInt16) { } - CellController* EditBrowseBox::GetController(long, sal_uInt16) { return nullptr; diff --git a/svtools/source/contnr/treelistbox.cxx b/svtools/source/contnr/treelistbox.cxx index 5052c0aab34a9..5239e362bae14 100644 --- a/svtools/source/contnr/treelistbox.cxx +++ b/svtools/source/contnr/treelistbox.cxx @@ -1178,7 +1178,6 @@ void SvTreeListBox::StartDrag( sal_Int8, const Point& rPosPixel ) { nDragDropMode = nOldDragMode; DragFinished( DND_ACTION_NONE ); - delete pContainer; return; } diff --git a/svtools/source/dialogs/formats.src b/svtools/source/dialogs/formats.src index b9451a1f51a42..3ecaff7ac7722 100644 --- a/svtools/source/dialogs/formats.src +++ b/svtools/source/dialogs/formats.src @@ -35,6 +35,10 @@ String STR_FORMAT_RTF { Text [ en-US ] = "Formatted text [RTF]" ; }; +String STR_FORMAT_ID_RICHTEXT +{ + Text [ en-US ] = "Formatted text [Richtext]" ; +}; String STR_FORMAT_ID_DRAWING { Text [ en-US ] = "Drawing format"; diff --git a/svtools/source/dialogs/insdlg.cxx b/svtools/source/dialogs/insdlg.cxx index b9a6f535a1a37..5d76ec22de3b3 100644 --- a/svtools/source/dialogs/insdlg.cxx +++ b/svtools/source/dialogs/insdlg.cxx @@ -263,7 +263,8 @@ OUString SvPasteObjectHelper::GetSotFormatUIName( SotClipboardFormatId nId ) { SotClipboardFormatId::DBACCESS_COMMAND, STR_FORMAT_ID_DBACCESS_COMMAND }, { SotClipboardFormatId::DIALOG_60, STR_FORMAT_ID_DIALOG_60 }, { SotClipboardFormatId::FILEGRPDESCRIPTOR, STR_FORMAT_ID_FILEGRPDESCRIPTOR }, - { SotClipboardFormatId::HTML_NO_COMMENT, STR_FORMAT_ID_HTML_NO_COMMENT } + { SotClipboardFormatId::HTML_NO_COMMENT, STR_FORMAT_ID_HTML_NO_COMMENT }, + { SotClipboardFormatId::RICHTEXT, STR_FORMAT_ID_RICHTEXT }, }; OUString aUIName; diff --git a/svtools/source/misc/langtab.src b/svtools/source/misc/langtab.src index 114b7818f1e18..67e5f0a587648 100644 --- a/svtools/source/misc/langtab.src +++ b/svtools/source/misc/langtab.src @@ -403,6 +403,7 @@ StringArray STR_ARR_SVT_LANGUAGE_TABLE < "French (Mauritius)" ; LANGUAGE_USER_FRENCH_MAURITIUS ; > ; < "Silesian" ; LANGUAGE_USER_SILESIAN ; > ; < "Hungarian (Szekely-Hungarian Rovas)" ; LANGUAGE_USER_HUNGARIAN_ROVAS ; > ; + < "English (Malaysia)" ; LANGUAGE_ENGLISH_MALAYSIA ; > ; }; }; diff --git a/svtools/source/misc/transfer.cxx b/svtools/source/misc/transfer.cxx index 1f7fcb7ad3ffd..78849fa5dd8b8 100644 --- a/svtools/source/misc/transfer.cxx +++ b/svtools/source/misc/transfer.cxx @@ -1271,6 +1271,10 @@ void TransferableDataHelper::FillDataFlavorExVector( const Sequence< DataFlavor { rDataFlavorExVector[ rDataFlavorExVector.size() - 1 ].mnSotId = SotClipboardFormatId::RTF; } + else if( xMimeType.is() && xMimeType->getFullMediaType().equalsIgnoreAsciiCase( "text/richtext" ) ) + { + rDataFlavorExVector[ rDataFlavorExVector.size() - 1 ].mnSotId = SotClipboardFormatId::RICHTEXT; + } else if( xMimeType.is() && xMimeType->getFullMediaType().equalsIgnoreAsciiCase( "text/html" ) ) { diff --git a/svtools/source/svrtf/svparser.cxx b/svtools/source/svrtf/svparser.cxx index 0540e172be10a..ca4f389b83b5a 100644 --- a/svtools/source/svrtf/svparser.cxx +++ b/svtools/source/svrtf/svparser.cxx @@ -390,7 +390,8 @@ sal_uInt32 SvParser::GetNextChar() while( 0 == nChars && !bErr ); } - if ( ! rtl::isUnicodeCodePoint( c ) ) + // Note: ImplConvertUtf8ToUnicode() may produce a surrogate! + if (!rtl::isUnicodeCodePoint(c) || rtl::isHighSurrogate(c) || rtl::isLowSurrogate(c)) c = (sal_uInt32) '?' ; if( bErr ) diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi index 2e8b2f6bd9ccc..99a8bc0115b74 100644 --- a/svx/sdi/svx.sdi +++ b/svx/sdi/svx.sdi @@ -6242,7 +6242,7 @@ SvxPageItem Orientation SID_ATTR_PAGE_ORIENTATION AccelConfig = FALSE, MenuConfig = FALSE, - ToolBoxConfig = FALSE, + ToolBoxConfig = TRUE, GroupId = GID_FORMAT; ] diff --git a/svx/source/accessibility/AccessibleFrameSelector.cxx b/svx/source/accessibility/AccessibleFrameSelector.cxx index 26ae123968d0d..00e1a28ecbb62 100644 --- a/svx/source/accessibility/AccessibleFrameSelector.cxx +++ b/svx/source/accessibility/AccessibleFrameSelector.cxx @@ -139,6 +139,8 @@ sal_Int32 AccFrameSelector::getAccessibleIndexInParent( ) if( meBorder == FrameBorderType::NONE ) { vcl::Window* pTabPage = mpFrameSel->GetParent(); + if (!pTabPage) + return nIdx; sal_Int32 nChildren = pTabPage->GetChildCount(); for( nIdx = 0; nIdx < nChildren; ++nIdx ) if( pTabPage->GetChild( static_cast< sal_uInt16 >( nIdx ) ) == mpFrameSel ) diff --git a/svx/source/accessibility/AccessibleShape.cxx b/svx/source/accessibility/AccessibleShape.cxx index bcbebd3140486..043ba8e02dbf0 100644 --- a/svx/source/accessibility/AccessibleShape.cxx +++ b/svx/source/accessibility/AccessibleShape.cxx @@ -326,7 +326,11 @@ sal_Int32 SAL_CALL AccessibleShape::getAccessibleChildCount () throw (css::uno::RuntimeException, std::exception) { - ThrowIfDisposed (); + if (IsDisposed()) + { + return 0; + } + sal_Int32 nChildCount = 0; // Add the number of shapes that are children of this shape. @@ -406,38 +410,10 @@ uno::Reference SAL_CALL ::osl::MutexGuard aGuard (maMutex); Reference xStateSet; - if (rBHelper.bDisposed || mpText == nullptr) - // Return a minimal state set that only contains the DEFUNC state. + if (IsDisposed()) { + // Return a minimal state set that only contains the DEFUNC state. xStateSet = AccessibleContextBase::getAccessibleStateSet (); - ::utl::AccessibleStateSetHelper* pStateSet = - static_cast< ::utl::AccessibleStateSetHelper*>(mxStateSet.get()); - css::uno::Reference xTempAcc = getAccessibleParent(); - if( xTempAcc.is() ) - { - css::uno::Reference - xTempAccContext = xTempAcc->getAccessibleContext(); - if( xTempAccContext.is() ) - { - css::uno::Reference rState = - xTempAccContext->getAccessibleStateSet(); - if( rState.is() ) { - css::uno::Sequence aStates = rState->getStates(); - int count = aStates.getLength(); - for( int iIndex = 0;iIndex < count;iIndex++ ) - { - if( aStates[iIndex] == AccessibleStateType::EDITABLE ) - { - pStateSet->AddState (AccessibleStateType::EDITABLE); - pStateSet->AddState (AccessibleStateType::RESIZABLE); - pStateSet->AddState (AccessibleStateType::MOVEABLE); - break; - } - } - } - } - } - xStateSet.set( new ::utl::AccessibleStateSetHelper (*pStateSet)); } else { diff --git a/svx/source/accessibility/charmapacc.cxx b/svx/source/accessibility/charmapacc.cxx index 97f523c5b552b..f7c31bfced4d1 100644 --- a/svx/source/accessibility/charmapacc.cxx +++ b/svx/source/accessibility/charmapacc.cxx @@ -71,11 +71,16 @@ void SAL_CALL SvxShowCharSetVirtualAcc::fireEvent( m_pTable->fireEvent(_nEventId,_rOldValue,_rNewValue); } -sal_Int32 SAL_CALL SvxShowCharSetVirtualAcc::getAccessibleChildCount( ) throw (RuntimeException, std::exception) +sal_Int32 SvxShowCharSetVirtualAcc::getImplAccessibleChildCount() const +{ + return mpParent->getScrollBar().IsVisible() ? 2 : 1; +} + +sal_Int32 SAL_CALL SvxShowCharSetVirtualAcc::getAccessibleChildCount() throw (RuntimeException, std::exception) { OExternalLockGuard aGuard( this ); ensureAlive(); - return ( mpParent->getScrollBar().IsVisible() ) ? 2 : 1; + return getImplAccessibleChildCount(); } uno::Reference< css::accessibility::XAccessible > SAL_CALL SvxShowCharSetVirtualAcc::getAccessibleAtPoint( const awt::Point& aPoint ) @@ -117,18 +122,20 @@ Reference< XAccessible > SAL_CALL SvxShowCharSetVirtualAcc::getAccessibleChild( { OExternalLockGuard aGuard( this ); ensureAlive(); - if ( mpParent->getScrollBar().IsVisible() && i == 0 ) + + sal_Int32 nCount = getImplAccessibleChildCount(); + if (i >= nCount) + throw IndexOutOfBoundsException(); + + if (i == 0 && mpParent->getScrollBar().IsVisible()) return mpParent->getScrollBar().GetAccessible(); - else if ( i == 1 ) + + if ( !m_xAcc.is() ) { - if ( !m_xAcc.is() ) - { - m_pTable = new SvxShowCharSetAcc(this); - m_xAcc = m_pTable; - } + m_pTable = new SvxShowCharSetAcc(this); + m_xAcc = m_pTable; } - else - throw IndexOutOfBoundsException(); + return m_xAcc; } diff --git a/svx/source/customshapes/EnhancedCustomShape2d.cxx b/svx/source/customshapes/EnhancedCustomShape2d.cxx index 14bf483a46230..85886b22ec3ea 100644 --- a/svx/source/customshapes/EnhancedCustomShape2d.cxx +++ b/svx/source/customshapes/EnhancedCustomShape2d.cxx @@ -651,10 +651,23 @@ void EnhancedCustomShape2d::SetPathSize( sal_Int32 nIndex ) "svx", "ooxml shape, path width: " << nCoordWidth << " height: " << nCoordHeight); + + // Try to set up scale separately, if given only width or height + // This is possible case in OOXML when only width or height is non-zero if ( nCoordWidth == 0 ) - fXScale = 1.0; + { + if ( nWidth ) + fXScale = (double)aLogicRect.GetWidth() / (double)nWidth; + else + fXScale = 1.0; + } if ( nCoordHeight == 0 ) - fYScale = 1.0; + { + if ( nHeight ) + fYScale = (double)aLogicRect.GetHeight() / (double)nHeight; + else + fYScale = 1.0; + } } if ( (sal_uInt32)nXRef != 0x80000000 && aLogicRect.GetHeight() ) { @@ -1828,7 +1841,7 @@ void EnhancedCustomShape2d::CreateSubPath( sal_uInt16& rSrcPt, sal_uInt16& rSegm << aStartPoint.Y() << " end: " << aEndPoint.X() << ", " << aEndPoint.Y() << " clockwise: " << int(bClockwise)); - basegfx::B2DPolygon aArc = CreateArc( aRect, bClockwise ? aEndPoint : aStartPoint, bClockwise ? aStartPoint : aEndPoint, bClockwise, aStartPoint == aEndPoint && fSwingAngle > F_PI); + basegfx::B2DPolygon aArc = CreateArc( aRect, bClockwise ? aEndPoint : aStartPoint, bClockwise ? aStartPoint : aEndPoint, bClockwise, aStartPoint == aEndPoint && ((bClockwise && fSwingAngle > F_PI) || (!bClockwise && fSwingAngle < -F_PI))); // Now that we have the arc, move it to aStartPointB2D. basegfx::B2DHomMatrix aMatrix = basegfx::tools::createTranslateB2DHomMatrix(aStartPointB2D.getX(), aStartPointB2D.getY()); aArc.transform(aMatrix); diff --git a/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx b/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx index a999791a5c5ab..26f227e8b9a4a 100644 --- a/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx +++ b/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx @@ -433,7 +433,10 @@ void GetFontWorkOutline( FWData& rFWData, const SdrObject* pCustomShape ) while ( aTextAreaIter != aTextAreaIEnd ) { GetTextAreaOutline( rFWData, pCustomShape, *aTextAreaIter, bSameLetterHeights ); - if ( eFTS == SdrFitToSizeType::AllLines ) + if (eFTS == SdrFitToSizeType::AllLines || + // tdf#97630 interpret PROPORTIONAL same as ALLLINES so we don't + // need another ODF attribute! + eFTS == SdrFitToSizeType::Proportional) { std::vector< FWParagraphData >::iterator aParagraphIter( aTextAreaIter->vParagraphs.begin() ); std::vector< FWParagraphData >::const_iterator aParagraphIEnd( aTextAreaIter->vParagraphs.end() ); diff --git a/svx/source/dialog/SafeModeDialog.cxx b/svx/source/dialog/SafeModeDialog.cxx index 7dfb9c10124a5..51de5481882c7 100644 --- a/svx/source/dialog/SafeModeDialog.cxx +++ b/svx/source/dialog/SafeModeDialog.cxx @@ -37,8 +37,8 @@ SafeModeDialog::SafeModeDialog(vcl::Window* pParent) : Dialog(pParent, "SafeModeDialog", "svx/ui/safemodedialog.ui"), mpBtnContinue(), - mpBtnQuit(), mpBtnRestart(), + mpBtnApply(), mpBoxRestore(), mpBoxConfigure(), @@ -47,14 +47,15 @@ SafeModeDialog::SafeModeDialog(vcl::Window* pParent) mpRadioRestore(), mpRadioConfigure(), - mpRadioDeinstall(), + mpRadioExtensions(), mpRadioReset(), mpCBCheckProfilesafeConfig(), mpCBCheckProfilesafeExtensions(), mpCBDisableAllExtensions(), mpCBDeinstallUserExtensions(), - mpCBDeinstallAllExtensions(), + mpCBResetSharedExtensions(), + mpCBResetBundledExtensions(), mpCBDisableHWAcceleration(), mpCBResetCustomizations(), mpCBResetWholeUserProfile(), @@ -62,8 +63,8 @@ SafeModeDialog::SafeModeDialog(vcl::Window* pParent) maBackupFileHelper() { get(mpBtnContinue, "btn_continue"); - get(mpBtnQuit, "btn_quit"); get(mpBtnRestart, "btn_restart"); + get(mpBtnApply, "btn_apply"); get(mpBoxRestore, "group_restore"); get(mpBoxConfigure, "group_configure"); @@ -72,14 +73,15 @@ SafeModeDialog::SafeModeDialog(vcl::Window* pParent) get(mpRadioRestore, "radio_restore"); get(mpRadioConfigure, "radio_configure"); - get(mpRadioDeinstall, "radio_deinstall"); + get(mpRadioExtensions, "radio_extensions"); get(mpRadioReset, "radio_reset"); get(mpCBCheckProfilesafeConfig, "check_profilesafe_config"); get(mpCBCheckProfilesafeExtensions, "check_profilesafe_extensions"); get(mpCBDisableAllExtensions, "check_disable_all_extensions"); get(mpCBDeinstallUserExtensions, "check_deinstall_user_extensions"); - get(mpCBDeinstallAllExtensions, "check_deinstall_all_extensions"); + get(mpCBResetSharedExtensions, "check_reset_shared_extensions"); + get(mpCBResetBundledExtensions, "check_reset_bundled_extensions"); get(mpCBDisableHWAcceleration, "check_disable_hw_acceleration"); get(mpCBResetCustomizations, "check_reset_customizations"); get(mpCBResetWholeUserProfile, "check_reset_whole_userprofile"); @@ -90,17 +92,19 @@ SafeModeDialog::SafeModeDialog(vcl::Window* pParent) mpRadioRestore->SetClickHdl(LINK(this, SafeModeDialog, RadioBtnHdl)); mpRadioConfigure->SetClickHdl(LINK(this, SafeModeDialog, RadioBtnHdl)); + mpRadioExtensions->SetClickHdl(LINK(this, SafeModeDialog, RadioBtnHdl)); mpRadioReset->SetClickHdl(LINK(this, SafeModeDialog, RadioBtnHdl)); mpBtnContinue->SetClickHdl(LINK(this, SafeModeDialog, DialogBtnHdl)); - mpBtnQuit->SetClickHdl(LINK(this, SafeModeDialog, DialogBtnHdl)); mpBtnRestart->SetClickHdl(LINK(this, SafeModeDialog, DialogBtnHdl)); + mpBtnApply->SetClickHdl(LINK(this, SafeModeDialog, DialogBtnHdl)); mpCBCheckProfilesafeConfig->SetToggleHdl(LINK(this, SafeModeDialog, CheckBoxHdl)); mpCBCheckProfilesafeExtensions->SetToggleHdl(LINK(this, SafeModeDialog, CheckBoxHdl)); mpCBDisableAllExtensions->SetToggleHdl(LINK(this, SafeModeDialog, CheckBoxHdl)); mpCBDeinstallUserExtensions->SetToggleHdl(LINK(this, SafeModeDialog, CheckBoxHdl)); - mpCBDeinstallAllExtensions->SetToggleHdl(LINK(this, SafeModeDialog, CheckBoxHdl)); + mpCBResetSharedExtensions->SetToggleHdl(LINK(this, SafeModeDialog, CheckBoxHdl)); + mpCBResetBundledExtensions->SetToggleHdl(LINK(this, SafeModeDialog, CheckBoxHdl)); mpCBDisableHWAcceleration->SetToggleHdl(LINK(this, SafeModeDialog, CheckBoxHdl)); mpCBResetCustomizations->SetToggleHdl(LINK(this, SafeModeDialog, CheckBoxHdl)); mpCBResetWholeUserProfile->SetToggleHdl(LINK(this, SafeModeDialog, CheckBoxHdl)); @@ -108,7 +112,7 @@ SafeModeDialog::SafeModeDialog(vcl::Window* pParent) mpBtnCreateZip->SetClickHdl(LINK(this, SafeModeDialog, CreateZipBtnHdl)); // Disable restart btn until some checkbox is active - mpBtnRestart->Disable(); + mpBtnApply->Disable(); // Check the first radio button and disable the other parts mpRadioRestore->Check(); @@ -133,7 +137,7 @@ void SafeModeDialog::dispose() { mpRadioRestore.clear(); mpRadioConfigure.clear(); - mpRadioDeinstall.clear(); + mpRadioExtensions.clear(); mpRadioReset.clear(); mpBoxRestore.clear(); @@ -142,14 +146,15 @@ void SafeModeDialog::dispose() mpBoxReset.clear(); mpBtnContinue.clear(); - mpBtnQuit.clear(); mpBtnRestart.clear(); + mpBtnApply.clear(); mpCBCheckProfilesafeConfig.clear(); mpCBCheckProfilesafeExtensions.clear(); mpCBDisableAllExtensions.clear(); mpCBDeinstallUserExtensions.clear(); - mpCBDeinstallAllExtensions.clear(); + mpCBResetSharedExtensions.clear(); + mpCBResetBundledExtensions.clear(); mpCBDisableHWAcceleration.clear(); mpCBResetCustomizations.clear(); mpCBResetWholeUserProfile.clear(); @@ -163,35 +168,14 @@ void SafeModeDialog::dispose() void SafeModeDialog::enableDisableWidgets() { - if (!maBackupFileHelper.isPopPossible()) - { - mpCBCheckProfilesafeConfig->Disable(); - } - - if (!maBackupFileHelper.isPopPossibleExtensionInfo()) - { - mpCBCheckProfilesafeExtensions->Disable(); - } - - if (!comphelper::BackupFileHelper::isTryDisableAllExtensionsPossible()) - { - mpCBDisableAllExtensions->Disable(); - } - - if (!comphelper::BackupFileHelper::isTryDeinstallUserExtensionsPossible()) - { - mpCBDeinstallUserExtensions->Disable(); - } + mpCBCheckProfilesafeConfig->Enable(maBackupFileHelper.isPopPossible()); + mpCBCheckProfilesafeExtensions->Enable(maBackupFileHelper.isPopPossibleExtensionInfo()); + mpCBDisableAllExtensions->Enable(comphelper::BackupFileHelper::isTryDisableAllExtensionsPossible()); + mpCBDeinstallUserExtensions->Enable(comphelper::BackupFileHelper::isTryDeinstallUserExtensionsPossible()); + mpCBResetSharedExtensions->Enable(comphelper::BackupFileHelper::isTryResetSharedExtensionsPossible()); + mpCBResetBundledExtensions->Enable(comphelper::BackupFileHelper::isTryResetBundledExtensionsPossible()); + mpCBResetCustomizations->Enable(comphelper::BackupFileHelper::isTryResetCustomizationsPossible()); - if (!comphelper::BackupFileHelper::isTryDeinstallAllExtensionsPossible()) - { - mpCBDeinstallAllExtensions->Disable(); - } - - if (!comphelper::BackupFileHelper::isTryResetCustomizationsPossible()) - { - mpCBResetCustomizations->Disable(); - } // no disable of mpCBResetWholeUserProfile, always possible (as last choice) } @@ -239,7 +223,7 @@ void SafeModeDialog::applyChanges() } // Deinstall - if (mpRadioDeinstall->IsChecked()) + if (mpRadioExtensions->IsChecked()) { if (mpCBDeinstallUserExtensions->IsChecked()) { @@ -247,10 +231,15 @@ void SafeModeDialog::applyChanges() comphelper::BackupFileHelper::tryDeinstallUserExtensions(); } - if (mpCBDeinstallAllExtensions->IsChecked()) + if (mpCBResetSharedExtensions->IsChecked()) + { + // Reset shared Extensions + comphelper::BackupFileHelper::tryResetSharedExtensions(); + } + if (mpCBResetBundledExtensions->IsChecked()) { - // Deinstall all Extensions (user|shared|bundled) - comphelper::BackupFileHelper::tryDeinstallAllExtensions(); + // Reset bundled Extensions + comphelper::BackupFileHelper::tryResetBundledExtensions(); } } @@ -300,7 +289,7 @@ IMPL_LINK(SafeModeDialog, RadioBtnHdl, Button*, pBtn, void) mpBoxDeinstall->Disable(); } - else if (pBtn == mpRadioDeinstall.get()) + else if (pBtn == mpRadioExtensions.get()) { // Enable the currently selected box mpBoxDeinstall->Enable(); @@ -330,13 +319,17 @@ IMPL_LINK(SafeModeDialog, DialogBtnHdl, Button*, pBtn, void) { Close(); } - else if (pBtn == mpBtnQuit.get()) + else if (pBtn == mpBtnRestart.get()) { + sfx2::SafeMode::putRestartFlag(); Close(); - Application::Quit(); + uno::Reference< uno::XComponentContext > xContext = comphelper::getProcessComponentContext(); + css::task::OfficeRestartManager::get(xContext)->requestRestart( + css::uno::Reference< css::task::XInteractionHandler >()); } - else if (pBtn == mpBtnRestart.get()) + else if (pBtn == mpBtnApply.get()) { + sfx2::SafeMode::putRestartFlag(); Close(); applyChanges(); } @@ -399,12 +392,13 @@ IMPL_LINK(SafeModeDialog, CheckBoxHdl, CheckBox&, /*pCheckBox*/, void) mpCBCheckProfilesafeExtensions->IsChecked() || mpCBDisableAllExtensions->IsChecked() || mpCBDeinstallUserExtensions->IsChecked() || - mpCBDeinstallAllExtensions->IsChecked() || + mpCBResetSharedExtensions->IsChecked() || + mpCBResetBundledExtensions->IsChecked() || mpCBDisableHWAcceleration->IsChecked() || mpCBResetCustomizations->IsChecked() || mpCBResetWholeUserProfile->IsChecked()); - mpBtnRestart->Enable(bEnable); + mpBtnApply->Enable(bEnable); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/dialog/SafeModeDialog.hxx b/svx/source/dialog/SafeModeDialog.hxx index d926dd4d0c9ae..b70265de2c303 100644 --- a/svx/source/dialog/SafeModeDialog.hxx +++ b/svx/source/dialog/SafeModeDialog.hxx @@ -34,8 +34,8 @@ public: private: VclPtr